Firma z kilkoma magazynami wysokiego składowania nie zarządza już jednym obiektem, tylko siecią. Zamówienie można skompletować w tym magazynie, który ma zapas, a jeden przejazd ciężarówki może obsłużyć kilka punktów. Wartość takiej sieci zależy od tego, czy poszczególne obiekty działają jako osobne wyspy, czy jako spójny układ widoczny z jednego miejsca.

Za ten układ odpowiada logistyka WMS klasy sieciowej: system agreguje stany, obsługuje przesunięcia między lokalizacjami i przekazuje dane do planowania transportu. Artykuł opisuje te mechanizmy od strony danych i procesu: model architektury, transfer międzymagazynowy jako transakcję, wymianę komunikatów z systemami TMS i YMS oraz etapowe wdrożenie.

Sieć magazynów wysokiego składowania a pojedynczy obiekt

W pojedynczym magazynie priorytetem jest optymalne rozmieszczenie towaru na regałach, dobór tras kompletacji i sprawna praca wózków. W sieci te zagadnienia schodzą na drugi plan wobec pytania ważniejszego dla całej organizacji: w którym magazynie jest potrzebny towar i jak szybko przesunąć go tam, gdzie czeka odbiorca. System WMS w magazynie jednego obiektu odpowiada na pytanie o lokalizację palety w regale. System sieciowy odpowiada dodatkowo na pytanie o lokalizację towaru w skali firmy.

Ta różnica przekłada się na projekt. Sieciowy WMS musi pokazywać jeden widok zapasów niezależnie od tego, z którego magazynu korzysta pracownik, oraz pozwalać na decyzje o przesunięciach na podstawie danych ze wszystkich lokalizacji równocześnie.

Sieć wymaga też rozstrzygania, czy braki uzupełnić przesunięciem, czy zamówieniem u dostawcy. Decyzja porównuje dwa czasy i dwa koszty: transfer z innego magazynu (przejazd, załadunek, rozładunek) oraz czas realizacji dostawy od dostawcy. System sieciowy ma dane do pierwszego wariantu, ponieważ zna zapas nadwyżkowy w pozostałych obiektach.

Reguła: pytanie o dostępność towaru dotyczy sieci, a pytanie o miejsce odłożenia dotyczy jednego magazynu. System musi odpowiadać na oba, ale nie może mieszać ich poziomów.

Spójny stan zapasów w wielu lokalizacjach

Jedna baza czy bazy lokalne

Podstawowym zadaniem WMS w sieci jest utrzymanie spójnego obrazu stanów magazynowych we wszystkich lokalizacjach. Bez centralnej widoczności jeden magazyn odnotowuje brak towaru i wstrzymuje zamówienia, podczas gdy w innym ten sam indeks zalega bez ruchu. Architektura decyduje o tym, jak szybko obraz się aktualizuje.

CechaJedna baza centralnaBazy lokalne z replikacją
Spójność stanuKażdy zapis widoczny od razu w całej sieciOpóźnienie równe czasowi replikacji, możliwe rozbieżności
Praca przy braku łączaWymaga łącza lub trybu offline na terminaluMagazyn działa lokalnie, dane synchronizują się później
AdministracjaJeden serwer i jedna kopia zapasowaSerwer i kopia zapasowa w każdym obiekcie, osobna konfiguracja
Decyzja o realizacji zamówieniaNa podstawie aktualnych danych sieciNa podstawie danych sprzed ostatniej replikacji

Opóźnienie kilku godzin bywa w jednym magazynie mało istotne, natomiast w sieci kilkunastu obiektów prowadzi do realizacji zamówień z lokalizacji, która nie ma już wystarczającego zapasu. Ochronę centralnej bazy przed awarią zapewniają zwykle grupy dostępności opisane w dokumentacji Microsoft: przegląd grup dostępności Always On. Wygodnym modelem jest też magazyn w chmurze, w którym ten sam system i te same dane są dostępne z każdej lokalizacji bez lokalnej infrastruktury.

