Program magazynowy rozmawia z czterema rodzajami rozmówców. Pierwszym jest operator przy biurku, drugim operator na hali, trzecim system ERP, a czwartym partner spoza firmy. Każdy używa innego kanału i inaczej znosi opóźnienia. Poniżej kanały opisano od najbliższego użytkownikowi do najdalszego, a część techniczna pokazuje, jak zabezpieczyć wymianę danych przed duplikatami.
Spis treści
- Praca przy biurku: mysz, klawiatura i menu ulubione
- Kanały wymiany danych
- Integracja z ERP: zlecenia i potwierdzenia
- EDI w praktyce
- Bezpieczeństwo kanałów integracyjnych
- Terminale i aplikacje mobilne
- Panele webowe i API dla partnerów
- Pytania i odpowiedzi o komunikację z programem magazynowym
- Glosariusz pojęć związanych z komunikacją z programem
Praca przy biurku: mysz, klawiatura i menu ulubione
Studio WMS.net pozwala wykonać każdą operację myszą i klawiaturą. Ta sama czynność ma kilka dróg, więc użytkownik wybiera styl, który mu odpowiada. Wybór nie zmienia wyniku, bo zapis po obu stronach przechodzi przez tę samą logikę.
- Mysz. Wygodna w tabelach i w strukturze menu. Kliknięcie w odpowiednie miejsce ekranu uruchamia funkcję zależnie od klikniętego obiektu.
- Klawiatura. Szybsza przy rutynowej pracy na formularzach. Klawisz TAB przenosi kursor do następnego pola, a Shift z TAB do poprzedniego.
Użytkownik może zbudować własne menu ULUBIONE z najczęściej używanymi transakcjami. Lista jest przypisana do konta, a nie do stanowiska, więc po zalogowaniu na innym komputerze użytkownik widzi ten sam zestaw. Funkcję opisuje strona o menu ulubionych.
Kanały wymiany danych
Poza interfejsem użytkownika program wymienia dane z innymi systemami. Kanał dobiera się do rozmówcy, bo ERP wymaga innej częstotliwości wymiany niż sieć handlowa korzystająca z EDI. Tabela zestawia pięć kanałów z kierunkiem i trybem pracy.
| Kanał | Rozmówca | Kierunek | Tryb | Typowe dane |
|---|---|---|---|---|
| Terminal Android | magazynier | dwukierunkowy | na bieżąco | zadania i skany |
| API lub WebService | system ERP | dwukierunkowy | zdarzeniowy | zamówienia i potwierdzenia |
| EDI | sieć handlowa, duży dostawca | dwukierunkowy | komunikaty wsadowe | ORDERS, DESADV, INVOIC |
| Panel webowy | klient 3PL, dostawca | odczyt | na żądanie | stany i statusy zamówień |
| API partnera | sklep internetowy, przewoźnik | dwukierunkowy | zdarzeniowy | zamówienia i numer listu przewozowego |
Integracja z ERP: zlecenia i potwierdzenia
System ERP przechowuje zamówienia klientów i awizowane dostawy. Tam też znajdują się dane produktów. Gdy w ERP pojawia się nowe zamówienie, trafia ono do WMS i tworzy zlecenie wydania. Po zakończeniu kompletacji magazyn wysyła potwierdzenie, na którego podstawie ERP aktualizuje stany i wystawia fakturę.
Takie przepływy opisują strony o integracji z Subiekt nexo PRO oraz o integracji z SAP. W obu przypadkach ważne jest rozdzielenie odpowiedzialności: ERP odpowiada za dokumenty handlowe, a WMS za fizyczny ruch palet.
Komunikat synchroniczny i kolejka
Wywołanie synchroniczne wymaga, by obie strony działały w tej samej chwili. Gdy ERP jest niedostępne podczas aktualizacji, potwierdzenie z magazynu przepada albo blokuje operatora. Kolejka rozwiązuje ten problem: komunikat zapisuje się w tabeli ze statusem i przetwarza osobny proces, który ponawia próby po awarii.
Poniższy przykład jest ilustracyjny i nie pokazuje schematu produktu. Proces odbierający pobiera jeden nowy komunikat, oznacza go jako przetwarzany i zwraca jego treść.
WITH nastepny AS (
SELECT TOP (1) *
FROM dbo.KolejkaKomunikatow WITH (ROWLOCK, UPDLOCK, READPAST)
WHERE Status = 0 -- 0 nowy, 1 w toku, 2 zakończony, 3 błąd
ORDER BY KomunikatId
)
UPDATE nastepny
SET Status = 1, Proby = Proby + 1
OUTPUT inserted.KomunikatId, inserted.Typ, inserted.Tresc;
Wskazówka READPAST sprawia, że drugi proces pomija wiersze zablokowane przez pierwszy i bierze następny komunikat, więc dwa procesy nie przetwarzają tego samego zlecenia. Blokada UPDLOCK jest trzymana do końca transakcji. Przetwarzanie komunikatu i zmianę jego statusu na zakończony warto objąć jedną transakcją, co opisuje dokumentacja BEGIN TRANSACTION.
Reguła: każdy komunikat przychodzący ma identyfikator biznesowy, na przykład numer zamówienia w ERP, a baza ma na nim unikalny indeks. Ponowne dostarczenie tego samego komunikatu nie może utworzyć drugiego zlecenia wydania. Składnię indeksów opisuje dokumentacja CREATE INDEX.
Potwierdzenie wydania pokazuje, jak wygląda przepływ przez kolejkę w opisanym wzorcu. Operator kończy kompletację skanem, a dokument wydania zostaje zamknięty i powstaje komunikat dla ERP. Podany podział na etapy jest ilustracją wzorca, a nie opisem wewnętrznej budowy produktu. Sam proces wydania opisuje artykuł o wydaniu z magazynu.
- Zamknięcie dokumentu. Zapis obejmuje dokument wydania oraz pomniejszenie stanu lokalizacji w jednej transakcji.
- Wpis do kolejki. W tej samej transakcji powstaje komunikat ze statusem nowy, więc dokument i komunikat nie rozchodzą się po awarii.
- Wysyłka do ERP. Proces odbierający pobiera komunikat, zmienia status na w toku i przekazuje dane do systemu nadrzędnego.
- Potwierdzenie. Po odpowiedzi ERP komunikat dostaje status zakończony, a po błędzie status błąd z treścią odpowiedzi.
Monitorowanie kolejki
Kolejka, której nikt nie obserwuje, zaczyna kłamać po kilku dniach. Komunikaty ze statusem błędu zalegają, a najstarszy komunikat nowy czeka godzinami, bo proces odbierający stoi. Wystarczy proste zapytanie sprawdzające liczbę komunikatów w statusach i wiek najstarszego w każdym z nich.
SELECT Status,
COUNT(*) AS Liczba,
MIN(DataUtworzenia) AS Najstarszy
FROM dbo.KolejkaKomunikatow
GROUP BY Status;
Wynik podłącza się do alertu albo do raportu na serwerze raportów, co opisuje strona o serwerze raportów w Studio WMS.net. Alert uruchamia się, gdy liczba komunikatów w statusie błędu przekroczy próg albo najstarszy komunikat ze statusem nowy jest starszy niż kilkanaście minut.
EDI w praktyce
Duże sieci handlowe i ważni dostawcy wymagają komunikacji w standardzie EDI, czyli elektronicznej wymiany dokumentów w ustalonym formacie. Eliminuje ona ręczne przepisywanie, bo obie strony używają tych samych pól i kodów. Komunikaty mają ustalone typy, a każdy ma odpowiednik w procesie magazynowym.
| Komunikat | Znaczenie | Skutek w magazynie |
|---|---|---|
| ORDERS | zamówienie od odbiorcy | zlecenie wydania do kompletacji |
| DESADV | awizo wysyłki od dostawcy | awizacja dostawy z oknem czasowym na rampie |
| INVOIC | faktura | obsługuje ERP, a magazyn dostarcza dane o wydanych ilościach |
Awizo wysyłki wpisuje się w proces planowania rampy, który opisuje strona o awizacji dostaw. Gdy dane z DESADV zgadzają się z dokumentem dostawcy, przyjęcie przebiega bez ręcznego wprowadzania pozycji. Obsługa EDI i API jest ważna dla magazynów obsługujących wielu klientów, co opisuje strona o oprogramowaniu 3PL WMS.
Bezpieczeństwo kanałów integracyjnych
Każdy kanał, którym program przyjmuje dane z zewnątrz, jest potencjalnym punktem wejścia. Dla integracji zakłada się osobne konto techniczne z uprawnieniami ograniczonymi do jednej funkcji. Ruch przez Internet odbywa się szyfrowanym połączeniem, a konto ERP nie powinno mieć prawa do zmiany ustawień programu.
- Osobne konto. Każda integracja ma własne konto, więc w dzienniku widać, który system wprowadził daną zmianę.
- Minimalne uprawnienia. Konto ERP zapisuje zlecenia i odczytuje potwierdzenia, ale nie edytuje kartotek.
- Dziennik komunikatów. Treść i czas każdego komunikatu są zapisywane, co ułatwia wyjaśnianie sporów z kontrahentem.
- Wymiana poświadczeń. Hasła kont technicznych zmienia się po zmianie osób odpowiedzialnych za integrację.
Terminale i aplikacje mobilne
Aplikacja na Androidzie zastępuje papierową listę kompletacyjną. Terminal pokazuje lokalizację i towar do pobrania, a operator potwierdza wykonanie skanem kodu lokalizacji i kodu towaru. System weryfikuje skan od razu i aktualizuje stan, więc kolejny operator widzi stan po tej operacji.
Taka pętla zwrotna działa w sekundach i ogranicza liczbę pomyłek w zadaniach powtarzalnych. Gdy skan nie zgadza się z zadaniem, system blokuje operację i wyświetla komunikat. Operator musi potwierdzić poprawną lokalizację albo towar. Błędny skan nie zmienia stanu magazynowego. Dopiero poprawny skan zamyka zadanie i wpisuje operację do historii z czasem oraz nazwą operatora. Konfigurację aplikacji i obsługę urządzeń opisuje strona o aplikacji WMS na Androida.
Panele webowe i API dla partnerów
Klient firmy logistycznej loguje się do panelu i sprawdza stany swoich towarów oraz status zamówienia. Zakres widocznych danych powinien ograniczać się do konta klienta. Rozwiązanie opisuje strona o module internetowym dla kontrahentów.
API pozwala połączyć magazyn ze sklepem internetowym albo systemem spedytora. Zamówienie ze sklepu trafia do WMS, a po wysyłce numer listu przewozowego wraca do platformy sprzedażowej. Model rozliczeń w magazynach kontraktowych opisuje strona 3PL - co to jest.
Program dostępny przez Internet nie wymaga instalacji, a aktualizacje przebiegają w tle. Wszystkie dane są na centralnym serwerze, a codzienne kopie zapasowe zabezpieczają je na wypadek awarii. Ten model opisuje strona o programie magazynowym online.
Pytania i odpowiedzi o komunikację z programem magazynowym
Najczęściej przez API lub usługę WebService, bo oba rozwiązania działają zdarzeniowo, a dane mają strukturę. EDI wybiera się, gdy partner tego wymaga. Dla ERP z bezpośrednim połączeniem, na przykład Subiekt nexo PRO albo SAP, producent systemu udostępnia własne mechanizmy integracji.
Komunikat zostaje w kolejce ze statusem nowy lub błąd, a osobny proces ponawia próbę. Praca operatorów na hali nie jest blokowana. W typowym schemacie po kilku nieudanych próbach komunikat trafia do ręcznej obsługi administratora.
Każdy komunikat przychodzący ma identyfikator biznesowy, na przykład numer zamówienia w ERP, a baza ma na nim unikalny indeks. Próba zapisania drugiego komunikatu z tym samym numerem kończy się błędem lub jest ignorowana. Zlecenie powstaje wtedy tylko raz.
Zwykle nie, bo dane wprowadza skanem kodów kreskowych. Klawiatura ekranowa jest potrzebna sporadycznie, na przykład do wpisania ilości. Formularze na terminalu ogranicza się do pól niezbędnych do zadania.
Nie powinien. Panel dla kontrahentów pokazuje dane przypisane do konta zalogowanego klienta, czyli jego stany i jego zamówienia. Zakres danych trzeba sprawdzić przy konfiguracji konta, bo od niego zależy poufność zleceniodawców.
Glosariusz pojęć związanych z komunikacją z programem
- EDI
- Electronic Data Interchange, ustandaryzowana elektroniczna wymiana dokumentów handlowych między systemami partnerów.
- ORDERS
- Komunikat EDI z zamówieniem odbiorcy, który w magazynie staje się zleceniem wydania.
- DESADV
- Komunikat EDI z awizem wysyłki, opisujący zawartość i termin dostawy.
- API
- Application Programming Interface, zestaw reguł pozwalający jednej aplikacji wywoływać funkcje drugiej bez udziału użytkownika.
- WebService
- Usługa dostępna przez sieć, przyjmująca zapytania w ustalonym formacie i zwracająca odpowiedź.
- Kolejka komunikatów
- Tabela albo usługa, w której komunikaty czekają na przetworzenie, z możliwością ponowienia po awarii.
- Idempotentność
- Cecha operacji, której wielokrotne wykonanie z tymi samymi danymi daje taki sam wynik jak jedno wykonanie.
- Kolektor danych
- Przenośny terminal ze skanerem kodów kreskowych, na którym operator potwierdza operacje magazynowe.