W systemie xSale nie wszystkie błędy dotyczące zamówień są domyślnie wyświetlane w logach zamówienia – w przeciwieństwie do integracji z systemami Comarch. W niniejszym artykule pokażemy, jak samodzielnie sprawdzić błędy powstałe podczas próby importu zamówienia do Subiekt GT.
Jak działa zapis błędów w xSale?
W momencie przesyłania zamówienia do systemu ERP, xSale na bieżąco monitoruje proces integracji i zapisuje informacje o ewentualnych błędach powstałych w trakcie importu. Dane te nie są jednak widoczne bezpośrednio w logu zamówienia, dlatego w przypadku problemów warto wykonać poniższe kroki w celu ich odnalezienia i analizy.
W momencie, gdy zamówienie otrzyma status „Do obsługi ręcznej”, należy przejść do aplikacji Futuriti Connector na serwerze, na którym została ona zainstalowana.
W tym celu:
-
Zaloguj się na serwer, gdzie działa Futuriti Connector.
-
Uruchom aplikację Futuriti Connector, a następnie kliknij „Status Futuriti Connector”
-
Po uruchomieniu aplikacji Futuriti Connector w przeglądarce automatycznie otworzy się strona zawierająca ogólne informacje o połączeniu pomiędzy systemem xSale a Subiektem.
-
Następnie w wyświetlonym interfejsie przejdź do zakładki „Logi”, aby uzyskać szczegółowe informacje o przetwarzanych operacjach oraz ewentualnych błędach synchronizacji.
-
W zakładce „Logi” wyświetlane są wszystkie informacje dotyczące procesów realizowanych przez Futuriti Connector – zarówno zakończonych powodzeniem, jak i tych, które zakończyły się niepowodzeniem. Zakładka ta pozwala na bieżąco monitorować działanie integracji oraz diagnozować ewentualne błędy.
-
W momencie, gdy zamówienie trafi do statusu „Do obsługi ręcznej”, system wyświetli odpowiedni komunikat informujący o przyczynie zatrzymania procesu. Komunikat zawiera szczegóły dotyczące problemu z zamówieniem, co umożliwia szybszą diagnozę i podjęcie odpowiednich działań naprawczych.
Na potrzeby niniejszego wpisu przesłane zostało jedno testowe zamówienie, w którym ustawiono formę płatności „PayPal”.
Warto zaznaczyć, że forma ta nie występuje w systemie Subiekt jako zdefiniowany sposób płatności. W związku z tym, podczas próby przetworzenia takiego zamówienia, system wyświetli następujący komunikat:
21.07.2025 14:22:01 - Error[638886970794015858]: Synchronizacja dokumentów
FuturitiErpConnector.UI.Features.Document.SyncDocuments.Exceptions.DocumentSynchronizationException: An error occurred during documents synchronization. Following erros (1) have occurred during synchronization process: 0: {"Error":"Nie znaleziono formy płatności w Subiekt GT. Nazwa=PayPal"} at FuturitiErpConnector.UI.Features.Document.SyncDocuments.Service.SyncSubiektGTDocumentService.SynchronizeAsync(SyncContext context) in c:\E\9\s\FuturitiErpConnect\FuturitiErpConnect\FuturitiErpConnector.UI\Features\Document\SyncDocuments\Service\SyncSubiektGTDocumentService.cs:line 39 at FuturitiErpConnector.UI.Common.SyncAction.SyncApmDecorator`1.SynchronizeAsync(SyncContext context) in c:\E\9\s\FuturitiErpConnect\FuturitiErpConnect\FuturitiErpConnector.UI\Common\SyncAction\SyncApmDecorator.cs:line 40 at FuturitiErpConnector.UI.Common.SyncActions.SyncLoggingDecorator`1.SynchronizeAsync(SyncContext context) in c:\E\9\s\FuturitiErpConnect\FuturitiErpConnect\FuturitiErpConnector.UI\Common\SyncAction\SyncLoggingDecorator.cs:line 56 at Polly.CircuitBreaker.AsyncCircuitBreakerPolicy.<>c__DisplayClass8_0`1.<<ImplementationAsync>b__0>d.MoveNext() --- End of stack trace from previous location --- at Polly.CircuitBreaker.AsyncCircuitBreakerEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, ExceptionPredicates shouldHandleExceptionPredicates, ResultPredicates`1 shouldHandleResultPredicates, ICircuitController`1 breakerController) at Polly.CircuitBreaker.AsyncCircuitBreakerPolicy.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext) at Polly.AsyncPolicy.ExecuteAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext) at Quartz.Core.JobRunShell.Run(CancellationToken cancellationToken) Following StackTrace (1) have occurred during synchronization process: 0: at FuturitiSubiektGTConnector.Common.GTApiClient.SalesOrderClient.AddSalesOrderAsync(Document salesOrder, TransactionConfig transactionConfig) in c:\E\9\s\FuturitiErpConnect\FuturitiErpConnect\FuturitiSubiektGTConnector\Common\GTApiClient\SalesOrderClient.cs:line 35 at FuturitiSubiektGTConnector.Service.Documents.DocumentService.CreateSalesOrder(Document document, TransactionConfig transactionConfig) in c:\E\9\s\FuturitiErpConnect\FuturitiErpConnect\FuturitiSubiektGTConnector\Service\Documents\DocumentService.cs:line 65 at FuturitiErpConnector.UI.Features.Document.SyncDocuments.Service.SyncDocumentServiceBase.SyncNewDocumentsToErp(ICollection`1 exceptionsThrew) in c:\E\9\s\FuturitiErpConnect\FuturitiErpConnect\FuturitiErpConnector.UI\Features\Document\SyncDocuments\Service\SyncDocumentServiceBase.cs:line 888
W tej sytuacji zamówienie należy poprawić po stronie xSale, a następnie ustawić status na „Nowe”, aby ponownie przesłało się do Subiekta GT. Operację należy powtórzyć dla każdego rodzaju błędów.
Najczęstsze błędy podczas importu zamówień do Subiekta GT
- Nie znaleziono towaru w Subiekt GT: Symbol=000001 – brak towaru o podanym ID lub oferta nie powiązana z towarem w xSale
- Nie znaleziono kodu magazynu KodTestowegoMagazynu – brak magazynu o podanym kodzie
- Nie znaleziono towaru w Subiekt GT: Symbol=TRANSPORT – brak mapowania sposobu dostawy
- Nie znaleziono formy płatności w Subiekt GT. Nazwa=PayPal – brak dodanego typu płatności
- Wystąpił błąd dostępu do danych. – w Subiekcie GTbrak dodanych pól własnych na dokumencie ZK