# Wskaźniki magazynu z danych WMS: co policzyć od ręki, a czego brakuje

> Które wskaźniki magazynu da się policzyć z danych WMS od ręki, a które tylko oszacować. System zapisuje login i czas zapisu, ale nie czas trwania zadania.

Adres strony: https://magazyn.softwarestudio.com.pl/wskazniki-magazynu-z-danych-wms-co-policzyc-co-oszacowac/

---

W opisywanym wdrożeniu system zapisuje przy każdej pozycji dokumentu login zapisującego i czas zapisu, ale nie zapisuje, jak długo trwała operacja. Dlatego wskaźniki wolumenowe da się policzyć od ręki, a wydajnościowe wymagają szacunku albo dobudowania pomiaru w terminalu.
Ten tekst przygotowaliśmy dla działu IT i kierownika projektu. Opisujemy w nim model danych opisywanego wdrożenia, a nie wyniki, więc liczb z bazy nie podajemy. Ogólne wskaźniki i ich wzory zestawia strona o [KPI w magazynie](/kpi-w-magazynie/), a wskaźniki mierzalne w umowie strona o [SLA w magazynie](/sla-w-magazynie/). Tekst o [KPI magazynu](https://www.programmagazyn.pl/kpi-magazynu-wskazniki/) pokazuje, skąd wziąć wskaźnik i kiedy jego wynik jest tylko szacunkiem.

## Co zapisuje każda pozycja dokumentu magazynowego

Każda pozycja dokumentu magazynowego ma login zapisującego i czas założenia wiersza z dokładnością do sekundy. Ma też trzy dane o miejscu i właścicielu: magazyn, oddział i właściciela towaru. To, czy login oznacza konkretnego pracownika, zależy od tego, czy terminale pracują na kontach imiennych.

Dokument niesie cztery znaczniki czasu: założenie wiersza, wejście do bufora, awizację i zatwierdzenie dokumentu. Z nich wynika cykl dokumentu, czyli czas od założenia w buforze do zatwierdzenia. Cykl mierzy więc czas kalendarzowy między dwoma zdarzeniami, a nie czas pracy nad dokumentem. Ta różnica wraca w sekcji o szacunkach.

## Ślad zapisu skanu i klasyfikacja odmów

Terminal zapisuje w historii zdarzeń próbę zapisu pozycji kompletacji, także odrzuconą, o ile dotarła do zapisu. Wpis ma login, czas, tytuł i zrzut parametrów wywołania z czterema danymi: numerem dokumentu i pozycji, kodem towaru, ilością i loginem. Odrzucenia wykonane wcześniej, w kontrolach na ekranie terminala, nie są zapisywane, więc zapis odmów nie jest pełną listą wszystkich odrzuceń. Odmowy, które dotarły do zapisu, da się policzyć tak samo jak sukcesy.

Odmowy mają klasyfikację powodu zapisaną jako kod w polu statusu wpisu. Cztery przyczyny mają osobne kody: brak towaru na lokalizacji, brak lokalizacji docelowej, niezgodny asortyment i błąd zapisu. Ilość większa niż stan i ilość większa niż pozostała do realizacji mają wspólny kod i różnią się tytułem wpisu. Sukces ma własny kod i własny tytuł.

| Przyczyna odmowy | Komunikat na ekranie | Kod powodu w historii |
| --- | --- | --- |
| Brak towaru na lokalizacji | „Brak asortymentu na podanej lokalizacji!” | osobny |
| Ilość większa niż stan | „Podano ilość większą jak na stanie!” | wspólny z ilością większą niż pozostała, inny tytuł wpisu |
| Brak lokalizacji docelowej | „Brak lokalizacji docelowej!” | osobny |
| Ilość większa niż pozostała do realizacji | „Podano ilość większą niż pozostała do realizacji!” | wspólny z ilością większą niż stan, inny tytuł wpisu |
| Niezgodny asortyment | „Zeskanowano niepoprawny asortyment!” | osobny |
| Błąd zapisu | „Sprawdź wprowadzone dane!” | osobny |

Komunikat „Pozycja dokumentu zapisana.” widzi operator na ekranie przy sukcesie. Numer odpowiedzi serwera, który zapisuje się w ruchu magazynowym, trafia także do wpisu historii. Ten numer łączy wpis z konkretnym ruchem, więc każdy skan, który dotarł do zapisu, jest śladem audytowym. Klasyfikację opisujemy dla kompletacji i nie rozciągamy jej na inne ekrany terminala.

Ruch z terminala ma stały znacznik terminala, a nie numer konkretnego urządzenia, oraz login zapisującego. Ruchy z terminala można więc odróżnić od niektórych zapisów z przeglądarki, jeśli formularze w przeglądarce tego znacznika nie ustawiają. Tego ostatniego warunku nie sprawdzono i trzeba go potwierdzić przed projektem raportu.

Zapis kompletacji, o którym mowa wyżej, opisuje artykuł o [kompletacji po numerze awizo](https://system.wms.net.pl/kompletacja-po-numerze-awizo-na-kolektorze/), a kontrolę przed wysyłką artykuł o [statusach skompletowane i spakowane](https://system.wms.net.pl/status-skompletowane-i-spakowane-kontrola-przed-wysylka/).

## Wskaźniki, które policzysz od ręki

Tabela zestawia osiem wskaźników z ich statusem i podstawą w danych.

| Wskaźnik | Status | Na czym się opiera |
| --- | --- | --- |
| Pozycje na pracownika | policzalny od ręki | Login i rodzaj dokumentu; indywidualnie przy kontach imiennych |
| Błędy kompletacji | policzalny od ręki | Odmowy, które dotarły do zapisu, i dziennik weryfikacji etykiet |
| Terminowość wydań | policzalny od ręki | Termin zlecenia wobec zatwierdzenia dokumentu, dla zleceń z wpisanym terminem |
| Czas realizacji zlecenia | oszacowany | Czas kalendarzowy, nie czas pracy |
| Linie na roboczogodzinę | oszacowany | Licznik jest, mianownika brak |
| Produktywność na zmianę | brakujący | Brak zmian w modelu |
| Udział czasu nieprodukcyjnego | brakujący | Przerwy nie są rejestrowane |
| Historia zajętości lokalizacji | brakujący | Tylko stan bieżący |

Na login policzysz cztery wolumeny: pozycje, sztuki, palety i obsłużonych klientów, a na pracownika tylko przy kontach imiennych. Operacje zestawia się według magazynu i oddziału oraz według godziny. Można je też liczyć na kontrakt, bo właściciel towaru jest na każdej pozycji. Magazyny i oddziały da się porównać bez żadnych zmian w systemie.

Miernikiem zgodności jest weryfikacja etykiet. Każda para skanów, która przeszła wstępną kontrolę, trafia do dziennika pięcioma danymi: znacznikiem zgodności, operatorem, datą, magazynem i oddziałem. Zgodne pary zalicza się do licznika dokumentu, a niezgodne dają sygnał „WERYFIKUJ” i zostają w dzienniku. Mechanizm opisuje artykuł o [kontroli etykiet na kolektorze](/kontrola-etykiet-na-kolektorze-dwa-skany-i-slownik-kodow/).

Zlecenia mają priorytet i oczekiwany termin realizacji, pole opcjonalne, a mechanizm już liczy pozostałą ilość. Terminowość wydań, czyli termin zlecenia wobec zatwierdzenia dokumentu, jest więc policzalna od ręki dla zleceń z wpisanym terminem. Kompletność wydań, czyli ilość zleconą wobec zrealizowanej, da się policzyć dla wszystkich zleceń.

Błędy kompletacji liczy się z odmów, które dotarły do zapisu, i z dziennika weryfikacji etykiet. Kontrole na ekranie terminala nie zostawiają wpisu, więc ten wskaźnik nie obejmuje odrzuceń z ekranu.

## Wskaźniki, które da się tylko oszacować

Czas trwania zadania można tylko oszacować. Pierwszy sposób to odstępy między kolejnymi skanami tego samego operatora, przy czym trzeba z góry ustalić, jaka przerwa przestaje być pracą. Drugi sposób to cykl dokumentu.

Szacunek dotyczy dwóch wskaźników. Czas realizacji zlecenia jest czasem kalendarzowym, a nie czasem pracy, a linie na roboczogodzinę mają licznik, ale brakuje im mianownika.

> Czas realizacji z cyklu dokumentu jest szacunkiem, a nie pomiarem, i tak musi być opisany w raporcie.

Przykład (wymyślony): operator zapisuje trzy pozycje o godzinach 08:02:10, 08:03:40 i 08:41:00. Jeśli ustalimy, że przerwa dłuższa niż 15 minut nie jest pracą, dwa pierwsze zapisy należą do jednej serii, a trzeci zaczyna nową. Wynik zależy od przyjętego progu, więc próg trzeba zapisać w opisie wskaźnika, a wynik oznaczyć w raporcie jako szacunek.

## Czego brakuje i jakie pytania zadać klientowi

W modelu brakuje pięciu rzeczy. Tabela pokazuje, który wskaźnik każda z nich blokuje.

| Czego brakuje | Skutek dla wskaźników |
| --- | --- |
| Pary start i stop zadania | Czas trwania zadania można tylko oszacować |
| Przypisania pracownika do zmiany lub brygady | Brak produktywności na zmianę |
| Norm czasowych per typ operacji | Brak porównania wyniku z normą |
| Rejestracji czasu nieprodukcyjnego, w trzech rodzajach: przerwy, przejścia, oczekiwanie na towar | Brak udziału czasu nieprodukcyjnego |
| Historii zajętości lokalizacji | Jest tylko stan bieżący; przebieg wymaga dobowego zrzutu stanu |

Usługi dodatkowe mają identyfikator pracownika z kartoteki, ilość i cenę. W ruchach z terminala pracownik jest rozpoznawany po loginie: kolumna z identyfikatorem pracownika istnieje, ale zapis z terminala jej nie wypełnia. Dzienny stan palet liczony z ruchów opisuje artykuł o [paletodobie w T-SQL](https://sql.server.net.pl/sql-server/paletodoba-w-t-sql-dzienny-stan-palet-z-przyjeciami-dnia/).

Przed projektem raportów zadajemy cztery pytania. Odpowiedzi decydują o tym, które wskaźniki da się policzyć wstecz. Raporty dla klientów operatora wymagają osobnej warstwy i odcięcia danych, które opisuje artykuł o [Power BI nad bazą WMS](https://sql.server.net.pl/sql-server/power-bi-na-bazie-wms-warstwa-raportowa-i-odciecie-per-klient/).

- Konta: czy terminale pracują na kontach imiennych, czy współdzielonych, bo od tego zależy, czy wskaźniki indywidualne policzy się wstecz.
- Grafik: skąd pochodzi grafik zmian i liczba roboczogodzin.
- Zakres: które magazyny wchodzą w zakres raportów.
- Odbiorcy: czy raporty mają trafiać do klientów operatora.

## Wskaźniki zarządcze a wskaźniki indywidualne

Wskaźniki zarządcze opisują dane w jednym z trzech agregatów: zmiany, brygady albo magazynu. Wskaźniki indywidualne dotyczą jednej osoby i są wykorzystywane wyłącznie w uzgodnionym, nazwanym celu, bo ocena indywidualna dotyka danych osobowych i bywa powiązana z regulaminem premiowym.

Rozróżnienie proponujemy sami, zanim zapyta o nie dział kadr. Podział rozstrzyga, które wskaźniki mogą stać w zwykłych raportach, a które tylko w uzgodnionym celu. Raport o magazynie nie wymaga loginu, a raport o osobie wymaga kont imiennych i uzgodnienia, do czego posłuży.

## Pytania i odpowiedzi o wskaźnikach magazynu z danych WMS

## Słownik pojęć o wskaźnikach magazynu

Terminy używane przez dział IT i kierownika projektu, gdy z danych WMS powstają wskaźniki.
