Studio WMS.net

Import komunikatów od agencji celnej do WMS: kolejka, hash i jedna transakcja

Komunikat agencji celnej o zgłoszeniu albo zwolnieniu towaru trafia do kolejki importu, a po przetworzeniu zmienia status celny partii. Powtórzony plik jest rozpoznawany po haszu.

Autor: Adam Siemiątkowski Aktualizacja: 17 października 2026
system.wms.net.pl/program-magazynowy/
Kolejka importu od agencji w module Dozór celny: filtry statusu, kanału i agencji, przyciski oraz lista komunikatów ze statusem
Kolejka importu od agencji w module Dozór celny: filtry statusu, kanału i agencji, przyciski oraz lista komunikatów ze statusem

Import komunikatów od agencji celnej w Studio WMS.net działa tak, że każdy komunikat o zgłoszeniu albo zwolnieniu towaru najpierw trafia do kolejki importu, a dopiero potem jest przetwarzany. Wynik jest jedną transakcją: komunikat zmienia statusy partii w całości albo wcale. Duplikat rozpoznaje skrót SHA-256 treści. Moduł Dozór celny to ewidencja, a nie system celny.

Agencja celna prowadzi zgłoszenia poza programem, a moduł tylko odbiera ich wynik. Moduł Dozór celny jest dostępny w środowisku demonstracyjnym platformy StudioSystem ST 26, a wdrożenie następuje po uzgodnieniu zakresu; nie jest to produkt wdrożony u klientów. Przegląd całego modułu daje strona o module dozoru celnego.

Komunikat od agencji najpierw trafia do kolejki

Dwa rodzaje komunikatów zmieniają ewidencję. Zgłoszenie przenosi partie dokumentu ze statusu Pod dozorem na Zgłoszony, a Zwolnienie towaru - ze statusu Pod dozorem albo Zgłoszony na Zwolniony. Każdy komunikat zostaje w kolejce także wtedy, gdy przetwarzanie się nie udało, więc widać, co przyszło i z jakim skutkiem.

Kolejka rozróżnia trzy kanały: API, FTPS i plik. W środowisku demonstracyjnym nie ma punktu API przyjmującego komunikaty od agencji, więc komunikaty powstają przez symulację i przez wczytanie pliku JSON w takim samym formacie, jakiego użyłaby agencja. Strona nie obiecuje automatycznego odbioru komunikatów ani integracji z konkretną agencją.

Przetwarzanie komunikatu od agencji celnejKomunikat trafia do kolejki. Powtórzony komunikat jest rozpoznawany po haszu treści i nie zmienia stanu. Poprawny komunikat jest przetwarzany w jednej transakcji z jednym z trzech wyników: Przetworzony, Częściowy, Błąd, a błąd cofa wszystkie zmiany.Komunikat agencjitrzy kanały: API, FTPS, plikJSONHash SHA-256 treściodcisk tekstu komunikatuTaki hashjuż jest?TAK: duplikatstan bez zmianNIEKontrola komunikatustruktura JSON i typ komunikatunumer dokumentu i klient po NIPindeksy z kartoteki klientabłąd danych: status BłądJedna transakcjadokument celny: nowy albo zmiana statusupartie dokumentu: status 2 albo 3, wpishistorii IMPORTdopasowanie po indeksie i kontenerzePrzetworzonyzmieniono status partiiCzęściowypozycja bez partii albo partiazablokowanaBłądcofnięcie wszystkichzmianPonów po uzupełnieniukartoteki
Droga komunikatu od agencji: od kontroli hasha i treści do jednej transakcji z trzema wynikami.

Schemat pokazuje kolejność. Najpierw program liczy hash treści i sprawdza, czy taki komunikat już jest. Potem kontroluje strukturę i dopasowuje dane do kartotek, a na końcu zapisuje zmiany statusów w jednej transakcji z jednym z trzech wyników: Przetworzony, Częściowy albo Błąd.

Zmiana statusu po przetworzeniu oznacza, że ewidencja zapisała to, co przysłała agencja. To nie jest zgłoszenie do urzędu, a status partii opisuje strona o statusach celnych partii.

Hash SHA-256 rozpoznaje duplikaty

