# Dokument buforowy przypisany do jednego operatora w sieci kolektorów

> Jak kolektor przypisuje dokument buforowy jednemu operatorowi: przejęcie jednym zapisem, okno zajętego dokumentu i zwolnienie przy wyjściu bez zatwierdzenia.

Adres strony: https://magazyn.softwarestudio.com.pl/dokument-przypisany-operatorowi/

---

W opisywanym wdrożeniu przejęcie dokumentu buforowego jest jednym zapisem w bazie, który zwraca właściciela sprzed zmiany i po niej. Drugi operator dostaje informację o loginie osoby, która realizuje dokument, i może wybrać inny. Przejęcie obejmuje wszystkie pozycje dokumentu o danym numerze, które nie są anulowane.
Dokument buforowy przypisany do jednego operatora to w opisywanym wdrożeniu skutek przejęcia: kolektor przejmuje dokument jednym zapisem w bazie, a zapis zwraca właściciela sprzed zmiany i po niej. Drugi operator, który trafia na ten sam dokument, dostaje informację, kto go realizuje, i może wybrać inny. Dla kierownika magazynu, który wdraża kolektory dla kilku operatorów na jednym magazynie, ważne jest, jak system rozdziela dokumenty między osoby.

Wyróżnikiem opisanej wersji jest to, że przejęcie to jeden zapis, a nie dwa osobne żądania. Wybór dokumentu z listy nie przypisuje go operatorowi, a przejęcie następuje dopiero przy wejściu w tryb automatyczny. Opisujemy mechanizm, a nie dosłowne teksty okien. Kolektory w programie omawia strona o [kolektorze danych z Androidem](/kolektor-danych-android/).

## Jak kolektor przejmuje dokument buforowy

Przejęcie to jeden UPDATE, który ustawia operatora tylko wtedy, gdy pole właściciela jest puste. Wynik zwraca stan sprzed zmiany i po niej. Przejęcie obejmuje wszystkie pozycje dokumentu o danym numerze, które nie są anulowane.

Terminal działa w trybie automatycznym, w którym bierze dokument z kolejki. Przejęcie uruchamia się tylko w tym trybie, a wybór dokumentu z listy otwiera go bez zapisu właściciela. Gdy kolejka jest pusta, terminal sprawdza, czy w magazynie są dokumenty przypisane innym operatorom.

- Przejęcie. Zapis właściciela tylko przy pustym polu.
- Wybór z listy. Otwiera dokument bez zapisu właściciela.

Dla operatora oznacza to, że dokument wybrany ręcznie z listy nie zmienia właściciela. Opis dotyczy zachowania kolektora, a nie całej pracy na dokumencie. Przejęcie w tym opisie dotyczy wersji skryptów przygotowanej dla wdrożenia demonstracyjnego i dla paczki wdrożeniowej. Zanim rozwiązanie trafi do klienta, trzeba potwierdzić, że zapytania są w jego bazie.

## Co widzi drugi operator, gdy dokument jest zajęty

Gdy dokument jest wolny, terminal wykonuje przejęcie i otwiera dokument. Gdy po przejęciu właścicielem jest kto inny, terminal pokazuje okno z informacją o zajęciu dokumentu. To okno zawiera numer dokumentu, wiersz z loginem osoby realizującej dokument i dwa wybory: otwarcie innego dokumentu albo ponowienie wejścia.

Dokument przejęty wcześniej przez ten sam login daje osobne okno, z wyborem innego dokumentu albo kontynuacji na tym terminalu. Decyzję podejmuje operator, bo system zna tylko login. Okno dla tego samego loginu i okno dla innego loginu różnią się tym, czy właścicielem jest ten sam operator, czy inny. Dla kierownika zmiany to ważne, bo okno pokazuje operatora, z którym dokument jest zajęty.

Makieta okna zajętego dokumentu pokazuje układ pól i przycisków, bez dosłownych tekstów systemu.

## Kiedy przejęcie wchodzi bez pytania

Świeże przejęcie wchodzi bez pytania, gdy stan właściciela sprzed zmiany jest pusty. Porównanie loginu z właścicielem nie rozróżnia wielkości liter. Uruchomienie bez pytania nie wymaga wyboru dokumentu, bo terminal bierze pierwszy wolny z kolejki.

- Pusty właściciel. Świeże przejęcie bez pytania.
- Wielkość liter. Login porównywany bez rozróżnienia.

Przykład porównania: login zapisany małymi literami i login zapisany wielkimi literami są traktowane jako ten sam operator. Gdy dwie sesje używają tego samego loginu, system nie rozróżnia ich po nazwie. Rozróżnia je tylko stan sprzed przejęcia, a decyzję podejmuje operator w oknie. Login nie identyfikuje osoby, więc ten sam login może być użyty przez dwie sesje. Role i loginy użytkowników opisuje strona o [rolach i użytkownikach w WMS](/role-i-uzytkownicy-w-systemie-wms/).

