# Integracja ERP z WMS - metody wymiany danych i wybór w projekcie

> Integracja ERP z WMS - trzy metody wymiany danych (zapytania do bazy ERP, WebAPI, plik) i to, co wybrano w opisywanym wdrożeniu Studio WMS.net u producenta.

Adres strony: https://magazyn.softwarestudio.com.pl/integracja-erp-z-wms-webapi/

---

Wymianę danych między ERP a WMS da się zrealizować zapytaniami do bazy ERP, przez WebAPI albo plikiem, a wybór zależy od tego, co udostępnia ERP. W opisywanym wdrożeniu zlecenia i dokumenty czytają z bazy ERP procedury synchronizacji uruchamiane zadaniem cyklicznym. Wynik realizacji odsyła do WebAPI ERP osobna usługa.
## Dlaczego wymiana z ERP rozstrzyga o wdrożeniu

ERP zna zamówienia i faktury, a WMS wie, co fizycznie leży na regałach i kto to przenosi. Dopiero wymiana danych między nimi daje obraz całej firmy. Gdy integracja szwankuje, magazynierzy dostają niepełne zlecenia, a księgowość widzi dokumenty z opóźnieniem. U producenta dochodzą zlecenia produkcyjne i receptury kompletów, więc ERP przekazuje magazynowi więcej niż same zamówienia sprzedaży.

Dlatego w projektach dla firm produkcyjnych wymianę opisuje się już w analizie przedwdrożeniowej, z podziałem na obszary wymiany i metody. Zakres takiego dokumentu pokazuje artykuł o tym, [co powinna zawierać analiza przedwdrożeniowa WMS](/analiza-przedwdrozeniowa-wms-co-zawiera/).

## Trzy metody wymiany danych z ERP

Metodę wybiera się według tego, co ERP udostępnia, a nie według upodobań wykonawcy. Zestawienie pokazuje trzy rozwiązania, które stosujemy.

| Metoda | Jak działa | Gdzie ma sens |
| --- | --- | --- |
| Zapytania do bazy ERP | Procedury synchronizacji czytają dane z widoków bazy ERP, uruchamiane zadaniem cyklicznym | Gdy klient może udostępnić widoki tylko do odczytu, a ERP nie ma własnego interfejsu |
| WebAPI | WMS i ERP wymieniają komunikaty przez interfejs HTTP, a w standardzie produktu zlecenia przychodzą wywołaniem POST z danymi w formacie JSON na koncie technicznym klienta | Gdy ERP lub system nadrzędny ma stabilny interfejs, jak w gotowych integracjach z SAP i WAPRO WF-MAG |
| Plik | Jedna strona zapisuje plik wymiany, a druga go odczytuje | Gdy żaden interfejs nie jest dostępny albo wymiana ma być prosta |

Gotowe połączenia opisaliśmy na stronach o [integracji WMS z SAP](/wms-a-sap/) oraz o [integracji WAPRO WF-mag z WMS.net](/integracja-wapro-wfmag-firmy-assecco/). Pozostałe ERP łączy się w ramach wdrożenia, wybierając jedną z trzech metod.

Wybór rozkłada też prace po obu stronach. Przy odczycie bazy klient przygotowuje widoki tylko do odczytu. Przy WebAPI udostępnia interfejs i konto techniczne. Wymiana plikowa wymaga uzgodnienia katalogu oraz formatu pliku.

## Co wybrano w opisywanym wdrożeniu

U producenta wyrobów wielkogabarytowych zlecenia i dokumenty wchodzą do WMS inaczej niż wynik realizacji wraca do ERP. Import robią procedury synchronizacji, a odsyłanie statusów przejęła osobna usługa. Cały układ przedstawia schemat, a tabela rozpisuje go na obszary.

