Studio WMS.net

Jak zintegrować system magazynowy z ERP bez utraty danych

Wzorzec Transactional Outbox z kolejką FIFO gwarantuje bezpieczeństwo danych, automatyczne nadrabianie zaległości po awarii i pełną niezawodność komunikacji między WMS a ERP.

Autor: Adam Siemiątkowski Czas czytania: Aktualizacja: 1 września 2026
system.wms.net.pl/#integracje
Schemat integracji systemu Studio WMS.net z REST API Symfonia przez Integrator Robotnika i tabelę IntegrationOutbox
Schemat integracji systemu Studio WMS.net z REST API Symfonia przez Integrator Robotnika i tabelę IntegrationOutbox
W skrócie

Synchronizacja między systemem WMS a ERP to podstawa niezawodnej logistyki, ale tradycyjne integracje bezpośrednie prowadzą do utraconej dokumentacji, błędów stanu magazynowego i blokad procesów. Wzorzec Transactional Outbox z kolejką FIFO gwarantuje bezpieczeństwo danych, automatyczne nadrabianie zaległości po awarii oraz pełną niezawodność komunikacji między systemami.

Jak zintegrować system magazynowy z ERP bez utraty danych

Synchronizacja między systemem WMS a ERP to podstawowa część operacji logistycznej, ale tradycyjne integracje bezpośrednie prowadzą do utraconej dokumentacji, błędów stanu magazynowego i blokad procesów. Nowoczesne rozwiązanie oparte na wzorcu Transactional Outbox z kolejką FIFO gwarantuje bezpieczeństwo danych, automatyczne nadrabianie zaległości po awarii oraz pełną niezawodność komunikacji między systemami.

  • Wzorzec Transactional Outbox i kolejka FIFO. Dokumenty zapisywane są do wewnętrznej kolejki w tej samej transakcji SQL co operacja magazynowa - gwarantuje to spójność danych i eliminuje ryzyko utraty dokumentów nawet podczas awarii API.
  • Obsługa błędów z automatyczną adaptacją. System różnicuje poszczególne kody HTTP (200, 400, 401, 409, 500) i podejmuje odpowiednie działania - od ponowienia próby, poprzez przeniesienie do kolejki błędów, aż do przejścia w tryb awaryjny.
  • Tryb normalny i awaryjny integracji. Przejścia między trybami odbywają się automatycznie na podstawie health-check endpointu - gdy API nie reaguje, magazynierzy mogą kontynuować pracę, a dokumenty czekają w kolejce.
  • Zabezpieczenie przed duplikatami dokumentów. Każdy dokument wysyłany jest z unikalnym kluczem idempotentności w nagłówku HTTP, co eliminuje problem duplikatów będący częstą przyczyną rozbieżności między WMS a ERP.
  • Dead Letter Queue do ręcznego zarządzania błędami. Dokumenty z błędami walidacji trafiają do specjalnej kolejki wymagającej interwencji administratora, ale nie blokują wysyłki pozostałych dokumentów.
  • Automatyczne nadrabianie zaległości po awarii. Gdy ERP wraca do normalności, integrator wznawia wysyłkę dokumentów w chronologicznym porządku bez ingerencji operatora.
  • Monitorowanie i diagnostyka integracji. Administrator ma dostęp do widoku liczby dokumentów w każdym statusie, pełnych logów wysyłania oraz gotowych zapytań SQL do diagnostyki problemów.
Studio WMS.net

Architektura integracji z ERP

Dokumenty magazynowe zapisywane są do wewnętrznej kolejki w tej samej transakcji SQL co operacja magazynowa, zanim trafią do REST API systemu ERP.

Transactional Outbox pattern

