# Jedna baza WMS, dwie bazy ERP: klucze ze znacznikiem spółki

> Jak połączyć jedną bazę WMS z dwiema bazami ERP bez kolizji numerów: każdy identyfikator dostaje znacznik spółki, a ponowny import nie tworzy dubli danych.

Adres strony: https://magazyn.softwarestudio.com.pl/jedna-baza-wms-dwie-bazy-erp-klucze-ze-znacznikiem-spolki/

---

Integracja WMS z dwiema bazami ERP w opisywanym wdrożeniu opiera się na kluczu złożonym ze znacznika spółki i numeru z ERP. Pięciocyfrowy znacznik jest doklejany przed numerem czterech rodzajów obiektów, więc ten sam numer z dwóch baz daje w jednej bazie WMS dwa różne klucze, a ponowny import aktualizuje wiersz zamiast go dublować.
Integracja WMS z dwiema bazami ERP zaczyna się od pytania o numery: co się stanie, gdy w obu bazach towar ma ten sam numer 45. Opisujemy, jak rozwiązano to w jednym wdrożeniu [Studio WMS.net](/wms/) (platforma StudioSystem), w którym dwie spółki prowadzą osobne bazy ERP, a magazyn pracuje na jednej bazie WMS.

Tekst jest napisany dla integratora i działu IT. Opisuje reguły numerowania i zachowanie ekranów, a nie wyniki, więc nie podajemy liczb kartotek ani zamówień. Przykłady są wymyślone i oznaczone jako przykład. Wybór samej metody wymiany danych omawia strona o [metodach wymiany danych między ERP a WMS](/integracja-erp-z-wms-webapi/), a tutaj zajmujemy się jednym mechanizmem: kluczami.

## Dwie bazy ERP i jedna baza WMS potrzebują wspólnej reguły numerowania

W założeniach do importu zapisano wymaganie, by przenosić dane z dwóch baz ERP, po jednej na spółkę, do jednej bazy WMS i doklejać do identyfikatora znacznik spółki. Chodziło o to, żeby numery kartotek się nie powtarzały. Powodem było to, że część towarów występuje w obu spółkach pod tym samym symbolem, bo towar przechodzi z jednej spółki do drugiej.

W WMS spółka jest kontrahentem zarówno kartoteki, jak i zlecenia z dokumentem, a klient zewnętrzny występuje osobno jako odbiorca. Listy dokumentów pokazują odbiorcę obok kontrahenta. Na tej stronie spółka oznacza więc kontrahenta, a odbiorca to klient spółki.

Ten podział ma skutek praktyczny. Gdy dział IT mówi o numerze 310, musi wiedzieć, czy chodzi o numer z bazy jednej, czy drugiej spółki, bo samo „310” nie wskazuje w WMS żadnego wiersza. Potrzebna jest reguła, która jest stała i którą da się odtworzyć z numeru z ERP.

## Znacznik spółki dochodzi przed numerem z ERP

Znacznik spółki jest pięciocyfrowy i przypisany spółce. Identyfikator w WMS powstaje przez doklejenie znacznika przed numerem z ERP. Dotyczy to czterech obiektów: kartoteki towarowej, kontrahenta, zamówienia i pozycji zamówienia.

Ten sam numer w dwóch bazach ERP daje w WMS dwa różne numery, bo różnią się znacznikiem. Przykład (wymyślony): numer towaru 45 w ERP Spółki A i numer 45 w ERP Spółki B to w WMS dwie osobne kartoteki. Tabela zestawia cztery obiekty na przykładzie i pokazuje, co z numeru wraca do ERP.

| Obiekt z ERP | Numer w ERP (przykład) | Numer w WMS (przykład) | Zwrot do ERP |
| --- | --- | --- | --- |
| Kartoteka towarowa, Artykuł A | 45 w obu bazach | 1000145 dla Spółki A i 2000245 dla Spółki B | Do ERP idzie symbol towaru, nie numer techniczny |
| Kontrahent, Odbiorca Testowy | 310 w bazie Spółki A | 10001310, zapisany dwa razy: jako odbiorca i jako dostawca | Identyfikator odbiorcy bez znacznika |
| Zamówienie, Zlecenie 26-1001 | 7788 w bazie Spółki A | 100017788 | Status jest przygotowywany do wysyłki pod numerem 7788 |
| Pozycja zamówienia | 91 w bazie Spółki A | 1000191 | Pozycja jest sprawdzana w bazie ERP Spółki A po odcięciu znacznika |