Przy odbiorze program liczy skrót SHA-256 z treści komunikatu. Gdy kolejka ma już komunikat o takim samym haszu, nowy jest duplikatem i nie zmienia stanu. Dotyczy to także pliku wczytanego drugi raz. Dwa komunikaty różniące się choćby jednym znakiem mają różne hashe, więc poprawiony plik nie zostanie potraktowany jak duplikat.

Plik do wczytania musi mieć rozszerzenie .json albo .txt, nie może przekraczać 200 kB i powinien być zapisany w kodowaniu UTF-8. Kontrola duplikatów po haszu różni się od kontroli po numerze dokumentu, którą opisuje strona o elektronicznej wymianie dokumentów. Wzorzec zapisu w T-SQL, z hashem i unikalnym indeksem, pokazuje artykuł o imporcie JSON z hashem SHA-256.

Jedna transakcja daje trzy wyniki, a błąd cofa całość

Komunikat jest przetwarzany w jednej transakcji. Jeśli którakolwiek pozycja albo kontrola zakończy się błędem, statusy partii nie zmieniają się w ogóle, a komunikat dostaje status Błąd. Komunikat nie zostawia więc ewidencji w połowie zmienionej, a po naprawie przyczyny wystarczy go ponowić.

Statusy komunikatu w kolejce importu
KodStatusZnaczenieCo robić
0Oczekujekomunikat jest w kolejce i nie został jeszcze przetworzonyotworzyć szczegóły; komunikat można przetworzyć przyciskiem Ponów wybrany komunikat
1Przetworzonykomunikat zmienił statusy partii i zapisał wpis w historii ze źródłem IMPORTnic; przycisk Ponów nie działa dla tego statusu
2Błądprzetwarzanie się nie udało, wszystkie zmiany zostały cofnięteprzeczytać pole Błąd przetwarzania, a po poprawie danych ponowić
3Częściowyczęść pozycji zmieniła status, a część pominiętoprzeczytać pole Uwagi przetwarzania i zdecydować, czy poprawić brakujące pozycje
Reguła importu. Błąd w jednej pozycji cofa cały komunikat, a status Częściowy nie jest błędem: pozycje z partiami zmieniają status, a pominięte są wymienione w uwagach.

Status Częściowy powstaje w dwóch sytuacjach: pozycja z komunikatu nie ma partii do dopasowania na dokumencie albo partia jest zablokowana i zostaje bez zmian, bo komunikat agencji nie zdejmuje blokady. Komunikat Zgłoszenie dla dokumentu, którego rejestr nie zna, tworzy ten dokument ze statusem Zgłoszony i uwagą „Utworzony z importu komunikatu agencji”. Komunikat Zwolnienie towaru dla nieznanego dokumentu kończy się błędem, bo zwolnienia nie ma do czego przypisać.

Pola komunikatu i dopasowanie do kartotek

Komunikat jest obiektem JSON, a ten sam format przyjmują symulacja i wczytanie pliku. Tabela opisuje pola; przykłady są wymyślone.

Pola komunikatu JSON
PoleZnaczeniePrzykład (wymyślony)
typKomunikatuZGLOSZENIE albo ZWOLNIENIE; inna wartość kończy się błędemZWOLNIENIE
typDokumentujeden z trzech typów dokumentu celnego: T1, DSK albo MRNMRN
mrnnumer dokumentu celnego; brak numeru kończy się błędem26PLEXAMPLE000001A
klientNipNIP klienta, do którego należy towar; gdy komunikat go nie zawiera, używany jest identyfikator klienta1234567890
agencjaNipopcjonalny NIP agencji, do wskazania agencji0987654321
kodProcedurykod procedury celnej, na przykład 7171
dataZwolnieniadata w formacie ISO 8601, wymagana dla komunikatu ZWOLNIENIE2026-10-17T09:42:00+02:00
pozycjelista pozycji: lp, indeks, ilosc, jm, masaBruttoKg i opcjonalnie nrKonteneralp 1, indeks ART-A, ilosc 120, jm SZT

Przy dopasowaniu program szuka klienta po NIP, a gdy komunikat NIP nie zawiera - po identyfikatorze klienta. Potem sprawdza indeks w kartotece tego klienta i, jeśli komunikat go podaje, numer kontenera. Ogólny opis kartotek daje strona o kartotekach w systemie WMS. Błąd o kliencie albo indeksie naprawia się w kartotekach programu, a błąd o strukturze komunikatu wymaga nowego komunikatu od agencji.