Transactional Outbox to wzorzec architektoniczny gwarantujący niezawodną wymianę danych między dwoma systemami. Zamiast wysyłać dokument bezpośrednio do API partnera, zapisujemy go najpierw do wewnętrznej tabeli w bazie danych WMS w tej samej transakcji SQL co operacja magazynowa (na przykład zatwierdzenie przyjęcia PZ). To gwarantuje, że albo obydwie operacje się powiodą, albo żadna - eliminując ryzyko sytuacji, w której dokument zostaje zatwierdzony w magazynie, ale nie dotarł do ERP.

Kolejka FIFO w integracji WMS

Kolejka FIFO (First In, First Out) to struktura danych, w której dokumenty przetwarzane są w dokładnie tej samej kolejności, w jakiej trafiły do systemu. Niezależny worker pobiera dokumenty z kolejki sekwencyjnie i wysyła je do REST API. Jeśli API jest tymczasowo niedostępne - dokumenty czekają bezpiecznie w bazie bez ryzyka utraty. Jeśli pojedynczy dokument zostanie odrzucony - trafia do Dead Letter Queue, ale pozostałe dokumenty mogą być wysyłane dalej.

Dead Letter Queue (DLQ) w obsłudze błędów

Dead Letter Queue to specjalna kolejka dla dokumentów, które nie mogą być wysłane do API docelowego z powodu błędów walidacji lub autoryzacji. Zamiast utraty dokumentu, trafia on do DLQ z pełnym opisem przyczyny błędu, gdzie administrator WMS może przeanalizować problem, naprawić źródło i ponownie wysłać dokument. DLQ nie blokuje głównej kolejki - inne dokumenty mogą być wysyłane normalnie.

Health-check endpoint w monitorowaniu API

Health-check endpoint to dedykowany punkt końcowy REST API ERP, który zwraca szybką odpowiedź sygnalizującą dostępność usługi. Integrator WMS automatycznie wysyła żądania do tego endpointu w regularnych interwałach (co 2-5 minut podczas awarii), aby sprawdzić, czy API wróciło do normalności. Na podstawie wyników worker przechodzi między trybem normalnym a awaryjnym.

Klucz idempotentności w zabezpieczeniu duplikatów

Klucz idempotentności (GUID) to unikalny identyfikator wysyłany w nagłówku HTTP każdego dokumentu do API ERP. Jeśli z jakichkolwiek powodów ten sam dokument zostanie wysłany dwukrotnie, REST API powinno rozpoznać duplikat po kluczu i zwrócić 200 bez ponownego zapisu do bazy. Rozwiązanie eliminuje problem duplikatów, który jest częstą przyczyną rozbieżności stanu magazynowego między WMS a ERP.

Maszyna stanów w logice integracji

Maszyna stanów to model logiczny, w którym integrator przechodzi między konkretnymi stanami (normalny, awaryjny, ponawianie) na podstawie zdarzeń takich jak kod HTTP, wynik health-check czy limit prób. Każdy kod HTTP zwrócony przez API ERP ma dedykowany handler decydujący o losie dokumentu, co zapewnia przewidywalność zachowania systemu i ułatwia diagnostykę problemów.

Praktyczne rozwiązanie na przykładzie Symfonii

Synchronizacja między systemem WMS a systemem ERP to fundament niezawodnej logistyki. Jednak wiele firm boryka się z problemami komunikacji między tymi systemami - utraconymi dokumentami, błędami stanu magazynowego czy blokadami w procesach. Pokazujemy, jak rozwiązujemy integrację na przykładzie Studio WMS.net i REST API Symfonii.

Problem integracji - dlaczego to skomplikowane

Tradycyjne podejścia do integracji WMS z ERP często polegają na prostym wysyłaniu dokumentów do API partnera. Brzmi prosto, ale w praktyce pojawia się wiele pułapek. Gdy API jest chwilowo niedostępne - dokument może zostać utracony lub wysłany dwukrotnie. Jeśli pojedynczy dokument zostanie odrzucony ze względu na błąd walidacji - cała kolejka może się zablokować, uniemożliwiając magazynierom pracę. Dodajmy do tego awarie sieci, timeouty i niespodziewane restarty serwera - i okazuje się, że prosty interfejs REST wcale nie gwarantuje niezawodności wymaganej w logistyce.

