Skocz do zawartości

Pobieranie zamówienia "xxx" użytkownika "xxx" z konta xxx na Allegro.pl: Pominięto dodawanie transakcji starszej niż wybrana data odcięcia.

Polecane posty

Witam,

Wczoraj robiliśmy aktualizację Sello do wersji 1.33. Data odcięcia została zatem ustawiona na dzień 23.01.2020 . Niestety wygląda na to, że Sello pomimo ustawienia "Pobieraj pełne transakcje z ostatnich 3 dni", próbuje pobrać wszystkie dostępne, przez co pobieranie trwa baaardzo długo i zanim dojdzie do dnia dzisiejszego, to pewnie nadejdzie niedziela. W logu wyskakuje komunikat:

Pobieranie zamówienia "xxx" użytkownika "xxx" z konta xxx na Allegro.pl: Pominięto dodawanie transakcji starszej niż wybrana data odcięcia.

Szukając w Allegro po nazwie użytkownika z loga Sello okazuje się, że system próbuje pobrać transakcje z grudnia, a nawet z listopada. Proszę o pomoc.

Link to postu

Przy pierwszym pobieraniu w nowej wersji, Sello tworzy sobie nowy dziennik zdarzeń, w którym sobie zapisuje jakie zamówienia były już pobrane, aby podczas następnego pobierania ich nie pobierać. Niestety kiedy jest dużo zamówień, może to trochę potrwać.

Link to postu
10 minut temu, Paweł Wilk napisał:

U mnie pobierało jakieś 20 min i robi to tylko raz więc nie ma co narzekać.

Zależy ile jest zamówień. U mnie pobiera już 5 godzin i końca nie widać...

Link to postu

Pierwsze pobranie na podstawie dziennika zdarzeń może trwać długo, bo dziennik nie jest zainicjowany i musi przelecieć wszystko co zwraca Allegro. Polecam na początek nie korzystać w ogóle z funkcji ponownego pobierania transakcji z iluś tam dni wstecz, bo w naszej ocenie nie ma takiej potrzeby. Funkcję tę dodaliśmy na wszelki wypadek.

Takie pierwsze dłuższe pobieranie dotyczy pobierania na podstawie dziennika zdarzeń  (pobieranie szybkie).

Ponowne pobieranie z określonej liczby dni nie powinno sięgać po starsze dane. Jeśli tak faktycznie jest prosiłbym o wygenerowanie logu i podesłanie go do nas (włączyć można w programie serwisowym, w menu Rejestr). Ale jak mówię, proszę spróbować korzystać z Sello rezygnując całkowicie z ponownego pobierania. Ewentualnie wrócić do niego, jeśli okaże się, że nie wszystkie transakcje spływają - o czym proszę również nas powiadomić. W takiej sytuacji przypominam też, że można odświeżyć dane tylko w wybranych transakcjach z menu pod prawym klawiszem. Co również skraca ewentualny czas pobierania.

 

 

Link to postu
Dnia 24.01.2020 o 11:52, Bartosz Rosa napisał:

Pierwsze pobranie na podstawie dziennika zdarzeń może trwać długo, bo dziennik nie jest zainicjowany i musi przelecieć wszystko co zwraca Allegro. Polecam na początek nie korzystać w ogóle z funkcji ponownego pobierania transakcji z iluś tam dni wstecz, bo w naszej ocenie nie ma takiej potrzeby. Funkcję tę dodaliśmy na wszelki wypadek.

Takie pierwsze dłuższe pobieranie dotyczy pobierania na podstawie dziennika zdarzeń  (pobieranie szybkie).

Ponowne pobieranie z określonej liczby dni nie powinno sięgać po starsze dane. Jeśli tak faktycznie jest prosiłbym o wygenerowanie logu i podesłanie go do nas (włączyć można w programie serwisowym, w menu Rejestr). Ale jak mówię, proszę spróbować korzystać z Sello rezygnując całkowicie z ponownego pobierania. Ewentualnie wrócić do niego, jeśli okaże się, że nie wszystkie transakcje spływają - o czym proszę również nas powiadomić. W takiej sytuacji przypominam też, że można odświeżyć dane tylko w wybranych transakcjach z menu pod prawym klawiszem. Co również skraca ewentualny czas pobierania.

 

 