Każda operacja, od przyjęcia po przesunięcie, musi być rejestrowana natychmiast i widoczna dla całej sieci. Ta zasada dotyczy również rezerwacji: zamówienie zarezerwowane w jednym magazynie zmniejsza dostępność sieciową, zanim towar zostanie skompletowany.

Dostępność sieciowa do obiecania

Handlowiec potrzebuje jednej liczby: ile sztuk indeksu można obiecać klientowi. System wylicza ją dla sieci z czterech składników, a każdy z nich pochodzi z innej tabeli i ma inną częstotliwość zmian:

  • Stan fizyczny - suma ilości na lokalizacjach zajętych we wszystkich magazynach.
  • Rezerwacje - ilości przypisane do zamówień, które jeszcze nie opuściły magazynu.
  • Blokady jakościowe - towar wstrzymany po kontroli lub reklamacji, którego nie wolno wydać.
  • Towar w drodze - ilości z dokumentów MM, które dopiero zwiększą stan odbiorcy.

Dostępność do obiecania wynika z tych składników i jest liczona na bieżąco, dlatego opóźniona replikacja bezpośrednio psuje odpowiedź dla klienta.

Widoczność danych a uprawnienia

Wspólna baza nie oznacza, że każdy użytkownik widzi wszystko. Kierownik jednego magazynu zwykle ma prawo do zmian we własnym obiekcie, a stany pozostałych obiektów czyta bez możliwości edycji. W SQL Server takie ograniczenie można oprzeć na mechanizmie zabezpieczeń na poziomie wiersza, który filtruje dane według kodu magazynu użytkownika bez zmiany zapytań aplikacji.

Transfer międzymagazynowy jako transakcja

Przesunięcie towaru między dwoma magazynami przebiega według powtarzalnego schematu, niezależnie od tego, czy chodzi o jedną paletę, czy o partię produkcyjną. Istotny jest stan pośredni: gdy towar opuścił nadawcę, a nie dotarł jeszcze do odbiorcy, nie może być dostępny w żadnym z magazynów.

  1. Zapotrzebowanie i wybór źródła - magazyn docelowy zgłasza brak, a system wskazuje lokalizację z nadwyżką zapasu.
  2. Dokument MM i zdjęcie stanu - operator generuje dokument magazynowy typu MM, a stan nadawcy zmniejsza się w tej samej transakcji, w której powstaje pozycja przesunięcia.
  3. Status w drodze - towar jest w transporcie i widnieje w osobnym rejestrze, niedostępnym dla zamówień w obu magazynach.
  4. Przyjęcie u odbiorcy - skanowanie dostawy zamyka dokument, zwiększa stan magazynu docelowego i zdejmuje wpis w drodze.

Wydanie po stronie nadawcy powinno być jedną transakcją: albo zmienia się stan i powstaje wpis w drodze, albo nie zmienia się nic. Poniższy fragment T-SQL pokazuje ten wzorzec. Nazwy tabel są przykładowe, a obsługę błędu opisuje dokumentacja instrukcji THROW.

BEGIN TRY
    BEGIN TRAN;
    UPDATE dbo.StanMagazynu
       SET Ilosc = Ilosc - @Ilosc
     WHERE Magazyn = @Nadawca AND Indeks = @Indeks
       AND Ilosc >= @Ilosc;
    IF @@ROWCOUNT = 0
        THROW 50001, N'Brak wystarczającego stanu u nadawcy', 1;
    INSERT dbo.TowarWDrodze (NumerMM, MagazynDocelowy, Indeks, Ilosc, Status)
    VALUES (@NumerMM, @Odbiorca, @Indeks, @Ilosc, N'W drodze');
    COMMIT;
END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0 ROLLBACK;
    THROW;
END CATCH;

Dlaczego stan w drodze jest potrzebny

Sformalizowanie tego procesu eliminuje sytuacje, w których towar fizycznie opuścił jeden magazyn, a w systemie nadal figuruje jako dostępny do wydania w tej samej lokalizacji. Taki błąd bywa źródłem pomyłek przy równoległej realizacji zamówień, bo dwa działy sprzedaży obiecują ten sam zapas.

