Szablon danych dotyczących zarządzania transportem
Szablon danych dotyczących zarządzania transportem
- Zalecane atrybuty do zebrania
- Najważniejsze czynności do śledzenia
- Wskazówki dotyczące ekstrakcji danych
Atrybuty zarządzania transportem
| Nazwa | Opis | ||
|---|---|---|---|
| Czas zdarzenia EventTime | Dokładna data i godzina wystąpienia konkretnej czynności lub zdarzenia transportowego. | ||
| Opis Ten znacznik czasu wskazuje dokładny moment zarejestrowania w systemie czynności, takiej jak „Przypisano przewoźnika” lub „Otrzymano potwierdzenie dostawy”. Znaczniki czasu są podstawą process mining, ponieważ określają chronologiczną kolejność zdarzeń dla każdej wysyłki. Ich dokładność ma zasadnicze znaczenie dla wszystkich analiz opartych na czasie. Pozwalają obliczać czas między czynnościami i czas trwania procesu, wykrywać opóźnienia oraz oceniać wyniki względem umów o poziomie usług. Analiza czasu zdarzeń pomaga ustalić, na których etapach proces traci czas. Dlaczego to ważne Ten znacznik czasu jest niezbędny do chronologicznego uporządkowania zdarzeń i obliczenia miar efektywności, takich jak czas realizacji i opóźnienia. Skąd pobrać Dane pochodzą z pól znaczników czasu powiązanych ze zdarzeniami w tabelach historii śledzenia lub statusów OTM. Przykłady 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Nazwa czynności ActivityName | Nazwa konkretnego zdarzenia lub etapu, który wystąpił w procesie transportowym danej wysyłki. | ||
| Opis Ten atrybut opisuje pojedynczy etap cyklu transportowego, na przykład „Zaplanowano wysyłkę”, „Odebrano towary” lub „Dostarczono towary”. Każda czynność oznacza odrębne zdarzenie biznesowe, które przybliża wysyłkę do zakończenia. Analiza kolejności i czasu trwania tych czynności stanowi podstawę process mining. Pozwala odkryć rzeczywisty przebieg procesu, wykryć wąskie gardła między etapami i ocenić zgodność ze standardowymi procedurami operacyjnymi. Odchylenia w przebiegu czynności mogą wskazywać na wyjątki, ponowną pracę lub odejście od optymalnej ścieżki. Dlaczego to ważne Atrybut określa etapy na mapie procesu i pozwala przedstawić oraz analizować przebieg wysyłki, wąskie gardła i odchylenia. Skąd pobrać Informacje pochodzą z tabel zdarzeń śledzenia lub dzienników zmian statusu w Oracle Transportation Management. Nazwa czynności może być złożona z kodów i opisów zdarzeń. Przykłady Zaplanowano wysyłkęOdebrano towaryZakończono odprawę celnąDostarczono towary | |||
| Wysyłka ShipmentId | Unikalny identyfikator pojedynczej wysyłki, używany jako główny identyfikator case do śledzenia wszystkich powiązanych działań transportowych. | ||
| Opis Shipment ID jednoznacznie identyfikuje pojedynczy przewóz towarów od nadawcy do odbiorcy. Ten atrybut stanowi podstawę analizy procesu: łączy w jednym case wszystkie powiązane zdarzenia, takie jak planowanie, rezerwacja, odbiór, transport, dostawa i fakturowanie. W process mining analiza zdarzeń według Shipment ID daje pełny obraz cyklu transportowego każdej wysyłki. Pozwala obliczać takie miary jak całkowity czas realizacji, terminowość dostaw i koszt wysyłki, a także oceniać sprawność procesu i poziom obsługi klienta. Dlaczego to ważne To podstawowy identyfikator case, który łączy wszystkie etapy procesu i umożliwia pełną analizę przebiegu każdej wysyłki. Skąd pobrać To klucz główny w Oracle Transportation Management, zwykle dostępny w tabelach wysyłek lub zarządzania zleceniami. Konkretne nazwy tabel i pól można sprawdzić w dokumentacji OTM. Przykłady SH-0012345SH-0012346SH-0012347 | |||
| Koszt wysyłki ShipmentCost | Całkowity koszt transportu lub kwota naliczona za przewóz wysyłki. | ||
| Opis Ten atrybut oznacza całkowity koszt finansowy wysyłki, w tym opłaty przewoźnika, dopłaty paliwowe i inne opłaty dodatkowe. Jest miarą finansowych wyników procesu transportowego. Koszt wysyłki pozwala obliczyć KPI średniego kosztu przewoźnika na wysyłkę (Average Carrier Cost per Shipment). Można go analizować według przewoźnika, trasy, rodzaju transportu lub typu wysyłki, aby znaleźć możliwości ograniczenia kosztów. Służy też do porównania kosztów planowanych z rzeczywistymi w analizie rozbieżności na fakturach za transport. Dlaczego to ważne Dostarcza danych finansowych potrzebnych do analizy wydatków na transport, szukania oszczędności i oceny finansowych skutków nieefektywności procesu. Skąd pobrać Informacje te znajdują się zwykle w sekcjach finansowych lub kosztowych wysyłki w OTM. Często są uzupełniane po wycenie transportu i rozliczeniu. Przykłady 250.751200.00545.50 | |||
| Nazwa przewoźnika CarrierName | Nazwa przewoźnika lub dostawcy usług transportowych odpowiedzialnego za przewóz wysyłki. | ||
| Opis Ten atrybut wskazuje partnera logistycznego przypisanego do przewozu towarów. Mogą to być duże firmy transportowe, lokalni kurierzy lub armatorzy. Jednym z głównych celów process mining w transporcie jest analiza wyników według przewoźnika. Atrybut pozwala porównywać przewoźników pod względem terminowości dostaw, kosztu wysyłki, czasu przewozu oraz częstotliwości problemów, takich jak opóźnienia czy rozbieżności na fakturach. Wnioski pomagają wybierać przewoźników, negocjować umowy i zarządzać ich wynikami. Dlaczego to ważne Umożliwia porównywanie wyników przewoźników, co pomaga optymalizować ich wybór, negocjacje i koszty. Skąd pobrać Dane znajdują się w szczegółach wysyłki w OTM i są powiązane z rekordem przypisanego przewoźnika lub dostawcy usług. Mogą być przechowywane w tabelach dotyczących wysyłek i dostawców usług. Przykłady FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Przyczyna opóźnienia DelayReason | Kod lub opis wyjaśniający przyczynę opóźnienia wysyłki. | ||
| Opis Gdy wysyłka jest opóźniona, ten atrybut wskazuje przyczynę, na przykład „Pogoda”, „Zatrzymanie celne”, „Zator w porcie” lub „Awaria mechaniczna”. Informacje pochodzą z aktualizacji od przewoźnika lub wpisów ręcznych w OTM. Atrybut ten jest niezbędny do analizy przyczyn opóźnionych dostaw. Klasyfikowanie i zliczanie przyczyn pozwala firmom wykrywać najczęstsze problemy w łańcuchu dostaw. Ułatwia to wdrażanie ukierunkowanych usprawnień, takich jak wybór bardziej niezawodnych przewoźników na określonych trasach lub poprawa dokumentacji, aby przyspieszyć odprawę celną. Dlaczego to ważne Pomaga ustalić przyczyny opóźnień wysyłek i podjąć ukierunkowane działania, które ograniczą częste problemy i poprawią terminowość. Skąd pobrać Informacje są zwykle rejestrowane w szczegółach zdarzeń śledzenia w OTM. Mogą być powiązane z kodami wyjątków lub opóźnień. Przykłady WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONTRAFFIC | |||
| Rodzaj transportu TransportationMode | Sposób przewozu wysyłki, na przykład transport drogowy, kolejowy, morski lub lotniczy. | ||
| Opis Ten atrybut określa rodzaj transportu dla wysyłki. Typowe rodzaje to transport całopojazdowy (FTL), drobnicowy (LTL), morski, lotniczy i kolejowy. To podstawowa cecha wysyłki, która wpływa na koszt, czas przewozu i złożoność procesu. W analizie rodzaj transportu jest ważnym wymiarem segmentacji. Pozwala porównywać wyniki procesu i koszty dla różnych rodzajów przewozu. Można na przykład ustalić, które z nich częściej wiążą się z opóźnieniami w transporcie lub wyższym kosztem na milę, co ułatwia podejmowanie decyzji dotyczących sieci logistycznej. Dlaczego to ważne Pozwala analizować wyniki i koszty według rodzaju transportu oraz uzyskać szczegółowe informacje o przewozach drogowych, lotniczych, morskich i kolejowych. Skąd pobrać To standardowy atrybut na poziomie wysyłki w OTM, zwykle dostępny w polu „mode” lub „transport type”. Przykłady FTLLTLMORSKIAIR | |||
| Żądany termin dostawy RequestedDeliveryDate | Data i godzina dostawy wskazane przez klienta lub uzgodnione jako cel w ramach umowy o poziomie usług (SLA). | ||
| Opis Ten atrybut zapisuje docelowy termin dostawy wysyłki. Odzwierciedla zobowiązanie wobec klienta i stanowi podstawę pomiaru terminowości. W process mining termin ten porównuje się z rzeczywistym czasem dostawy z czynności „Dostarczono towary”, aby ustalić, czy wysyłka dotarła na czas. To podstawa KPI terminowości dostaw (On-Time Delivery Rate) i dashboardu „Przegląd wyników dostaw” (Delivery Performance Overview). Analiza odchyleń pomaga wykrywać systemowe przyczyny opóźnień i poprawiać obsługę klienta. Dlaczego to ważne To podstawowy punkt odniesienia przy pomiarze terminowości dostaw, ważnego KPI wpływającego na zadowolenie klientów i sprawność operacyjną. Skąd pobrać Informacje te są zwykle zapisane na poziomie zlecenia lub wysyłki w OTM, często w polach dotyczących dat dostawy lub terminów. Przykłady 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Agent celny CustomsAgent | Agent lub agencja celna odpowiedzialna za odprawę celną przesyłki. | ||
| Opis W przypadku przesyłek międzynarodowych ten atrybut wskazuje zewnętrznego agenta lub wewnętrzny zespół odpowiedzialny za dokumentację i procedury celne. Wyniki pracy agenta mogą znacząco wpływać na całkowity czas transportu. Analiza czasu odprawy celnej według agenta pozwala porównać jego wyniki. Można ustalić, którzy agenci najsprawniej obsługują przesyłki w określonych krajach lub przewożących konkretne rodzaje towarów. Informacje te pomagają wybrać odpowiednich partnerów celnych i współpracować z agentami osiągającymi słabsze wyniki, aby usprawnić ich procesy. Dlaczego to ważne Umożliwia pomiar wyników agentów celnych, wskazanie najsprawniejszych partnerów i ograniczenie opóźnień związanych z odprawą celną. Skąd pobrać Informacje te mogą być zapisane w OTM jako dostawca usług lub rola strony w szczegółach przesyłki międzynarodowej. Przykłady Global Customs ServicesLivingston InternationalFlexport | |||
| Dostawa na czas IsOnTimeDelivery | Obliczana flaga wskazująca, czy przesyłkę dostarczono w wymaganym terminie lub wcześniej. | ||
| Opis Ten atrybut logiczny jest wyliczany przez porównanie znacznika czasu czynności „Dostarczono towary” z „Wymaganą datą dostawy”. Przyjmuje wartość „true”, jeśli dostawa nastąpiła w terminie lub wcześniej, oraz „false”, jeśli była opóźniona. Atrybut ten służy bezpośrednio do obliczania KPI terminowości dostaw i jest jednym z elementów dashboardu z przeglądem wyników dostaw. Ułatwia analizę, ponieważ dla każdej przesyłki podaje jednoznaczny wynik. Można łatwo filtrować, agregować i wizualizować przesyłki dostarczone na czas oraz z opóźnieniem. Dlaczego to ważne Ta obliczana flaga ułatwia pomiar KPI terminowości dostaw oraz filtrowanie i analizowanie przesyłek dostarczonych na czas i z opóźnieniem. Skąd pobrać Tego atrybutu nie ma w systemie źródłowym. Jest obliczany podczas transformacji danych przez porównanie znacznika czasu czynności „Dostarczono towary” z atrybutem „RequestedDeliveryDate”. Przykłady truefalse | |||
| Kraj docelowy DestinationCountry | Kraj, do którego zaplanowano dostawę wysyłki. | ||
| Opis Ten atrybut wskazuje kraj docelowy wysyłki na podstawie lokalizacji odbiorcy. Uzupełnia informację o kraju nadania w geograficznej analizie procesu. Podobnie jak kraj nadania, kraj docelowy pozwala analizować różnice w wynikach na poszczególnych trasach handlowych. Jest szczególnie przydatny przy analizie czasu odprawy celnej, dostaw na ostatnim etapie transportu i skuteczności przewoźników w różnych regionach. Ułatwia dostosowanie strategii logistycznej do wymagań poszczególnych rynków. Dlaczego to ważne Pomaga analizować wyniki na konkretnych trasach handlowych i rozumieć problemy związane z odprawą celną, przewoźnikami i przepisami na rynkach docelowych. Skąd pobrać Dane pochodzą z adresu lokalizacji docelowej wysyłki lub odbiorcy, zapisanego w głównych danych lokalizacyjnych OTM. Przykłady CANFRAJPNBRA | |||
| Kraj nadania OriginCountry | Kraj, z którego rozpoczyna się transport wysyłki. | ||
| Opis Ten atrybut wskazuje kraj początkowy wysyłki na podstawie lokalizacji nadawcy. To ważna informacja geograficzna wykorzystywana w analizie logistyki. Analiza procesów według kraju nadania pomaga zrozumieć regionalne różnice w wynikach. Na przykład czas odprawy celnej, koszty przewoźników i czas transportu mogą się znacznie różnić w zależności od kraju nadania. Taki podział jest ważny w zarządzaniu logistyką międzynarodową i wykrywaniu wąskich gardeł charakterystycznych dla danego regionu. Dlaczego to ważne Umożliwia analizę geograficzną procesu transportowego i pomaga wykrywać wąskie gardła, koszty oraz różnice w wynikach charakterystyczne dla poszczególnych regionów. Skąd pobrać Dane pochodzą z adresu lokalizacji źródłowej wysyłki lub nadawcy, zapisanego w głównych danych lokalizacyjnych OTM. Przykłady USADEUCHNMEX | |||
| Nazwa użytkownika UserName | Nazwa lub identyfikator użytkownika, który wykonał daną czynność albo odpowiada za jej wykonanie. | ||
| Opis Ten atrybut wskazuje użytkownika lub agenta systemowego, który wykonał określone zdarzenie, na przykład „Zaplanowano przesyłkę” lub „Przypisano przewoźnika”. Pozwala ustalić odpowiedzialność i sprawdzić, jakie zasoby uczestniczyły w procesie. W process mining analiza czynności według użytkownika pomaga ocenić rozkład obciążenia pracą, określić potrzeby szkoleniowe oraz porównać wyniki poszczególnych osób lub zespołów. Umożliwia też rozróżnienie czynności wykonywanych ręcznie od tych realizowanych automatycznie przez system. Dlaczego to ważne Pozwala ustalić odpowiedzialność oraz analizować obciążenie pracą i wyniki poszczególnych użytkowników lub zespołów. Skąd pobrać Pobierany z pól identyfikatora użytkownika, na przykład INSERT_USER, powiązanych ze zmianami statusu lub zdarzeniami w tabelach historii albo dziennika OTM. Przykłady JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| Ostatnia aktualizacja danych LastDataUpdate | Znacznik czasu wskazujący, kiedy dane dotyczące tego zdarzenia zostały ostatnio odświeżone lub pobrane z systemu źródłowego. | ||
| Opis Ten atrybut zapisuje moment ostatniego pobrania danych z Oracle Transportation Management. Informuje o aktualności analizowanych danych, a nie o czasie wystąpienia zdarzenia biznesowego. Znacznik czasu pomaga ocenić aktualność analizy process mining. Pozwala sprawdzić, czy analizowane są bieżące dane, czy migawka z określonego momentu. Ułatwia też zarządzanie cyklami odświeżania danych i podejmowanie decyzji na podstawie aktualnych informacji. Dlaczego to ważne Informuje o aktualności danych, dzięki czemu wiadomo, jak bieżąca jest analiza i kiedy można oczekiwać kolejnego odświeżenia. Skąd pobrać Zwykle jest to znacznik czasu generowany przez system podczas wczytywania danych lub procesu ETL. Przykłady 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Rozbieżność na fakturze za przewóz FreightBillDiscrepancy | Flaga wskazująca, czy podczas kontroli faktury za przewóz wykryto rozbieżność. | ||
| Opis Ten atrybut logiczny przyjmuje wartość „true”, jeśli faktura otrzymana od przewoźnika nie zgadza się z oczekiwanym kosztem obliczonym w OTM. Rozbieżności mogą wynikać z nieprawidłowych stawek, opłat dodatkowych lub innych błędów w rozliczeniu. Atrybut ten stanowi podstawę KPI dotyczącego odsetka rozbieżności na fakturach za przewóz. Analiza częstotliwości występowania tych flag według przewoźnika, trasy lub typu przesyłki pomaga ustalić przyczyny błędów w rozliczeniach. Ułatwia to poprawę jakości danych, usprawnienie kontroli faktur i zapobieganie nadpłatom. Dlaczego to ważne Bezpośrednio wspiera analizę rozbieżności na fakturach za przewóz. Oznacza przesyłki z błędami w rozliczeniach, co pomaga ograniczyć nadpłaty i usprawnić kontrolę finansową. Skąd pobrać Zazwyczaj jest to status lub flaga ustawiana podczas rozliczania przewozu i uzgadniania faktur w OTM. Przykłady truefalse | |||
| Status wysyłki ShipmentStatus | Bieżący status wysyłki w jej cyklu, na przykład „Planned”, „In Transit” lub „Delivered”. | ||
| Opis Ten atrybut podsumowuje, na jakim etapie procesu znajduje się wysyłka. W odróżnieniu od czynności, która jest zdarzeniem w konkretnym momencie, status opisuje stan case wysyłki. Process mining koncentruje się na przebiegu czynności, ale ogólny status przydaje się do filtrowania case i zapewnia kontekst w dashboardach. Można na przykład analizować tylko wysyłki „Completed” albo sprawdzić, dlaczego wiele z nich przez nietypowo długi czas ma status „In Transit”. Dlaczego to ważne Podsumowuje postęp wysyłki i ułatwia filtrowanie oraz segmentowanie case w analizie. Skąd pobrać Dostępny w głównym rekordzie wysyłki w OTM, wskazuje jej bieżący stan w workflow. Przykłady PLANNEDBOOKEDIN_TRANSITDELIVERED | |||
| System źródłowy SourceSystem | Wskazuje system, z którego pochodzą dane o zdarzeniu, na przykład Oracle Transportation Management. | ||
| Opis Ten atrybut wskazuje aplikację źródłową, w której powstały dane. W złożonym środowisku logistycznym mogą one pochodzić z OTM, systemu zarządzania magazynem (WMS), systemu przewoźnika połączonego przez EDI lub innych zintegrowanych platform. Znajomość systemu źródłowego pomaga zarządzać danymi, oceniać ich jakość i rozwiązywać problemy. Ułatwia zrozumienie kontekstu oraz wyjaśnienie różnic w szczegółowości i aktualności danych. W analizie można filtrować zdarzenia pochodzące wyłącznie z określonego, zaufanego systemu. Dlaczego to ważne Informacja o pochodzeniu danych jest ważna przy ich weryfikacji i analizie w środowisku korzystającym z wielu systemów. Skąd pobrać Zwykle jest to stała wartość dodawana podczas ekstrakcji danych w celu oznaczenia źródła rekordów. Przykłady Oracle OTMOTM CloudSAP TM | |||
| Typ wysyłki ShipmentType | Klasyfikacja wysyłki, na przykład według poziomu usługi, rodzaju towaru lub jednostki biznesowej. | ||
| Opis Ten atrybut pozwala sklasyfikować przesyłkę zgodnie z potrzebami firmy, na przykład jako „Standardowa”, „Przyspieszona”, „Materiały niebezpieczne” lub „Międzyoddziałowa”. Klasyfikacja umożliwia stosowanie różnych reguł biznesowych i priorytetów oraz analizowanie danych z wybranej perspektywy. Wykorzystanie typu przesyłki jako wymiaru w process mining pozwala porównywać przebieg procesu dla różnych rodzajów przesyłek. Można dzięki temu sprawdzić, czy niektóre typy częściej się opóźniają, generują wyższe koszty lub przebiegają niestandardową ścieżką. Takie informacje pomagają dostosować proces do wymagań poszczególnych typów przesyłek. Dlaczego to ważne Umożliwia podział analizy według kontekstu biznesowego i sprawdzenie, czy różne typy przesyłek przebiegają innymi ścieżkami lub osiągają różne wyniki. Skąd pobrać Zazwyczaj jest to konfigurowalne pole lub atrybut w rekordzie przesyłki albo zlecenia w OTM. Przykłady StandardowaPrzyspieszonaMiędzynarodowaKrajowa | |||
| Zmiana trasy IsRerouted | Flaga wskazująca, czy trasę przesyłki zmieniono po jej pierwotnym zarezerwowaniu. | ||
| Opis Ten atrybut logiczny przyjmuje wartość „true”, jeśli po zaplanowaniu i zarezerwowaniu przesyłki nastąpiła istotna zmiana jej trasy. Przyczyną może być prośba klienta, nieprzewidziane zakłócenie lub możliwość optymalizacji. Atrybut ten bezpośrednio wspiera KPI dotyczący odsetka przesyłek ze zmienioną trasą oraz dashboard z analizą zmian tras i przyspieszonych przewozów. Śledzenie częstotliwości zmian pomaga wykryć problemy z planowaniem lub realizacją. Ujawnia niestabilność operacji i związane z nią koszty, dzięki czemu można ograniczyć kosztowne i zakłócające przebieg procesu zmiany. Dlaczego to ważne Pomaga określić częstotliwość i wpływ wyjątków operacyjnych, takich jak zmiany tras, oraz wskazać nieefektywności w planowaniu i realizacji procesu. Skąd pobrać Flaga jest wyliczana na podstawie wykrytych zdarzeń zmiany trasy w dzienniku zdarzeń lub przez porównanie trasy końcowej z trasą pierwotnie zaplanowaną. Przykłady truefalse | |||
Czynności w zarządzaniu transportem
| Działanie | Opis | ||
|---|---|---|---|
| Dostarczono towary | To zdarzenie oznacza dostarczenie wysyłki do odbiorcy w miejscu docelowym. Jest rejestrowane, gdy dla ostatniego punktu trasy wysyłki zapisano rzeczywisty czas przyjazdu. | ||
| Dlaczego to ważne To podstawowy etap przy pomiarze terminowości dostaw i całkowitego czasu realizacji. Zamyka proces realizacji transportu. Skąd pobrać Zdarzenie można wywnioskować z wypełnienia pola ACTUAL_ARRIVAL w rekordzie ostatniego punktu trasy wysyłki w tabeli SHIPMENT_STOP. Rejestrowanie Należy użyć znacznika czasu ACTUAL_ARRIVAL z ostatniego rekordu wysyłki w tabeli SHIPMENT_STOP. Typ zdarzenia inferred | |||
| Odebrano towary | To zdarzenie oznacza rozpoczęcie fizycznego transportu, gdy przewoźnik odbiera towary w miejscu nadania. Jest rejestrowane, gdy pierwszy punkt trasy wysyłki otrzymuje status „DEPARTED”. | ||
| Dlaczego to ważne To ważny etap oznaczający początek transportu. Pozwala śledzić terminowość odbioru przez przewoźnika i rzeczywisty czas przewozu. Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu pierwszego punktu w tabeli SHIPMENT_STOP na „DEPARTED” albo ze zdarzenia statusowego wysyłki wskazującego na odbiór. Rejestrowanie Należy użyć znacznika czasu ACTUAL_DEPARTURE z pierwszego rekordu wysyłki w tabeli SHIPMENT_STOP. Typ zdarzenia inferred | |||
| Otrzymano potwierdzenie dostawy | To zdarzenie oznacza otrzymanie i zarejestrowanie formalnego potwierdzenia dostawy, na przykład podpisanego dokumentu. Zwykle jest zapisywane jako dokument określonego typu przypisany do wysyłki. | ||
| Dlaczego to ważne POD ma istotne znaczenie przy fakturowaniu i rozstrzyganiu sporów. Śledzenie jego otrzymania pomaga zapewnić zgodność procesu i przyspieszyć rozliczenia. Skąd pobrać Może to być jawne zdarzenie albo zdarzenie wywnioskowane z daty utworzenia dokumentu POD powiązanego z wysyłką. W tabeli DOCUMENT należy szukać dokumentów typu POD. Rejestrowanie Należy użyć znacznika czasu utworzenia dokumentu typu „POD” powiązanego z wysyłką. Typ zdarzenia explicit | |||
| Otrzymano zgłoszenie transportowe | To zdarzenie oznacza zarejestrowanie w systemie zapotrzebowania na transport, zwykle jako Order Release. Jest rejestrowane w chwili utworzenia nowego rekordu Order Release w Oracle Transportation Management i wskazuje początkowe zapotrzebowanie na wysyłkę. | ||
| Dlaczego to ważne Jako początek procesu zdarzenie to pozwala mierzyć całkowity czas realizacji od początku do końca i analizować wzorce popytu. Ułatwia też sprawdzenie, ile czasu upływa od zgłoszenia do zaplanowania transportu. Skąd pobrać To jawne zdarzenie, którego źródłem jest znacznik czasu utworzenia rekordu Order Release w tabeli ORDER_RELEASE. Można wykorzystać pole INSERT_DATE lub inne pole zawierające datę utworzenia. Rejestrowanie Należy użyć znacznika czasu utworzenia Order Release w tabeli ORDER_RELEASE. Typ zdarzenia explicit | |||
| Przetworzono płatność | To ostatnie zdarzenie oznacza pomyślne przetworzenie płatności na rzecz przewoźnika za wykonane usługi. Zamyka rozliczenie finansowe wysyłki. | ||
| Dlaczego to ważne To zdarzenie zamyka cykl transportowy. Pozwala mierzyć czas przetwarzania płatności na rzecz przewoźników i skutecznie zarządzać współpracą z nimi. Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu powiązanego vouchera lub faktury na „PAID”. Dane znajdują się w tabelach VOUCHER lub BILL. Rejestrowanie Należy ustalić znacznik czasu zmiany VOUCHER.VOUCHER_STATUS_ID na „PAID”. Typ zdarzenia inferred | |||
| Zaplanowano wysyłkę | To zdarzenie oznacza pomyślne połączenie co najmniej jednego Order Release w wykonalną wysyłkę przez silnik planowania OTM. Jest rejestrowane, gdy system zmienia status wysyłki, wskazując, że została zaplanowana, na przykład na „PLANNING_PLANNED FINAL”. | ||
| Dlaczego to ważne To ważny etap oddzielający fazę zgłoszenia zapotrzebowania od realizacji. Analiza czasu do tego zdarzenia pomaga ocenić sprawność planowania i wykryć wąskie gardła w działaniu silnika. Skąd pobrać Zdarzenie można wywnioskować z historii statusów obiektu Shipment w tabeli SHIPMENT. Należy znaleźć zmianę statusu wskazującą na zakończenie planowania. Rejestrowanie Należy ustalić znacznik czasu zmiany SHIPMENT.SHIPMENT_STATUS_VALUE_GID na status „Planned”. Typ zdarzenia inferred | |||
| Anulowano wysyłkę | To zdarzenie oznacza anulowanie zaplanowanej wysyłki i przedwczesne zakończenie jej cyklu. Jest rejestrowane jako zmiana statusu obiektu Shipment na „cancelled”. | ||
| Dlaczego to ważne Śledzenie anulowań pomaga zrozumieć wyjątki i problemy w procesie. Ułatwia ustalenie przyczyn, takich jak zmiany zapotrzebowania lub błędy planowania. Skąd pobrać Zdarzenie można wywnioskować z historii statusów obiektu Shipment w tabeli SHIPMENT. Należy szukać zmiany statusu na przykład na „PLANNING_CANCELED”. Rejestrowanie Należy ustalić znacznik czasu zmiany SHIPMENT.SHIPMENT_STATUS_VALUE_GID na status „Cancelled”. Typ zdarzenia inferred | |||
| Przeprowadzono audyt faktury za transport | To zdarzenie oznacza zakończenie audytu faktury za transport, podczas którego faktura przewoźnika jest porównywana ze szczegółami wysyłki i weryfikowana. Jest rejestrowane, gdy status rozliczenia wysyłki zmienia się na „VOUCHER_AUDITED” lub podobny. | ||
| Dlaczego to ważne Audyt pomaga kontrolować finanse i wykrywać rozbieżności w rozliczeniach. Analiza tego etapu usprawnia proces od audytu do płatności i wspiera KPI wskaźnika rozbieżności na fakturach za transport (Freight Bill Discrepancy Rate). Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu obiektu Bill powiązanego z wysyłką. W tabeli BILL należy szukać zmian statusu wskazujących na zakończenie audytu. Rejestrowanie Należy ustalić znacznik czasu zmiany BILL.BILL_STATUS_VALUE_GID na status „Audited”. Typ zdarzenia inferred | |||
| Przypisano przewoźnika | To moment, w którym konkretny przewoźnik otrzymuje zlecenie transportu i je akceptuje. Można go ustalić na podstawie zmiany statusu oferty transportowej na „TENDER_ACCEPTED” lub podobny. | ||
| Dlaczego to ważne Śledzenie tego etapu pomaga ocenić sprawność wyboru przewoźnika i przekazywania mu zlecenia. Opóźnienia mogą znacząco wpłynąć na harmonogram, zanim transport w ogóle się rozpocznie. Skąd pobrać Zdarzenie można wywnioskować z historii statusów w tabeli SHIPMENT_TENDER, szukając znacznika czasu wskazującego na akceptację przez przewoźnika. Rejestrowanie Należy użyć znacznika czasu zmiany statusu na „TENDER_ACCEPTED” w historii oferty transportowej dla wysyłki. Typ zdarzenia inferred | |||
| Ustalono termin dostawy | To zdarzenie oznacza ustalenie z odbiorcą konkretnej daty i godziny dostawy. Jest rejestrowane na podstawie danych o terminie dla ostatniego punktu trasy wysyłki. | ||
| Dlaczego to ważne To ważny etap koordynacji dostawy końcowej. Analiza czasu między przyjazdem a zaplanowaną dostawą może ujawnić wąskie gardła na ostatnim etapie transportu. Skąd pobrać Zdarzenie można wywnioskować z wypełnienia pól daty i godziny terminu dla ostatniego punktu trasy wysyłki, czyli miejsca dostawy, w tabeli SHIPMENT_STOP. Rejestrowanie Należy użyć znacznika czasu pierwszego wypełnienia pól terminu dla punktu dostawy. Typ zdarzenia inferred | |||
| Ustalono termin odbioru | To zdarzenie oznacza ustalenie i zapisanie konkretnej daty oraz godziny odbioru. Informacje te często znajdują się w danych o terminach na poziomie punktu trasy wysyłki. | ||
| Dlaczego to ważne Ustalanie terminów to ważny etap koordynacji. Analiza tego zdarzenia pozwala ocenić sprawność planowania i jego wpływ na punktualność odbioru. Skąd pobrać Zdarzenie można wywnioskować z wypełnienia pól daty i godziny terminu dla pierwszego punktu trasy wysyłki, czyli miejsca odbioru, w tabeli SHIPMENT_STOP. Rejestrowanie Należy użyć znacznika czasu pierwszego wypełnienia pól terminu dla punktu odbioru. Typ zdarzenia inferred | |||
| Wysyłka w transporcie | Oznacza, że towary zostały odebrane i są przewożone do miejsca docelowego. Nie jest to pojedynczy moment, ale początek tego stanu można zarejestrować bezpośrednio po zdarzeniu „Odebrano towary”. | ||
| Dlaczego to ważne To zdarzenie rozpoczyna etap transportu, ważny przy monitorowaniu postępów dostawy i wykrywaniu opóźnień w przewozie. Stanowi podstawę dashboardu „Miejsca częstych opóźnień w transporcie” (In-Transit Delay Hotspots). Skąd pobrać To samo zdarzenie co „Odebrano towary”, ale w modelach procesów często przedstawia się je jako osobną czynność, aby zaznaczyć początek nowego etapu. Wynika z odjazdu z pierwszego punktu trasy. Rejestrowanie Tak samo jak w przypadku „Odebrano towary”: należy użyć znacznika czasu ACTUAL_DEPARTURE z pierwszego rekordu SHIPMENT_STOP. Typ zdarzenia inferred | |||
| Zakończono odprawę celną | W przypadku wysyłek międzynarodowych to zdarzenie oznacza pomyślne przejście towarów przez odprawę celną na granicy lub w porcie. Informacja jest często rejestrowana jako osobne zdarzenie lub zmiana statusu wysyłki. | ||
| Dlaczego to ważne Odprawa celna często powoduje znaczne opóźnienia w logistyce międzynarodowej. Śledzenie tego etapu pozwala mierzyć i skracać czas odprawy. Skąd pobrać Zdarzenie jest zwykle rejestrowane jako ręcznie wprowadzone lub zintegrowane zdarzenie wysyłki „Customs”. W tabeli SHIPMENT_STATUS należy szukać kodów zdarzeń związanych z odprawą celną. Rejestrowanie Należy ustalić znacznik czasu zdarzenia „Customs Cleared” w tabeli SHIPMENT_STATUS. Typ zdarzenia explicit | |||
| Zarezerwowano transport | To formalne potwierdzenie rezerwacji u przewoźnika po zaakceptowaniu zlecenia. Zwykle jest rejestrowane, gdy status wysyłki zmienia się na „SECURE RESOURCES_BOOKED” lub równoważny. | ||
| Dlaczego to ważne Potwierdzenie oznacza zobowiązanie przewoźnika i oficjalnie rozpoczyna fazę realizacji wysyłki. To ważny etap przy pomiarze KPI czasu planowania wysyłki (Shipment Planning Cycle Time). Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu obiektu Shipment w tabeli SHIPMENT. Należy sprawdzić, kiedy po przypisaniu przewoźnika status zmienił się na potwierdzony lub zarezerwowany. Rejestrowanie Należy ustalić znacznik czasu zmiany SHIPMENT.SHIPMENT_STATUS_VALUE_GID na status „Booked”. Typ zdarzenia inferred | |||
Instrukcje ekstrakcji danych
Kroki
- Otwórz BI Publisher: Zaloguj się do aplikacji Oracle Transportation Management (OTM). Przejdź do Business Process Automation, następnie Reporting i wybierz Report Manager. Otworzy się interfejs Oracle Business Intelligence Publisher.
- Utwórz model danych: W BI Publisher kliknij przycisk New i wybierz Data Model. Otworzy się edytor modelu danych, w którym można określić źródło danych raportu.
- Zdefiniuj zapytanie SQL: W edytorze modelu danych kliknij ikonę plusa na diagramie Data Sets i wybierz SQL Query. Nadaj zestawowi danych nazwę, na przykład „OTM_Process_Mining_DS”. Jako Data Source wybierz bazę danych OTM. Skopiuj całe zapytanie SQL z sekcji „query” tego dokumentu i wklej je w polu SQL Query.
- Dodaj parametry: Zapytanie korzysta z parametrów zakresu dat i nazwy domeny (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher wykryje je automatycznie. Można skonfigurować ich właściwości, na przykład ustawić typ Date dla parametrów daty.
- Zapisz model danych: Kliknij ikonę Save. Wybierz lokalizację w katalogu BI Publisher, wpisz opisową nazwę, na przykład „OTM Shipment Process Extraction”, i zapisz model danych.
- Utwórz raport: Wróć do katalogu, kliknij przycisk New i wybierz Report. W kreatorze tworzenia raportu wybierz opcję „Use Data Model” i wskaż zapisany model danych.
- Skonfiguruj układ raportu: Kreator przeprowadzi przez tworzenie układu. Wystarczy prosty układ „Table”. Przeciągnij wszystkie kolumny z zestawu danych do tabeli. Nie grupuj ani nie agreguj danych.
- Zapisz raport: Po skonfigurowaniu układu przejdź do ostatniego kroku i zapisz raport. Nadaj mu nazwę zbliżoną do nazwy modelu danych.
- Uruchom raport: Otwórz nowo utworzony raport. Pojawi się prośba o podanie wartości parametrów (Start Date, End Date, Domain Name). Wprowadź wybrany zakres.
- Wyeksportuj dane: Po uruchomieniu raportu i wyświetleniu danych kliknij menu Actions i wybierz Export. Wybierz format CSV. Zostanie pobrany plik CSV zawierający dziennik zdarzeń.
- Przygotuj plik do przesłania: Otwórz pobrany plik CSV. Sprawdź, czy nagłówki kolumn odpowiadają wymaganym atrybutom:
ShipmentId,ActivityName,EventTimeoraz zalecanym atrybutom. Upewnij się, że kolumnaEventTimema spójny format daty i godziny. Plik jest gotowy do przesłania do ProcessMind.
Konfiguracja
- Źródło danych: Zapytanie należy uruchomić na głównym operacyjnym schemacie bazy danych OTM, zazwyczaj o nazwie GLOGOWNER.
- Parametry raportu:
P_START_DATE: Początek okresu raportowania. Użyj formatu „YYYY-MM-DD”.P_END_DATE: Koniec okresu raportowania. Użyj formatu „YYYY-MM-DD”.P_DOMAIN_NAME: Domena OTM, z której mają zostać pobrane dane. Wpisz „[Your Domain Name]”.
- Zakres dat: Przy pierwszej analizie zaleca się pobranie danych z okresu od 3 do 6 miesięcy. Pozwala to zachować równowagę między ilością danych a wydajnością. W przypadku uruchomień produkcyjnych warto pobierać dane partiami miesięcznymi lub kwartalnymi.
- Uprawnienia: Użytkownik OTM uruchamiający raport potrzebuje odpowiednich ról, takich jak BI PUBLISHER DATA MODEL DEVELOPER i BI PUBLISHER REPORT DEVELOPER, aby tworzyć i modyfikować modele danych oraz raporty. Wymagany jest również dostęp tylko do odczytu do tabel bazy danych.
- Wydajność: Zapytanie łączy kilka dużych tabel. W środowiskach z dużą ilością danych zaleca się uruchamianie raportu poza godzinami szczytu, aby nie obciążać systemu. Zakres dat powinien być możliwie wąski, by raport zakończył się w odpowiednim czasie.
Przykładowe zapytanie sql
WITH SHIPMENTS_BASE AS (
SELECT
S.SHIPMENT_GID AS ShipmentId,
SP.SERVPROV_NAME AS CarrierName,
S.TOTAL_ACTUAL_COST AS ShipmentCost,
TM.TRANSPORT_MODE_NAME AS TransportationMode,
(
SELECT MAX(ORL.LATE_DELIVERY_DATE)
FROM SHIPMENT_S_SHIP_UNIT SSU
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SSU.SHIPMENT_GID = S.SHIPMENT_GID
) AS RequestedDeliveryDate,
S.DOMAIN_NAME
FROM SHIPMENT S
LEFT JOIN SERVPROV SP ON S.SERVPROV_GID = SP.SERVPROV_GID
LEFT JOIN TRANSPORT_MODE TM ON S.TRANSPORT_MODE_GID = TM.TRANSPORT_MODE_GID
WHERE S.INSERT_DATE BETWEEN TO_DATE(:P_START_DATE, 'YYYY-MM-DD') AND TO_DATE(:P_END_DATE, 'YYYY-MM-DD') + 1
AND S.DOMAIN_NAME = :P_DOMAIN_NAME
)
-- 1. Transportation Request Received
SELECT
SB.ShipmentId,
'Transportation Request Received' AS ActivityName,
MIN(ORL.INSERT_DATE) AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_S_SHIP_UNIT SSU ON SB.ShipmentId = SSU.SHIPMENT_GID
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SB.DOMAIN_NAME = ORL.DOMAIN_NAME
GROUP BY SB.ShipmentId, SB.CarrierName, SB.RequestedDeliveryDate, SB.ShipmentCost, SB.TransportationMode
UNION ALL
-- 2. Shipment Planned
SELECT
SB.ShipmentId,
'Shipment Planned' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
SB.ShipmentId,
'Carrier Assigned' AS ActivityName,
ST.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_TENDER ST ON SB.ShipmentId = ST.SHIPMENT_GID
WHERE ST.TENDER_STATUS_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
SB.ShipmentId,
'Shipment Booked' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
SB.ShipmentId,
'Pickup Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
SB.ShipmentId,
'Goods Picked Up' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
SB.ShipmentId,
'Shipment In Transit' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
SB.ShipmentId,
'Customs Cleared' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
SB.ShipmentId,
'Delivery Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
SB.ShipmentId,
'Goods Delivered' AS ActivityName,
SST.ACTUAL_ARRIVAL_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.ACTUAL_ARRIVAL_DATE IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
SB.ShipmentId,
'Proof of Delivery Received' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your POD Received Event Code]'
UNION ALL
-- 12. Freight Bill Audited
SELECT
SB.ShipmentId,
'Freight Bill Audited' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
SB.ShipmentId,
'Payment Processed' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = '[Your Payment Processed Bill Status]'
UNION ALL
-- 14. Shipment Cancelled
SELECT
SB.ShipmentId,
'Shipment Cancelled' AS ActivityName,
S.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT S ON SB.ShipmentId = S.SHIPMENT_GID
WHERE S.SHIPMENT_STATUS_GID = 'SHIPMENT_CANCELLED' Kroki
- Nawiąż połączenie z bazą danych: Uzyskaj dane logowania z dostępem tylko do odczytu oraz parametry połączenia (host, port, identyfikator usługi) z bazą Oracle Transportation Management. Potrzebny będzie dostęp do schematu
GLOGOWNER. - Skonfiguruj klienta SQL: Skonfiguruj narzędzie do obsługi SQL, takie jak Oracle SQL Developer, DBeaver lub Toad, korzystając z parametrów połączenia uzyskanych w poprzednim kroku.
- Przygotuj zapytanie: Skopiuj całe zapytanie SQL z tego dokumentu do edytora zapytań w kliencie SQL.
- Ustaw parametry zapytania: Znajdź wartości zastępcze w klauzulach
WHEREzapytania. Zastąp[START_DATE],[END_DATE]i[YOUR_DOMAIN_NAME]odpowiednimi wartościami. Na przykład ustaw zakres dat obejmujący od 3 do 6 miesięcy i podaj domenę operacyjną, którą Państwo analizują. - Uruchom zapytanie: Uruchom zmodyfikowane zapytanie SQL. W zależności od zakresu dat i wielkości systemu wykonanie może potrwać kilka minut.
- Sprawdź wyniki: Po zakończeniu zapytania sprawdź, czy zwrócono wiersze i czy najważniejsze kolumny, takie jak
ShipmentId,ActivityNameiEventTime, zawierają dane. - Wyeksportuj dane do CSV: Wyeksportuj cały zestaw wyników do pliku CSV. Użyj standardowych ustawień: przecinek jako separator, podwójne cudzysłowy dla tekstu i kodowanie UTF-8.
- Sprawdź nagłówki kolumn: Przed przesłaniem upewnij się, że nagłówki w pliku CSV dokładnie odpowiadają wymaganym nazwom atrybutów:
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeiDelayReason. - Prześlij plik do ProcessMind: Przygotowany plik CSV jest gotowy do przesłania i analizy w ProcessMind.
Konfiguracja
- Schemat bazy danych: Zapytanie jest przeznaczone do uruchomienia na standardowym schemacie bazy danych Oracle Transportation Management, zazwyczaj o nazwie
GLOGOWNER. - Wymagane uprawnienia: Potrzebne jest konto bazy danych z dostępem tylko do odczytu do tabel używanych w zapytaniu. Są to:
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLiVOUCHER. - Filtrowanie według domeny: W środowisku OTM z wieloma dzierżawcami należy filtrować dane według
DOMAIN_NAME. Zapytanie zawiera wartość zastępczą[YOUR_DOMAIN_NAME], którą trzeba ustawić, aby pobrać dane właściwej jednostki biznesowej. - Zakres dat: Aby kontrolować wydajność i ilość danych, należy podać datę początkową i końcową. Zaleca się filtrowanie według indeksowanej kolumny, takiej jak
SHIPMENT.INSERT_DATE. Przy pierwszej analizie zwykle wybiera się okres od 3 do 6 miesięcy. - Dostosowanie kodów statusu: Zapytanie korzysta z typowych, domyślnych kodów statusu, na przykład
PLANNING_PLANNED FINALiTENDER_ACCEPTED. Wdrożenie OTM może używać własnych kodów statusu. Może być konieczna zmiana wartości w klauzulachWHERE, aby odpowiadały konfiguracji systemu.
Przykładowe zapytanie sql
WITH ShipmentBase AS (
SELECT s.SHIPMENT_GID, s.SERVPROV_GID, s.LATE_DELIVERY_DATE, s.TRANSPORT_MODE_GID, sc.TotalShipmentCost
FROM GLOGOWNER.SHIPMENT s
LEFT JOIN (
SELECT sc.SHIPMENT_GID, SUM(sc.COST) as TotalShipmentCost
FROM GLOGOWNER.SHIPMENT_COST sc
GROUP BY sc.SHIPMENT_GID
) sc ON s.SHIPMENT_GID = sc.SHIPMENT_GID
WHERE s.INSERT_DATE BETWEEN TO_DATE('[START_DATE]', 'YYYY-MM-DD') AND TO_DATE('[END_DATE]', 'YYYY-MM-DD')
AND s.DOMAIN_NAME = '[YOUR_DOMAIN_NAME]'
),
OrderReleaseInfo AS (
SELECT ssu.SHIPMENT_GID, MIN(orl.INSERT_DATE) as Earliest_OR_Date
FROM GLOGOWNER.S_SHIP_UNIT ssu
JOIN GLOGOWNER.S_SHIP_UNIT_LINE ssul ON ssu.S_SHIP_UNIT_GID = ssul.S_SHIP_UNIT_GID
JOIN GLOGOWNER.ORDER_RELEASE_LINE orl ON ssul.ORDER_RELEASE_LINE_GID = orl.ORDER_RELEASE_LINE_GID
GROUP BY ssu.SHIPMENT_GID
)
-- 1. Transportation Request Received
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Transportation Request Received' AS "ActivityName",
ori.Earliest_OR_Date AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN OrderReleaseInfo ori ON sb.SHIPMENT_GID = ori.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ori.Earliest_OR_Date IS NOT NULL
UNION ALL
-- 2. Shipment Planned
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Planned' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Carrier Assigned' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Booked' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Pickup Appointment Scheduled' AS "ActivityName",
stp.APPT_START_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.APPT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Goods Picked Up' AS "ActivityName",
stp.ACTUAL_DEPARTURE_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.ACTUAL_DEPARTURE_TIME IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment In Transit' AS "ActivityName",
stp.ACTUAL_DEPARTURE_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.ACTUAL_DEPARTURE_TIME IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Customs Cleared' AS "ActivityName",
se.EVENT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
se.REMARK_TEXT AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_EVENT se ON sb.SHIPMENT_GID = se.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE se.EVENT_CODE_GID = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Delivery Appointment Scheduled' AS "ActivityName",
stp.APPT_START_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = (SELECT MAX(s2.STOP_NUM) FROM GLOGOWNER.SHIPMENT_STOP s2 WHERE s2.SHIPMENT_GID = stp.SHIPMENT_GID)
AND stp.APPT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Goods Delivered' AS "ActivityName",
stp.ACTUAL_ARRIVAL_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = (SELECT MAX(s2.STOP_NUM) FROM GLOGOWNER.SHIPMENT_STOP s2 WHERE s2.SHIPMENT_GID = stp.SHIPMENT_GID)
AND stp.ACTUAL_ARRIVAL_TIME IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Proof of Delivery Received' AS "ActivityName",
d.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.DOCUMENT d ON sb.SHIPMENT_GID = d.OBJECT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE d.OBJECT_TYPE_GID = 'SHIPMENT' AND d.DOCUMENT_TYPE_GID = 'POD'
UNION ALL
-- 12. Freight Bill Audited
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Freight Bill Audited' AS "ActivityName",
b.UPDATE_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.BILL b ON sb.SHIPMENT_GID = b.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE b.APPROVAL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Payment Processed' AS "ActivityName",
v.UPDATE_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.BILL b ON sb.SHIPMENT_GID = b.SHIPMENT_GID
JOIN GLOGOWNER.VOUCHER v ON b.BILL_GID = v.BILL_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE v.VOUCHER_STATUS_GID = 'VOUCHER_PAID' -- This status may vary based on configuration
UNION ALL
-- 14. Shipment Cancelled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Cancelled' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID LIKE '%CANCELLED%'; Gotowi do rozpoczęcia?
Skorzystaj z tego szablonu, aby przekształcić surowe dane w informacje przydatne w podejmowaniu decyzji i usprawnić procesy transportowe. Rozpocznij optymalizację już dziś.
Usprawnij zarządzanie transportem
Skróć czas cyklu o 30% i wyeliminuj wąskie gardła w Oracle OTM.
Karta kredytowa nie jest wymagana • 14-dniowy okres próbny