W skrócie

Duży klient operatora logistycznego wymaga komunikatów, a nie plików z Excela. W opisywanym wdrożeniu WMS importuje zlecenia przyjęcia i wydania w formacie EDI przez SFTP, zapisuje je w tabelach pośrednich i odsyła potwierdzenia z numerami SSCC w plikach JSON i EDI.

Duży klient operatora, międzynarodowy browar, wymaga komunikatów, a nie plików z Excela. W opisywanym wdrożeniu WMS przyjmuje zlecenia przyjęcia i wydania w formacie EDI przez SFTP, a potwierdzenia z numerami SSCC odsyła w plikach JSON i EDI. Dane przechodzą przez tabele pośrednie, więc każdy etap da się sprawdzić osobno.

Tytuł mówi o braku pośrednika. W opisywanym wdrożeniu WMS pobiera komunikaty z serwera SFTP klienta i sam zapisuje potwierdzenia w katalogu wyjściowym, bez platformy EDI w środku.

Mechanizm z tego artykułu należy do warstwy dedykowanej wdrożenia na platformie Studio WMS.net, czyli do skryptów i procedur napisanych dla tego klienta. Opisujemy cztery procedury importu, cztery widoki eksportu i sposób testowania bez ingerencji w pliki na serwerze.

Dlaczego EDI, a nie plik z Excela

Plik z Excela dobrze obsługuje wymianę z jednym nadawcą, który sam układa kolumny. Przy dużym kliencie sensowniejszy jest komunikat, w którym nagłówek i pozycje mają ustalony układ, a odbiorca nie zgaduje znaczenia kolumn. Plik z Excela zwykle nie ma narzuconego schematu, a komunikat EDI ma ustalone segmenty, więc procedura importu może odrzucić wadliwy dokument i zapisać powód w raporcie błędów. Excel jako źródło zamówień opisuje strona o imporcie z Excela, a wymianę plików CSV artykuł o integracji WMS z ERP przez SFTP.

Z notatek ze spotkania projektowego z 2020 roku wynika uzgodniony zakres. Od klienta do WMS idą dwa komunikaty, zlecenie przyjęcia (ZPZ) i zlecenie wydania z magazynu (ZWZ). Do klienta wracają potwierdzenia wykonania przyjęcia i wydania, a uzgodniono też komunikat o przygotowaniu palet mix. Jest to zakres ustalony na spotkaniu, a nie lista funkcji obecnych w każdym wdrożeniu. Import i eksport EDI przez SFTP pojawił się w opisywanym wdrożeniu w 2024 roku, a eksport w formatach JSON i EDI doszedł w 2025 roku.

Strony komunikacji

Wymiana odbywa się przez serwer SFTP klienta, a WMS loguje się do niego kluczem SSH. Po jednej stronie stoi system klienta, który nadaje zlecenia i odbiera potwierdzenia, a po drugiej WMS, który je importuje i eksportuje. Komunikaty od klienta WMS pobiera z serwera, a własne potwierdzenia zapisuje w katalogu wyjściowym. Schemat obejmuje oba rodzaje wymiany: plik CSV oraz komunikat EDI.

Schemat wymiany plików CSV i komunikatów EDI między systemem klienta a WMS przez serwer SFTP, z potwierdzeniami
Górny rząd schematu pokazuje import zleceń ZPZ i ZWZ przez serwer SFTP, a dolny eksport potwierdzeń. Statusy wierszy 0 i 1 oraz kontrole indeksu i magazynu na schemacie dotyczą pliku CSV, a dla EDI opisujemy poniżej własne procedury i tabele.

Opisana wymiana obejmuje cztery rodzaje komunikatów: zlecenie przyjęcia i zlecenie wydania w jedną stronę oraz potwierdzenie przyjęcia i potwierdzenie wydania w drugą. Każdy kierunek ma własny mechanizm po stronie WMS, a zestawienie przypisuje komunikaty do mechanizmów w WMS i ich efektu.