## Co dzieje się przy wyjściu bez zatwierdzenia

Zwolnienie przejęcia przy wyjściu bez zatwierdzenia dotyczy tylko własnego loginu i dokumentu w buforze. Dokument, który operator zostawił bez zatwierdzenia, wraca więc do kolejki, a dokument zatwierdzony nie wraca. Zwolnienie działa tylko przy wyjściu z dokumentu, nie przy samym zamknięciu okna. Co dzieje się z przypisaniem po awarii terminala, pozostaje pytaniem do analizy.

- Własny login. Zwolnienie dotyczy tylko własnego przejęcia.
- Bufor. Tylko dokument w buforze wraca do kolejki.

Przykład (dane wymyślone): dwóch operatorów przy kolektorach na jednym magazynie pracuje w trybie automatycznym.

1. Pierwszy dostaje wolny dokument i wykonuje przejęcie, a jego login zostaje zapisany jako właściciel.
2. Gdy wolnych dokumentów nie ma, drugi operator widzi ekran z dokumentami w realizacji z loginem pierwszego.
3. Kiedy pierwszy wyjdzie z dokumentu bez zatwierdzenia, przypisanie zostaje zdjęte, a dokument wraca do kolejki.

## Kiedy zamiast dokumentu pojawia się ekran zajętych

Ekran z dokumentami w realizacji pojawia się, gdy kolejka nie ma wolnych pozycji, a dokumenty są u innych operatorów. Ekran nie zamyka się sam. Pokazuje do sześciu dokumentów z licznikiem pozostałych i ma dwa przyciski: pokazania listy i odświeżenia. Ekran z tymi przyciskami daje więc możliwość ponownego sprawdzenia kolejki. Nie zawiera wyboru pojedynczego dokumentu, tylko listę do sześciu pozycji.

| Sytuacja | Ekran | Przyciski |
| --- | --- | --- |
| dokument wolny | wejście do dokumentu bez pytania | brak |
| dokument przejęty przez inny login | okno z informacją o zajęciu | wybór innego dokumentu i ponowienie wejścia |
| dokument przejęty przez ten sam login | okno z informacją o otwarciu na tym loginie | wybór innego dokumentu i kontynuacja |
| brak wolnych, dokumenty u innych | ekran z dokumentami w realizacji | pokazanie listy i odświeżenie |

Ta sama logika działa w wersji przyjęcia i w wersji wydania terminala.

## Co sprawdzić przed wdrożeniem kolektorów

Przed wdrożeniem trzeba potwierdzić, że zapytania przejęcia z najnowszymi zmianami są w bazie klienta, a nie wyłącznie w repozytorium. Warto też sprawdzić, czy terminal i baza korzystają z tej samej wersji skryptów. Taką kontrolę może przeprowadzić kierownik zmiany przed uruchomieniem kolektorów. Zrzut konfiguracji może pokazywać jeszcze starszą treść zapytania przejęcia, która zapisuje właściciela bez warunku.

- Wersja zapytania. Zależy od wgranych skryptów, a nie od samego terminala.
- Tryb pracy. Przejęcie działa tylko w trybie automatycznym.

Obsługę przyjęcia ze zlecenia przy kolektorze opisuje [artykuł o zleceniu przyjęcia](https://www.softwarestudio.com.pl/magazyn-wms-net/zlecenie-przyjecia-pozostalo/). Przyjęcie zwrotu i jego zatwierdzenie opisuje [artykuł o zwrocie od klienta](https://system.wms.net.pl/zwrot-od-klienta-dwa-etapy/). Etykieta, która powstaje przy skanie, jest plikiem PDF w archiwum, co opisuje [artykuł o etykiecie jako pliku PDF](/etykieta-plik-w-archiwum/). Brak tłumaczenia przy wydruku opisuje [artykuł o etykiecie w języku odbiorcy](https://system.wms.net.pl/etykieta-tylko-z-tlumaczeniem/).

## Pytania do analizy

Przed wdrożeniem podobnego rozwiązania zadajemy cztery pytania. To pytania do czytelnika, a nie fakty o opisywanym wdrożeniu.

1. Ilu operatorów pracuje jednocześnie na jednym koncie terminala i czy da się im przydzielić osobne loginy?
2. Czy kierownik zmiany ma widzieć listę dokumentów zajętych przez operatorów, czy wystarczy komunikat na terminalu?
3. Jak długo dokument może pozostać przypisany, gdy terminal przestanie działać bez zatwierdzenia?
4. Które dokumenty mają być przydzielane automatycznie, a które wybierane ręcznie z listy?

## Pytania i odpowiedzi o dokumencie przypisanym operatorowi

## Słownik pojęć o dokumencie przypisanym operatorowi

Terminy używane przez kierownika magazynu i wdrożeniowca, gdy kolektory przejmują dokumenty buforowe dla kilku operatorów.