Obsługa błędów - każdy kod HTTP ma swoją strategię

Nasza implementacja różnicuje obsługę poszczególnych kodów HTTP zwracanych przez API Symfonii.

  • Kody 200/201/204 - dokument zaakceptowany, oznaczamy jako przetworzony i przechodzimy do następnego.
  • Kody 400/404 - błąd walidacji danych (na przykład brak powiązanego kontrahenta), dokument trafia natychmiast do Dead Letter Queue z pełnym opisem błędu; administrator może go poprawić i ponowić.
  • Kod 401 - wygaśnięty token autoryzacji, worker automatycznie próbuje go odnowić i ponawia wysyłkę.
  • Kod 409 - konflikt (dokument zablokowany przez operatora w ERP), czekamy i ponawiamy; po limicie prób trafia do DLQ.
  • Kod 500 - błąd serwera ERP, sprawdzamy health-check; jeśli API żyje trafiamy do retry, jeśli nie - przejście w tryb awaryjny.
  • Błędy sieciowe - timeout, brak połączenia - dokumenty wracają do kolejki, a po przekroczeniu progu błędów integrator przechodzi w tryb awaryjny.
Obsługa kodów HTTP w integracji WMS z ERP
Kod HTTPZnaczenieDziałanie systemu
200 / 201 / 204Dokument zaakceptowany przez API ERPOznaczenie jako przetworzony, przejście do następnego dokumentu
400 / 404Błąd walidacji danych, np. brak powiązanego kontrahentaDokument trafia do Dead Letter Queue z pełnym opisem błędu, administrator poprawia i ponawia
401Wygasły token autoryzacjiWorker automatycznie odnawia token i ponawia wysyłkę
409Konflikt - dokument zablokowany przez operatora w ERPSystem czeka i ponawia próbę, po limicie prób dokument trafia do DLQ
500Błąd serwera ERPSprawdzenie health-check - retry przy dostępnym API lub przejście w tryb awaryjny
Błędy siecioweTimeout, brak połączeniaDokumenty wracają do kolejki, po przekroczeniu progu błędów integrator przechodzi w tryb awaryjny

Alerty dla administratorów - trzy poziomy powiadomień

System wysyła e-mail do administratorów na trzech poziomach: INFO - dokument przeniesiony do Dead Letter Queue z pełnym opisem błędu do ręcznej poprawy; WARNING - integrator wszedł w tryb awaryjny, z informacją o ostatnim kodzie HTTP i liczbie dokumentów oczekujących w kolejce; OK - integrator wrócił do trybu normalnego, z informacją o czasie trwania awarii i liczbie zaległych dokumentów do nadrobienia. Administrator zawsze wie dokładnie, co się dzieje w integracji i kiedy wymaga interwencji.

Praktyczne zalety rozwiązania

  • Zerowe utraty dokumentów - nawet podczas awarii API lub restartu serwera, dokumenty czekają bezpiecznie w kolejce.
  • Brak blokad magazynu - przy błędzie API czy podczas awarii, operatorzy WMS mogą kontynuować pracę; dokumenty zostaną wysłane, gdy system wróci do normalności.
  • Automatyczne nadrabianie po awarii - gdy ERP wraca do życia, integrator wznawia wysyłkę zaległych dokumentów w chronologicznym porządku.
  • Czytelna diagnostyka - każdy dokument w Dead Letter Queue zawiera pełny opis błędu i może być łatwo poprawiony i ponowiony.
  • Odporność na błędy sieci - przerwy w połączeniu nie powodują utraty danych; dokumenty są powtarzane z unikalnym kluczem idempotentności.
  • Skalowalność - kolejka obsługuje dowolną liczbę dokumentów bez wpływu na wydajność WMS; przetwarzanie odbywa się asynchronicznie w tle.
Studio WMS.net