Planowanie tras dostaw między magazynami

Gdy magazyny są rozproszone geograficznie, planowanie transportu przestaje być zadaniem lokalnym. Centralne planowanie tras pozwala połączyć w jednym przejeździe dostawę do kilku odbiorców obsługiwanych przez różne magazyny sieci, co ogranicza puste przebiegi. Dane o dostępności towaru gromadzone przez WMS są podstawą takiego planu, bo bez wiarygodnych stanów nie da się rozstrzygnąć, z którego obiektu obsłużyć zamówienie.

Samochód ciężarowy przed regałami magazynowymi i tablet z tabelą pozycji na pierwszym planie
Dane z WMS o gotowości towaru do wysyłki są wejściem do planowania trasy, a nie jego następstwem.

Szczególnie zależni od takiej centralizacji są operatorzy prowadzący kontraktową logistykę magazynową dla wielu klientów. Trasa może obsłużyć kilka lokalizacji, ale towar poszczególnych zleceniodawców nie może się mieszać w dokumentach ani na palecie. Terminy odbioru i okna załadunku opisuje tekst o planowaniu wysyłek z magazynu.

Trasa łącząca kilka punktów ma ograniczenia, które system planujący musi znać: nośność pojazdu i liczbę miejsc paletowych na naczepie, a także okna przyjęć u odbiorców. Z WMS pochodzą dane o liczbie palet i masie zlecenia. Jeśli te wartości są nieaktualne, plan przestaje być wykonalny w dniu wyjazdu i dyspozytor koryguje go ręcznie.

Wymiana danych między WMS a systemami transportowymi

WMS obsługujący sieć nie działa w oderwaniu od systemów transportowych. Dostarcza aktualne dane o stanach i gotowości towaru, na podstawie których system klasy TMS (Transportation Management System) planuje trasy, a system klasy YMS (Yard Management System) koordynuje ruch pojazdów na placu i przy dokach. Przykładem modułu awizacji jest Studio VSS.net jako produkt, a opis rozwiązania do zarządzania placem i oknami czasowymi znajduje się w serwisie yms24.pl.

Zdarzenia przekazuje się zwykle komunikatami: przez interfejs REST albo kolejkę, w której odbiorca potwierdza odbiór. Integracja systemów magazynowych z transportowymi wymaga, by ponowne wysłanie komunikatu nie duplikowało skutku, czyli by odbiorca był idempotentny. Wzorzec opisuje dokumentacja Microsoft o idempotentnym konsumencie.

Zdarzenie w WMSOdbiorcaSkutek
Zamknięcie przyjęcia w magazynieTMSTowar dostępny do planowania kolejnego odcinka trasy
Dokument MM w statusie w drodzeTMS i YMSZlecenie transportu i rezerwacja okna przy doku odbiorcy
Skan dostawy u odbiorcyWMS nadawcyZamknięcie dokumentu i zdjęcie wpisu w drodze
Zmiana terminu przyjazdu pojazduYMSPrzesunięcie okna czasowego i aktualizacja planu pracy doku

Wymiana tych zdarzeń eliminuje ręczne przepisywanie informacji między systemami i skraca czas reakcji na zmiany harmonogramu. W sieci kilku magazynów przekłada się to na krótszy czas pracy dyspozytorów przy tych samych zamówieniach.

Magazyn centralny i magazyny regionalne

Wiele firm organizuje sieć w modelu hub and spoke: jeden magazyn centralny gromadzi zapas bazowy i zaopatruje mniejsze obiekty regionalne. System musi rozróżniać role, ponieważ inne parametry decydują o poziomie zapasu w centrali, a inne w oddziale. Poniższa tabela zestawia różnice.

