Obsługa magazynu jest rytmem jednej zmiany, a nie zbiorem niezależnych czynności. Rano przychodzą dostawy, po południu wychodzą zamówienia, a pomiędzy nimi towar musi znaleźć miejsce na regale i zostać z niego zdjęty w odpowiedniej kolejności. Ten artykuł opisuje taki dzień pracy operacja po operacji i pokazuje, co w każdej z nich robi system WMS, a co zostaje po stronie człowieka.

Cykl życia towaru z perspektywy zapasu opisuje tekst o operacjach magazynowych. Tutaj obowiązuje perspektywa zmiany: kto i kiedy dostaje zadanie, jakie dokumenty powstają w ciągu dnia i w którym miejscu ucieka najwięcej czasu.

Obsługa magazynu jako ciąg operacji jednej zmiany

Poniższy rozkład jest przykładowy. Pokazuje kolejność operacji i dokumenty, które im towarzyszą, a nie normę czasową, bo godziny zależą od tego, o której docierają dostawy i o której odjeżdżają przewoźnicy.

Pora zmianyOperacjaRola systemu WMSDokument
Początek zmianyPrzegląd awizacji i planu wydańLista dostaw i zleceń na dziś, sortowana po priorytecieAwizacja, zlecenie wydania
RanoPrzyjęcie dostawPorównanie dostawy z zamówieniem, wskazanie lokalizacjiPZ
Przed południemOdkład i uzupełnianieZadania przesunięcia do stref kompletacjiZl
W środku dniaKompletacjaTrasa, rezerwacja stanu, kolejka zadańZlecenie kompletacji
Po południuPakowanie i wydanieWeryfikacja pozycji skanerem, numer listu przewozowegoWZ
Koniec zmianyUzgodnienie zadań otwartychZestawienie niezakończonych zadań, przeliczenia lokalizacjiDokument inwentaryzacyjny

Reguła: zmiana stanu zapasu zapisuje się w chwili wykonania operacji, a nie po niej. Ruch wpisany na koniec dnia z pamięci to najczęstsze źródło rozbieżności między systemem a regałem.

Z rozkładu wynika praktyczny wniosek dla obsady. Praca nie rozkłada się równo w ciągu dnia: przyjęcia i odkłady koncentrują się rano, a po południu dominują kompletacja i wydania. Uzupełnianie musi wyprzedzać kompletację, żeby operatorzy nie stali przy pustych lokalizacjach. System pomaga to zaplanować, bo zna liczbę awizowanych palet i zleceń z terminem wysyłki na dany dzień. Kierownik zmiany przesuwa wtedy ludzi między strefami zgodnie z zadaniami, a nie z przyzwyczajeniem.

Przyjęcie i odkład na początku zmiany

Rampa i awizacja

Pierwsze zadanie dnia wynika z kalendarza dostaw. Jeśli przewoźnicy rezerwują okna czasowe, kierownik zmiany widzi z wyprzedzeniem, ile palet przyjedzie i o której, więc może przydzielić ludzi i wózki do rampy zamiast reagować na kolejkę aut. Sam proces po stronie magazynu opisuje artykuł o awizacjach dostaw do magazynu, a w tym tekście ważny jest tylko jego skutek. Dostawa ma numer i planowaną godzinę, a magazynier dostaje listę pozycji, z którą porówna to, co stoi na rampie.

Dokument PZ i weryfikacja

Rozładunek kończy się porównaniem faktycznej dostawy z zamówieniem. Magazynier skanuje etykiety, a system zestawia zeskanowane ilości z pozycjami dokumentu. Różnice zapisuje się od razu, bo po wprowadzeniu towaru na stan udokumentowanie braku jest trudniejsze. W wielu konfiguracjach przyjęcie trafia najpierw do bufora i staje się właściwym dokumentem PZ dopiero po zatwierdzeniu ilości. Szczegóły kontroli opisuje strona o przyjęciu towaru do magazynu.

Rozbieżności przy przyjęciu