Tryb normalny i tryb awaryjny

Przejścia między trybami odbywają się automatycznie na podstawie health-check endpointu, bez ingerencji operatora magazynu.

Wdrożenie - co trzeba przygotować

Wdrożenie rozwiązania wymaga dodania tabeli kolejki do bazy WMS (gotowy schemat SQL z indeksami i procedurami), uruchomienia workera integratora jako usługi Windows na serwerze WMS (gotowy kod C# .NET 8), konfiguracji URL API ERP, adresów e-mail administratorów oraz interwałów retry, a także potwierdzenia z ERP kilku szczegółów technicznych, takich jak obsługa health-check czy format tokenu. Całość zajmuje 4-6 tygodni przy standardowym procesie testowania i wdrażania na środowisku produkcyjnym.

Niezawodna synchronizacja magazynu i finansów

Połączenie systemu magazynowego WMS z ERP to serce logistyki nowoczesnego przedsiębiorstwa. W praktyce jednak tradycyjne podejście - bezpośrednie wysyłanie dokumentów do API partnera - wydaje się proste, ale jest pełne pułapek. Awaria API, timeout sieci czy niespodziewany restart serwera mogą spowodować utratę dokumentów, duplikaty czy blokadę magazynu. Nasze rozwiązanie zapisuje dokumenty najpierw do wewnętrznej kolejki na bazie WMS, a niezależny worker wysyła je bezpiecznie do systemu ERP - awaria API nie zatrzymuje operacji magazynu, a żaden dokument nie zostanie utracony.

Wzorzec Transactional Outbox i niezawodna dostarczalność

Serce naszego rozwiązania to wzorzec Transactional Outbox - technika, która gwarantuje niezawodną dostarczalność. Dokumenty magazynowe, takie jak przyjęcia, wydania z magazynu czy korekty stanów, zapisujemy najpierw w tabeli lokalnej na bazie WMS. Każdy wpis zawiera kompletne dane dokumentu, znacznik czasu i status przetworzenia. Niezależny proces worker działa w tle i pobiera dokumenty z kolejki FIFO, wysyłając je do ERP za pośrednictwem API. Błędy przejściowe (timeout, 500) trafiają do kolejki ponowień z wykładniczym opóźnieniem, a błędy walidacji (400, 422) trafiają do Dead Letter Queue i czekają na ręczną interwencję.

Droga dokumentu we wzorcu Transactional Outbox Diagram przedstawia droge dokumentu magazynowego we wzorcu Transactional Outbox: zapis w tabeli lokalnej bazy WMS, wysylke z kluczem idempotentnosci, potwierdzenie odbioru przez ERP oraz skierowanie bledow do kolejki DLQ. Transactional Outbox - dokument nie ginie po drodze 1 Zapis w tabeli lokalnej najpierw baza WMS, nie API partnera 2 Wysyłka do ERP kolejka FIFO dokumentów 3 Klucz idempotentności ochrona przed duplikatem 4 Kolejka DLQ dokumenty z błędem do obsługi
Droga dokumentu magazynowego we wzorcu Transactional Outbox opisanym w tej sekcji.

Ochrona przed duplikatami i powiadomienia o błędach

Problem duplikatów pojawia się, gdy połączenie sieciowe przerwie się w połowie wysyłki. Nasza implementacja rozwiązuje to za pomocą kluczy idempotentności - każdy dokument ma unikalny identyfikator i znacznik czasu. ERP akceptuje dokument z takim samym identyfikatorem tylko raz. Jeśli worker prześle go ponownie po przerwaniu połączenia, system ERP wie, że to ponowienie, i odrzuca duplikat bez błędu. Monitoring jest trzystopniowy: pierwszy alert sygnalizuje pierwsze wystąpienie błędu, drugi ostrzega, gdy dokumenty czekają zbyt długo, a trzeci to raport dzienny o liczbie błędów i odsetku udanych wysyłek.

Wdrożenie dla systemów o dużym wolumenie dokumentów

Wiele magazynów przetwarza tysiące dokumentów dziennie - handel elektroniczny, logistyka kontraktowa i dystrybucja generują dziesiątki PZ i WZ w minutę. Rozwiązanie testowaliśmy z wolumenami do 10 tys. dokumentów na godzinę, przy opóźnieniu poniżej 30 sekund. Baza danych przechowuje historię wszystkich wysyłek, co umożliwia audyt i wyjaśnienie rozbieżności między magazynem a systemem finansowym. Integracja z integracją z SAP, Subiektem, enova czy innymi systemami ERP działa na tych samych zasadach - niezależnie od partnera, stany magazynowe w WMS pozostają zsynchronizowane z danymi finansowymi. Elektroniczna wymiana dokumentów (EDI) z kontrahentami działa na tej samej infrastrukturze.

Od małych magazynów po centra logistyczne

Naszych klientów nie obchodzą szczegóły techniczne - obchodzi ich bezpieczeństwo, szybkość i audytowalność każdej sprzeczności między danymi w magazynie a finansami. Od małych magazynów integrujących się z jednym systemem ERP po duże centra logistyczne obsługujące wielu kontrahentów - rozwiązanie skaluje się bez konieczności przepisywania kodu. Pracuje na serwerze WMS, nie wymaga dodatkowej infrastruktury i utrzymuje się automatycznie. Jeśli Twoja firma boryka się z problemami synchronizacji WMS i ERP, sprawdź demo systemu WMS online lub skontaktuj się z nami, aby dobrać najlepsze podejście do Twojej sytuacji.

Konkretny przykład integracji z systemem Streamsoft opisujemy w artykule Streamsoft WMS - integracja z ERP.

Z jakimi systemami ERP współpracuje Studio WMS.net

Studio WMS.net przygotowany jest do współpracy z systemami klasy ERP obecnymi na polskim rynku - między innymi z SAP, enova, WF-Mag oraz Hermes SQL. Wymiana danych odbywa się plikami Excel albo bezpośrednio przez WebService, co pozwala synchronizować kartoteki i dokumenty bez pośrednictwa operatora.

Praca na danych przebiega w trybie rzeczywistym. Dzięki temu obsługę magazynu można oprzeć o dokumenty, listy kontrahentów i kartoteki towarowe przygotowane wcześniej w systemie ERP, zamiast utrzymywać dwa równoległe zbiory danych.

Zobacz Studio WMS.net na własnych danych

Demo działa w przeglądarce, bez instalacji i bez rejestracji. Wycena wdrożenia w jeden dzień roboczy.

Uruchom DEMO
Słownik pojęć

Podstawowe pojęcia - integracja WMS z ERP

Terminologia przydatna przy rozmowie o integracji systemu magazynowego z ERP.

TTransactional Outbox
Wzorzec architektoniczny polegający na zapisaniu dokumentu do tabeli kolejki w tej samej transakcji SQL co operacja magazynowa, co gwarantuje spójność danych między WMS a ERP.
KKolejka FIFO
First In, First Out - struktura danych, w której dokumenty przetwarzane są w dokładnie tej samej kolejności, w jakiej trafiły do systemu.
DDead Letter Queue (DLQ)
Specjalna kolejka dla dokumentów, które nie mogą być wysłane do API ERP z powodu błędów walidacji lub autoryzacji, wymagająca ręcznej interwencji administratora.
HHealth-check endpoint
Dedykowany punkt końcowy REST API ERP zwracający szybką odpowiedź sygnalizującą dostępność usługi, wykorzystywany do przełączania trybu normalnego i awaryjnego.
KKlucz idempotentności
Unikalny identyfikator (GUID) wysyłany w nagłówku HTTP każdego dokumentu, dzięki któremu API ERP rozpoznaje i odrzuca duplikaty bez ponownego zapisu.
MMaszyna stanów
Model logiczny, w którym integrator przechodzi między stanami normalnym, awaryjnym i ponawiania na podstawie kodu HTTP i wyniku health-check.
FAQ

Integracja WMS i ERP - najczęstsze pytania i odpowiedzi

01

Dlaczego integracja WMS i ERP jest skomplikowana?

Integracja WMS z ERP polega na wymianie wielu dokumentów - przyjęć, wydań i przesunięć - przez sieć Internet. Gdy API jest niedostępne, dokumenty mogą zostać utracone lub wysłane dwukrotnie. Jeśli pojedynczy dokument zostanie odrzucony ze względu na błąd walidacji, cała kolejka może się zablokować, uniemożliwiając magazynierom pracę.

02

Jaka jest różnica między wysyłką bezpośrednią a kolejką FIFO?

Wysyłka bezpośrednia wysyła dokumenty natychmiast do REST API ERP bez zabezpieczeń. Kolejka FIFO zapisuje dokumenty najpierw w wewnętrznej bazie WMS w tej samej transakcji SQL co operacja magazynowa. Jeśli API jest niedostępne, dokumenty czekają bezpiecznie w bazie zamiast zostać utracone.

03

Co to jest wzorzec Transactional Outbox w WMS?

Transactional Outbox to wzorzec polegający na zapisaniu dokumentu do tabeli kolejki w tej samej transakcji SQL co operacja magazynowa. To gwarantuje spójność danych - albo obydwa zapisy się powiodą, albo żaden, eliminując ryzyko utraty dokumentów nawet podczas awarii API lub serwera.

04

Jak system radzi sobie z błędami walidacji danych z ERP?

Błędy walidacji (kody HTTP 400, 404) oznaczają nieprawidłowe dane, na przykład brak kontrahenta w ERP. Zamiast blokować całą kolejkę, dokument trafia do Dead Letter Queue z pełnym opisem przyczyny, a administrator może go poprawić i ponowić bez wstrzymywania pozostałych dokumentów.

05

Czy awaria API ERP zatrzymuje pracę magazynu?

Nie. Worker integratora automatycznie przechodzi w tryb awaryjny, a dokumenty czekają bezpiecznie w wewnętrznej kolejce WMS. Operatorzy magazynu kontynuują pracę normalnie, a gdy API wraca do normalności, integrator wznawia wysyłkę zaległych dokumentów w chronologicznym porządku.

06

Jak uniknąć duplikatów dokumentów w ERP?

Każdy dokument wysyłany do REST API zawiera unikalny klucz idempotentności (GUID) w nagłówku HTTP. Jeśli ten sam dokument zostanie wysłany dwukrotnie, API ERP rozpoznaje duplikat po kluczu i zwraca kod 200 bez ponownego zapisu.

07

Jakie informacje otrzymuje administrator WMS o problemach integracji?

System wysyła e-mail na trzech poziomach alertów: INFO o dokumencie w Dead Letter Queue, WARNING o przejściu w tryb awaryjny oraz OK o powrocie do trybu normalnego z podsumowaniem czasu awarii i liczby zaległych dokumentów.

08

Jak monitorować stan integracji WMS z ERP?

System dostarcza panelu administratora z liczbą dokumentów w każdym statusie, pełnymi logami wysyłania oraz gotowymi zapytaniami SQL do diagnostyki, na przykład które dokumenty czekają najdłużej na wysyłkę.

09

Ile czasu zajmuje wdrożenie integracji WMS z ERP?

Wdrożenie wymaga dodania tabeli kolejki do bazy WMS, uruchomienia workera integratora jako usługi Windows oraz konfiguracji URL API ERP i adresów e-mail administratorów. Całość zajmuje 4-6 tygodni przy standardowym procesie testowania i wdrażania.

Chcesz zobaczyć integrację WMS z ERP w działaniu?

Uruchom bezpłatne demo Studio WMS.net lub zapytaj o szczegóły integracji z Twoim systemem ERP.

Bezpłatne DEMO Wycena