Strona 1 z 1

Api usuwanie dokumentu handlowego w buforze

: 20 gru 2022, 13:48
autor: MichalStelmasiak
Mam problem z usuwaniem dokumentów w buforze przez api wersja 2022.
Z tego co wywnioskowałem usuwanie można zrobić przy pomocy XLZamknijDokument i żeby użyć tej procedury nie mogą być żadne pozycje w dokumencie.

Pozycje dokumentu można usunąć przy pomocy XLUsunPozycje i tu pojawia się problem. Funkcja zwraca mi błąd -1 czyli API nie zostało aktywowane bądź błąd wersji i nie wiem w czym jest błąd.

Id pozycji biorę z TreLp. Dokument otwiera sie normalnie, zmienne z bazy dobrze się zaczytują.

Poniżej mój kod:

Kod: Zaznacz cały

        public static int Zaloguj()
        {
            int sesjaId = -1;                
            XLLoginInfo_20220 login = new XLLoginInfo_20220
            {
                    Wersja = 20220,
                    ProgramID = "UsuwanieDokumentu",
                    Baza = Connection.ConnectionDatabase,
                    TrybWsadowy = 1
            };
            cdn_api.cdn_api.XLLogin(login, ref sesjaId);
            return sesjaId;
       }
       public static void Wyloguj(int SesjaID)
        {
            if (SesjaID != -1)
            {
                if (cdn_api.cdn_api.XLLogout(SesjaID) != 0)
                {
                    MessageBox.Show("Błąd przy wylogowaniu", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
        
        public static int OtworzDokument(int sesjaId, int gidTyp, int gidNumer, ref int idDok)
        {
            XLOtwarcieNagInfo_20220 naglowek = new XLOtwarcieNagInfo_20220()
            {
                GIDTyp = gidTyp,
                GIDNumer = gidNumer,
                Tryb = 2,
                Wersja = 20220,
            };
            return cdn_api.cdn_api.XLOtworzDokument(sesjaId, ref idDok, naglowek);
        }
        
        public static int UsunElement(int documentId, int pozId)
        {

            XLUsunElemInfo_20220 elem = new XLUsunElemInfo_20220()
            {
                Wersja = 20220,
                Pozycja = pozId
            };

           return cdn_api.cdn_api.XLUsunPozycje(documentId, elem);
        }
        
        public static int UsunDokument(int idDok)
        {
        XLZamkniecieDokumentuInfo_20220 closeInfo = new XLZamkniecieDokumentuInfo_20220()
            {
                Wersja = 20220,
                Tryb = -1
            };

            return cdn_api.cdn_api.XLZamknijDokument(id, closeInfo);
        }
        
        --użycie funkcji
        
        int sesja = ERPXL.Zaloguj();
        OtworzDokument(sesja, dokument.Trn_GIDTyp, dokument.Trn_GIDNumer, ref idDok);
        
        foreach (int pozycja in dokument.WZPozycje)
        {
          UsunElement(idDok, pozycja);
        }
        UsunDokument(idDok);
        
        Wyloguj(sesja);


Re: Api usuwanie dokumentu handlowego w buforze

: 29 gru 2022, 23:50
autor: krzysieksarna
1. Z jakiegoś powodu nie udało się zalogować do XLa, sprawdź plik loga, ustaw tryb na interkacyjny - obsrawiam to, że nie udało sie pobrać licencji
.UWAGA XLLogin nie zwraca błędu gdy nie udało się pobrać licencji

2. Potem Otwórzdokument i zamknij z trybem usuń - dokument może mieć pozycje

Re: Api usuwanie dokumentu handlowego w buforze

: 03 sty 2023, 08:42
autor: MichalStelmasiak
W trybie interaktywnym przy usuwaniu wyskakuje:

Szczegóły operacji:
Operacja zmiany obiektu - o identyfikatorze 6739 4327 1.
Identyfikator operacji: Modyfikacja_TwrZasoby-12 (Wywołanie funkcji modyfikującej zasoby POS (POS_Modyfikacja_TwrZasoby) za.
Błąd: , , Nie utworzono obiektu Hydra.Runtime.2022.0.


Z logowaniem i pobieraniem licencji jest wszystko ok. Program loguje sie, tworzy sesje i otwiera dokument. Problem pojawia się przy usuwaniu pozycji.

Re: Api usuwanie dokumentu handlowego w buforze

: 03 sty 2023, 09:35
autor: krzysieksarna
Sprawdź czy ten sam błąd masz przy wyłączonych wszystkich dodatkach.

Re: Api usuwanie dokumentu handlowego w buforze

: 03 sty 2023, 09:37
autor: krzysieksarna
I spróbuj jeszcze uruchomić jako administrator rejestr.bat

Re: Api usuwanie dokumentu handlowego w buforze

: 04 sty 2023, 15:35
autor: fozilisu
Sprawdź jeszcze zmienne środowiskowe - czy w PATH masz ustawioną lokalizację z właściwą dllką.

Re: Api usuwanie dokumentu handlowego w buforze

: 05 sty 2023, 09:15
autor: MichalStelmasiak
Z konfiguracją systemu jest wszystko ok. Inne funkcjonalności takie jak tworzenie nowych dokumentów czy drukowanie przez API działa. Problem ewidentnie jest z usuwaniem elementów z dokumentu.

Re: Api usuwanie dokumentu handlowego w buforze

: 10 sty 2023, 08:09
autor: krzysieksarna
A czy przypadkiem aplikacje uruchamiasz w jakimś debuggerze?

Re: Api usuwanie dokumentu handlowego w buforze

: 11 sty 2023, 08:13
autor: MichalStelmasiak
Tak. W debuggerze robiłem dlatego nie przechodziło. Pamiętam że przy tworzeniu elementów ten sam problem miałem.

Dzięki, wszystko działa.