Zamknięcie zlecenia przyjęcia wywołuje procedurę w bazie, która zakłada sprawy uszkodzeń tylko dla pozycji faktycznie przyjętych i bez duplikatów. Ekran terminala zakłada sprawy nadal, gdy po zapisie pozycji lista pozycji nieprzyjętych jest pusta. Przycisk „Status” zmienia status zlecenia dopiero po powodzeniu procedury.
Ekran terminala zakłada sprawę, gdy lista pozycji nieprzyjętych jest pusta
W opisywanym wdrożeniu jedna reguła zakładania sprawy stoi w ekranie terminala do przyjmowania pozycji zlecenia. Po zapisie każdej pozycji ekran pobiera listę pozycji jeszcze nieprzyjętych. Sprawy zakłada tylko wtedy, gdy ta lista jest pusta. Potem pokazuje okno z tekstem „Dokument został zrealizowany” i pytaniem „Czy chcesz zrealizować nowy dokument?”.
Ekran buduje sprawę w przeglądarce: pobiera zapytaniem listę kandydatów, a dla pozycji z tej listy sam pobiera identyfikator i numer z licznika, po czym wysyła zapis.
- Warunek założenia sprawy - po zapisie pozycji lista pozycji nieprzyjętych jest pusta.
- Okno po zapisie - tekst „Dokument został zrealizowany” i pytanie „Czy chcesz zrealizować nowy dokument?”.
Adresata powiadomienia o założonej sprawie opisuje osobny tekst o adresacie powiadomienia według kodu pocztowego.
Zlecenie zamknięte z różnicami nie spełnia warunku ekranu
Zlecenie, na którym została choć jedna pozycja nieprzyjęta, nie doprowadza listy do zera, dopóki ta pozycja nie zostanie anulowana w edycji zlecenia. Anulowana pozycja znika z listy. Dlatego ekran nie zakłada sprawy dla zlecenia, na którym została pozycja nieprzyjęta.
Zlecenie zamyka się na osobnym ekranie przyjęcia. Przy niekompletnym zleceniu ekran pyta, czy na pewno zakończyć zlecenie niekompletne, a przy kompletnym pokazuje przycisk „Potwierdź przyjęcie”.
Makieta pokazuje okno z pytaniem o zakończenie niekompletnego zlecenia.
Według konfiguracji opisywanego wdrożenia procedura zamykająca nadaje zleceniu status zamknięcia kompletnego albo zamknięcia z różnicami, zależnie od znacznika aktywności pierwszej pozycji bez przyjęcia. Po powodzeniu zwraca komunikat „Zlecenie zostało zamknięte.”. Sprawy dla takiego zlecenia zakłada procedura, którą woła zamknięcie zlecenia.
Dla procedury w bazie liczy się zamknięcie zlecenia, a nie to, czy lista pozycji zeszła do zera.
Procedura w bazie wybiera tylko pozycje faktycznie przyjęte
W opisywanym wdrożeniu procedura przyjmuje identyfikator zlecenia i login, a wynik powodzenia albo odmowy oddaje osobnym parametrem wyjściowym. Kandydatem do sprawy jest tylko pozycja faktycznie przyjęta, czyli taka, której ilość przyjęcia jest większa od zera. Procedura sama ustala identyfikator zlecenia z numeru dokumentu i robi to tylko dla zlecenia zamkniętego.
Według konfiguracji opisywanego wdrożenia zamknięcie przerwane komunikatem „Protokół przyjęcia nie został zatwierdzony!” nie zakłada sprawy. Jeśli na zleceniu jest przyjęta jednostka główna, sprawa powstaje tylko dla niej. W przeciwnym razie sprawy powstają dla przyjętych elementów składowych. Klasyfikacja idzie po kodzie rodzaju pozycji, a nie po tekście opisu, bo opisy mają kilka wariantów nazw.
Schemat pokazuje kolejność pytań procedury: czy zlecenie jest zamknięte i czy jest przyjęta jednostka. Dalej procedura sprawdza, czy sprawa już istnieje, a przy braku sprawy zakłada nową z numerem z licznika i wpisem w historii. Przy niepowodzeniu transakcja jest cofana i procedura zwraca odmowę, a przycisk zostawia status bez zmiany.
Tabela pokazuje cztery przykładowe zlecenia i wynik wyboru (dane przykładowe).
| Zlecenie | Co przyjęto | Co pomija procedura | Wynik |
|---|---|---|---|
| Zlecenie 26-1001 | jednostka i jeden element składowy | element składowy, bo jednostka jest przyjęta | jedna sprawa dla jednostki |
| Zlecenie 26-1002 | dwa elementy składowe, jednostki brak w dostawie | brak jednostki do pominięcia | dwie sprawy dla elementów składowych |
| Zlecenie 26-1003 | jednostka, sprawa już istnieje | pozycja z istniejącą sprawą | brak nowej sprawy, komunikat, że pozycje już istnieją |
| Zlecenie 26-1004 | nic | pozycje bez przyjęcia | brak spraw, komunikat, że nic nie zostało przyjęte |
Ponowne wywołanie procedury niczego nie dubluje
Pozycja, która ma już aktywną sprawę dla tego samego zlecenia i tej samej jednostki, jest pomijana. Ponowne wywołanie jest więc pustym przebiegiem.
- Pozycja z istniejącą sprawą - procedura ją pomija.
- Brak kandydatów - procedura zwraca powodzenie i komunikat, że pozycje już istnieją albo nic nie zostało przyjęte.
Nowa sprawa dostaje numer z licznika dokumentów i wpis w historii. Procedura ma własną transakcję. Gdy zapis się nie powiedzie, transakcja jest cofana, a procedura zapisuje wpis w dzienniku niepowodzeń i zwraca odmowę.
Sprawa założona przez procedurę startuje w statusie, w którym czeka na weryfikację, i ma pusty zakres uszkodzeń. Pozycje uszkodzeń dopisuje człowiek, a dopisana pozycja kopiuje dane nagłówka z wiersza założonego przez procedurę. Sprawa trafia od razu na listę oczekujących.
Wpis zapytania pod przyciskiem „Status” jest współdzielony z przyciskiem zamykającym zlecenia wydania. Filtr typu dokumentu w procedurze sprawia, że wywołanie z zamknięcia zlecenia wydania niczego nie zakłada. Załączniki sprawy, w tym oferta wśród załączników sprawy, opisuje osobny tekst.
Zmiana statusu z listy zleceń z różnicami następuje po powodzeniu procedury
Przycisk „Status” jest na liście zleceń z różnicami i wywołuje procedurę. Status zlecenia zmienia się tylko wtedy, gdy wynik jest inny niż odmowa. Dotyczy to wyłącznie tego przycisku.
- Powodzenie - status zlecenia zmienia się po założeniu sprawy albo po pustym przebiegu.
- Odmowa - status zlecenia zostaje bez zmiany.
Zamknięcie zlecenia przyjęcia jako takie i protokół różnic opisuje strona o protokole różnic przy zamknięciu, a samo przyjęcie do magazynu ma osobną stronę.
Zamknięcie na terminalu wywołuje tę samą procedurę po cichu
Przy zamknięciu zlecenia na terminalu zapytanie zapisu przyjęcia wywołuje po zamknięciu tę samą procedurę w trybie cichym, czyli bez własnego zbioru wyników. Kolejność jest istotna, bo ekran odczytuje zbiór wyników pierwszej procedury i pokazuje swój komunikat. Wynik generowania sprawy nie jest wtedy sprawdzany, a niepowodzenie zapisu trafia tylko do dziennika niepowodzeń procedury.
Dla zlecenia kompletnego, dla którego sprawę założył już ekran, wywołanie procedury po zamknięciu pomija pozycje z istniejącą sprawą. Ścieżka przyjęcia bez zlecenia ma własny zaczep w przeglądarce: po zapisie pozycji pobiera zapytaniem kandydata, usuwając duplikaty po pozycji dokumentu przyjęcia, i zapisuje sprawę. Reguła nie stoi więc w jednym miejscu.
| Ścieżka | Kiedy zakłada sprawy | Co dzieje się z wynikiem |
|---|---|---|
| Ekran przyjmowania pozycji zlecenia | po zapisie pozycji, gdy lista pozycji nieprzyjętych jest pusta | ekran pokazuje okno z pytaniem o nowy dokument |
| Zamknięcie zlecenia na terminalu | po zamknięciu, procedura w trybie cichym | ekran pokazuje swój komunikat, a wynik generowania nie jest sprawdzany |
| Przycisk „Status” na liście zleceń z różnicami | przy wywołaniu procedury | status zmienia się tylko po powodzeniu |
| Przyjęcie bez zlecenia | po zapisie pozycji, własny zaczep w przeglądarce | zapytanie pobiera kandydata bez duplikatów po pozycji dokumentu przyjęcia |
Przykład (dane wymyślone) w ośmiu krokach:
- Zlecenie 26-1002 obejmuje jednostkę i dwa elementy składowe.
- Na terminalu operator przyjmuje oba elementy, a jednostki nie ma w dostawie.
- Operator zamyka zlecenie mimo pytania o niekompletność.
- Zlecenie dostaje status zamknięcia z różnicami, a procedura wybiera przyjęte elementy, bo żadna jednostka nie została przyjęta.
- Powstają dwie sprawy w statusie początkowym oczekiwania na weryfikację, obie z numerem z licznika i bez pozycji uszkodzeń.
- Pozycje uszkodzeń dopisuje później człowiek.
- Gdy ktoś użyje przycisku „Status” na liście zleceń z różnicami, procedura niczego nie doda, bo obie sprawy już istnieją.
- Status zlecenia zmienia się wtedy, bo wynik nie jest odmową.
Stan jednostki przy zwrocie opisuje tekst o protokole stanu przy zwrocie.
Pytania do analizy
- Gdzie w procesie powstaje dokument pochodny i czy powstaje także wtedy, gdy zlecenie zamknięto z różnicami?
- Czy reguła zakładania dokumentu stoi w jednym miejscu, czy w kilku ekranach i kto ją zmienia?
- Co ma się stać ze statusem zlecenia, gdy założenie dokumentu pochodnego się nie powiodło?
- Jak sprawdzić, że ponowne wywołanie reguły nie dubluje dokumentów?