KierunekKomunikatTabela lub widokEfekt
Import ZPZZlecenie przyjęcia z nagłówkiem i pozycjamiDwie procedury importu i tabele pośrednieZlecenie przyjęcia w WMS
Import ZWZZlecenie wydania z nagłówkiem i pozycjamiDwie procedury importu i tabele pośrednieZlecenie wydania w WMS
Eksport PZPotwierdzenie przyjęciaWidoki nagłówka i pozycji przyjęciaPliki JSON i EDI w katalogu wyjściowym SFTP
Eksport WZPotwierdzenie wydaniaWidoki nagłówka i pozycji wydaniaPliki JSON i EDI w katalogu wyjściowym SFTP

Jeden klient operatora wymienia dane plikami CSV, a inny komunikatami EDI, więc kanały różnią się między klientami. W magazynie operatora każdy z kilku klientów może wymieniać dane innym kanałem, o czym piszemy na stronie WMS dla operatora 3PL.

Import nagłówka i pozycji

Import dzieli się na cztery procedury. Dwie obsługują zlecenie przyjęcia: jedna jego nagłówek, druga pozycje. Dwie pozostałe robią to samo dla zlecenia wydania. Dla zespołu wdrożeniowego oznacza to cztery obiekty do uruchomienia i sprawdzenia osobno.

Podział odpowiada budowie komunikatu EDI, w którym nagłówek niesie dane całego dokumentu, a każda pozycja dane jednej linii. Jeden nagłówek otwiera więc wiele pozycji. Przyjęcia i wydania mają osobne procedury, tak jak mają inne pola w pliku CSV.

Dane trafiają do trzech tabel pośrednich, opisanych w zestawieniu. Import zapisuje je tam, zanim powstaną zlecenia, więc dane wejściowe zostają w bazie i można je odczytać osobno.

Tabela pośredniaCo przechowuje
NagłówkiNagłówki zleceń z zaimportowanych komunikatów
PozycjePozycje zleceń z zaimportowanych komunikatów
Raport błędówBłędy stwierdzone przy imporcie komunikatów

Raport błędów importu

Trzecia tabela pośrednia jest raportem błędów importu. Błędy komunikatów mają więc własne miejsce, osobne od tabel nagłówków i pozycji, a dane zleceń i informacje o odrzuceniach można czytać oddzielnie. Raport pozwala odpowiedzieć na pytanie klienta, dlaczego komunikatu nie ma w WMS, bez zaglądania do tabel nagłówków i pozycji.

W wymianie plików CSV błąd zapisuje kolumna w tabeli pośredniej, a przy EDI raport ma własną tabelę. Przyczynę odrzucenia komunikatu serwis szuka więc w jednej, wydzielonej tabeli.

Eksport potwierdzeń w JSON i EDI

Eksport zaczyna się od realizacji zlecenia na wózku. Operator potwierdza palety, WMS zapisuje wynik, a widoki składają go w potwierdzenie z numerami SSCC. Nagłówek potwierdzenia opisuje dokument jako całość, a pozycja jedną linię, w której stoi paleta. Dokumenty PZ i WZ, do których wracają potwierdzenia, opisuje strona o dokumentach magazynowych.

Eksport opiera się na czterech widokach: nagłówek i pozycje dla przyjęcia oraz nagłówek i pozycje dla wydania. Z widoków powstają pliki w dwóch formatach: JSON oraz EDI. WMS wysyła je do katalogu wyjściowego na serwerze SFTP, a osobna procedura oznacza zlecenie jako wysłane. Oba formaty powstają z tych samych widoków.

Część potwierdzeniaLiczba elementówElementy
Nagłówekpięćnumer dokumentu, numer referencyjny, daty, referencje, strony
Pozycjatrzynaściepartia, SSCC, ilość, indeks, numer awizacji, numer zamówienia, data dostawy, magazyn, termin ważności, jednostka, materiał opakowaniowy, pozycja produktu, pozycja palety