Transakcje pobierały się przez ponad 48 godzin. Sello najpierw zaciągało transakcję od 27 listopada w górę, a gdy doszło do daty bieżącej, to zaczęło pobierać transakcję od 30 lipca w górę. Przy czym w ogóle nie pobiera transakcji z dni po aktualizacji. Dziennie mamy czasami ok. 1000 transakcji więc bardzo długo to schodzi. Niestety przy 27 września pobieranie się zakończyło, a teraz gdy puściłem, to znowu leci od 27 listopada. Co ciekawe, gdy w trakcie pobierania starych transakcji na jednym stanowisku włączymy ponownie pobieranie transakcji (np. z 3 dni) na drugim stanowisku, to te świeże zaczynają się pobierać. Minusem jest to, ze musimy to klikać ręcznie.

Link to postu

W jaki sposób pobierane są dane? Czy tak jak poniżej?

image.png.1173086f377048e46d5814a0deb33d47.png

Czy jest zaznaczona pobierz ponownie (wszystkie)?

Pobieranie tak jak powyżej opiera się na dzienniku zdarzeń, który nie powinien zawierać więcej transakcji niż 10 dni wstecz. Jeśli jest inaczej to trzeba by to o to dopytać Allegro. Proszę włączyć logowanie w programie serwisowym (menu Rejestr), uruchomić Sello jako administrator i rozpocząć pobieranie tak jak na zrzucie powyżej. Po minucie zatrzymać i podesłać do nas log z folderu instalacyjnego Sello\Log na sello@insert.com.pl

 

 

Link to postu
52 minuty temu, Bartosz Rosa napisał:

W jaki sposób pobierane są dane? Czy tak jak poniżej?

image.png.1173086f377048e46d5814a0deb33d47.png

Czy jest zaznaczona pobierz ponownie (wszystkie)?

Pobieranie tak jak powyżej opiera się na dzienniku zdarzeń, który nie powinien zawierać więcej transakcji niż 10 dni wstecz. Jeśli jest inaczej to trzeba by to o to dopytać Allegro. Proszę włączyć logowanie w programie serwisowym (menu Rejestr), uruchomić Sello jako administrator i rozpocząć pobieranie tak jak na zrzucie powyżej. Po minucie zatrzymać i podesłać do nas log z folderu instalacyjnego Sello\Log na sello@insert.com.pl

 

 

Dokładnie tak są pobierane. Na drugim komputerze w trakcie tego zwykłego pobierania stosuję "Pobierz ponownie" i dopiero wtedy pobierają się nowe transakcje. Log wysłany.

Link to postu
4 godziny temu, Bartosz Rosa napisał:

Jest możliwe obejście konieczności pobierania wszystkich danych z dziennika zdarzeń przy pierwszym pobraniu. Należy wykonać polecenie SQL w programie serwisowym:


update reg_data set rd_vvarchar = '1579858102900596' where rd_name = 'LastOrderEventId'

Spowoduje to, że punkt końcowy dziennika zdarzeń (który zapisuje się po każdym pobraniu dziennika, za pierwszym razem trwa to długo, ponieważ zwracane są dane z 60 dni wstecz) zostanie ustawiony na moment sprzed kilku dni (w stosunku do daty tego posta).

Stare API Allegro nie pozwalało w ten sposób podać identyfikatora, trzeba było trafić w numer zdarzenia należący do sprzedawcy an co były małe szanse). Nowe API powinno zwrócić zdarzenia sprzedawcy poprawnie niezależnie od tego do kogo należy wskazany numer.

Bartku,

to zapytanie nic nie daje, u nas w bazie nie ma takiego rd_name jak 'LastOrderEventId'...