Błędy po stronie danych i sposób naprawy

Pole Błąd przetwarzania na karcie komunikatu podaje przyczynę słowami. Przy innych statusach to samo miejsce nazywa się Uwagi przetwarzania. Treść komunikatu jest zapisana w kolejce dokładnie tak, jak przyszła, i nie da się jej edytować, a przycisk Ponów wybrany komunikat przetwarza ją jeszcze raz bez zmian.

Typowe błędy przetwarzania i ich naprawa
Co widać w polu błęduPrzyczynaCo poprawić
zła struktura komunikatutreść nie jest poprawnym obiektem JSONagencja przysyła poprawny komunikat; w demo wczytuje się poprawiony plik
nieprawidłowy typ komunikatu albo dokumentuwartość spoza dozwolonychpoprawiony komunikat; ponowienie nie pomoże, bo treść jest ta sama
brak numeru dokumentukomunikat nie ma pola z numerempoprawiony komunikat
zwolnienie bez daty zwolnieniakomunikat ZWOLNIENIE nie ma datypoprawiony komunikat
nieznany klientżaden klient nie ma podanego NIP ani identyfikatorauzupełnić NIP w kartotece klienta i ponowić
indeks spoza kartoteki klientaindeks z komunikatu nie należy do kartoteki tego klientadodać indeks do kartoteki albo poprawić komunikat, potem ponowić
nieznany dokument przy zwolnieniurejestr nie zawiera dokumentu, a zwolnienie go nie tworzydodać dokument w rejestrze albo najpierw przetworzyć komunikat Zgłoszenie

Karta komunikatu podpowiada, że po uzupełnieniu kartoteki można użyć przycisku Ponów wybrany komunikat, a ponowienie korzysta z zapisanej treści, więc agencja nie musi wysyłać komunikatu drugi raz. Ponowienie bez zmiany danych da ten sam błąd, ale niczego w ewidencji nie zepsuje, bo nieudane przetwarzanie nie zmienia statusów partii.

Symulacja i plik JSON w wersji demonstracyjnej

Przycisk Symuluj komunikat agencji otwiera okno z dwoma polami obowiązkowymi: Dokument celny i Rodzaj komunikatu. Rodzaj Zgłoszenie (MRN) przenosi partie z Pod dozorem na Zgłoszony, a rodzaj Zwolnienie towaru ze statusu Pod dozorem albo Zgłoszony na Zwolniony. System buduje komunikat JSON z danych dokumentu i przetwarza go tak, jak odebrany od agencji.

Symulacja zmienia dane demonstracyjne naprawdę: partie dokumentu zmieniają status, a wpis w historii zostaje zapisany. Statusu Zwolniony ani Unijny nie da się cofnąć przyciskiem, dlatego symulację warto uruchamiać na dokumencie przeznaczonym do pokazu. Wynik widać w kolejce razem z hashem i statusem. W rejestrze dokumentów przy dokumencie są także przyciski symulacji zgłoszenia i zwolnienia towaru.

Agencja w module i agent w opisywanym wdrożeniu

Strona o agencie celnym w WMS opisuje inne rozwiązanie: okno agenta, w którym człowiek wpisuje numer DSK i zatwierdza dokument. W module Dozór celny agencja jest wpisem w kartotece, a wynik jej pracy przychodzi komunikatem do kolejki importu. Nie ma okna agenta ani numeru wpisywanego ręcznie przez agencję.

Rano kierownik zaczyna od kokpitu. Kafelek Komunikaty z błędem importu mówi, czy któryś komunikat wymaga reakcji, a kafelek Komunikaty oczekujące - czy coś czeka na przetworzenie. Kliknięcie kafelka otwiera kolejkę z gotowym filtrem. Przykład z wymyślonymi danymi: Agencja Przykładowa przysłała zwolnienie dla dokumentu 26PLEXAMPLE000001A, ale indeks ART-A nie istnieje w kartotece Klienta Testowego. Komunikat ma status Błąd, kierownik dopisuje indeks i używa przycisku Ponów, a partie zmieniają status na Zwolniony.

Czego moduł nie robi

