Šablona dat pro řízení přepravy
Šablona dat pro řízení přepravy
- Doporučené atributy ke sběru
- Důležité činnosti ke sledování
- Pokyny k extrakci dat
Atributy pro řízení přepravy
| Název | Popis | ||
|---|---|---|---|
| Čas události EventTime | Přesné datum a čas, kdy došlo ke konkrétní aktivitě nebo události v přepravě. | ||
| Popis Toto časové razítko označuje přesný okamžik, kdy byla v systému zaznamenána aktivita, například „Přiřazen dopravce“ nebo „Přijato potvrzení o doručení“. Časová razítka jsou pro process mining zásadní, protože určují chronologické pořadí událostí u každé zásilky. Jejich přesnost je důležitá pro veškeré časové analýzy. Používají se k výpočtu doby mezi aktivitami, měření délky procesů, odhalování zpoždění a hodnocení výkonu podle dohod o úrovni služeb. Analýza času události pomáhá určit, kde se v procesu ztrácí čas. Proč je to důležité Toto časové razítko je nezbytné pro chronologické řazení událostí a výpočet všech ukazatelů výkonnosti, například doby průchodu procesem a zpoždění. Kde data získat Získává se z polí s časovými razítky událostí v tabulkách historie událostí nebo stavů v OTM. Příklady 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Název aktivity ActivityName | Název konkrétní události nebo milníku, ke kterému došlo v rámci přepravy zásilky. | ||
| Popis Tento atribut popisuje jeden krok v životním cyklu přepravy, například „Zásilka naplánována“, „Zboží vyzvednuto“ nebo „Zboží doručeno“. Každá aktivita představuje samostatnou obchodní událost, která posouvá zásilku k dokončení. Analýza pořadí a délky těchto aktivit je základem process mining. Umožňuje zjistit skutečný průběh procesu, odhalit úzká místa mezi kroky a měřit dodržování standardních pracovních postupů. Odchylky v průběhu aktivit mohou upozornit na výjimky, opakovanou práci nebo odklon od optimálního postupu. Proč je to důležité Určuje kroky v mapě procesu a umožňuje znázornit a analyzovat průběh zásilky, úzká místa i odchylky. Kde data získat Tyto údaje se získávají z tabulek událostí nebo záznamů změn stavů v Oracle Transportation Management. Název konkrétní aktivity může být sestaven z kódů a popisů událostí. Příklady Zásilka naplánovánaZboží vyzvednutoCelní odbavení dokončenoZboží doručeno | |||
| Zásilka ShipmentId | Jedinečný identifikátor zásilky, který slouží jako hlavní ID případu pro sledování všech souvisejících přepravních aktivit. | ||
| Popis ID zásilky jednoznačně identifikuje jednu přepravu zboží od odesílatele k příjemci. Tento atribut je základem analýzy procesu. Sdružuje všechny související události, například plánování, rezervaci, vyzvednutí, přepravu, doručení a fakturaci, do jednoho případu. V process mining umožňuje analýza událostí podle ID zásilky získat úplný přehled o celém životním cyklu přepravy. Slouží k výpočtu důležitých ukazatelů, jako je celková doba průchodu procesem, včasnost doručení a náklady na zásilku. Díky tomu lze lépe porozumět efektivitě procesu a úrovni zákaznických služeb. Proč je to důležité Jde o hlavní ID případu, které propojuje všechny kroky procesu a umožňuje úplnou analýzu přepravy každé jednotlivé zásilky. Kde data získat Jde o primární klíč v Oracle Transportation Management, který se obvykle nachází v tabulkách pro správu zásilek nebo objednávek. Konkrétní názvy tabulek a polí najdete v dokumentaci OTM. Příklady SH-0012345SH-0012346SH-0012347 | |||
| Důvod zpoždění DelayReason | Kód nebo popis příčiny zpoždění zásilky. | ||
| Popis Pokud se zásilka zpozdí, tento atribut uvádí důvod, například „Počasí“, „Celní zadržení“, „Přetížení přístavu“ nebo „Technická závada“. Údaj se získává z aktualizací od dopravce nebo z ručních záznamů v OTM. Tento atribut je důležitý pro analýzu hlavních příčin pozdního doručení. Kategorizace a počítání důvodů zpoždění pomáhá firmám odhalit nejčastější problémy v dodavatelském řetězci. Umožňuje cíleně zlepšovat procesy, například vybírat spolehlivější dopravce pro určité trasy nebo zlepšit dokumentaci a urychlit celní odbavení. Proč je to důležité Pomáhá odhalit hlavní příčiny pozdních zásilek a přijmout cílená opatření k omezení běžných problémů a zlepšení včasnosti doručení. Kde data získat Obvykle se zaznamenává v podrobnostech událostí sledování v OTM. Může být přiřazen ke konkrétním kódům výjimek nebo zpoždění. Příklady WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONTRAFFIC | |||
| Náklady na zásilku ShipmentCost | Celkové náklady na přepravu zásilky nebo částka účtovaná za její přepravu. | ||
| Popis Tento atribut představuje celkové náklady spojené se zásilkou, včetně poplatků dopravce, palivových příplatků a dalších vedlejších poplatků. Jde o důležitý ukazatel finanční výkonnosti přepravního procesu. Z nákladů na zásilku lze vypočítat KPI průměrných nákladů na dopravce a zásilku (Average Carrier Cost per Shipment). Údaje lze rozdělit podle dopravce, trasy, způsobu přepravy nebo typu zásilky a hledat příležitosti k úsporám. Používají se také při analýze nesrovnalostí ve fakturách za přepravu, kde se porovnávají plánované a skutečné náklady. Proč je to důležité Poskytuje finanční údaje potřebné k analýze výdajů na přepravu, hledání úspor a měření finančního dopadu neefektivních procesů. Kde data získat Tyto údaje se obvykle nacházejí ve finanční části nebo v části s náklady u zásilky v OTM. Často se doplní po výpočtu přepravních sazeb a vypořádání. Příklady 250.751200.00545.50 | |||
| Název dopravce CarrierName | Název dopravce nebo poskytovatele přepravních služeb odpovědného za přepravu zásilky. | ||
| Popis Tento atribut označuje logistického partnera, kterému byla svěřena přeprava zboží. Může jít například o velkou přepravní společnost, místního kurýra nebo námořního dopravce. Jedním z hlavních cílů process mining v přepravě je analýza výkonu jednotlivých dopravců. Tento atribut umožňuje rozdělit zásilky do skupin a porovnat dopravce podle ukazatelů, jako je včasnost doručení, náklady na zásilku, doba přepravy nebo četnost problémů, například zpoždění a nesrovnalostí ve fakturaci. Tyto poznatky pomáhají při výběru dopravců, vyjednávání smluv a řízení jejich výkonu. Proč je to důležité Umožňuje porovnávat výkon různých dopravců, což je důležité pro optimalizaci jejich výběru, vyjednávání a snižování nákladů. Kde data získat Údaj najdete v podrobnostech zásilky v OTM, kde je propojen se záznamem přiřazeného dopravce nebo poskytovatele služeb. Může být uložen v tabulkách souvisejících se zásilkami a poskytovateli služeb. Příklady FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Požadované datum doručení RequestedDeliveryDate | Datum a čas doručení požadovaný zákazníkem nebo sjednaný jako cílová hodnota dohody o úrovni služeb (SLA). | ||
| Popis Tento atribut zachycuje cílové časové razítko doručení zásilky. Představuje závazek vůči zákazníkovi a slouží jako hlavní měřítko včasnosti. V process mining se toto datum porovnává se skutečným časem doručení z aktivity „Zboží doručeno“. Zjistí se tak, zda byla zásilka doručena včas, nebo se zpožděním. Jde o základ KPI míry včasného doručení (On-Time Delivery Rate) a důležitý údaj pro dashboard Delivery Performance Overview. Analýza odchylek pomáhá odhalit systémové příčiny zpoždění a zlepšit spokojenost zákazníků. Proč je to důležité Jde o hlavní měřítko včasnosti doručení, důležité KPI pro spokojenost zákazníků a efektivní provoz. Kde data získat Tyto údaje se obvykle ukládají na úrovni objednávky nebo zásilky v OTM, často do polí souvisejících s datem doručení nebo termíny. Příklady 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Způsob přepravy TransportationMode | Způsob přepravy zásilky, například kamionová, železniční, námořní nebo letecká. | ||
| Popis Tento atribut zařazuje zásilku podle způsobu přepravy. Mezi běžné způsoby patří přeprava celým kamionem (FTL), kusová přeprava (LTL), námořní, letecká a železniční přeprava. Jde o základní vlastnost zásilky, která ovlivňuje náklady, dobu přepravy i její složitost. Při analýze slouží způsob přepravy jako důležitý rozměr pro členění dat. Umožňuje porovnávat výkon procesů a náklady u různých způsobů přepravy. Pomáhá například zjistit, u kterých způsobů častěji dochází ke zpoždění během přepravy nebo jsou vyšší náklady na míli. Tyto poznatky podporují strategická rozhodnutí o logistické síti. Proč je to důležité Umožňuje členit analýzu výkonu a nákladů podle způsobu přepravy a získat poznatky pro kamionovou, leteckou, námořní nebo železniční logistiku. Kde data získat Jde o standardní atribut na úrovni zásilky v OTM, který se obvykle nachází ve vyhrazeném poli „mode“ nebo „transport type“. Příklady FTLLTLNÁMOŘNÍAIR | |||
| Celní zástupce CustomsAgent | Celní deklarant nebo zástupce odpovědný za celní odbavení zásilky. | ||
| Popis U mezinárodních zásilek tento atribut označuje externího zástupce nebo interní tým, který zajišťuje celní dokumentaci a postupy. Jeho výkon může výrazně ovlivnit celkovou dobu přepravy. Porovnáním doby celního odbavení podle celního zástupce můžete vyhodnotit jeho výkon. Zjistíte, kteří zástupci jsou nejefektivnější v konkrétních zemích nebo u určitých druhů zboží. Tyto poznatky pomáhají vybrat vhodné celní partnery a spolupracovat s méně výkonnými zástupci na zlepšení jejich procesů. Proč je to důležité Umožňuje měřit výkon celních deklarantů, určit nejefektivnější partnery a omezit zpoždění způsobená celním odbavením. Kde data získat V OTM mohou být tyto údaje uloženy jako poskytovatel služeb nebo role obchodního partnera v podrobnostech o mezinárodní zásilce. Příklady Global Customs ServicesLivingston InternationalFlexport | |||
| Doručeno včas IsOnTimeDelivery | Vypočítaný příznak, který označuje, zda byla zásilka doručena v požadovaném termínu nebo dříve. | ||
| Popis Tento booleovský atribut se vypočítá porovnáním časového razítka činnosti „Doručení zboží“ s atributem „Požadované datum doručení“. Hodnota je „true“, pokud bylo zboží doručeno včas nebo předčasně, a „false“, pokud se doručení opozdilo. Atribut přímo slouží k výpočtu KPI míry včasného doručení a je důležitou součástí dashboardu s přehledem výkonu doručení. Zjednodušuje analýzu tím, že pro každou zásilku poskytuje jednoznačný výsledek. Zásilky doručené včas a se zpožděním tak můžete snadno filtrovat, agregovat a vizualizovat. Proč je to důležité Tento vypočítaný příznak zjednodušuje měření KPI včasného doručení a umožňuje snadno filtrovat a analyzovat zásilky doručené včas i se zpožděním. Kde data získat Tento atribut není ve zdrojovém systému. Vypočítá se při transformaci dat porovnáním časového razítka činnosti „Doručení zboží“ s atributem „RequestedDeliveryDate“. Příklady truefalse | |||
| Jméno uživatele UserName | Jméno nebo ID uživatele, který provedl danou činnost nebo za ni odpovídá. | ||
| Popis Tento atribut určuje konkrétního uživatele nebo systémového agenta, který provedl určitou událost, například „Naplánování zásilky“ nebo „Přiřazení dopravce“. Díky tomu lze určit odpovědnost a zjistit, jaké zdroje se do procesu zapojily. V process mining vám analýza činností podle uživatele pomůže porozumět rozložení pracovní zátěže, určit potřeby školení a porovnat výkon jednotlivých uživatelů nebo týmů. Umožňuje také rozlišit činnosti provedené ručně od těch, které automaticky provedl systém. Proč je to důležité Umožňuje určit odpovědnost a analyzovat pracovní zátěž i výkon jednotlivých uživatelů a týmů. Kde data získat Údaje pocházejí z polí s ID uživatele, například INSERT_USER, která jsou v OTM spojena se změnami stavu nebo událostmi v historických či protokolových tabulkách. Příklady JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| Nesrovnalost ve faktuře za přepravu FreightBillDiscrepancy | Příznak, který označuje, zda byla při kontrole faktury za přepravu zjištěna nesrovnalost. | ||
| Popis Tento booleovský atribut má hodnotu „true“, pokud se faktura za přepravu od dopravce neshoduje s očekávanými náklady vypočtenými v OTM. Nesrovnalosti mohou vzniknout kvůli nesprávným sazbám, příplatkům za doplňkové služby nebo jiným chybám ve fakturaci. Atribut slouží jako základ KPI míry nesrovnalostí ve fakturách za přepravu. Analýza četnosti těchto příznaků podle dopravce, trasy nebo typu zásilky pomáhá odhalit příčiny chyb ve fakturaci. Podporuje tak zvyšování přesnosti dat, zjednodušení kontroly faktur a předcházení přeplatkům. Proč je to důležité Přímo podporuje analýzu nesrovnalostí ve fakturách za přepravu. Označuje zásilky s chybami ve fakturaci, pomáhá omezit přeplatky a zlepšit finanční kontrolu. Kde data získat Obvykle jde o stav nebo příznak nastavený při vyúčtování přepravy a párování faktur v OTM. Příklady truefalse | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko označující, kdy byla data této události naposledy obnovena nebo načtena ze zdrojového systému. | ||
| Popis Tento atribut zaznamenává, kdy byla data naposledy načtena z Oracle Transportation Management. Vypovídá o aktuálnosti analyzovaných dat, nikoli o čase, kdy došlo k obchodní události. Toto časové razítko je důležité pro posouzení aktuálnosti analýzy process mining. Uživatelé díky němu vědí, zda pracují s aktuálními informacemi, nebo se snímkem dat z určitého okamžiku. Pomáhá také řídit cykly obnovy dat a zajistit, aby rozhodnutí vycházela z aktuálních informací. Proč je to důležité Označuje aktuálnost dat, takže uživatelé vědí, jak současná je analýza a kdy se očekává další aktualizace. Kde data získat Obvykle jde o systémem vytvořené časové razítko přidané při načítání dat nebo v procesu ETL. Příklady 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Stav zásilky ShipmentStatus | Aktuální celkový stav zásilky v jejím životním cyklu, například „Planned“, „In Transit“ nebo „Delivered“. | ||
| Popis Tento atribut poskytuje stručný přehled o tom, v jaké fázi procesu se zásilka nachází. Na rozdíl od aktivity, která označuje událost v konkrétním okamžiku, stav popisuje aktuální stav případu zásilky. Process mining se zaměřuje na průběh aktivit, celkový stav se však hodí k filtrování případů a jako kontext v dashboardech. Analýza se může například zaměřit pouze na dokončené zásilky nebo zkoumat, proč mnoho zásilek zůstává neobvykle dlouho ve stavu „In Transit“. Proč je to důležité Poskytuje stručný přehled o průběhu zásilky a hodí se k filtrování a členění případů při analýze. Kde data získat Je k dispozici v hlavním záznamu zásilky v OTM a označuje její aktuální stav ve workflow. Příklady NAPLÁNOVÁNOREZERVOVÁNOV PŘEPRAVĚDORUČENO | |||
| Typ zásilky ShipmentType | Zařazení zásilky, například podle úrovně služeb, typu komodity nebo obchodní jednotky. | ||
| Popis Tento atribut slouží k obchodnímu zařazení zásilky, například jako „Standardní“, „Expresní“, „Nebezpečné zboží“ nebo „Mezipodniková“. Klasifikace umožňuje uplatňovat různá obchodní pravidla a priority a zobrazovat data z různých pohledů. Pokud v process mining použijete typ zásilky jako dimenzi, můžete porovnat procesy pro různé druhy zásilek. Zjistíte tak, zda se u některých typů častěji objevují zpoždění, vyšší náklady nebo nestandardní průběh procesu. Tyto poznatky vám pomohou upravit procesy podle potřeb jednotlivých typů zásilek. Proč je to důležité Umožňuje rozdělit analýzu podle obchodního kontextu a zjistit, zda různé typy zásilek procházejí odlišnými procesy nebo dosahují rozdílných výsledků. Kde data získat Obvykle jde o konfigurovatelné pole nebo atribut v záznamu zásilky či objednávky v OTM. Příklady StandardníExpresníMezinárodníVnitrostátní | |||
| Zdrojový systém SourceSystem | Označuje systém, ze kterého pocházejí data o události, například Oracle Transportation Management. | ||
| Popis Tento atribut určuje zdrojovou aplikaci, ve které data vznikla. V prostředí složité logistiky mohou data pocházet z OTM, systému pro správu skladu (WMS), systému dopravce přes EDI nebo jiných integrovaných platforem. Znalost zdrojového systému je důležitá pro správu dat, hodnocení jejich kvality a řešení problémů. Pomáhá pochopit kontext dat a vysvětlit rozdíly v jejich podrobnosti nebo aktuálnosti. Při analýze lze filtrovat události pocházející pouze z konkrétního důvěryhodného systému. Proč je to důležité Poskytuje důležitý kontext o původu dat, který je potřebný k jejich ověření a analýze v prostředí s více systémy. Kde data získat Obvykle jde o statickou hodnotu přidanou při extrakci dat, která označuje původ záznamů. Příklady Oracle OTMOTM CloudSAP TM | |||
| Země odeslání OriginCountry | Země, ve které začíná cesta zásilky. | ||
| Popis Tento atribut určuje výchozí zemi zásilky podle umístění odesílatele. Jde o důležitý geografický údaj pro analýzu logistiky. Analýza procesů podle země odeslání pomáhá pochopit rozdíly ve výkonu mezi regiony. Doba celního odbavení, náklady na dopravce i délka přepravy se mohou výrazně lišit podle země původu. Toto členění je důležité pro řízení mezinárodní logistiky a odhalování úzkých míst v jednotlivých regionech. Proč je to důležité Umožňuje geografickou analýzu přepravního procesu a pomáhá odhalit úzká místa, náklady a rozdíly ve výkonu v jednotlivých regionech. Kde data získat Odvozuje se z adresy výchozího místa zásilky nebo odesílatele, která je uložena v kmenových datech míst v OTM. Příklady USADEUCHNMEX | |||
| Země určení DestinationCountry | Země, do které má být zásilka doručena. | ||
| Popis Tento atribut určuje cílovou zemi zásilky podle umístění příjemce. Doplňuje zemi odeslání při geografické analýze procesů. Stejně jako u země odeslání je analýza podle země určení důležitá pro pochopení rozdílů ve výkonu na různých obchodních trasách. Hodí se zejména k analýze doby celního odbavení, výkonu doručení v poslední fázi přepravy a efektivity dopravců v jednotlivých regionech. Pomáhá přizpůsobit logistické strategie požadavkům různých cílových trhů. Proč je to důležité Důležitý údaj pro analýzu výkonu na konkrétních obchodních trasách a pochopení problémů s celním odbavením, dopravci a předpisy na cílových trzích. Kde data získat Odvozuje se z adresy cílového místa zásilky nebo příjemce, která je uložena v kmenových datech míst v OTM. Příklady CANFRAJPNBRA | |||
| Změněna trasa IsRerouted | Příznak, který označuje, zda se trasa zásilky změnila po původní rezervaci. | ||
| Popis Tento booleovský příznak má hodnotu „true“, pokud se trasa zásilky výrazně změní poté, co už byla naplánována a rezervována. Důvodem může být požadavek zákazníka, neočekávané narušení provozu nebo možnost optimalizace. Atribut přímo podporuje KPI míry změn trasy zásilek a dashboard s přehledem změn tras a expresních přeprav. Sledování četnosti změn tras pomáhá odhalit problémy při plánování nebo realizaci přepravy. Upozorňuje na nestabilitu provozu a související náklady, takže můžete hledat způsoby, jak omezit nákladné a rušivé změny. Proč je to důležité Pomáhá vyčíslit četnost a dopad provozních výjimek, jako jsou změny tras, a odhalit neefektivitu při plánování a realizaci přepravy. Kde data získat Příznak se odvodí z konkrétních událostí změny trasy v záznamu událostí nebo porovnáním konečné trasy s původně naplánovanou trasou. Příklady truefalse | |||
Činnosti v řízení přepravy
| Aktivita | Popis | ||
|---|---|---|---|
| Platba zpracována | Jde o závěrečnou aktivitu, která označuje úspěšné zpracování platby dopravci za jeho služby. Tato událost uzavírá finanční stránku zásilky. | ||
| Proč je to důležité Tato aktivita uzavírá životní cyklus přepravy. Je důležitá pro měření doby zpracování plateb dopravcům a efektivní správu vztahů s nimi. Kde data získat Událost lze odvodit ze změny stavu přiřazeného voucheru nebo faktury na „PAID“. Údaje jsou v tabulkách VOUCHER nebo BILL. Zachycení Určete časové razítko, kdy se VOUCHER.VOUCHER_STATUS_ID změní na „PAID“. Typ události inferred | |||
| Přijat požadavek na přepravu | Tato aktivita označuje vytvoření požadavku na přepravu v systému, obvykle jako Order Release. Událost se zaznamená při vytvoření nového záznamu Order Release v Oracle Transportation Management a představuje počáteční poptávku po přepravě. | ||
| Proč je to důležité Jako počáteční bod procesu je tato aktivita důležitá pro měření celkové doby průchodu procesem a pochopení vzorců poptávky. Pomáhá analyzovat dobu od zadání požadavku po zahájení plánování. Kde data získat Jde o explicitní událost odvozenou z časového razítka vytvoření záznamu Order Release v tabulce ORDER_RELEASE. Lze použít pole INSERT_DATE nebo konkrétní pole s datem vytvoření. Zachycení Použijte časové razítko vytvoření Order Release v tabulce ORDER_RELEASE. Typ události explicit | |||
| Přijato potvrzení o doručení | Označuje přijetí a zaznamenání formálního potvrzení o dokončení doručení, například podepsaného dokumentu. Často se eviduje jako konkrétní typ dokumentu připojený k zásilce. | ||
| Proč je to důležité POD je důležité pro fakturaci a řešení sporů. Sledování jeho přijetí pomáhá zajistit dodržování procesu a urychlit finanční vypořádání. Kde data získat Může jít o explicitní událost nebo ji lze odvodit z data vytvoření dokumentu POD přiřazeného k zásilce. V tabulce DOCUMENT hledejte dokumenty typu POD. Zachycení Použijte časové razítko vytvoření dokumentu typu „POD“ přiřazeného k zásilce. Typ události explicit | |||
| Zásilka naplánována | Tato aktivita označuje úspěšné naplánování jednoho nebo více požadavků Order Release do realizovatelné zásilky plánovacím modulem OTM. Zaznamená se, když systém změní stav zásilky na naplánovaný, například na „PLANNING_PLANNED FINAL“. | ||
| Proč je to důležité Jde o důležitý milník, který odděluje fázi poptávky od fáze realizace. Analýza doby před touto aktivitou pomáhá odhalit úzká místa v efektivitě plánování a výkonu plánovacího modulu. Kde data získat Událost lze odvodit z historie stavů objektu Shipment v tabulce SHIPMENT. Hledejte změnu stavu, která označuje dokončení plánování. Zachycení Určete časové razítko, kdy se SHIPMENT.SHIPMENT_STATUS_VALUE_GID změní na stav „Planned“. Typ události inferred | |||
| Zboží doručeno | Tato aktivita označuje úspěšné doručení zásilky konečnému příjemci. Zaznamená se, když je u poslední zastávky zásilky uveden skutečný čas příjezdu. | ||
| Proč je to důležité Jde o hlavní milník pro měření včasnosti doručení a celkové doby průchodu procesem. Uzavírá proces realizace přepravy. Kde data získat Událost lze odvodit z vyplnění pole ACTUAL_ARRIVAL u záznamu poslední zastávky zásilky v tabulce SHIPMENT_STOP. Zachycení Použijte časové razítko ACTUAL_ARRIVAL z posledního záznamu zásilky v tabulce SHIPMENT_STOP. Typ události inferred | |||
| Zboží vyzvednuto | Tato aktivita označuje začátek fyzické přepravy, kdy dopravce převezme zboží v místě odeslání. Událost se zaznamená, když je první zastávka zásilky označena jako „DEPARTED“. | ||
| Proč je to důležité Jde o důležitý milník, který označuje začátek přepravy. Je nezbytný pro sledování výkonu dopravce při vyzvednutí a skutečné doby přepravy. Kde data získat Událost lze odvodit ze změny stavu první zastávky v tabulce SHIPMENT_STOP na „DEPARTED“ nebo ze sledování události zásilky, která označuje vyzvednutí. Zachycení Použijte časové razítko ACTUAL_DEPARTURE z prvního záznamu zásilky v tabulce SHIPMENT_STOP. Typ události inferred | |||
| Celní odbavení dokončeno | U mezinárodních zásilek tato aktivita označuje okamžik, kdy zboží úspěšně prošlo celním odbavením na hranici nebo v přístavu. Často se zaznamenává prostřednictvím konkrétní události nebo změny stavu zásilky. | ||
| Proč je to důležité Celní odbavení bývá u mezinárodní logistiky častým zdrojem výrazných zpoždění. Sledování této aktivity pomáhá měřit a zkracovat dobu celního odbavení. Kde data získat Událost se obvykle zaznamenává ručně nebo prostřednictvím integrované události zásilky „Customs“. V tabulce SHIPMENT_STATUS hledejte konkrétní kódy událostí související s celním odbavením. Zachycení Určete časové razítko události „Customs Cleared“ v tabulce SHIPMENT_STATUS. Typ události explicit | |||
| Faktura za přepravu zkontrolována | Tato aktivita označuje dokončení kontroly faktury za přepravu, při které se faktura dopravce porovná s údaji o zásilce a ověří. Zaznamená se, když se stav faktury za zásilku změní na „VOUCHER_AUDITED“ nebo na podobný stav. | ||
| Proč je to důležité Kontrola je důležitá pro finanční kontrolu a odhalování nesrovnalostí ve fakturaci. Analýza této aktivity pomáhá zefektivnit proces od kontroly po platbu a sledovat KPI míry nesrovnalostí ve fakturách za přepravu (Freight Bill Discrepancy Rate). Kde data získat Událost lze odvodit ze změny stavu objektu Bill přiřazeného k zásilce. V tabulce BILL hledejte změny stavu související s dokončením kontroly. Zachycení Určete časové razítko, kdy se BILL.BILL_STATUS_VALUE_GID změní na stav „Audited“. Typ události inferred | |||
| Naplánován termín doručení | Tato aktivita označuje naplánování konkrétního data a času doručení s příjemcem. Událost se zaznamenává z údajů o termínu na poslední zastávce zásilky. | ||
| Proč je to důležité Jde o důležitý krok při koordinaci konečného doručení. Analýza doby mezi příjezdem a naplánovaným doručením může odhalit úzká místa v poslední fázi přepravy. Kde data získat Událost lze odvodit z vyplnění polí s datem a časem termínu pro poslední zastávku zásilky, tedy místo doručení, v tabulce SHIPMENT_STOP. Zachycení Použijte časové razítko prvního vyplnění polí s termínem pro zastávku, kde se zásilka doručuje. Typ události inferred | |||
| Naplánován termín vyzvednutí | Tato aktivita označuje naplánování a zaznamenání konkrétního data a času vyzvednutí. Údaje se často získávají z dat o termínu na úrovni zastávky zásilky. | ||
| Proč je to důležité Plánování termínů je důležitým krokem koordinace. Analýza pomáhá pochopit jeho efektivitu a vliv na dochvilnost vyzvednutí. Kde data získat Událost lze odvodit z vyplnění polí s datem a časem termínu pro první zastávku zásilky, tedy místo vyzvednutí, v tabulce SHIPMENT_STOP. Zachycení Použijte časové razítko prvního vyplnění polí s termínem pro zastávku, kde se zásilka vyzvedává. Typ události inferred | |||
| Přiřazen dopravce | Tento okamžik označuje, že dopravce nabídku přepravy přijal. Zaznamená se při změně stavu nabídky zásilky na „TENDER_ACCEPTED“ nebo na podobný stav. | ||
| Proč je to důležité Sledování této aktivity pomáhá analyzovat efektivitu výběru dopravce a předávání nabídky. Zpoždění v této fázi mohou výrazně ovlivnit celkový harmonogram ještě před zahájením přepravy. Kde data získat Událost lze odvodit z historie stavů v tabulce SHIPMENT_TENDER. Hledejte časové razítko, kdy stav označuje přijetí nabídky dopravcem. Zachycení Použijte časové razítko změny stavu na „TENDER_ACCEPTED“ v historii nabídek přepravy dané zásilky. Typ události inferred | |||
| Zásilka na cestě | Označuje, že zboží bylo vyzvednuto a právě míří do cíle. Nejde o jednorázový okamžik, začátek tohoto stavu se však zaznamená bezprostředně po aktivitě „Zboží vyzvednuto“. | ||
| Proč je to důležité Tato aktivita označuje začátek přepravy a je důležitá pro sledování průběhu doručení a odhalování zpoždění během přepravy. Je základem dashboardu In-Transit Delay Hotspots. Kde data získat Jde o stejnou událost jako „Zboží vyzvednuto“, v procesních modelech se však často uvádí jako samostatná aktivita, která označuje začátek nové fáze. Odvozuje se od odjezdu z první zastávky. Zachycení Stejně jako u aktivity „Zboží vyzvednuto“ použijte časové razítko ACTUAL_DEPARTURE z prvního záznamu SHIPMENT_STOP. Typ události inferred | |||
| Zásilka rezervována | Označuje formální potvrzení rezervace u dopravce po přijetí nabídky. Obvykle se zaznamená při změně stavu zásilky na „SECURE RESOURCES_BOOKED“ nebo na odpovídající stav. | ||
| Proč je to důležité Potvrzuje závazek dopravce a oficiálně přesouvá zásilku do fáze realizace. Jde o důležitý krok při měření KPI doby plánování zásilky (Shipment Planning Cycle Time). Kde data získat Událost lze odvodit ze změny stavu objektu Shipment v tabulce SHIPMENT. Sledujte, kdy se po přiřazení dopravce změní na potvrzený nebo rezervovaný stav. Zachycení Určete časové razítko, kdy se SHIPMENT.SHIPMENT_STATUS_VALUE_GID změní na stav „Booked“. Typ události inferred | |||
| Zásilka zrušena | Označuje zrušení zásilky po jejím naplánování, které předčasně ukončí její životní cyklus. Zaznamená se změnou stavu objektu Shipment na „cancelled“. | ||
| Proč je to důležité Sledování zrušených zásilek pomáhá pochopit výjimky a selhání v procesu. Umožňuje odhalit důvody zrušení, například změnu poptávky nebo chybu v plánování. Kde data získat Událost lze odvodit z historie stavů objektu Shipment v tabulce SHIPMENT. Hledejte změnu na stav, jako je „PLANNING_CANCELED“. Zachycení Určete časové razítko, kdy se SHIPMENT.SHIPMENT_STATUS_VALUE_GID změní na stav „Cancelled“. Typ události inferred | |||
Návody k extrakci dat
Kroky
- Otevřete BI Publisher: Přihlaste se do aplikace Oracle Transportation Management (OTM). Přejděte do části Business Process Automation, potom Reporting a vyberte Report Manager. Otevře se rozhraní Oracle Business Intelligence Publisher.
- Vytvořte datový model: V BI Publisher klikněte na tlačítko New a vyberte Data Model. Otevře se editor datového modelu, ve kterém určíte zdroj dat pro sestavu.
- Zadejte SQL dotaz: V editoru datového modelu klikněte na ikonu plus v diagramu Data Sets a vyberte SQL Query. Pojmenujte datovou sadu, například „OTM_Process_Mining_DS“. Jako Data Source vyberte databázi OTM. Zkopírujte celý SQL dotaz z části „query“ tohoto dokumentu a vložte ho do pole SQL Query.
- Přidejte parametry: Dotaz používá parametry pro časové období a název domény (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher je rozpozná automaticky. V případě potřeby upravte jejich vlastnosti, například nastavte datový typ Date pro parametry data.
- Uložte datový model: Klikněte na ikonu Save. V katalogu BI Publisher vyberte umístění, zadejte výstižný název, například „OTM Shipment Process Extraction“, a datový model uložte.
- Vytvořte sestavu: Vraťte se do katalogu, klikněte na tlačítko New a vyberte Report. V průvodci vytvořením sestavy zvolte možnost „Use Data Model“ a vyhledejte právě uložený datový model.
- Nastavte rozvržení sestavy: Průvodce vás provede vytvořením rozvržení. Stačí jednoduché rozvržení „Table“. Přetáhněte do tabulky všechny sloupce z datové sady. Nepoužívejte seskupování ani agregaci.
- Uložte sestavu: Po nastavení rozvržení přejděte k poslednímu kroku a sestavu uložte. Pojmenujte ji podobně jako datový model.
- Spusťte sestavu: Otevřete nově vytvořenou sestavu. Zobrazí se výzva k zadání parametrů (Start Date, End Date, Domain Name). Zadejte požadované období a doménu.
- Exportujte data: Po spuštění sestavy a zobrazení dat klikněte na nabídku Actions a vyberte Export. Zvolte formát CSV. Stáhne se soubor CSV se záznamem událostí.
- Připravte data k nahrání: Otevřete stažený soubor CSV. Ověřte, že názvy sloupců odpovídají požadovaným atributům:
ShipmentId,ActivityName,EventTimea doporučeným atributům. Zkontrolujte, že sloupecEventTimepoužívá jednotný formát data a času. Soubor je nyní připravený k nahrání do ProcessMind.
Konfigurace
- Zdroj dat: Dotaz spusťte nad primárním provozním schématem databáze OTM, které se obvykle jmenuje GLOGOWNER.
- Parametry sestavy:
P_START_DATE: Začátek období sestavy. Použijte formát „YYYY-MM-DD“.P_END_DATE: Konec období sestavy. Použijte formát „YYYY-MM-DD“.P_DOMAIN_NAME: Konkrétní doména OTM, ze které chcete data získat. Zadejte „[Your Domain Name]“.
- Časové období: Pro první analýzu doporučujeme získat data za 3 až 6 měsíců. Tím vyvážíte objem dat a výkon systému. Při pravidelném spouštění zvažte extrakci po měsících nebo čtvrtletích.
- Oprávnění: Uživatel OTM, který sestavu spouští, potřebuje konkrétní role, například BI PUBLISHER DATA MODEL DEVELOPER a BI PUBLISHER REPORT DEVELOPER, aby mohl vytvářet a upravovat datové modely a sestavy. Potřebuje také přístup pouze pro čtení k příslušným databázovým tabulkám.
- Výkon: Dotaz spojuje několik rozsáhlých tabulek. Pokud pracujete s velkým objemem dat, doporučujeme sestavu spouštět mimo špičku, aby neovlivnila výkon systému. Časové období nastavte co nejužší, aby se sestava dokončila včas.
Ukázkový dotaz 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' Kroky
- Připojte se k databázi: Získejte přihlašovací údaje pouze pro čtení a údaje pro připojení k databázi Oracle Transportation Management (hostitel, port, ID služby). Budete potřebovat přístup ke schématu
GLOGOWNER. - Nastavte SQL klienta: Nakonfigurujte nástroj pro práci s SQL, například Oracle SQL Developer, DBeaver nebo Toad, pomocí údajů pro připojení z předchozího kroku.
- Připravte dotaz: Zkopírujte celý SQL dotaz uvedený v tomto dokumentu do editoru dotazů v SQL klientovi.
- Nastavte parametry dotazu: Najděte zástupné hodnoty v klauzulích
WHERE. Nahraďte[START_DATE],[END_DATE]a[YOUR_DOMAIN_NAME]odpovídajícími hodnotami pro extrakci. Nastavte například období 3 až 6 měsíců a zadejte provozní doménu, kterou chcete analyzovat. - Spusťte dotaz: Spusťte upravený SQL dotaz. Podle zvoleného období a velikosti systému může jeho dokončení trvat několik minut.
- Zkontrolujte výsledky: Po dokončení dotazu ověřte, že se zobrazily řádky a že jsou vyplněné důležité sloupce, například
ShipmentId,ActivityNameaEventTime. - Exportujte do CSV: Exportujte celý výsledek do souboru CSV. Použijte běžné nastavení CSV: čárku jako oddělovač, dvojité uvozovky pro text a kódování UTF-8.
- Zkontrolujte názvy sloupců: Před nahráním ověřte, že názvy sloupců v souboru CSV přesně odpovídají požadovaným názvům atributů:
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeaDelayReason. - Nahrajte soubor do ProcessMind: Připravený soubor CSV můžete nahrát do ProcessMind a začít s analýzou.
Konfigurace
- Databázové schéma: Dotaz je určený pro standardní schéma databáze Oracle Transportation Management, které se obvykle jmenuje
GLOGOWNER. - Potřebná oprávnění: Databázový uživatel musí mít přístup pouze pro čtení k tabulkám uvedeným v dotazu. Patří mezi ně
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLaVOUCHER. - Filtrování podle domény: V prostředí OTM s více nájemci je nutné filtrovat podle
DOMAIN_NAME. Dotaz obsahuje zástupnou hodnotu[YOUR_DOMAIN_NAME], kterou je třeba nastavit pro správnou obchodní jednotku. - Časové období: Kvůli výkonu a objemu dat zadejte počáteční a koncové datum. Doporučujeme filtrovat podle indexovaného sloupce, například
SHIPMENT.INSERT_DATE. Pro první analýzu se obvykle používá období 3 až 6 měsíců. - Úprava stavových kódů: Dotaz používá běžné výchozí stavové kódy, například
PLANNING_PLANNED FINALaTENDER_ACCEPTED. Vaše implementace OTM může používat vlastní kódy. Možná bude nutné upravit hodnoty v klauzulíchWHEREpodle konfigurace vašeho systému.
Ukázkový dotaz 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%'; Chcete začít?
Pomocí této šablony převedete nezpracovaná data na poznatky, podle kterých můžete jednat, a zlepšíte procesy přepravy. Začněte s optimalizací ještě dnes.
Zlepšete řízení přepravy ještě dnes
Zkraťte dobu cyklu o 30 % a odstraňte úzká místa v Oracle OTM.
Bez platební karty • Zkušební verze na 14 dní