KryteriumMagazyn centralnyMagazyn regionalny
Rola w sieciZaopatruje obiekty regionalne, trzyma zapas bazowyObsługuje bezpośrednio odbiorców z danego obszaru
Zakres asortymentuPełny, także indeksy o niskiej rotacjiOgraniczony do indeksów szybko rotujących w regionie
TransferyRegularne dostawy zbiorcze na paletachCzęste, mniejsze uzupełnienia
Horyzont planowaniaDługi, oparty na prognozie popytuKrótki, reagujący na bieżące zamówienia
Aleja magazynu wysokiego składowania z regałami paletowymi na kilku poziomach i wózkiem widłowym w oddali
Magazyn centralny z pełnym asortymentem: wysokie regały i duża liczba lokalizacji na jeden indeks.

Przy takim podziale ról firma może utrzymywać niższy łączny poziom zapasu niż wtedy, gdy każdy oddział zabezpieczałby się samodzielnie na wypadek wzrostu popytu. Poziom zapasu ustala się osobno dla każdego obiektu przez progi minimalny i maksymalny, a uzupełnienie oddziału wynika z transferu z centrali.

Wyzwania przy wielu magazynach wysokiego składowania

Rozproszenie działalności rodzi problemy, których pojedynczy magazyn nie ma. Spójność danych wymaga jednolitych procedur: jeśli w jednym obiekcie towar przyjmuje się inaczej niż w drugim, dane spływające do centralnego systemu przestają być porównywalne. Szkolenie pracowników w kilku lokalizacjach według tych samych standardów jest czasochłonne, gdy sieć rośnie szybciej niż zespół wdrażający nowe osoby.

Sezonowość dodatkowo komplikuje zarządzanie. Popyt na indeks może rosnąć w jednym regionie i stać w miejscu w innym, co wymusza częstsze przesunięcia w krótkim czasie. Drobne rozbieżności inwentaryzacyjne w każdym magazynie sumują się w skali sieci i zniekształcają obraz dostępności na tyle, że decyzje o realizacji z danej lokalizacji stają się zawodne.

Osobny problem dotyczy kodów lokalizacji. Jeśli każdy magazyn stosuje własny schemat adresów, raporty sieciowe wymagają tłumaczenia i łatwo o pomyłkę przy transferze. Prosta konwencja z prefiksem obiektu, na przykład dwuznakowym kodem magazynu przed adresem lokalizacji, usuwa ten kłopot już na etapie konfiguracji.

Reguła: przed dodaniem kolejnego magazynu należy ujednolicić procedury przyjęć i wydań oraz zasady inwentaryzacji w istniejących obiektach. Jednolity standard łatwiej wdrożyć w nowym magazynie niż wprowadzać wstecznie w kilku naraz.

Etapowe wdrożenie WMS w sieci magazynów

Wdrożenie w sieci różni się od uruchomienia w jednym obiekcie przede wszystkim kolejnością prac. Zespół musi od początku uwzględnić strukturę całości: podział ról między centralę a oddziały, zasady autoryzacji transferów oraz sposób agregacji danych we wspólnym widoku. Wspólne słowniki powstają raz i obowiązują we wszystkich obiektach; dotyczy to kartoteki indeksów oraz listy kontrahentów.

Zwykle pierwszym krokiem jest uruchomienie systemu w magazynie centralnym, gdzie testuje się przesunięcia i integrację z systemami transportowymi. Kolejne oddziały dołącza się stopniowo. Taki model pozwala wychwycić rozbieżności w procedurach, zanim obejmą całą organizację, i ogranicza ryzyko przestoju, gdy jeden obiekt napotka problem przy uruchomieniu produkcyjnym. Dla każdego dołączanego obiektu warto zaplanować pracę równoległą przez określony czas oraz procedurę powrotu do poprzedniego sposobu ewidencji, jeśli uruchomienie się nie powiedzie. Uczy to zespoły korzystania ze wspólnych słowników, a jednocześnie ogranicza ryzyko dla obsługi zamówień.

Przebieg prac opisuje tekst o wdrożeniu systemu WMS, a możliwości systemu w wersji dla magazynu przedstawia strona program magazynowy WMS od SoftwareStudio.