Moduł Dozór celny jest dostępny w środowisku demonstracyjnym platformy StudioSystem ST 26, a wdrożenie następuje po uzgodnieniu zakresu; nie jest to produkt wdrożony u klientów.

  • Odbiór przez API. W demo nie ma punktu API przyjmującego komunikaty, jest symulacja i plik JSON w tym samym kontrakcie.
  • Integracja z agencją. Nie ma gotowej integracji z konkretną agencją celną; kontrakt pliku lub API wymaga uzgodnienia.
  • Zgłoszenia celne. Moduł ich nie składa, tylko odbiera wynik, i nie zastępuje systemu celnego.
  • Zdjęcie blokady. Komunikat o zwolnieniu nie zdejmuje blokady ręcznej: partia zostaje bez zmian, a komunikat dostaje status Częściowy.

Typy dokumentów celnych w komunikacie opisuje artykuł o dokumentach T1, DSK i MRN, a rolę agencji w pojęciach - hasło agencja celna w słowniku.

Zobacz Studio WMS.net na własnych danych

Demo działa w przeglądarce, bez instalacji i bez rejestracji. Wycena wdrożenia w jeden dzień roboczy.

Uruchom DEMO
FAQ

Najczęstsze pytania - import komunikatów agencji

01

Co dzieje się z całym komunikatem, gdy jedna pozycja ma błąd?

Cały komunikat jest cofany. Komunikat jest przetwarzany w jednej transakcji, więc błąd w jednej pozycji nie zostawia ewidencji w połowie zmienionej: statusy partii nie zmieniają się, a komunikat dostaje status Błąd. Po naprawie danych wystarczy go ponowić.

02

Czy ten sam plik zadziała dwa razy?

Nie. Program liczy skrót SHA-256 z treści komunikatu i rozpoznaje duplikat, gdy kolejka ma już komunikat o takim samym haszu. Stan partii i dokumentów pozostaje bez zmian. Poprawiony plik ma inny hash, więc nie jest duplikatem.

03

Czy program łączy się z agencją celną?

W środowisku demonstracyjnym nie. Nie ma punktu API przyjmującego komunikaty, więc komunikaty powstają przez symulację albo przez wczytanie pliku JSON w tym samym formacie. Integracja z konkretną agencją wymaga uzgodnienia kontraktu pliku lub API.

04

Jaki plik można wczytać do kolejki?

Plik z rozszerzeniem .json albo .txt, do 200 kB, zapisany w kodowaniu UTF-8. Treść musi mieć format komunikatu opisany w tabeli pól. Plik wczytany drugi raz jest rozpoznawany jako duplikat.

05

Dlaczego komunikat ma status Częściowy?

Status Częściowy oznacza, że część pozycji zmieniła status, a część pominięto. Dzieje się tak, gdy pozycja nie ma partii do dopasowania na dokumencie albo partia jest zablokowana, bo komunikat agencji nie zdejmuje blokady. Szczegóły są w polu Uwagi przetwarzania.

Słownik

Słownik pojęć - import komunikatów agencji

KI kolejka importu
Lista komunikatów odebranych od agencji celnych razem ze statusem przetwarzania. Komunikat trafia do niej przed przetworzeniem i zostaje także wtedy, gdy przetwarzanie się nie udało.
KA komunikat agencji
Wiadomość JSON od agencji celnej o zgłoszeniu albo o zwolnieniu towaru. Po przetworzeniu zmienia statusy partii dokumentu celnego.
HT hash treści SHA-256
Skrót liczony z treści komunikatu przy odbiorze. Dwa komunikaty o tym samym haszu to duplikat, który nie zmienia stanu.
DU duplikat
Komunikat o takim samym haszu jak jeden z wcześniejszych, na przykład ten sam plik wczytany drugi raz. Nie zmienia stanu partii.
KI kanał importu
Sposób dostarczenia komunikatu do kolejki: API, FTPS albo plik. W środowisku demonstracyjnym działa plik oraz symulacja.
SC status Częściowy
Wynik przetwarzania, w którym część pozycji zmieniła status, a część została pominięta, na przykład z powodu blokady partii.
MR MRN
Numer zgłoszenia celnego, 18 znaków: cyfry i wielkie litery. W kolejce widnieje w kolumnie MRN lub numer.

Pozostałe pojęcia z zakresu magazynu oraz znakowania jednostek zbiera słownik pojęć WMS.

Chcesz zobaczyć Studio WMS.net w działaniu?

Uruchom bezpłatne demo systemu WMS.net lub zapytaj o szczegóły wdrożenia.

Bezpłatne DEMO Wycena