Dwie reguły dotyczą segmentów. Segment z numerem palety pojawia się tylko wtedy, gdy numer palety istnieje w danych, a w wydaniu segment z numerem seryjnym wynika z numeru serii. Skąd numer SSCC bierze się na palecie, wyjaśnia artykuł o trzech kodach etykiety GS1-128, a samą jednostkę logistyczną opisuje strona o SSCC i jednostkach logistycznych.

Testowanie bez usuwania plików z serwera

Do testów służy dedykowana aplikacja z poleceniami importu i eksportu przyjęcia oraz wydania, więc testuje się osobno każdy z czterech obiegów komunikatów. Polecenia importu w trybie testowym nie usuwają plików z serwera, więc ten sam komunikat można przetworzyć ponownie. Pozwala to poprawiać układ komunikatu po stronie klienta i ponawiać import bez każdorazowego wysyłania pliku na serwer.

Przy testach importu pliki zostają na serwerze. Produkcyjne przetwarzanie usuwa je po zapisie.

Pytania i odpowiedzi o integracji EDI z WMS

Czym różni się EDI od pliku CSV w integracji z WMS?

Plik CSV niesie pola uzgodnione z klientem w jednym wierszu, a komunikat EDI dzieli dokument na nagłówek i pozycje. W opisywanym wdrożeniu CSV przechodzi przez tabele pośrednie ze statusem wiersza, a EDI przez cztery procedury importu i trzy tabele pośrednie.

Jakie dane wracają do klienta po przyjęciu palety?

Potwierdzenie ma nagłówek z pięcioma elementami i pozycje z trzynastoma, wśród których są SSCC i partia. Pełny wykaz pokazuje tabela w sekcji o eksporcie.

Jak testować import bez usuwania plików?

Do testów służy dedykowana aplikacja z poleceniami importu i eksportu przyjęcia oraz wydania. Polecenia importu w trybie testowym nie usuwają plików z serwera, a produkcyjne przetwarzanie usuwa je po zapisie.

Co się dzieje, gdy komunikat zawiera błąd?

Błędy importu trafiają do osobnej tabeli, raportu błędów, obok tabel nagłówków i pozycji. Z tej tabeli ustala się, który komunikat odrzucono i z jakiego powodu.

Czy WMS wysyła potwierdzenie przy każdym PZ?

Eksport ma osobne widoki dla przyjęcia i dla wydania, więc potwierdzenia dotyczą obu dokumentów. Po wysłaniu plików do katalogu wyjściowego osobna procedura oznacza zlecenie jako wysłane.

Słownik pojęć o integracji EDI z WMS

Terminy używane przez dział IT i kierownika projektu, gdy WMS wymienia z klientem komunikaty EDI przez serwer SFTP.

EDI
Elektroniczna wymiana dokumentów w uzgodnionym formacie komunikatu. Nagłówek i pozycje mają w nim ustalone miejsca, więc odbiorca czyta je bez zgadywania.
JSON
Tekstowy format danych, w którym pola mają nazwy. W opisywanym wdrożeniu potwierdzenie powstaje w tym formacie obok pliku EDI.
SFTP
Protokół przesyłania plików przez szyfrowane połączenie SSH. Pełni rolę wspólnego punktu wymiany komunikatów z klientem.
SSCC
Numer jednostki logistycznej, na przykład palety. Potwierdzenia przyjęcia i wydania zawierają go w pozycji.
ZPZ i ZWZ
Zlecenie przyjęcia (ZPZ) i zlecenie wydania z magazynu (ZWZ). Powstają z zaimportowanych komunikatów klienta.
Raport błędów
Tabela pośrednia z błędami stwierdzonymi przy imporcie komunikatów.
Tabela pośrednia
Tabela, do której komunikat trafia przed zapisem w zleceniach. Oddziela import od dalszego przetwarzania.

Opisz nam komunikaty swojego klienta

Podaj, jakie komunikaty Twoja firma wymienia z klientami, a przygotujemy propozycję zakresu importu i potwierdzeń.