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.

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ę.

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.

Studio WMS.net - sekcja Magazyn, panel ulubionych z szybkim dostępem do zapisanych widoków i raportów
Panel ulubionych w Studio WMS.net - zapisane widoki, raporty i dokumenty w zasięgu jednego kliknięcia

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ówcaKierunekTrybTypowe dane
Terminal Androidmagazynierdwukierunkowyna bieżącozadania i skany
API lub WebServicesystem ERPdwukierunkowyzdarzeniowyzamówienia i potwierdzenia
EDIsieć handlowa, duży dostawcadwukierunkowykomunikaty wsadoweORDERS, DESADV, INVOIC
Panel webowyklient 3PL, dostawcaodczytna żądaniestany i statusy zamówień
API partnerasklep internetowy, przewoźnikdwukierunkowyzdarzeniowyzamó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.

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.

KomunikatZnaczenieSkutek w magazynie
ORDERSzamówienie od odbiorcyzlecenie wydania do kompletacji
DESADVawizo wysyłki od dostawcyawizacja dostawy z oknem czasowym na rampie
INVOICfakturaobsł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.

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.

Warto przeczytać

Wydruk etykiet paletowych w magazynie wysokiego składowania przed wyjazdem do sieci
Etykiety paletowe GS1 przy wysokim składowaniu: układ pól, numer SSCC, GTIN i kod EAN128C. Moduł Etykiety Netto.net w Studio WMS.net i drukarki Zebra. Sprawdź.
Czytaj artykuł →
Programy magazynowe Studio WMS.net dla magazynu wysokiego składowania
Wdrożenie programu magazynowego WMS: pomiar procesów, czyszczenie kartotek, pilotaż, szkolenie i moduły. Przykład kontroli danych w T-SQL oraz praca terminali.
Czytaj artykuł →
Wysyłka kurierska z magazynu wysokiego składowania - wybór przewoźnika po skanie zamówienia
Wysyłka kurierska z magazynu wysokiego składowania: reguły wyboru przewoźnika, wymiana przez API, etykieta transportowa i numer listu w Studio WMS.net.
Czytaj artykuł →
Serwer raportów w systemie WMS dla magazynu wysokiego składowania - Studio WMS.net
Serwer raportów WMS oparty na SSRS: kategorie raportów, edycje SQL Server, uprawnienia i monitoring wykonań w bazie ReportServer. Eksport do PDF, Excel i CSV.
Czytaj artykuł →
Magazyn wysokiego składowania - definicja, wyposażenie i system WMS
Definicja magazynu wysokiego składowania: próg 7,2 m, regały, wózki VNA, układnice ASRS i adresowanie lokalizacji w WMS. Porównanie z niskim składowaniem.
Czytaj artykuł →
System magazynowy WMS dla magazynów wysokiego składowania
System magazynowy WMS dla regałów wielopoziomowych: adres lokalizacji, nośność gniazd, przydział miejsc, kompletacja i koszty. Przykład zapytania T-SQL.
Czytaj artykuł →