www.tres.pl - Baza wiedzy Trawers ERP - Spis treści


SENT Elektroniczny Nadzór Transportu (Założenia projektowe) 1. Wprowadzenie 2. Potrzeba wymiany informacji 3. Symulacja wymiany danych 4. SENT GEO a Trawers 5. Tematy powiązane (AsystentAI) 1. Wprowadzenie SENT a Trawers ERP. W skrócie SENT (zgłoszenia): TAK SENT (korekty/aktualizacje): TAK SENT (statusy, numer referencyjny, błędy): TAK SENT GEO (tracking GPS / ślad trasy / mapa): NIE (to domena telematyki/TMS) 2. Potrzeba wymiany informacji SENT chce wiedzieć jakie towary, kiedy i przez kogo będą przewożone. A dlaczego Trawers chce informacji od SENT. ? Trawers chce informacji od SENT po to, aby domknąć proces operacyjny i zgodności w ERP. W praktyce, informacje z SENT są potrzebne z 5 powodów: 1) Aby mieć w ERP numer referencyjny SENT i móc go powiązać z wysyłką Po wysłaniu zgłoszenia SENT system nadaje numer/identyfikator. Jeśli Trawers go zapisze przy RO/wysyłce: * wiadomo, że dana wysyłka jest zgłoszona, * można go wydrukować/udostępnić (np. dla kierowcy, przewoźnika, działu logistyki), * można szybko odszukać zgłoszenie po numerze SENT. Bez tej informacji użytkownik musiałby trzymać numer 'gdzieś obok' (mail, Excel), co rodzi błędy. 2) Żeby wiedzieć, czy zgłoszenie zostało przyjęte czy odrzucone SENT potrafi zwrócić błędy walidacji (brak danych, zły format, niespójność). Trawers potrzebuje tej odpowiedzi, żeby: * oznaczyć wysyłkę jako DO_POPRAWY, * pokazać użytkownikowi konkretne braki (np. brak numeru pojazdu), * nie dopuścić do wysyłki 'na drogę' bez poprawnego zgłoszenia (jeśli tak ustawicie proces). 3) Żeby sterować procesem magazyn-transport (workflow) Statusy z SENT pozwalają ustawić reguły w Trawersie, np.: * nie pozwól zamknąć wysyłki / wydrukować dokumentów transportowych, dopóki SENT nie jest przyjęty, * zablokuj wydanie dla towarów wymagających SENT, jeśli zgłoszenie ma błąd, * kieruj zadania do osób odpowiedzialnych (logistyka/księgowość). Czyli: SENT -> Trawers = 'czy mogę jechać / czy mam komplet'. 4) Audyt i kontrola zgodności (ślad dowodowy) W wielu firmach celem integracji jest możliwość wykazania: kiedy zgłoszono, kto zgłosił, jaki był wynik, jakie były korekty, jaki numer. Trzymanie tego w Trawersie daje: * spójny audyt na poziomie dokumentu (RO/wysyłka), * mniej ręcznej pracy przy kontrolach i reklamacjach. 5) Obsługa korekt i zmian 'w locie' Jeśli po zgłoszeniu zmienia się coś istotnego (np. pojazd), to w praktyce: * trzeba wysłać aktualizację do SENT, * a Trawers musi wiedzieć, którego zgłoszenia dotyczy zmiana i jaki jest jego aktualny status. Bez informacji z SENT (numeru i statusu) trudno to robić automatycznie i bez pomyłek. Podsumowanie: SENT zbiera dane o przewozie, a Trawers zbiera od SENT potwierdzenie i stan sprawy, żeby użytkownicy ERP mogli bezpiecznie prowadzić proces (wydanie-wysyłka-rozliczenie) i mieć to udokumentowane. Minimalne informacje zapisywane w Trawersie: numer SENT + status + lista błędów + historia zdarzeń. 3. Symulacja wymiany danych Zasymuluj wymianę danych Trawers <--> SENT używając przykładowych danych Poniżej jest symulację wymiany danych Trawers <--> SENT (PUESC) na przykładowych danych. Nie stosuję tu oficjalnego formatu usług PUESC (to by wymagało konkretnych schematów), dlatego pokazuję to jako czytelny pseudo-JSON/XML. Idea, pola, kierunki i logika są takie, jak w integracjach w rzeczywistości. 0) Przykładowe dane w Trawersie (źródło: Wysyłka/Załadunek powiązana z RO) Dokument źródłowy w Trawersie * WysyłkaID: `WYS/2026/000123` * RO: `RO/01/2026/04567` * Data wysyłki: `2026-01-23 10:30` * Nadawca (firma własna): `FIRMA-PL` (NIP: `1112223344`) * Odbiorca: `KONTR-ABC` (NIP: `5250001111`) * Przewoźnik: `TRANS-X` (NIP: `6780009999`) * Miejsce załadunku: Poznań, ul. Magazynowa 1 * Miejsce rozładunku: Warszawa, ul. Klienta 15 * Pojazd: `POZ 1234A` (ciągnik), naczepa `POZ 9876N` * Kierowca: Jan Nowak (ID: `KIER/00045`) * Pozycje (towary): 1. `OLEJ-NAP-20L` - Olej napędowy, Ilość: 2 000 L 2. `ROZPUSZ-5L` - Rozpuszczalnik, Ilość: 100 L > W praktyce w Trawersie dobrze mieć na towarach dodatkowe pola 'SENT': np. grupa/rodzaj towaru, kod wymagany w zgłoszeniu, jednostka raportowa, itd. 1) Krok 1: OutBound (Trawers -> Integracja SENT w Trawersie) 1A. OutBound: pobranie paczki SENT dla wysyłki Request (wewnętrzne wywołanie w Trawersie / SOA OutBound): ```json { "service": "SOA.OutBound.GetShipmentForSENT", "shipmentId": "WYS/2026/000123" } ``` Response (dane przygotowane do mapowania na SENT): ```json { "shipmentId": "WYS/2026/000123", "sourceDocument": { "type": "RO", "number": "RO/01/2026/04567" }, "plannedDeparture": "2026-01-23T10:30:00", "parties": { "sender": { "code": "FIRMA-PL", "nip": "1112223344", "name": "Firma PL Sp. z o.o." }, "receiver": { "code": "KONTR-ABC", "nip": "5250001111", "name": "ABC Market S.A." }, "carrier": { "code": "TRANS-X", "nip": "6780009999", "name": "Trans-X Sp. z o.o." } }, "locations": { "loading": { "country": "PL", "city": "Poznań", "street": "Magazynowa 1", "postalCode": "60-001" }, "unloading": { "country": "PL", "city": "Warszawa", "street": "Klienta 15", "postalCode": "00-001" } }, "transport": { "tractorPlate": "POZ1234A", "trailerPlate": "POZ9876N", "driver": { "id": "KIER/00045", "name": "Jan", "surname": "Nowak" } }, "items": [ { "lineNo": 1, "itemCode": "OLEJ-NAP-20L", "name": "Olej napędowy", "sentGroup": "FUEL", "qty": 2000, "uom": "L" }, { "lineNo": 2, "itemCode": "ROZPUSZ-5L", "name": "Rozpuszczalnik", "sentGroup": "CHEM", "qty": 100, "uom": "L" } ] } ``` 2) Krok 2: Utworzenie zgłoszenia SENT (Trawers SENT/PUESC) 2A. Budowa payloadu SENT (mapowanie) Przykładowy payload do wysłania (pseudostruktura zgłoszenia): ```json { "sentSubmission": { "externalRef": "WYS/2026/000123", "documentRef": "RO/01/2026/04567", "plannedStart": "2026-01-23T10:30:00", "sender": { "nip": "1112223344", "name": "Firma PL Sp. z o.o." }, "receiver": { "nip": "5250001111", "name": "ABC Market S.A." }, "carrier": { "nip": "6780009999", "name": "Trans-X Sp. z o.o." }, "loadingPlace": { "country": "PL", "city": "Poznań", "street": "Magazynowa 1", "postalCode": "60-001" }, "unloadingPlace": { "country": "PL", "city": "Warszawa", "street": "Klienta 15", "postalCode": "00-001" }, "vehicle": { "tractorPlate": "POZ1234A", "trailerPlate": "POZ9876N" }, "items": [ { "pos": 1, "category": "FUEL", "name": "Olej napędowy", "quantity": 2000, "unit": "L" }, { "pos": 2, "category": "CHEM", "name": "Rozpuszczalnik", "quantity": 100, "unit": "L" } ] } } ``` 2B. Odpowiedź SENT (PUESC -> Trawers) Response - przyjęcie zgłoszenia i nadanie numeru referencyjnego: ```json { "result": "ACCEPTED", "sentReferenceNumber": "SENT-PL-2026-0000998877", "status": "REGISTERED", "message": "Zgłoszenie przyjęte do obsługi", "timestamp": "2026-01-23T10:31:12" } ``` 3) Krok 3: InBound (SENT/PUESC -> Trawers) czyli zapis zwrotny w Trawersie Tu InBound wykonuje prace: odkłada numer SENT + status + log zdarzenia do wysyłki/dokumentu. Request (dedykowana usługa InBound w Trawersie): ```json { "service": "SOA.InBound.UpdateSENTStatusForShipment", "shipmentId": "WYS/2026/000123", "sent": { "referenceNumber": "SENT-PL-2026-0000998877", "status": "REGISTERED", "statusDate": "2026-01-23T10:31:12", "info": "Zgłoszenie przyjęte do obsługi" } } ``` Efekt w Trawersie (na dokumencie Wysyłka/RO): * Numer SENT: `SENT-PL-2026-0000998877` * Status SENT: `REGISTERED` * Data statusu: `2026-01-23 10:31:12` * Log: zapis request/response (z maskowaniem danych wrażliwych, jeśli potrzeba) 4) Krok 4: Dopytanie o status (Trawers <--> SENT) i aktualizacja w Trawersie Tu: (kody json - tylko skrótowo) 4A. Trawers -> SENT: pobranie statusu { "sentStatusRequest": { "sentReferenceNumber": "SENT-PL-2026-0000998877" } } 4B. SENT -> Trawers: status W TRAKCIE { "sentReferenceNumber": "SENT-PL-2026-0000998877", "status": "IN_PROGRESS", "timestamp": "2026-01-23T11:05:00" } 4C. InBound do Trawersa: aktualizacja statusu { "service": "SOA.InBound.UpdateSENTStatusForShipment", "shipmentId": "WYS/2026/000123", "sent": { "referenceNumber": "SENT-PL-2026-0000998877", "status": "IN_PROGRESS", "statusDate": "2026-01-23T11:05:00" } } 5) Symulacja błędu walidacji (żeby było widać pełny cykl) 5A. Brak wymaganego pola - np. brak numeru rejestracyjnego np. Trawers wysyła zgłoszenie bez tractorPlate. SENT -> Trawers (odrzucenie): { "result": "REJECTED", "status": "VALIDATION_ERROR", "errors": [ { "code": "E_VEH_001", "field": "vehicle.tractorPlate", "message": "Brak numeru rejestracyjnego pojazdu" } ], "timestamp": "2026-01-23T10:31:12" } 5B. InBound: zapis błędu i ustawienie statusu DO_POPRAWY .... nie wgrywam kodu Efekt w Trawersie: Status SENT: DO_POPRAWY Lista błędów widoczna na dokumencie Użytkownik uzupełnia numer rejestracyjny -> ponowienie wysyłki Mini-mapa: które dane skąd i dokąd * Trawers (dokument wysyłki/RO) -> OutBound: kontrahenci, adresy, towary, ilości, transport * Trawers (moduł SENT) -> SENT/PUESC: zgłoszenie (payload) * SENT/PUESC -> Trawers InBound: numer referencyjny, statusy, błędy, historia zdarzeń * Trawers -> SENT/PUESC: odpytywanie statusu / korekty / anulowanie (jeśli w procesie) Teraz mogę zrobić tę samą symulację w wersji czysto SOA tj. osobno pokazać: jak wyglądałby GetShipmentForSENT, CreateSENTSubmission, GetSENTStatus, UpdateSENTStatusForShipment). Oraz zaproponować konkretne statusy workflow w Trawersie, np. DO_WYSŁANIA / WYSŁANE / PRZYJĘTE / BŁĄD / DO_POPRAWY / ZAMKNIĘTE) wraz z regułami przejść. JD: wgrywam przykłady do .prg 4. SENT GEO a Trawers SENT GEO SENT GEO to moduł platformy SENT, który umożliwia przesyłanie danych geolokalizacyjnych pojazdu przewożącego towary objęte nadzorem skarbowym. Przewoźnik korzystający z SENT GEO musi wyposażyć pojazd w urządzenie z funkcją przesyłania danych geolokalizacyjnych. Ministerstwo Finansów publikuje wymogi techniczne przekazywania danych geolokalizacyjnych środka transportu, strukturę interfejsu SENT GEO i określa sposób przekazywania danych. Funkcje geolokalizacji (mapa, ślad GPS, geofencing) nie są częścią Trawers ERP - to obszar telematyki/TMS Transport Management System. Telematyka/TMS obsługuje geolokalizację i raportowanie (np. z urządzenia w pojeździe lub w aplikacji kierowcy), a Trawers dostaje tylko: numer SENT, statusy, potwierdzenia, ewentualnie link do śledzenia. Trawers inicjuje proces (zlecenie/wysyłka -> SENT), a 'kanał GPS' jest oddzielny, chociaż powiązany tym samym identyfikatorem przewozu. Trawers może ew. przechowywać dane: - pojazd/kierowca, - identyfikator kursu w systemie GPS/TMS, - link do mapy/trackingu, - zdarzenia statusowe: wyjazd / przyjazd / rozładunek / zakończono, - ewentualnie 'dowody': podpis, zdjęcie, timestamp. Podsumowanie Trawers może wspierać obieg SENT jako element procesu logistycznego: - przygotowanie danych do zgłoszenia, - wysyłkę zgłoszenia, - zapis numeru SENT, - obsługę odpowiedzi (przyjęte/odrzucone), - korekty i cykliczne odpytywanie statusów. Funkcje geolokalizacji nie są częścią Trawers ERP. Rozwiązania SENT GEO. Kryteria wyboru Sugerowane kryteria wyboru rozwiązania zewnętrznego dostawcy. * Obsługa SENT-GEO zgodnie z wymaganiami PUESC (tryb aplikacji kierowcy i/lub urządzenia) * API do integracji (przekazanie numeru przewozu / identyfikatora zgłoszenia, pobieranie statusów) * Możliwość pracy w modelu: własna flota i/lub przewoźnicy zewnętrzni * Raporty i audyt: historia zdarzeń, potwierdzenia, eksport danych * Stabilne wsparcie wdrożeniowe i serwisowe Powiązanie z Trawers Wysyłka/WZ <--> identyfikator SENT <--> identyfikator w telematyce 5. Tematy powiązane Trasy przewozowe Wysyłka, organizacja i dokumenty Zarządzanie wysyłkami [SD][LD] Słowa kluczowe #TrawersERP-Architektura #TrawersERP-ProcesyGospodarcze #Logistyka-Wysyłka #Pomoc-AsystentAI


www.tres.pl - Baza wiedzy Trawers ERP - Spis treści

Polityka prywatności Ustawienia Cookies