Powtwierdzenie ZS poprzez API

Problemy i pomysły związane z innymi modułami czyli np. środki trwałe, import, zamówienia ...

Moderator: mikey

pimarplastics
Posty: 5
Rejestracja: 11 gru 2016, 23:26
Rola: Administrator CDN XL
Wersja: 2015

Powtwierdzenie ZS poprzez API

Post autor: pimarplastics »

Witam,

Próbuje osiagnąć efekt który poprzez API potwierdzi mi ZS i ewentualnie zmieni date.

Cały czas dostaje bład nr 8 - Błąd podczas operacji na tabeli ObiektyObce

Wywołuje kod API z poziomu IronPython ale nie różni to się znacząco od innych metod.

Kod: Zaznacz cały

...
gid = 7723; #gid dokumentu
data = 78873; #data clarion
...
XLDocumentHeader = XLOtwarcieDokumentuZamInfo_20152();
XLDocumentHeader.Wersja = 20152;
XLDocumentHeader.Tryb = 1;  # 1 inteaktywny 2 wsadowy - zmiana parametru nie pomaga
InfoDocumentHeader = api.XLOtworzDokumentZam(session.Value,gid , XLDocumentHeader);
XLClose = XLZamkniecieDokumentuZamInfo_20152();
XLClose.Wersja = 20152;
XLClose.TrybZamkniecia = 2; #wg dok potwierdzenie
XLClose.DataRealizacji = data;                 
InfoXLClose = api.XLZamknijDokumentZam(gid , XLClose);
		
print InfoXLClose;
Zawsze ostatni print 8 - Błąd podczas operacji na tabeli ObiektyObce

Będę bardzo wdzięczny za pomoc. Opadłem już z sił. Nawet na żywym systemie przez pomyłkę usunołem zamówienie po pozbyciu sie linijki

Kod: Zaznacz cały

XLClose.TrybZamkniecia = 2; #wg dok potwierdzenie
Co mnie też bardzo sflustrowało. Nadmienie że z sukcesem użwyam IronPythona do dodawania PW, RW, więc raczej problem jest w moim rozumowaniu niż technologii.

Pozdrawiam,
-Kamil S,

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

Re: Powtwierdzenie ZS poprzez API

Post autor: krzysieksarna »

A) Jak zniknął ten dokument? Zamknąłęś program bez zamknięcia dokumentu i wtedy dokument jeszcze był, ale na czerwono bo nie został zamknięty. Przy następnym logowaniu w XLLogin trybnaprawy ustawiłeś na 0 i co się stało " W przypadku ustawienia wartości 0 przy logowaniu zostaną usunięte z bazy danych wszystkie dokumenty, które znajdowały się w systemie na czerwono, czyli były uszkodzone. W przypadku ustawienia wartości na 1 żadna akcja nie zostanie podjęta."

Zapewne w tabeli dokumentyobce są identyfiaktory innych dokumentów które w XLu zostały już w inny sposób usunięte. A może zmień trybnaprawy na 1 w XLLogin. Na pewno chcesz usuwać te dokumenty?
Krzysiek Sarna
http://www.infortes.pl

pimarplastics
Posty: 5
Rejestracja: 11 gru 2016, 23:26
Rola: Administrator CDN XL
Wersja: 2015

Re: Powtwierdzenie ZS poprzez API

Post autor: pimarplastics »

Witam,

Rzeczywiście dokumenty znikały z powodu XLLogin ! Zmieniłem trybnaprawy i jest ok.

Tylko teraz jak potwierdzić te cholerne ZS poprzez API ... Próbowałem w miedzyczasie już wiele i cały czas mam ten bład nr 8.

Przegrzebałem forum i znalazłem taki temat: viewtopic.php?f=13&t=3856 , wydaje się powiązany.

Scenariusz jaki chce zrobić jest następujący: mam w systemie otwarte niepotwierdzone zamówienie, i następnie poprzez api chciał bym je potwiedzić i ewentualnie zmienić datę realizacji. Nie brzmi zbyt trudno ale coś ciągle jest nie tak.

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

Re: Powtwierdzenie ZS poprzez API

Post autor: krzysieksarna »

Sprawdź czy w tabeli ObiektyObce nie masz gidów, których nie ma w XLu. Sprawdź czy jeśli zalogujesz się na innego operatora masz ten problem. Moim zdanie to jakiś problem wynikający z historycznych zdarzeń na tej bazie. W momencie np. otwarcia zamówienia za pomocą API Xl tam wpisuje gid otwartego zamówienia i między innymi TS otwarcia, przy zamknięciu dokumentu powinien usunąć taki wpis. Może masz tam jakiś stary wpis z gidem tego zamówienia? Zobacz czy przed otwarciem zamówienia jest tam (w obiektyobce) jego gid. Nie powinno go tam być
Krzysiek Sarna
http://www.infortes.pl

pimarplastics
Posty: 5
Rejestracja: 11 gru 2016, 23:26
Rola: Administrator CDN XL
Wersja: 2015

Re: Powtwierdzenie ZS poprzez API

Post autor: pimarplastics »

Witam,

Wydaje mi się że powinno być tak:

OBO_GIDTyp -> 960

A następnie

Kod: Zaznacz cały

SELECT * FROM CDN.ObiektyObce where OBO_GIDTyp = 960
AND OBO_GIDNumer not in (SELECT OBO_GIDNumer FROM CDN.ZamNag);
Zero wyników. Czyli nie ma raczej niepowiązanych rekordów.

Teraz mam pytanie, jaka jest prawidłowa droga zatwierdzenia ZS poprzez api. Ja robie tak:

1. XLLogin
2. XLOtworzDokumentZam
3. XLZamknijDokumentZam
4. XLLogout

I jak robie w ten sposób to otwiera mi zamówienie, kwerenda

Kod: Zaznacz cały

SELECT * FROM CDN.ObiektyObce where OBO_GIDTyp = 960
AND OBO_GIDNumer  in (SELECT OBO_GIDNumer FROM CDN.ZamNag);
Zwraca wynik z gidem uzytym do XLOtworzDokumentZam, jednak nie udaje mi się w żaden spodób zrbić XLZamknijDokumentZam zawsze ta 8.

Jeżeli zrobię:
1. XLLogin
2. XLZamknijDokumentZam
3. XLLogout

Kod: Zaznacz cały

SELECT * FROM CDN.ObiektyObce where OBO_GIDTyp = 960
AND OBO_GIDNumer  in (SELECT OBO_GIDNumer FROM CDN.ZamNag);
Nie zwraca nic. Ale i tak dostaje 8.

Zerknołem jeszcze w dokumentacje i " 8 - Nie podano operatora wystawiającego, podstawiono bieżącego" czy to może mieć znaczenie ?

Cosmo
Posty: 1
Rejestracja: 29 wrz 2017, 10:02
Rola: Inny
Wersja: 2016

Re: Powtwierdzenie ZS poprzez API

Post autor: Cosmo »

Sorki, że odkopie, ale jak udało Ci się rozwiązać problem z błędem-8? Też mnie teraz to trapi...
Będę wdzięczny za jakiś info.

adrian_p
Posty: 3
Rejestracja: 06 gru 2023, 12:32
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Powtwierdzenie ZS poprzez API

Post autor: adrian_p »

również podpinam się pod temat :)

ODPOWIEDZ