> Numer z ERP nie jest kluczem sam: kluczem jest znacznik spółki razem z numerem.

Numer zlecenia w WMS składa się ze znacznika i numeru nagłówka zamówienia z ERP, a wszystkie pozycje zlecenia mają ten sam numer zlecenia. Numer dokumentu zamówienia z ERP jest zachowany jako numer dokumentu zlecenia, więc zlecenie da się odnaleźć w ERP po tym samym numerze.

## Ponowny import odświeża wiersze zamiast je dublować

Klucz jest wyliczany, a nie nadawany losowo, więc ten sam obiekt z tej samej spółki zawsze dostaje ten sam numer w WMS. Przy imporcie procedura sprawdza, czy numer już istnieje: jeśli tak, aktualizuje wiersz, jeśli nie, dopisuje nowy. Pozycje zamówienia są rozpoznawane po numerze pozycji i spółce.

Import zamówień jest procedurą w bazie magazynu; sposób i częstotliwość jej uruchamiania nie są częścią tego opisu. Istotna jest własność kluczy: ten sam klucz oznacza aktualizację zamiast dublowania, więc powtórzenie importu nie rozmnaża wierszy.

Dane z ERP trafiają do WMS dwiema drogami. Pierwsza to tabele pośrednie w bazie WMS, po jednym komplecie na spółkę, z których procedury przepisują dane do kartotek, a następnie do zleceń wraz z kontrahentami. Druga to odczyt wprost z baz ERP przez procedury, które uruchamia się na żądanie z listy kartotek towarowych dwoma przyciskami:

- Nowe kartoteki - sprawdza osobno bazę ERP każdej spółki i dopisuje tylko te towary, których numer ze znacznikiem nie istnieje jeszcze w WMS; usług nie dopisuje.
- Aktualizuj - przy zaznaczonej kartotece odcina znacznik od numeru kartoteki i odczytuje towar o tym numerze z bazy ERP spółki, do której kartoteka należy.