Najczęściej spotykane rozbieżności dzielą się na trzy rodzaje, ale każdą obsługuje się osobno. Brak oznacza, że zeskanowano mniej sztuk niż zamówiono, i pozycja zostaje otwarta do dostawy uzupełniającej. Nadwyżka wymaga decyzji, czy przyjąć ją na stan, czy odesłać. Uszkodzenie kończy się przyjęciem części towaru na lokalizację i zapisem reszty w statusie blokady z opisem. Wspólna zasada jest jedna: rozbieżność zapisuje się przy rampie, w obecności kierowcy, a nie po jego odjeździe.

Palety z towarem na wózkach w alei magazynowej przy regałach paletowych, widok z poziomu posadzki
Strefa przyjęć na początku zmiany - palety oczekują na weryfikację ilości i odkład na lokalizacje

Odkład na lokalizacje

Po przyjęciu system podpowiada adres, pod który paleta ma trafić. Magazynier skanuje etykietę palety, jedzie wózkiem do wskazanego regału i skanuje etykietę lokalizacji. Terminal porównuje zeskanowany adres z podpowiedzią. Sposób budowania takich adresów i dobór typu regału opisujemy w artykule o miejscach składowania. Przy wyborze lokalizacji system sprawdza cztery parametry:

  • Pojemność - czy objętość towaru mieści się w gnieździe.
  • Ładowność - czy masa palety nie przekracza nośności poziomu regału.
  • Status miejsca - czy lokalizacja jest wolna, zarezerwowana czy zajęta.
  • Strefa - czy typ towaru jest dozwolony w danej strefie składowania.

Kompletacja jako najdłuższa operacja dnia

W większości magazynów kompletacja pochłania największą część czasu pracy, a w niej dominuje marsz między lokalizacjami. System układa więc pozycje zlecenia w kolejności odpowiadającej przejściu przez alejki i łączy podobne zlecenia. W kompletacji jednostopniowej jeden magazynier zbiera całe zamówienie, a w dwustopniowej najpierw zbiera towar zbiorczo dla wielu zamówień, a potem rozdziela go w strefie sortowania. Wybór metody omawia strona o kompletacji zamówień.

Dwie pracownice w kamizelkach odblaskowych pakują kartony przy regale, obok wózek widłowy i monitor
Stanowisko kompletacji i pakowania - tu kończy się zadanie pobrania i zaczyna weryfikacja zamówienia

Trasa przejścia po alejkach

Kolejność pobrań wynika z kodów lokalizacji. Jeśli adres zaczyna się od numeru alejki, system sortuje pozycje zlecenia rosnąco po alejce, a w kolejnej alejce zmienia kierunek, tak by magazynier nie wracał tą samą drogą. Przy adresach w formacie strefa-rząd-kolumna-poziom sortowanie obejmuje też poziom, więc najpierw zbiera się pozycje z dolnych poziomów, a wózek z wysokich poziomów jedzie raz na alejkę. To prosta heurystyka i nie zastępuje algorytmu optymalizacji tras, ale w większości magazynów daje czytelny skrócony przebieg bez dodatkowej konfiguracji.

Kolejka zadań i rezerwacja stanu

Gdy kilku operatorów pobiera zadania jednocześnie, system musi zagwarantować, że żadne zadanie nie trafi do dwóch osób i że nikt nie będzie czekał na cudzą transakcję. W bazie SQL Server rozwiązuje to podpowiedź blokady UPDLOCK razem z READPAST: pierwsza rezerwuje wybrany wiersz na czas aktualizacji, a druga pomija wiersze zablokowane przez innych. Poniższy przykład pokazuje pobranie kolejnego zadania dla operatora, a nazwy tabeli i kolumn są wyłącznie ilustracją.

DECLARE @IdStrefy int = 3, @IdOperatora int = 17;   -- wartości przykładowe

;WITH nastepne AS (
    SELECT TOP (1) *
    FROM dbo.ZadanieKompletacji WITH (ROWLOCK, UPDLOCK, READPAST)
    WHERE Status = 'OCZEKUJE' AND IdStrefy = @IdStrefy
    ORDER BY Priorytet DESC, TerminWysylki ASC, IdZadania ASC
)
UPDATE nastepne
SET Status = 'W_TOKU',
    IdOperatora = @IdOperatora,
    DataStartu = SYSDATETIME()
