Obsługa Dokumentów PZ w Aplikacji Mobilnej dla Magazyniera
Plik android_dpmag_pz.js obsługuje proces przyjęcia zewnętrznego (PZ) w aplikacji mobilnej Studio WMS.net. Skrypt umożliwia magazynierowi skanowanie kodów EAN, przypisywanie numerów palet, rejestrowanie lokalizacji składowania oraz walidację danych przed zapisaniem operacji w systemie.
Funkcja MojaOnLoad()
Główna funkcja odpowiedzialna za inicjalizację interfejsu użytkownika:
- Ładuje parametry operacji, takie jak typ dokumentu (PZ - przyjęcie zewnętrzne).
- Tworzy dynamiczny formularz dla użytkownika.
- Inicjalizuje pola do skanowania kodów EAN i wprowadzania ilości.
- Dodaje obsługę kodów QR do automatycznego wypełniania pól.
Obsługa dokumentów PZ
Formularz podzielony jest na etapy:
STEP_REFNO - Wprowadzenie numeru zlecenia
- Użytkownik wpisuje numer referencyjny lub wybiera dokument z listy.
STEP0 - Skanowanie kodu EAN
- Użytkownik skanuje kod EAN artykułu.
- System pobiera indeks, nazwę oraz ewentualny numer partii produktu.
STEP1 - Wprowadzenie numeru partii
- Jeśli produkt posiada numer partii, użytkownik musi go wprowadzić.
STEP2 - Wprowadzenie terminu ważności
- System pozwala na wybór terminu ważności produktu.
STEP3 - Wybór rodzaju palety
- Magazynier określa typ palety (np. EPAL).
STEP4 - Wprowadzenie numeru palety
- System umożliwia rejestrację numeru palety.
- Jeśli użytkownik wpisze „0”, system automatycznie wygeneruje numer palety.
STEP5 - Wprowadzenie ilości
- System weryfikuje poprawność ilości i czy mieści się w dopuszczalnym zakresie.
STEP6 - Wprowadzenie lokalizacji docelowej
- Użytkownik określa miejsce składowania towaru.
- System sprawdza, czy lokalizacja jest aktywna i dostępna.
Obsługa walidacji danych
Skrypt monitoruje interakcje użytkownika i reaguje na:
- Wpisanie kodu EAN - pobiera informacje o produkcie.
- Wprowadzenie numeru partii - aktywuje kolejne pola.
- Wybór terminu ważności - przechodzi do etapu wyboru palety.
- Wpisanie numeru palety - system sprawdza jego poprawność.
- Wprowadzenie ilości - sprawdza, czy wartość jest większa od 0.
- Wybór lokalizacji - weryfikuje dostępność składowania.
Funkcja saveDocument()
Obsługuje zapis danych do bazy SQL:
- Tworzy zapytanie SQL do rejestracji operacji.
- Jeśli termin ważności jest wymagany, dodaje go do rekordu.
- Po poprawnym zapisie usuwa wprowadzone dane i resetuje formularz.
Funkcja saveQuestion()
Odpowiada za zakończenie operacji:
- Jeśli dokument PZ został zapisany, prosi użytkownika o potwierdzenie jego zamknięcia.
- W przeciwnym razie zamyka okno i odświeża aplikację.
Obsługa kodów QR
Skrypt wspiera:
- Skanowanie kodów QR do automatycznego wypełniania pól.
- Obsługę skanera kodów kreskowych do wprowadzania EAN i lokalizacji.
Podsumowanie funkcjonalności pliku
Plik android_dpmag_pz.js to istotne narzędzie dla magazynierów realizujących przyjęcia zewnętrzne w aplikacji Studio WMS.net. Automatyzuje proces skanowania kodów EAN, przypisywania numerów palet i rejestrowania lokalizacji. Dzięki dynamicznej walidacji system zwiększa efektywność operacji magazynowych.
Skrypt android_dpmag_pz
Skrypt android_dpmag_pz stanowi istotny moduł mobilnego interfejsu w systemie Studio WMS.net, dedykowany obsłudze dokumentów przyjęcia towaru (PZ). Jego zadaniem jest umożliwienie magazynierowi kompleksowej realizacji operacji przyjmowania zleceń, począwszy od wyboru numeru zlecenia, poprzez identyfikację asortymentu i określenie parametrów paletowych, aż po wyznaczenie lokalizacji docelowej. Poniżej przedstawiono szczegółowy opis działania skryptu, który został zaprojektowany w oparciu o wieloetapowy formularz z dynamicznie zmieniającym się interfejsem oraz mechanizmy walidacji i integracji z systemem bazodanowym.
1. Inicjalizacja i konfiguracja formularza
Ustawienia początkowe
- Pobieranie parametrów URL:
Skrypt na początku odczytuje parametry przekazywane w adresie URL - m.in. prefiks dokumentu (gcPRX) oraz typ dokumentu (gcTYPDOK). W przypadku braku tych parametrów, domyślnie przypisywane są wartości „PZ”, co odpowiada operacjom przyjęcia towaru. Dodatkowy parametrgcTryb(domyślnie ustawiany na „list”) decyduje o sposobie wyświetlania listy zleceń lub bezpośrednim przejściu do realizacji pojedynczego zlecenia.
Dynamiczne budowanie struktury formularza
- Sekcja STEP_REFNO:
W pierwszej części formularza użytkownik wprowadza numer zlecenia, a system wyświetla listę dostępnych dokumentów do realizacji. Pola umożliwiające wprowadzenie numeru zlecenia oraz ukryte pole przechowujące wewnętrzny identyfikator (REFNO) są istotne dla dalszego pobierania danych operacyjnych. - Sekcja STEP0 - Dane produktu:
Po zatwierdzeniu numeru zlecenia wyświetlane jest pole do wprowadzenia kodu EAN. Na podstawie tego kodu system pobiera z bazy dane dotyczące asortymentu, takie jak nazwa oraz indeks produktu. Dodatkowo, ukryte są pola przechowujące identyfikatory asortymentu (NRIDASN) oraz numer referencyjny dokumentu przyjęcia (REFNO_DPZLE). - Sekcja STEP1 - Numer partii:
Umożliwia wprowadzenie numeru partii (NRSERII). Wprowadzenie tego pola często jest warunkiem przejścia do kolejnych etapów formularza, gdyż numer partii pozwala na rozróżnienie pozycji w dokumencie. - Sekcja STEP2 - Termin ważności:
Formularz udostępnia kontrolkę kalendarza (WebCalendar), dzięki której magazynier może określić termin ważności przyjmowanego towaru. Wybrana data jest ważnym elementem przy dalszym przetwarzaniu dokumentu. - Sekcja STEP3 - Rodzaj palety:
Kolejnym etapem jest określenie rodzaju palety (PALETAKOD). Wprowadzenie tego pola pozwala na przypisanie towaru do właściwego typu opakowania, co jest niezbędne przy operacjach magazynowych. - Sekcja STEP4 - Numer palety:
W tym kroku użytkownik podaje numer palety (NRPALETY). Skrypt umożliwia automatyczne nadawanie numeru (poprzez funkcję ustawNumerPalety) w przypadku wprowadzenia wartości „0” oraz weryfikację numeru palety przy użyciu dedykowanego zapytania do bazy. Wynik tej weryfikacji wpływa na dalszy przebieg operacji. - Sekcja STEP5 - Ilość towaru:
Użytkownik określa ilość towaru przy użyciu kontrolki numerycznej. Skrypt ustala maksymalną dopuszczalną ilość do przyjęcia, pobraną z danych dokumentu, co zapobiega wprowadzeniu nieprawidłowych wartości. - Sekcja STEP6 - Lokalizacja docelowa:
Na końcu formularza magazynier wprowadza lokalizację docelową (ADRES) oraz, w tle, identyfikator lokalizacji (NRIDWMS). Wprowadzenie tej informacji jest istotne przy rejestracji przyjęcia towaru do systemu - system weryfikuje poprawność wprowadzonej lokalizacji, sprawdzając, czy jest aktywna, nie jest zablokowana i spełnia określone kryteria. - Sekcja listy dokumentów:
W trybie „list” (określanym przez parametrgcTryb) wyświetlana jest lista dokumentów do realizacji. Użytkownik może wybrać konkretny dokument, co automatycznie powoduje wczytanie szczegółów dotyczących tego zlecenia (funkcja setOrderList). - Przycisk „Zakończ”:
Na samym dole interfejsu umieszczony jest przycisk umożliwiający finalizację operacji, który wywołuje funkcję saveQuestion(). Po zakończeniu operacji interfejs umożliwia zatwierdzenie dokumentu oraz, w razie potrzeby, rozpoczęcie nowej operacji.
2. Obsługa zdarzeń i walidacja wprowadzanych danych
Skrypt wykorzystuje rozbudowany mechanizm zdarzeń, który zapewnia płynność i intuicyjność interakcji:
- Obsługa pola numeru zlecenia (NRZLECENIA):
Użytkownik, wprowadzając numer zlecenia, może zatwierdzić dane klawiszem Enter. Skrypt sprawdza, czy wprowadzone dane mają odpowiednią długość i format (różnicując między wpisywaniem ręcznym a automatycznym odczytem). Po zatwierdzeniu numeru, wywoływana jest funkcja setOrder(), która pobiera szczegółowe dane dokumentu. - Walidacja kodu EAN:
Pole EANASN reaguje na zdarzeniakeyuporazfocus. Po zatwierdzeniu kodu EAN wykonywane jest zapytanie do bazy (ssDataSQL), które weryfikuje istnienie kodu oraz pobiera dane asortymentu. W przypadku pomyślnego odczytu system automatycznie uzupełnia pola dotyczące asortymentu (NAZWAAS, INDEKS, NRIDASN) oraz ustala maksymalną ilość towaru do przyjęcia. - Przechodzenie między sekcjami:
Po zatwierdzeniu danych w danej sekcji (np. numer partii, termin ważności, rodzaj palety, numer palety, ilość) kolejne etapy formularza stają się widoczne. Automatyczne przewijanie formularza (funkcja scrollToEndOfPage()) zapewnia, że użytkownik zawsze widzi aktualnie aktywne pole. - Walidacja lokalizacji:
Podczas wprowadzania lokalizacji docelowej (ADRES) system sprawdza, czy podana wartość odpowiada istniejącej i aktywnej lokalizacji w bazie. W przypadku wykrycia niezgodności (np. lokalizacja wyłączona, nieaktywna lub zablokowana) użytkownik otrzymuje komunikat błędu, a pole zostaje wyczyszczone, co umożliwia ponowne wprowadzenie poprawnych danych. - Integracja ze skanerem QR:
Mechanizm integracji z modułem skanowania kodów QR umożliwia szybkie wprowadzanie danych poprzez zeskanowanie kodu EAN. Funkcje triggerInputEvent() oraz configureQr() konfigurowane są w celu umożliwienia automatycznego przekazywania zeskanowanych danych do odpowiednich pól formularza.
3. Przetwarzanie danych i zapis dokumentu
Pobieranie szczegółów dokumentu
- Funkcja getDocumentPositions() pobiera szczegółowe pozycje dokumentu PZ na podstawie numeru referencyjnego (REFNO) oraz ewentualnego dodatkowego parametru (refno_dpzle). W zależności od dostępnych danych, pozycje dokumentu są pobierane z jednego z dwóch zapytań SQL, co pozwala na dalsze operacyjne przetwarzanie.
Zapis operacji
- Funkcja saveDocument() stanowi rdzeń procesu zapisu danych operacji przyjęcia towaru. W pierwszej kolejności wykonywana jest walidacja wymaganych pól (przy użyciu funkcji JqxTestWypelnienia).
- Następnie, przed zapisem, skrypt porównuje identyfikator lokalizacji pobrany z bazy (nridwmsBaza) z wartością wprowadzaną przez użytkownika, aby upewnić się, że towar jest przyjmowany do właściwej lokalizacji.
- Dane operacji (m.in. identyfikatory asortymentu, ilość, dane paletowe, termin ważności, lokalizacja) są łączone w jeden ciąg parametrów, który jest sanitowany (zamiana pojedynczych cudzysłowów) i przesyłany do bazy danych przy użyciu funkcji ssDataSQL.
- W przypadku pomyślnego zapisu, system ustawia zmienną
positionAddedna wartość true, a funkcja getDocumentPositions() zostaje wywołana w celu odświeżenia danych dokumentu. Jeśli dokument zawiera już pozycje, formularz jest resetowany i użytkownik otrzymuje możliwość kontynuacji operacji lub zatwierdzenia dokumentu.
Finalizacja dokumentu
- Funkcja setDocumentNumber() generuje unikalny numer dokumentu PZ przy użyciu mechanizmu liczników (funkcja PobierzLicznikMiesiac) i przesyła dane finalne do bazy.
- Po zatwierdzeniu dokumentu, użytkownik otrzymuje komunikat potwierdzający, a interfejs umożliwia ewentualne rozpoczęcie nowej operacji (poprzez funkcję saveQuestion()) lub zamknięcie okna.
4. Funkcje pomocnicze
- clearPage(type):
Funkcja ta odpowiada za resetowanie poszczególnych sekcji formularza oraz wywołanie automatycznego przewijania widoku, co zapewnia, że użytkownik zawsze widzi aktywne pole. W zależności od przekazanego parametru (np. „all”, „EANASN”, „NRSERII” itd.) następuje selektywne czyszczenie danych. - ustawNumerPalety():
Funkcja ta generuje nowy, unikalny numer palety na podstawie ciągłej numeracji (wywoływana przy wprowadzeniu wartości „0” w polu numeru palety). - checkPaletNumer(inputValue):
Pozwala na weryfikację numeru palety wprowadzanej przez użytkownika poprzez zapytanie do bazy, a w przypadku znalezienia rekordów - automatyczne uzupełnienie pola z kodem palety oraz dezaktywację jego edycji. - scrollToEndOfPage():
Automatycznie przewija formularz do końca, co zwiększa wygodę użytkownika, zwłaszcza w interfejsie mobilnym. - setOrderList() i setTopOrder():
Funkcje te odpowiadają za prezentację listy dokumentów PZ dostępnych do realizacji (w trybie „list”) lub załadowanie szczegółów pierwszego dokumentu (w trybie realizacji pojedynczego zlecenia). - saveQuestion():
Umożliwia zatwierdzenie dokumentu - w przypadku, gdy operacja została wykonana poprawnie, użytkownik otrzymuje możliwość finalizacji dokumentu lub kontynuowania pracy.
Podsumowanie mechanizmu skryptu
Skrypt android_dpmag_pz w systemie Studio WMS.net stanowi kompleksowe narzędzie mobilne dedykowane realizacji operacji przyjęcia towaru (PZ). Dzięki wieloetapowemu, dynamicznie generowanemu formularzowi oraz rozbudowanym mechanizmom walidacji, integracji z bazą danych i modułem skanowania kodów QR, system umożliwia:
- Precyzyjne i szybkie wprowadzanie danych dotyczących numeru zlecenia, identyfikacji asortymentu, danych paletowych oraz lokalizacji docelowej,
- Automatyczne przełączanie się między kolejnymi etapami formularza, co usprawnia pracę magazyniera i minimalizuje ryzyko błędów,
- Weryfikację poprawności wprowadzanych danych przy użyciu zapytań do bazy, gwarantującą, że towar jest przyjmowany do właściwej lokalizacji,
- Finalizację operacji poprzez generowanie unikalnych numerów dokumentu oraz możliwość zatwierdzenia dokumentu końcowego.
Dzięki zastosowanym rozwiązaniom, system Studio WMS.net podnosi efektywność operacyjną w magazynie, usprawniając proces przyjęcia towaru i zapewniając wysoką jakość zarządzania danymi logistycznymi.