Nie obiecujemy, że oba przyciski są widoczne na każdym stanowisku, bo widoczność zależy od konfiguracji paska. Pola kartoteki, które sterują pytaniami kolektora, opisuje strona o [kartotece sterującej kolektorem](https://system.wms.net.pl/kartoteka-z-erp-steruje-pytaniami-kolektora-seria-partia-termin/), a ogólne zasady prowadzenia kartotek strona o [kartotece magazynowej](/kartoteka-magazynowa/).

## Ten sam symbol towaru występuje w WMS dwa razy

Baza WMS pilnuje zgodności kluczy na dwóch poziomach: numer kartoteki jest jednoznaczny, a drugi indeks bazy danych obejmuje między innymi symbol towaru i spółkę. Ten sam symbol towaru może więc wystąpić dwa razy w jednym magazynie, raz dla każdej spółki. Makieta rejestru pokazuje taki przypadek.

Kolektor przyjęcia szuka towaru po kodzie kreskowym wśród kartotek spółki zlecenia. Ten sam kod, który istnieje w kartotekach obu spółek, trafia więc w kartotekę spółki zlecenia. Gdy w tej spółce kodu nie ma, kolektor pokazuje komunikat „Brak kartoteki towarowej, lub towar nie należy do kontrahenta”. Przy wydaniu kartoteka jest rozpoznawana w spółce lokalizacji, z której pobiera się towar.

Rozpoznawanie kodu w jednym polu kolektora opisuje strona o [jednym polu Kod na kolektorze](https://system.wms.net.pl/jedno-pole-kod-na-kolektorze-ean-gs1-i-maska-kodu-niestandardowego/), a przesunięcia, w których kartotekę wybiera spółka lokalizacji, strona o [zmianie właściciela towaru](/przesuniecie-miedzy-spolkami-zmiana-wlasciciela-towaru/).

## Dostawca i odbiorca z jednego rejestru ERP to w WMS dwa wiersze

W ERP dostawcy i odbiorcy są w jednym rejestrze kontrahentów, a każda kartoteka ma osobny numer. W WMS każdy kontrahent z ERP jest zapisywany jako dwa wiersze o tym samym numerze ze znacznikiem: jeden w roli odbiorcy, drugi w roli dostawcy. Rola jest jednym z elementów, które pilnują unikalności wiersza.

W tabeli wyżej Odbiorca Testowy ma w WMS numer 10001310 zapisany dwa razy, po jednym razie w każdej roli. Wiersze się nie powtarzają, bo rola odróżnia je od siebie przy tym samym numerze.

## Do ERP wraca numer bez znacznika

Zwrot do ERP przebiega w drugą stronę: znacznik jest odcinany. Procedury statusów zamówień odcinają pierwsze pięć cyfr numeru zlecenia, aby ERP dostał własny numer zamówienia. Dokument wydania niesie identyfikator odbiorcy ze zlecenia bez znacznika, a pozycje dokumentu niosą symbol towaru, a nie numer techniczny.

Procedura przygotowująca dokumenty do wysyłki do ERP przyjmuje jako parametr numer spółki, więc dokumenty każdej spółki są przygotowywane osobno. Dokument niesie kod magazynu w ERP wzięty ze słownika magazynów oraz notatkę z numerem dokumentu WMS. Opisujemy przygotowanie dokumentu do wysyłki, a nie samą wysyłkę.

Procedura uzgadniająca pozycje zamówienia z ERP odcina znacznik od numeru pozycji, aby zapytać o tę pozycję bazę ERP właściwej spółki. Wywołuje ją procedura importu zamówień dla każdego przetwarzanego zamówienia. Status zamówienia, który powstaje w tym obiegu, opisuje strona o [statusie zamówienia z magazynu w ERP](https://www.programmagazyn.pl/status-zamowienia-w-erp-wraca-z-magazynu-zaimportowane-wydane/).

## Przykład: jedno zamówienie od importu do statusu

Przykład ze zmyślonymi danymi. Spółka A i Spółka B mają w swoich bazach ERP Artykuł A pod tym samym numerem 45. W WMS są to dwie kartoteki o numerach 1000145 i 2000245, więc przesunięcie towaru z jednej spółki do drugiej nie myli ich między sobą.

Spółka A wprowadza w ERP zamówienie Zlecenie 26-1001 dla Odbiorcy Testowego, a import w WMS zakłada zlecenie o numerze ze znacznikiem 10001. Magazyn kompletuje i wydaje towar, a WMS przygotowuje do wysyłki status z numerem zamówienia bez znacznika, więc po przekazaniu do wysyłki handlowiec może go przypisać do właściwego zamówienia. Ten sam numer z ERP daje zawsze ten sam klucz w WMS, więc procedura aktualizuje istniejący wiersz zamiast tworzyć drugi.

## Pytania do zadania na etapie analizy

Przed wdrożeniem podobnego rozwiązania zadajemy cztery pytania. To pytania do czytelnika, a nie fakty o opisywanym wdrożeniu. Zakres analizy opisuje artykuł o [analizie przedwdrożeniowej WMS](/analiza-przedwdrozeniowa-wms-co-zawiera/).

- Powtarzalność numerów - czy numery kartotek i kontrahentów w Twoich bazach ERP mogą się powtarzać między spółkami.
- Numer widoczny i techniczny - który numer widzą użytkownicy ERP, a który jest tylko techniczny, i czy w dokumentach ma wracać symbol towaru, czy numer.
- Wspólny symbol towaru - czy ten sam towar prowadzicie w obu spółkach pod tym samym symbolem i czy tak ma zostać.
- Droga danych - czy dane do WMS mają płynąć odczytem wprost z baz ERP, czy przez tabele pośrednie, i kto pilnuje ich aktualności.

## Czego ta strona nie opisuje

Strona opisuje klucze i zachowanie ekranów jednego wdrożenia, a nie standard produktu. Nie podajemy liczb kartotek i zamówień ani nazw programu ERP i baz. Wartości znaczników i numerów w przykładach są wymyślone.

Nie opisujemy samej wysyłki dokumentów do ERP ani jej ponawiania. Przykłady zamówień opisaliśmy na Spółce A. Inną konstrukcję dwóch baz, w której osobna baza trzyma dokumenty magazynu zewnętrznego, opisuje strona o [magazynie zewnętrznym w osobnej bazie](/magazyn-zewnetrzny-w-osobnej-bazie-dokumentow/), a wzorzec integracji z kolejką zapisu strona o [integracji systemu magazynowego z ERP](https://system.wms.net.pl/jak-zintegrowac-system-magazynowy-z-erp/).

## Pytania i odpowiedzi o jednej bazie WMS i dwóch bazach ERP

## Słownik pojęć o kluczach ze znacznikiem spółki

Terminy używane przez integratora i dział IT, gdy dwie bazy ERP zasilają jedną bazę WMS.