OUTPUT inserted.IdZadania, inserted.KodLokalizacji, inserted.Indeks, inserted.Ilosc;

Kolejność ORDER BY odpowiada priorytetom zmiany: najpierw zadania oznaczone jako pilne, potem te o najbliższym terminie wysyłki. Zasady blokowania wierszy i poziomy izolacji opisuje dokumentacja przewodnika po blokadach i wersjonowaniu wierszy w Microsoft Learn.

Rezerwacja i blokady towaru

Zadanie kompletacji rezerwuje ilość na konkretnej lokalizacji i partii, więc drugie zamówienie nie dostanie tej samej sztuki. Towar ze statusem blokady, na przykład wstrzymany po reklamacji jakościowej, w ogóle nie wchodzi do puli. Mechanizm statusów szerzej opisuje artykuł o kontroli nad towarami.

Weryfikacja i wydanie towaru

Skompletowany towar trafia na stanowisko pakowania, gdzie każda pozycja jest skanowana ponownie. Weryfikacja jest jedynym punktem, w którym błąd kompletacji da się jeszcze wychwycić bez kosztu reklamacji. Terminal porównuje kilka elementów naraz, a tabela pokazuje, co dzieje się przy niezgodności.

KontrolaCo porównuje terminalSkutek niezgodności
IndeksZeskanowany kod z pozycją zleceniaOdrzucenie skanu, komunikat o błędnym towarze
IlośćSuma skanów z ilością na zleceniuZadanie pozostaje otwarte do uzupełnienia braku
Partia lub termin ważnościPartia na etykiecie z partią zarezerwowanąWymiana towaru albo korekta rezerwacji
StatusStatus partii z listą dozwolonychBlokada wydania do wyjaśnienia

Po weryfikacji system zamyka zadanie i rejestruje dokument WZ. Zamknięta paczka lub paleta dostaje etykietę wysyłkową i czeka w strefie wydań na przewoźnika, a jej lokalizacja tymczasowa jest widoczna w systemie tak samo jak lokalizacja na regale. Kontrahent może wcześniej złożyć awizo wydania, które staje się zleceniem wydania i po zatwierdzeniu przechodzi w dokument WZ. Zasady ewidencji opisuje strona o wydaniu z magazynu. To, jak dobiera się przewoźnika i okno odbioru, opisujemy osobno w artykule o planowaniu wysyłek z magazynu.

Reguła: dokument WZ powstaje po weryfikacji skanerem, a nie przed nią. Wystawiony wcześniej dokument trzeba potem korygować, a korekta zostaje w historii razem z pomyłką.

Uzupełnianie i zwroty jako zadania w tle

Obok operacji głównych system prowadzi zadania, które nie wynikają z konkretnego zamówienia, tylko ze stanu magazynu. Uzupełnianie powstaje wtedy, gdy zapas w lokalizacji kompletacyjnej spada poniżej ustalonego minimum, a towar czeka jeszcze w rezerwie. Zwrot wymaga przyjęcia i oceny stanu, a potem decyzji o statusie. Liczenie lokalizacji wynika z planu inwentaryzacji ciągłej, o której piszemy w tekście o inwentaryzacji ciągłej w magazynie.

Zadanie w tleWyzwalaczWynik w systemie
Uzupełnianie strefy kompletacjiStan lokalizacji poniżej minimumZadanie przesunięcia z rezerwy do lokalizacji pobrań
Obsługa zwrotuTowar odesłany przez odbiorcęPrzyjęcie ze statusem do oceny, potem zwolnienie lub utylizacja
Liczenie cykliczneHarmonogram inwentaryzacji ciągłejDokument różnic dla lokalizacji objętej liczeniem
Konsolidacja paletKilka niepełnych palet tego samego indeksuZwolnienie lokalizacji po przeniesieniu towaru

Podział pracy i terminale w zespole

