Api usuwanie dokumentu handlowego w buforze

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

MichalStelmasiak
Posty: 4
Rejestracja: 19 gru 2022, 15:14
Rola: Administrator CDN XL
Wersja: 2019

Api usuwanie dokumentu handlowego w buforze

Post 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);


krzysieksarna
Posty: 139
Rejestracja: 22 wrz 2008, 09:29
Rola: Konsultant CDN XL
Lokalizacja: Wrocław
Kontakt:

Re: Api usuwanie dokumentu handlowego w buforze

Post 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
Krzysiek Sarna
http://www.infortes.pl

MichalStelmasiak
Posty: 4
Rejestracja: 19 gru 2022, 15:14
Rola: Administrator CDN XL
Wersja: 2019

Re: Api usuwanie dokumentu handlowego w buforze

Post 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.

krzysieksarna
Posty: 139
Rejestracja: 22 wrz 2008, 09:29
Rola: Konsultant CDN XL
Lokalizacja: Wrocław
Kontakt:

Re: Api usuwanie dokumentu handlowego w buforze

Post autor: krzysieksarna »

Sprawdź czy ten sam błąd masz przy wyłączonych wszystkich dodatkach.
Krzysiek Sarna
http://www.infortes.pl

krzysieksarna
Posty: 139
Rejestracja: 22 wrz 2008, 09:29
Rola: Konsultant CDN XL
Lokalizacja: Wrocław
Kontakt:

Re: Api usuwanie dokumentu handlowego w buforze

Post autor: krzysieksarna »

I spróbuj jeszcze uruchomić jako administrator rejestr.bat
Krzysiek Sarna
http://www.infortes.pl

fozilisu
Posty: 7
Rejestracja: 25 lut 2021, 11:57
Rola: Administrator CDN XL
Wersja: 2019

Re: Api usuwanie dokumentu handlowego w buforze

Post autor: fozilisu »

Sprawdź jeszcze zmienne środowiskowe - czy w PATH masz ustawioną lokalizację z właściwą dllką.

MichalStelmasiak
Posty: 4
Rejestracja: 19 gru 2022, 15:14
Rola: Administrator CDN XL
Wersja: 2019

Re: Api usuwanie dokumentu handlowego w buforze

Post 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.

krzysieksarna
Posty: 139
Rejestracja: 22 wrz 2008, 09:29
Rola: Konsultant CDN XL
Lokalizacja: Wrocław
Kontakt:

Re: Api usuwanie dokumentu handlowego w buforze

Post autor: krzysieksarna »

A czy przypadkiem aplikacje uruchamiasz w jakimś debuggerze?
Krzysiek Sarna
http://www.infortes.pl

MichalStelmasiak
Posty: 4
Rejestracja: 19 gru 2022, 15:14
Rola: Administrator CDN XL
Wersja: 2019

Re: Api usuwanie dokumentu handlowego w buforze

Post 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.

ODPOWIEDZ