Formularz jest narzędziem pracy magazyniera, a jego układ wpływa na tempo wpisywania danych i liczbę pomyłek. Pole ustawione w złej kolejności kosztuje kilka sekund przy każdym dokumencie, a przy tysiącu dokumentów dziennie robi się z tego godzina pracy. Dlatego formularz projektuje się z równą starannością jak proces, który obsługuje.
Spis treści
- Z czego składa się formularz magazynowy
- Platforma low-code StudioSystem i projektant formularzy
- Kolejność pól i nawigacja klawiaturą
- Walidacja w formularzu i w bazie danych
- Dwa widoki: komputer stacjonarny i terminal
- Test formularza przed wdrożeniem
- Dopasowanie formularza do kontrahenta i towaru
- Pytania i odpowiedzi o projektowanie formularzy WMS
- Glosariusz pojęć związanych z formularzami WMS
Z czego składa się formularz magazynowy
Formularz dokumentu składa się z nagłówka i sekcji pozycji. W nagłówku znajdują się dane wspólne, na przykład kontrahent i data. Pozycje zawierają towar i ilość, a także lokalizację z parametrami partii. Podział odpowiada strukturze dokumentu, więc operator wie, w której części ekranu się znajduje.
Przykładem jest formularz dokumentu PZB, czyli przyjęcia bezpośredniego bez wcześniejszego zlecenia. Po wypełnieniu nagłówka przycisk Dalej przenosi użytkownika do sekcji pozycji. Pole kontrahenta podpowiada wartości po wpisaniu dwóch znaków, a data ma kalendarz z bieżącym dniem jako wartością początkową.
| Element formularza | Zadanie | Przykład w Studio WMS.net |
|---|---|---|
| Pole z podpowiedzią | skraca wpisywanie i ogranicza literówki | kontrahent po dwóch wpisanych znakach |
| Wartość domyślna | oszczędza czas przy typowym przypadku | data bieżąca w polu Z dnia |
| Pole wymagane | blokuje zapis niekompletnego rekordu | SKU i jednostka miary w asortymencie |
| Pole wyboru kontrolne | włącza dodatkowe wymagania w operacjach | Wymagana seria, Wymagana data ważności |
| Zakładki | dzielą długi formularz na części | dane ewidencyjne, uzupełniające i inne |
Platforma low-code StudioSystem i projektant formularzy
Studio WMS.net działa na platformie StudioSystem. Wbudowany projektant formularzy pracuje w trybie przeciągnij i upuść. Dodanie pola albo zmiana kolejności nie wymaga zmian w kodzie źródłowym programu, a to samo dotyczy reguł walidacji. Zmianę wykonuje administrator systemu albo wdrożeniowiec w ciągu kilku minut.
Taki sposób pracy oszczędza czekanie na programistę przy drobnych, ale ważnych poprawkach. Dodanie pola na formularzu inwentaryzacji albo uproszczenie ekranu kompletacji na terminalu sprowadza się do zmiany w projekcie formularza, bez nowej wersji aplikacji. Szczegóły konfiguracji programu opisuje strona o konfiguracji programu magazynowego.
Przykład: przyjęcie towaru z partią i terminem ważności
W firmie spożywczej formularz przyjęcia wymaga numeru partii oraz terminu ważności. W firmie, która przyjmuje elementy do produkcji, wystarczy kod towaru i ilość. Trzeci magazyn doda pole z potwierdzeniem kontroli jakości opakowania. Każdy z tych układów powstaje z tego samego formularza przez zmianę pól, a nie przez osobne wersje programu.
Zrzut pokazuje trzecią zakładkę formularza asortymentu. Pola wyboru Wymagana seria i Wymagana data ważności włączają obowiązkową kontrolę podczas operacji magazynowych. Sekcja Cechy pozwala zdefiniować trzy własne atrybuty towaru, a więc dopasowanie formularza do branży nie wymaga zmiany bazy.
Parametry, które ustala projektant
- Pole. Typ danych i długość oraz informacja, czy pole jest wymagane.
- Walidacja. Reguła sprawdzana przed zapisem, na przykład ilość większa od zera albo data ważności późniejsza od daty przyjęcia.
- Kolejność. Układ pól zgodny z kolejnością, w jakiej operator dysponuje danymi, a nie z układem tabeli w bazie.
- Widok. Osobny układ dla komputera stacjonarnego i dla terminala z małym ekranem.
Kolejność pól i nawigacja klawiaturą
Kolejność pól ustala się według kolejności, w jakiej operator dysponuje danymi, a nie według układu tabeli w bazie. Dokument papierowy lub etykieta dostawcy układa informacje w określonym porządku i formularz powinien go powtarzać. Klawisz TAB przesuwa kursor do następnego pola, a kombinacja Shift i TAB do poprzedniego, więc operator nie sięga po mysz.
Pole wymagane stawia się wcześnie, a pola opcjonalne na końcu sekcji. Jeśli zapis wymaga dziesięciu pól, a trzy z nich zwykle zostają puste, formularz zachęca do pomijania całej sekcji. Grupowanie pól według tematu, na przykład danych identyfikacyjnych i parametrów pakowania, skraca przeszukiwanie ekranu wzrokiem.
Walidacja w formularzu i w bazie danych
Reguła sprawdzana w formularzu poprawia wygodę, ale nie gwarantuje poprawności danych. Rekord może trafić do bazy innym kanałem, na przykład z importu albo z interfejsu API. Dlatego krytyczne reguły zapisuje się także w bazie danych. Poniższy przykład jest ilustracyjny i nie pokazuje schematu produktu.
CREATE TABLE dbo.PozycjeDokumentu (
PozycjaId int IDENTITY PRIMARY KEY,
DokumentId int NOT NULL,
AsortymentId int NOT NULL,
LokalizacjaId int NOT NULL REFERENCES dbo.Lokalizacje (LokalizacjaId),
Ilosc decimal(18,3) NOT NULL
CONSTRAINT CK_Pozycje_Ilosc CHECK (Ilosc > 0),
NumerSerii nvarchar(40) NULL,
DataWaznosci date NULL
);
Ograniczenie CHECK odrzuca ilość zero lub ujemną niezależnie od sposobu zapisu. Klucz obcy do tabeli lokalizacji uniemożliwia wskazanie miejsca, które nie istnieje. Zasady budowy kluczy opisuje dokumentacja relacji kluczy obcych.
Reguła zależna od innej tabeli, na przykład wymóg numeru serii dla asortymentu z włączoną kontrolą, nie mieści się w ograniczeniu CHECK. Do takich przypadków służy wyzwalacz albo procedura zapisująca dokument.
CREATE TRIGGER dbo.trg_Pozycje_Seria ON dbo.PozycjeDokumentu
AFTER INSERT, UPDATE AS
BEGIN
IF EXISTS (SELECT 1 FROM inserted AS i
JOIN dbo.Asortyment AS a ON a.AsortymentId = i.AsortymentId
WHERE a.WymaganaSeria = 1 AND i.NumerSerii IS NULL)
BEGIN
ROLLBACK TRANSACTION;
THROW 50001, 'Asortyment wymaga numeru serii.', 1;
END
END;
Reguła: walidacja w formularzu jest wygodą użytkownika, a walidacja w bazie jest gwarancją danych. Import i API omijają formularz, ale nie omijają ograniczeń bazy. Budowę wyzwalaczy opisuje dokumentacja CREATE TRIGGER.
Dwa widoki: komputer stacjonarny i terminal
Pracownik z kolektorem pracuje w ruchu i często w słabym świetle. Formularz na jego ekranie ogranicza się do pól niezbędnych do zadania, a główną metodą wprowadzania danych jest skan kodu kreskowego. Na komputerze biurowym ten sam dokument może mieć więcej pól i zakładek, bo użytkownik ma klawiaturę i duży ekran.
W Studio WMS.net tworzy się osobne widoki formularzy dla obu środowisk. Na terminalu proces sprowadza się do kilku dużych przycisków i pól przyjmujących skan, a po skanie kursor przechodzi do następnego wymaganego pola. Zasady pracy aplikacji mobilnej opisuje strona o aplikacji WMS na Androida, a ergonomię skrótów opisuje menu ulubione.
Proces przyjęcia, dla którego powstają takie formularze, omawia artykuł o przyjęciu do magazynu. Dane towaru i kontrahenta zapisuje się w kartotekach magazynowych. Szerszy kontekst systemów w magazynie podaje strona system w magazynie.
Test formularza przed wdrożeniem
Zmieniony formularz sprawdza się na danych granicznych, bo błąd wychodzi dopiero wtedy, gdy użytkownik wpisze nietypową wartość. Test powinien przejść ścieżkę od otwarcia formularza do zapisu dokumentu, a nie tylko obejrzeć układ ekranu.
- Puste pola wymagane. Zapis musi zostać zablokowany z czytelnym komunikatem, który wskazuje brakujące pole.
- Wartości graniczne. Ilość równa zero oraz bardzo długi tekst nie mogą przejść bez reakcji.
- Skan zamiast wpisywania. Pole przyjmujące kod kreskowy musi poradzić sobie z kodem o innej długości niż oczekiwana.
- Widok terminala. Test na urządzeniu z prawdziwym ekranem, bo emulacja nie pokazuje przycisków zasłoniętych klawiaturą ekranową.
Po akceptacji testów zmianę wprowadza się poza godzinami szczytu i informuje użytkowników o nowym układzie. Operatorzy, którzy pracowali na starym ekranie, szukają pól tam, gdzie były poprzednio. Krótka notatka z opisem zmiany przy pierwszej zmianie roboczej skraca ten okres i zmniejsza liczbę zgłoszeń do działu IT.
Dopasowanie formularza do kontrahenta i towaru
Formularze kartotekowe są najczęściej rozbudowywane, bo przechowują dane stałe. Formularz kontrahenta ma pola identyfikacyjne i osobną zakładkę z godzinami pracy oraz rodzajem ubezpieczenia. Osobne pole zawiera adres e-mail do automatycznych powiadomień. Godziny pracy wpisuje się w formacie H:M - H:M, co odpowiada zapisowi używanemu na hali.
Projektant ustala, które z tych pól są wymagane przy zakładaniu kontrahenta, a które uzupełnia się później. Zbyt wiele pól wymaganych na początku spowalnia dodawanie kontrahentów i zachęca do wpisywania danych zastępczych. Dane zastępcze są gorsze od pustego pola, bo wyglądają jak poprawne. Pusta wartość w raporcie widać od razu i da się ją uzupełnić, a fałszywy NIP albo adres e-mail przechodzi kontrolę i wraca dopiero przy pierwszej nieudanej wysyłce powiadomienia lub dokumentu do kontrahenta.
Wzory dokumentów po zapisaniu trafiają do obiegu opisanego na stronie o dokumentach magazynowych. Wynik pracy operatora widoczny w zestawieniach opisuje serwer raportów.
Pytania i odpowiedzi o projektowanie formularzy WMS
Nie, jeśli zmiana polega na dodaniu pola, zmianie kolejności albo regule walidacji. Wykonuje ją administrator w projektancie formularzy na platformie StudioSystem. Zmiana wymagająca nowej logiki obliczeń może wymagać pracy wdrożeniowca.
Nie wystarcza. Dane mogą wpłynąć innym kanałem niż formularz, na przykład importem albo przez API. Krytyczne reguły, takie jak ilość większa od zera, zapisuje się też w bazie jako ograniczenia i wyzwalacze.
Formularz na terminalu ma mniej pól i większe przyciski, bo użytkownik pracuje w ruchu, a dane wprowadza głównie skanem. Formularz na komputerze zawiera więcej pól i zakładek. W Studio WMS.net oba widoki projektuje się osobno dla tego samego dokumentu.
W formularzu asortymentu włącza się pola Wymagana seria i Wymagana data ważności, które aktywują obowiązkową kontrolę przy operacjach. Dodatkowe atrybuty towaru można zdefiniować w sekcji Cechy. Pole w formularzu dokumentu dopasowuje projektant formularzy.
Tyle, ile potrzeba do pierwszej operacji, a nie do wszystkich przyszłych zastosowań. Pozostałe dane uzupełnia się później. Nadmiar wymaganych pól prowadzi do wpisywania wartości zastępczych.
Glosariusz pojęć związanych z formularzami WMS
- Formularz
- Ekran wprowadzania danych dokumentu lub kartoteki, złożony z pól, zakładek i przycisków.
- Low-code
- Sposób tworzenia i zmiany aplikacji przez konfigurację i projektant graficzny, z ograniczoną ilością ręcznie pisanego kodu.
- StudioSystem
- Platforma, na której działa Studio WMS.net, z wbudowanym projektantem formularzy.
- Walidacja
- Sprawdzenie poprawności danych przed zapisem, w formularzu albo w bazie danych.
- Ograniczenie CHECK
- Reguła w tabeli SQL Server odrzucająca zapis wiersza, który nie spełnia warunku logicznego.
- Klucz obcy
- Ograniczenie wymagające, aby wartość kolumny istniała w tabeli powiązanej, na przykład lokalizacja w tabeli lokalizacji.
- Wyzwalacz
- Procedura w bazie uruchamiana automatycznie po zapisie lub zmianie wiersza, sprawdzająca reguły wykraczające poza jedną tabelę.
- Kolektor danych
- Przenośny terminal ze skanerem kodów kreskowych, na którym operator wykonuje operacje magazynowe.