Zadania trafiają do terminali według strefy i priorytetu, a uprawnienia operatora ograniczają ich zakres, więc kierownik zmiany nie rozdaje kartek, tylko obserwuje kolejkę. Operator wózka dostaje zadania przesunięć, a magazynier na piechotę zadania pobrań. Brygadzista widzi zadania otwarte i może zmienić priorytet zlecenia pilnego. Przy zmianie obsady zadania w toku zostają przypisane do operatora, który je rozpoczął, dopóki ktoś ich nie zwolni. Dzięki temu następna zmiana wie, które palety stoją w połowie odkładu i kto może o nich powiedzieć więcej. Sprzęt i wymagania wobec aplikacji opisuje artykuł o aplikacji magazynowej na Androida.

Ręczny terminal z ekranem dotykowym i klawiaturą trzymany w dłoni przed regałami magazynowymi
Terminal operatora - pokazuje bieżące zadanie i wymaga skanu lokalizacji oraz towaru przed zatwierdzeniem

Ekran terminala ogranicza się do tego, co jest potrzebne w danej chwili:

  • Zadanie bieżące - jedna operacja naraz, bez listy całego dnia.
  • Adres i ilość - lokalizacja pobrania lub odkładu z wymaganą liczbą sztuk.
  • Wymagany skan - etykieta lokalizacji, a potem etykieta towaru.
  • Priorytet i termin - informacja, czy zadanie ma wyprzedzić inne.

Strefa wysokiego składu w obsłudze zmiany

Tam, gdzie regały sięgają kilkunastu metrów, ten sam rytm zmiany obowiązuje, ale pojedyncza operacja trwa dłużej i wymaga wózka wysokiego podnoszenia. Zadanie odkładu wiąże operatora z wózkiem i konkretnym poziomem regału, a system pilnuje nośności poziomu oraz kolejności pobrań. Wózek wysokiego podnoszenia nie może jechać z pustymi widłami po całej hali, dlatego zadania odkładu i pobrania warto łączyć w cykle podwójne: odkład na wysokim poziomie i pobranie z sąsiedniej alejki w jednym przejeździe. Specyfikę tej strefy opisujemy osobno: w artykule o obsłudze magazynu wysokiego składowania oraz na stronie o aplikacji dla magazynu wysokiego składowania.

Wskaźniki zmiany i uzgodnienie na koniec dnia

Na koniec zmiany kierownik sprawdza, ile zadań zostało otwartych i dlaczego. Najprostszy wskaźnik to liczba zakończonych pozycji kompletacji na godzinę pracy operatora. Nie służy do porównywania ludzi w oderwaniu od kontekstu, bo pozycje różnią się odległością i wagą, ale pokazuje zmiany w czasie dla tej samej strefy. Przykładowe zapytanie liczy go z tabeli zadań. Drugi wskaźnik to czas od rozładunku do chwili, gdy towar jest dostępny na stanie kompletacyjnym; jeśli rośnie, przyczyną bywa kolejka odkładów albo brak wolnych lokalizacji w strefie. Trzeci mierzy odsetek zadań zakończonych z korektą skanu, który wskazuje etykiety trudne do odczytu.

-- przykładowy wskaźnik: zakończone pozycje kompletacji na godzinę pracy, osobno dla operatora i dnia
SELECT IdOperatora,
       CAST(DataKoniec AS date) AS Dzien,
       COUNT(*) AS Pozycje,
       DATEDIFF(MINUTE, MIN(DataStartu), MAX(DataKoniec)) AS MinutyPracy,
       COUNT(*) * 60.0 / NULLIF(DATEDIFF(MINUTE, MIN(DataStartu), MAX(DataKoniec)), 0) AS PozycjeNaGodzine
FROM dbo.ZadanieKompletacji
WHERE Status = 'ZAKONCZONE'
GROUP BY IdOperatora, CAST(DataKoniec AS date);

Zadania niezakończone przechodzą na następną zmianę razem z powodem: brak towaru, blokada statusu albo niepotwierdzony skan. Zestawienie takich zadań jest podstawą krótkiej odprawy przy zmianie obsady, na której omawia się wyłącznie odchylenia od planu. Funkcje systemu WMS.net w tym zakresie prezentuje serwis produktowy Studio WMS.net, a przebieg zmiany można prześledzić na demonstracyjnym magazynie online.