W skrócie
Kolejka zleceń na terminalu w opisywanym wdrożeniu nie jest listą do wyboru: magazynier otwiera zbiórkę do wydania i dostaje jedno zlecenie z jednego zapytania. Zlecenia z importu czekają nieaktywne, a kierownik magazynu włącza je do kolejki polem w siatce. Magazynier może też przypisać sobie zlecenie, skanując jego numer.
Terminal podaje następne zlecenie, bo wybiera je zapytanie, a nie magazynier z listy. Kierownik magazynu aktywuje zlecenie zaznaczeniem pola „Aktywne” w siatce, a magazynier może przypisać zlecenie skanem jego numeru. Przy pobraniu zlecenia terminal zapisuje przy nim odpowiedzialnego.
W opisywanym wdrożeniu magazynier na terminalu nie wybiera zlecenia z listy: jedno zapytanie podaje mu zlecenie jego (rozpoczęte lub przypisane) albo wolne, w kolejności priorytetu i czasu awizacji. Zlecenia z importu są nieaktywne, dopóki kierownik magazynu nie zaznaczy pola w siatce albo magazynier nie zeskanuje numeru zlecenia, a pobranie zlecenia na terminalu zapisuje przy nim odpowiedzialnego.
Kierownik nie rozdziela zleceń, tylko włącza je do kolejki, a o tym, które zlecenie dostanie magazynier, rozstrzyga zapytanie terminala. Opis dotyczy terminala zbiórki oraz siatek kierownika magazynu.
Zlecenia z importu czekają nieaktywne, aż ktoś je włączy
Zlecenia z importu powstają jako nieaktywne, bez statusu i z domyślnym priorytetem. Import nie ustawia priorytetu, więc obowiązuje wartość domyślna ze schematu. Zapytanie terminala wybiera tylko zlecenia aktywne, więc zlecenie nieaktywne nie trafia do kolejki, dopóki ktoś go nie włączy. Skąd biorą się te zlecenia, opisuje artykuł o imporcie zamówień z widoku programu ERP.
Zlecenie można włączyć na dwa sposoby, a oba opisujemy w kolejnych sekcjach.
- Pole w siatce. Kierownik magazynu zaznacza w siatce zleceń oczekujących pole „Aktywne”.
- Skan numeru. Magazynier skanuje numer wolnego zlecenia na ekranie przypisania, a zlecenie dostaje aktywność.
Kierownik aktywuje zlecenie polem w siatce zleceń oczekujących
Kierownik magazynu aktywuje zlecenie polem wyboru „Aktywne” w siatce „Zlecenia ZWZ oczekujące”, którą otwiera pozycją menu „Zlecenia wydań ZWZ oczekujące”. To jedyna kolumna tej siatki, którą wolno edytować. Siatka pokazuje zlecenia bez statusu, po jednym wierszu na zlecenie, wśród kolumn są dwie pary: „Priorytet” i „Nr ZWZ” oraz „Klient” i „Odpowiedzialny”.
Zaznaczenie pola nie wpisuje czasu awizacji: tę kolumnę wypełnia tylko skan numeru zlecenia, a po aktywacji polem w siatce jest ona pusta. Skutek dla kolejki opisujemy w sekcji o kolejności.
Terminal pobiera jedno zlecenie jednym zapytaniem i zapisuje przy nim odpowiedzialnego
Magazynier nie wybiera zlecenia z listy: terminal „Zbiórka do wydania” pobiera jedno zlecenie jednym zapytaniem. Zapytanie wybiera zlecenie wydania, które jest aktywne i spełnia jedną z dwóch gałęzi warunku. W pierwszej zlecenie nie ma statusu, a odpowiedzialnego albo nie ma, albo jest nim zalogowany magazynier. W drugiej ma status rozpoczętej zbiórki, a odpowiedzialnym jest zalogowany magazynier. Według dokumentacji wdrożenia lista operatora składa się ze zleceń zadysponowanych do niego i z tych, które nie mają przypisanego operatora.
Zlecenie z rozpoczętą zbiórką widzi w kolejce tylko jego odpowiedzialny, bo dla innych magazynierów nie spełnia ono żadnej z dwóch gałęzi warunku. Pobranie zlecenia ustawia status rozpoczętej zbiórki i odpowiedzialnego na zalogowanego dla wszystkich linii zlecenia oraz dopisuje wpis do historii. Wybór zlecenia i zapis odpowiedzialnego to dwa osobne wywołania.
Terminal pobiera zlecenie, a zaraz potem zapisuje przy nim odpowiedzialnego.
Gdy kolejka jest pusta, terminal pokazuje „Brak zleceń do realizacji!” i po około trzech sekundach przeładowuje okno terminala.
Tabela pokazuje, które zlecenia widzi magazynier A (dane przykładowe).
| Zlecenie | Stan | Odpowiedzialny | Widzi je A |
|---|---|---|---|
| Z-1 | aktywne, bez statusu | brak | tak |
| Z-2 | aktywne, bez statusu | A | tak |
| Z-3 | aktywne, bez statusu | B | nie |
| Z-4 | aktywne, zbiórka rozpoczęta | A | tak, wznowienie |
| Z-5 | nieaktywne, bez statusu | brak | nie |
Zlecenie Z-4 ma rozpoczętą zbiórkę i odpowiedzialnego A, więc widzi je tylko A. Zlecenie Z-3 ma odpowiedzialnego B, a zlecenie Z-5 jest nieaktywne, więc żadne z nich nie trafia do kolejki magazyniera A.
O kolejności decyduje priorytet, a potem czas awizacji
W zapytaniu terminala kolejność kluczy jest ustalona i terminal bierze pierwsze zlecenie z tak uporządkowanego wyniku.
- Priorytet. Sortowanie malejące.
- Czas awizacji. Sortowanie rosnące; puste wartości idą pierwsze.
- Odpowiedzialny. Sortowanie malejące.
- Kontrahent i numer dokumentu. Dalsze klucze porządkujące.
Skan wolnego zlecenia ustawia czas awizacji, a po tym czasie sortuje kolejka. Zlecenia z importu mają domyślny priorytet, bo import go nie ustawia.
Magazynier może przypisać sobie zlecenie skanem jego numeru
W menu terminala jest pozycja „Przypisz zlecenie”, a jej ekran ma pole „Skanuj kod zlecenia”. Numerem zlecenia z importu jest identyfikator nagłówka zamówienia z programu ERP. Skan wolnego zlecenia przypisuje je zalogowanemu magazynierowi, ustawia aktywność i czas awizacji, a ekran pokazuje „Przypisano do zlecenia”. Zapytanie najpierw odczytuje odpowiedzialnego.
Ekran przypisania odrzuca skan trzema komunikatami. Komunikaty niosą kod zlecenia i sygnał dźwiękowy.
- „Jesteś już przypisany do tego zlecenia!”.
- „Inna osoba jest już przypisana do tego zlecenia!”.
- „Zlecenie o takim numerze nie istnieje!”.
Pokrewne tematy opisują osobne strony: o dokumencie przypisanym do operatora oraz o skanie numeru zamiast listy.
Kierownik przywraca albo usuwa zlecenia według warunków zapisanych w konfiguracji
Kierownik przywraca zlecenie do kolejki przyciskiem „Przywróć” na siatce zleceń w realizacji. Po pytaniu „Czy chcesz przywrócić zlecenie?” status staje się pusty, a odpowiedzialny zostaje bez zmian. Przycisk działa dla zleceń ze statusem częściowej albo zakończonej zbiórki; z pozostałych statusów pokazuje komunikat odmowy. Po przywróceniu zlecenie wraca do kolejki dla tego samego odpowiedzialnego, a gdy odpowiedzialnego nie było, jest wolne.
Przycisk „Usuń” na siatce zleceń oczekujących otwiera akcję usunięcia tylko wtedy, gdy zlecenie nie ma ruchów magazynowych; w przeciwnym razie przenosi do strony komunikatu. Usunięcie jest logiczne. Z terminala zlecenie, przy którym nie zebrano żadnej sztuki, można oznaczyć jako anulowane po pytaniu. Zapytanie zmienia status tylko wtedy, gdy nie ma ruchu zbiórki, a przycisk anulowania jest widoczny tylko wtedy, gdy nie ma jeszcze pozycji zbiórki.
Statusy zlecenia opisuje osobny artykuł o statusach zlecenia i przejściach kierownika, a samą zbiórkę po pobraniu zlecenia artykuł o wydaniu liczonym sumą sztuk. Ogólny wzorzec kolejki zadań w bazie opisuje tekst o kolejce zadań w T-SQL.
Przykład (dane wymyślone): kolejka pracuje na zleceniach z importu, a lista numerowana pokazuje kolejne zdarzenia.
- Kierownik magazynu zaznacza pole „Aktywne” przy trzech zleceniach z importu.
- Magazynier A otwiera zbiórkę i dostaje pierwsze zlecenie z kolejki, a terminal zapisuje go jako odpowiedzialnego i ustawia status rozpoczętej zbiórki.
- Magazynier B dostaje następne wolne zlecenie, bo pierwsze nie spełnia już dla niego warunków wyboru.
- Magazynier A skanuje potem numer czwartego, jeszcze nieaktywnego zlecenia na ekranie przypisania, a zlecenie dostaje A jako odpowiedzialnego oraz aktywność.
- Gdy A zakończy zbiórkę przed końcem zlecenia, zlecenie dostaje status częściowej zbiórki i znika z kolejki, a po przywróceniu przez kierownika wraca do kolejki tylko dla A.
Pytania do analizy
Przed wdrożeniem podobnego rozwiązania zadajemy cztery pytania. To pytania do czytelnika, a nie fakty o opisywanym wdrożeniu.
- Czy w Twojej organizacji operator wybiera zlecenie z listy, czy dostaje je od systemu, i kto decyduje o kolejności?
- Kto ma prawo włączyć zlecenie do kolejki: kierownik czy sam magazynier skanem numeru?
- Co ma się stać ze zleceniem przerwanym w połowie: powrót do kolejki ogólnej czy tylko do operatora, który je zaczął?
- Kiedy wolno usunąć zlecenie i gdzie operator zobaczy odmowę?
Pytania i odpowiedzi o kolejce zleceń na terminalu
Jak terminal wybiera zlecenie dla magazyniera?
Magazynier nie wybiera zlecenia z listy: terminal „Zbiórka do wydania” pobiera jedno zlecenie jednym zapytaniem. Zapytanie bierze zlecenie aktywne, które nie ma statusu i nie ma odpowiedzialnego albo ma zalogowanego, albo takie, które ma status rozpoczętej zbiórki i zalogowanego odpowiedzialnego. Kolejność to priorytet malejąco i czas awizacji rosnąco, a dalej kolejne klucze porządkujące. Zlecenie z rozpoczętą zbiórką widzi w kolejce tylko jego odpowiedzialny.
Co sprawia, że zlecenie z importu trafia do kolejki?
Zlecenia z importu powstają jako nieaktywne, bez statusu i z domyślnym priorytetem. Kierownik magazynu aktywuje zlecenie polem „Aktywne” w siatce zleceń oczekujących. Magazynier może też zeskanować numer zlecenia na ekranie przypisania, co ustawia aktywność i czas awizacji.
Do czego służy skan numeru zlecenia?
Skan wolnego zlecenia na ekranie „Przypisz zlecenie” przypisuje je zalogowanemu magazynierowi, ustawia aktywność i czas awizacji. Ekran odrzuca skan trzema komunikatami, z kodem zlecenia i sygnałem dźwiękowym.
Co dzieje się ze zleceniem po rozpoczęciu zbiórki i po jej przerwaniu?
Pobranie zlecenia ustawia status rozpoczętej zbiórki i odpowiedzialnego dla wszystkich linii zlecenia, a zlecenie z rozpoczętą zbiórką widzi w kolejce tylko jego odpowiedzialny. Po przerwaniu zlecenie ze statusem częściowej zbiórki można przywrócić przyciskiem „Przywróć”: status staje się pusty, a odpowiedzialny zostaje bez zmian.
Kiedy można usunąć albo anulować zlecenie?
Przycisk „Usuń” otwiera akcję usunięcia tylko wtedy, gdy zlecenie nie ma ruchów magazynowych. Z terminala zlecenie można oznaczyć jako anulowane po pytaniu, ale zapytanie zmienia status tylko wtedy, gdy nie ma ruchu zbiórki.
Słownik pojęć o kolejce zleceń na terminalu
Terminy używane przy opisie kolejki zleceń, którą terminal buduje jednym zapytaniem.
- Kolejka zleceń
- Zlecenia, które zapytanie terminala uznaje za dostępne dla zalogowanego magazyniera: jego własne albo wolne.
- Aktywacja zlecenia
- Włączenie zlecenia do kolejki; kierownik zaznacza pole „Aktywne” w siatce, a skan numeru ustawia aktywność przy przypisaniu.
- Odpowiedzialny
- Magazynier zapisany przy zleceniu po jego pobraniu albo po przypisaniu skanem.
- Priorytet zlecenia
- Wartość, według której terminal sortuje kolejkę malejąco; zlecenia z importu mają wartość domyślną.
- Przypisanie skanem
- Skan numeru wolnego zlecenia na ekranie „Przypisz zlecenie”, który przypisuje je zalogowanemu magazynierowi.
- Przywrócenie do kolejki
- Przycisk „Przywróć”, który po pytaniu ustawia pusty status i zostawia odpowiedzialnego bez zmian.
Opisz nam swoją kolejkę zleceń
Podaj, jak dziś magazynierzy dostają zlecenia i kto włącza je do kolejki, a przygotujemy plan analizy reguły wyboru zlecenia.
