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 zmiany | Operacja | Rola systemu WMS | Dokument |
|---|---|---|---|
| Początek zmiany | Przegląd awizacji i planu wydań | Lista dostaw i zleceń na dziś, sortowana po priorytecie | Awizacja, zlecenie wydania |
| Rano | Przyjęcie dostaw | Porównanie dostawy z zamówieniem, wskazanie lokalizacji | PZ |
| Przed południem | Odkład i uzupełnianie | Zadania przesunięcia do stref kompletacji | Zl |
| W środku dnia | Kompletacja | Trasa, rezerwacja stanu, kolejka zadań | Zlecenie kompletacji |
| Po południu | Pakowanie i wydanie | Weryfikacja pozycji skanerem, numer listu przewozowego | WZ |
| Koniec zmiany | Uzgodnienie zadań otwartych | Zestawienie niezakończonych zadań, przeliczenia lokalizacji | Dokument 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.

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ń.

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.
| Kontrola | Co porównuje terminal | Skutek niezgodności |
|---|---|---|
| Indeks | Zeskanowany kod z pozycją zlecenia | Odrzucenie skanu, komunikat o błędnym towarze |
| Ilość | Suma skanów z ilością na zleceniu | Zadanie pozostaje otwarte do uzupełnienia braku |
| Partia lub termin ważności | Partia na etykiecie z partią zarezerwowaną | Wymiana towaru albo korekta rezerwacji |
| Status | Status partii z listą dozwolonych | Blokada 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 tle | Wyzwalacz | Wynik w systemie |
|---|---|---|
| Uzupełnianie strefy kompletacji | Stan lokalizacji poniżej minimum | Zadanie przesunięcia z rezerwy do lokalizacji pobrań |
| Obsługa zwrotu | Towar odesłany przez odbiorcę | Przyjęcie ze statusem do oceny, potem zwolnienie lub utylizacja |
| Liczenie cykliczne | Harmonogram inwentaryzacji ciągłej | Dokument różnic dla lokalizacji objętej liczeniem |
| Konsolidacja palet | Kilka niepełnych palet tego samego indeksu | Zwolnienie 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.

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.