jest podobne: 'LastGSTDate' - czy to to?

Link to postu

Nie, zapomniałem, że te wpisy pojawiają w momencie pierwszego użycia.

W sytuacji, gdy nie ma takich wpisów w tabeli reg_data, można je dodać poniższym poleceniem:

;with cte (regId) as
(
	select distinct rd_regId from reg_Data
)
,
cte2 (id, regId, name, value) as
(
	select (ROW_NUMBER() over(order by regId))+(select max(rd_id) from reg_data), regId, 'LastOrderEventId', '1579858102900596' from cte
)
insert into reg_data(rd_id, rd_RegId, rd_name, rd_vvarchar) select * from cte2

Dodatkowo po wykonaniu tego polecenia trzeba na stronie startowej odświeżyć ważne informacje - prawdopodobnie pojawi się uszkodzenie tabeli reg_Data, więc trzeba ją naprawić naciskając przycisk napraw.

Link to postu

Myślę, że powinna być precyzyjna instrukcja przy instalacji podana, niejednemu zaoszczędziło by to czy to gratisowej pracy czy problemów, w formie takiej o:

1. Wypisać / zrealizować wszystkie transakcje jakie się da (utrudniona obsługa "starych" transakcji przez nowe Sello).

2. Wyłączyć synchronizację / pobieranie transakcji z Allegro

3. Backup

4. Instalacja

Domyślnie niewłączone jakiekolwiek pobierania wstecz.

 

 

Link to postu

W naszym przypadku problemem nie jest sama procedura,  a czas potrzebny na zainicjowanie dziennika zdarzeń. Przy ok. 30 tyś. zamówień z ostatnich 60 dni dziennik tworzy się prawie przez 48h. Nie jesteśmy w stanie w tym czasie  olać bieżących zamówień (pobieranych na końcu) m.in. ze względu na konieczność ich realizacji oraz ścisłe połączenie Sello z systemem magazynowym. Poza tym inicjowanie dziennika zamula bazę i tworzenie dokumentów w trakcie jego pobierania to zadanie dla cierpliwych. Wg. mnie idealnym rozwiązaniem byłaby możliwość wyboru od jakiej daty ma być tworzony dziennik zdarzeń, albo ustawienie jej np. na tydzień przed datą odcięcia. W instrukcji do aktualizacji jest napisane, że Sello będzie pobierało z 10 dni, ale u nas leciało z 60 dni, czyli tyle na ile maksymalnie pozwala API.

Tymczasowo ustawiłem Automatyczne pobieranie transakcji co 30 minut z ponownym pobieraniem transakcji z bieżącego dnia, co 1 pobranie. W ten sposób mogę pobierać bieżące transakcje bez zainicjowanego dziennika zdarzeń. Bartku, czy istnieje jakieś zagrożenie takiego tymczasowego rozwiązania?

Edytowane przez Łukasz Piekarski
Link to postu
15 godzin temu, Łukasz Piekarski napisał:

Wg. mnie idealnym rozwiązaniem byłaby możliwość wyboru od jakiej daty ma być tworzony dziennik zdarzeń, albo ustawienie jej np. na tydzień przed datą odcięcia. W instrukcji do aktualizacji jest napisane, że Sello będzie pobierało z 10 dni, ale u nas leciało z 60 dni, czyli tyle na ile maksymalnie pozwala API.

Problem w tym, że dziennik zdarzeń nie działa po datach tylko po identyfikatorach i trzeba wiedzieć jaki identyfikator był 10 dni temu.

Informacja o 10 dniach wstecz okazała się obecnie błędna - obowiązywała kiedyś, teraz obowiązuje 60 dni.

15 godzin temu, Łukasz Piekarski napisał:

Bartku, czy istnieje jakieś zagrożenie takiego tymczasowego rozwiązania?

