Skocz do zawartości

problem z synchronizacją z Subiekten nexo

Polecane posty

Witam,

Od jakiegoś czasu w Sello nie aktualizują się stany magazynowe. Komunikat, który się pojawia to: InsERT_nexo_Driver: Wystąpił błąd podczas synchronizacji towarów:  Wyjątek: Przygotowywanie listy towarów do synchronizacji stanów magazynowych.

Najbardziej zależy nam na synchronizacji stanów magazynowych między Subiekt-Sello-Allegro i stąd wykup na razie licencji na miesiąc. Do tej pory program spełniał swoje zadanie. Jesteśmy początkujący, więc nie wiemy od czego zacząć, aby ten błąd wyeliminować.

Z góry dziękuję za pomoc.

sello1.png

Link to postu

Proszę za pomocą programu serwisowego Sello wykonać poniższe polecenie na bazie do której łączy się Sello.


Zalecamy przed wykonaniem jakiegokolwiek polecenie SQL wykonać kopię zapasową bazy danych. W razie wystąpienia problemów z bazą można będzie taką bazę przywrócić.

Instrukcja wykonania polecenia w programie serwisowym:

1. Polecenia SQL należy wykonać za pomocą dołączonego do Sello programu serwisowego Admin.exe (znajduje się w folderze Sello, domyślnie C:\Program Files\InsERT\Sello\Admin.exe).

2. Po uruchomieniu programu należy zalogować się do serwera używając tych samych danych jakie używane są do logowania się Sello do serwera.

3. Po poprawnym zalogowaniu zostaną wyświetlone bazy danych Sello znajdujące się na tym serwerze.

4. Z listy baz należy wybrać tą, z którą aktualnie Sello współpracuje (jeśli jest ich więcej niż jedna).

5. Kliknąć przycisk Zaawansowane >> Zapytanie SQL.

6. W polu należy wkleić podane poniżej polecenie  i nacisnąć przycisk Wykonaj.

 

7. Wysłać do nas wynik poniższego polecenia SQL.


 
SELECT  COUNT(*) FROM    it__Item AS IT1
INNER JOIN it__Item AS IT2 ON
IT1.it_Linked = 1
AND IT2.it_Linked = 1
AND IT1.it_RegistrationId = IT2.it_RegistrationId
AND IT1.it_ExternalItemId = IT2.it_ExternalItemId
AND IT1.it_Id < IT2.it_Id

 

Link to postu

To oznacza, że w bazie są różne towary, które są przypisane do tego samego towaru w nexo.

Poniżej skrypt SQL, który je wynajdzie i oznaczy ich nazwy jako !!! DUPLIKAT DO USUNIĘCIA !!!. Trzeba się ich pozbyć. Przed przystąpieniem do wykonania poniższego skryptu, proszę jednak utworzyć kopię zapasową bazy (archiwizację), gdyż skrypt ten ingeruje w dane w bazie, więc warto mieć w razie czego kopię zapasową gdyby coś poszło nie tak.

DECLARE @DUPLIKATY TABLE (Id1 INT NOT NULL,    Id2 INT NOT NULL)

INSERT INTO @DUPLIKATY
SELECT        IT1.it_Id, IT2.it_Id
FROM        it__Item AS IT1
             INNER JOIN it__Item AS IT2
                 ON    IT1.it_Linked = 1
                 AND IT2.it_Linked = 1
                 AND IT1.it_RegistrationId = IT2.it_RegistrationId
                 AND IT1.it_ExternalItemId = IT2.it_ExternalItemId
                 AND IT1.it_Id < IT2.it_Id

DECLARE @IdOrig INT
DECLARE @IdDupl INT

DECLARE DuplCursor CURSOR FOR SELECT * FROM @DUPLIKATY OPEN DuplCursor

FETCH NEXT FROM DuplCursor INTO @IdOrig, @IdDupl WHILE @@FETCH_STATUS = 0 BEGIN
     UPDATE au__Auction SET au_ProductId = @IdOrig WHERE au_ProductId = @IdDupl
     UPDATE it_AuctionTemplate SET ia_ItemId = @IdOrig WHERE ia_ItemId = @IdDupl
     UPDATE tr_Item SET tt_ItemId = @IdOrig WHERE tt_ItemId = @IdDupl
     UPDATE pc_Item SET pt_ItemId = @IdOrig WHERE pt_ItemId = @IdDupl
     FETCH NEXT FROM DuplCursor INTO @IdOrig, @IdDupl END

CLOSE DuplCursor;
DEALLOCATE DuplCursor;

UPDATE    it__Item
SET        it_Linked = 0,
         it_RegistrationId = NULL,
         it_ExternalItemId = NULL,
         it_Name = '!!! DUPLIKAT DO USUNIĘCIA !!!'
WHERE    it_Id IN (SELECT Id2 FROM @DUPLIKATY)

DECLARE @IloscDupl INT
SELECT @IloscDupl = COUNT(*) FROM @DUPLIKATY IF (@IloscDupl > 0) BEGIN
     UPDATE ep__Registration SET pr_ItemSynch = NULL
     UPDATE ep__Registration SET pr_EPCALastHash = ''
END

 

Link to postu
  • Bartosz Rosa zmienił tytuł na problem z synchronizacją z Subiekten nexo
  • 2 tygodnie później...

Po zastosowaniu się do przesłanej instrukcji program wrócił do prawidłowego działania. Niestety po kilku dniach od usunięcia duplikatów problem pojawił się ponownie, więc stosując się do tej samej instrukcji wykonałem operację ponownie. W dniu dzisiejszym znów wystąpił problem podczas synchronizacji z komunikatem: InsERT_nexo_Driver: Wystąpił błąd podczas synchronizacji towarów:  Wyjątek: Przygotowywanie listy towarów do synchronizacji stanów magazynowych.

Przy zapytaniu SQL w programie serwisowym tym razem pojawił się taki błąd jak poniżej.

sello.png

Link to postu
  • 1 rok później...
W dniu 28.02.2020 o 10:12, Bartosz Rosa napisał:

Nie wiemy dokładnie co powoduje powstawanie takiej sytuacji, ale mamy nadzieję, że problem nie będzie występował w nowym synchronizatorze do Subiekta, który pojawi się w Sello już niedługo.

Panie Bartku - naprawdę nie złośliwie - ale właśnie świętujemy rocznice Pana obietnicy :) może jakiś szampan ?

  • Haha 1
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ę...