| Obszar | Kierunek | Jak odbywa się wymiana |
| --- | --- | --- |
| Kartoteki towarowe | ERP do WMS | Zadanie nocne oraz import na żądanie, także pojedynczej kartoteki po identyfikatorze |
| Zlecenia przyjęć | ERP do WMS | Procedura synchronizacji w zadaniu cyklicznym, odczyt z widoku ERP |
| Zlecenia wydań | ERP do WMS | Procedura synchronizacji w zadaniu cyklicznym, odczyt z widoku ERP |
| Zlecenia produkcyjne | ERP do WMS | Procedura synchronizacji w zadaniu cyklicznym |
| Przesunięcia międzymagazynowe | ERP do WMS | Procedura synchronizacji w zadaniu cyklicznym |
| Receptury kompletów | ERP do WMS | Import z ERP, więc zmianę składu wprowadza się tam |
| Wynik realizacji zlecenia | WMS do ERP | Osobna usługa zadań wysyła wynik do WebAPI ERP |

## Kartoteki - nocą i na żądanie

Kartoteki zmienia się przeważnie w ERP, więc zadanie nocne importuje nowe i zmienione rekordy. W rejestrze dokumentów są dodatkowo polecenia pobrania i aktualizacji kartotek, z których korzysta się w ciągu dnia. Przydają się, gdy handlowiec założył nowego klienta albo produkt i magazyn nie chce czekać do nocy.

Gdy kartotekę zmieniono po nocnej synchronizacji, WMS pokazuje stare dane do następnego cyklu albo do importu na żądanie. Ten rozjazd jest najczęstszym źródłem pytań w pierwszych tygodniach. W kartotece wdrożenia kod handlowy ma jeden kod bazowy, więc przy imporcie pilnuje się powiązania obu kodów. Strukturę samej kartoteki omawia strona o [kartotece magazynowej](/kartoteka-magazynowa/), a start z danymi z arkusza - tekst o [imporcie z Excela](/import-excel/).

## Zlecenia i statusy zwrotne

Zlecenie z ERP trafia do rejestru WMS przy najbliższym przebiegu zadania cyklicznego. Kierownik lub operator zaczyna wtedy realizację na kolektorze. Wyniku nie odsyła ani kolektor, ani aplikacja WWW, bo zajmuje się tym osobna usługa, która przekazuje dokument i jego pozycje do WebAPI ERP.

Rozdzielenie importu i eksportu daje dwa niezależne punkty kontroli. Rejestr błędów systemowych pokazuje, który rekord odrzucono i dlaczego. Receptury kompletów są importowane z ERP, więc zmianę składu trzeba wprowadzić tam, zanim pojawi się zamówienie.

## Najczęstsze problemy integracyjne

| Problem | Gdzie szukać przyczyny |
| --- | --- |
| Zlecenie nie pojawia się w WMS | Rejestr błędów systemowych, potem dane zlecenia i widok ERP, z którego czyta procedura |
| Rozjazd kartotek po zmianie w ERP | Czas ostatniej synchronizacji nocnej, z możliwością pobrania pojedynczej kartoteki |
| Receptura kompletu nie zgadza się ze składem | Data zmiany receptury w ERP względem daty zamówienia |
| Numery dokumentów z dwóch systemów trudno zestawić | Unikalny numer referencyjny łączący dokument WMS z dokumentem ERP |

## Jak projektować bezpieczną integrację

- Zdefiniuj, który system jest źródłem prawdy dla każdego pola.
- Przewidź import pojedynczych rekordów, bo pierwsze tygodnie przynoszą wyjątki.
- Loguj każdą wymianę razem z czasem i wynikiem, żeby serwis szybko ustalił przyczynę.
- Testuj całą ścieżkę w trzech warstwach naraz: na ekranie kolektora, w bazie WMS i w synchronizacji zwrotnej.

Warto też ustalić okno, w którym zadania synchronizacji nie kolidują z intensywną pracą magazynu. Adresy z zamówień, ważne dla przewoźników, opisujemy w artykule o [integracji WMS z kurierami](/integracja-wms-z-kurierami-zamowienie-z-kolektora/). Stany początkowe z ERP wchodzą do magazynu według metody opisanej w tekście o [bilansie otwarcia w WMS](https://www.programmagazyn.pl/bilans-otwarcia-w-wms/), a całość projektu pokazuje [case study wdrożenia u producenta](/wdrozenie-wms-producent-wyrobow-wielkogabarytowych/).

## Pytania i odpowiedzi o integracji ERP z WMS

## Słownik pojęć o integracji ERP z WMS

Terminy używane przez dział IT, gdy opisuje się wymianę danych między ERP a systemem magazynowym.