Powoduje to wielokrotną, niepotrzebną aktualizację transakcji w których nic się nie zmieniło. Jeśli wprowadzacie zmiany ręcznie w transakcji to trzeba wyłączyć synchronizację z Allegro na zakładce CECHY w takiej transakcji. Docelowo zrobimy tak aby transakcje w statusie Gotowe do przetwarzania nie były już synchronizowane - póki co jeszcze są więc trzeba na to zwrócić uwagę edytując transakcje.

 

Link to postu

Sprawdziłem nowy podesłany log, pobierają się w nim transakcje od 24 stycznia 2020. Ale być może problem nie leży w dzienniku, tylko w tabeli zawierającej nieudane zadania pobrania i zapisu transakcji. Zapewne trafiły tam w początkowym etapie.

Lista tych nieudanych transakcji jest wykorzystywana w początkowym etapie pobierania pobierania transakcji i znajduje się w tabeli

select * from reg_OrderEventTrackerFails

Zakładając, że nowe, bieżące transakcje są już pobrane można wyczyścić tę tabelę aby pozbyć się ponownego pobierania tych nieudanych na początku transakcji.

delete from reg_OrderEventTrackerFails

 

Link to postu
1 godzinę temu, Bartosz Rosa napisał:

 


select * from reg_OrderEventTrackerFails

Zakładając, że nowe, bieżące transakcje są już pobrane można wyczyścić tę tabelę aby pozbyć się ponownego pobierania tych nieudanych na początku transakcji.


delete from reg_OrderEventTrackerFails

 

Nic z tego - tabela jest pusta... nie w tym problem. 

Instalujemy jutro kolejną wersję i zobaczymy..

 

Edytowane przez Łukasz Pytliński
Link to postu

Być może te transakcje zostały zapisane i wpisy zniknęły. W logu jasno widać, że po wywołaniu pobrania dziennika zdarzeń pojawia się odwołanie wprost do konkretnego zamówienia z sierpnia, którego nie ma w dzienniku zdarzeń. Jedyna możliwość jest taka, że żądanie to pochodzi ze wspomnianej tabeli nieudanych wcześniejszych pobrań.

Link to postu
20 godzin temu, Bartosz Rosa napisał:

Być może te transakcje zostały zapisane i wpisy zniknęły. W logu jasno widać, że po wywołaniu pobrania dziennika zdarzeń pojawia się odwołanie wprost do konkretnego zamówienia z sierpnia, którego nie ma w dzienniku zdarzeń. Jedyna możliwość jest taka, że żądanie to pochodzi ze wspomnianej tabeli nieudanych wcześniejszych pobrań.

Dziwne jest to, że zaczynając od 24 stycznia potem przeskakuje na 1 września. Tak jak pisał Łukasz, zobaczymy po najnowszej aktualizacji. Puścimy pobieranie przez weekend trzymając kciuki żeby Rest API nie miało jakiejś chwilowej awarii.

Link to postu
Dnia 27.01.2020 o 13:44, Bartosz Rosa napisał:

Jest możliwe obejście konieczności pobierania wszystkich danych z dziennika zdarzeń przy pierwszym pobraniu. Należy wykonać polecenie SQL w programie serwisowym:


update reg_data set rd_vvarchar = '1579858102900596' where rd_name = 'LastOrderEventId'

Spowoduje to, że punkt końcowy dziennika zdarzeń (który zapisuje się po każdym pobraniu dziennika, za pierwszym razem trwa to długo, ponieważ zwracane są dane z 60 dni wstecz) zostanie ustawiony na moment sprzed kilku dni (w stosunku do daty tego posta).

Stare API Allegro nie pozwalało w ten sposób podać identyfikatora, trzeba było trafić w numer zdarzenia należący do sprzedawcy an co były małe szanse). Nowe API powinno zwrócić zdarzenia sprzedawcy poprawnie niezależnie od tego do kogo należy wskazany numer.

U nas pojawiły się 3 wiersze LastOrderEventId z takimi samymi wartościami. Domyślam się, że tak nie powinno być, prawda?

Link to postu
19 minut temu, Bartosz Rosa napisał:

Każde konto Allegro ma osobny wiersz, więc powinno być ich tyle, ile aktywnych kont.

Fakt, mamy 3 konta (w tym eBay). Jednak aktywne jest tylko jedno konto Allegro. Rozumiem jednak, że wpisy zostają.

Link to postu

Właśnie zaktualizowałem Sello 1.32 do wersji 1.33.1 (miałem problem z archiwizacją i musiałem edytować rejestr) i puściłem pierwsze pobieranie danych (zaznaczyłem tylko "Zamówienia Allegro (transakcje)") i też wydaje się, że będzie to trwało bardzo długo. Z samego stycznia mam 40tys transakcji. Jak zrobić, żebym mógł normalnie pracować?

Polecenie

Select * from reg_data where rd_name = 'LastOrderEventId'

nic nie zwraca więc wnioskuję, że podany wcześniej kod z UPDATE nic nie da. Na razie puściłem pobieranie z obecnego dnia.
Jakieś sugestie?

Link to postu
14 godzin temu, maniootek • napisał:

Właśnie zaktualizowałem Sello 1.32 do wersji 1.33.1 (miałem problem z archiwizacją i musiałem edytować rejestr) i puściłem pierwsze pobieranie danych (zaznaczyłem tylko "Zamówienia Allegro (transakcje)") i też wydaje się, że będzie to trwało bardzo długo. Z samego stycznia mam 40tys transakcji. Jak zrobić, żebym mógł normalnie pracować?

Polecenie


Select * from reg_data where rd_name = 'LastOrderEventId'

nic nie zwraca więc wnioskuję, że podany wcześniej kod z UPDATE nic nie da. Na razie puściłem pobieranie z obecnego dnia.
Jakieś sugestie?

Udało mi się rozwiązać problem. Generalnie nie skorzystałem z rozwiązania z dodaniem wpisu "LastOrderEventId" bo gdy to zrobiłem, to program niby zaczął mi pobierać od 24 Stycznia, ale potem nie wiadomo dlaczego leciał od 1 września. Totalnie bezsensu. Próbowałem nawet wbić tam ID typowo naszego "zdarzenia", ale nic to nie zmieniło. Dlatego usunąłem wartość z tego wpisu i zacząłem pobierać.

Zrobiłem tak, że puściłem w piątek wieczorem pobieranie  i Sello ciągnęło transakcje z ostatnich 60 dni od 4 grudnia  (tak jak powinno za pierwszym razem). Niestety dochodząc do dnia bieżącego przeskoczyło na 1 sierpnia i leciało aż do 4 grudnia. Nie wiadomo dlaczego Allegro zwracało całe 6 miesięcy transakcji, ale na szczęście po tym procesie dziennik zdarzeń się zapisał. U nas to pobieranie trwało ponad 48h, ale zakończyło się sukcesem (ufff?). Teraz transakcje pobierane są wg. dziennika zdarzeń i idą błyskawicznie.

Tak długi okres pobierania niestety nie zawsze się udaje bo czasami występują przerwy w dostępie REST API i wtedy cała zabawa zaczyna się od nowa, czego doświadczyliśmy kilkukrotnie. Plusem jest fakt, że podczas tego długiego pobierania można spokojnie odpalić drugie Sello i włączyć "Ponowne pobieranie transakcji  np. z bieżącego dnia", aby obsłużyć bieżące zamówienia (łącznie z tworzeniem dokumentów).

Edytowane przez Łukasz Piekarski
Link to postu

Ustawienie tego wpisu dla dziennika jest w zasadzie tożsame z odczekaniem do końca synchronizacji.

@maniootek • a próbowałeś dodać ten wpis?

Ważne aby dodany wpis miał dobrze ustawiony rd_RegId - tak aby był taki sam jak rd_RegId dla AccessTokenów (to są identyfikatory kont i każde ma mieć swój).

image.png.73fd3370fc77e1553004e63ec2813f64.png

 

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...