Il Suo template per i dati di Transportation Management
Il Suo template per i dati di Transportation Management
- Attributi consigliati da raccogliere
- Attività chiave da tracciare
- Guida all'estrazione
Attributi di Transportation Management
| Nome | Descrizione | ||
|---|---|---|---|
| Nome attività ActivityName | Il nome di uno specifico evento o traguardo verificatosi all'interno del processo di trasporto di una spedizione. | ||
| Descrizione Questo attributo descrive una singola fase nel ciclo di vita del trasporto, come 'Spedizione pianificata', 'Merce ritirata' o 'Merce consegnata'. Ogni attività rappresenta un evento aziendale distinto che avvicina la spedizione al completamento. Analizzare la sequenza e la durata di queste attività è il cuore del Process Mining. Consente di scoprire il flusso di processo reale, identificare i colli di bottiglia e misurare l'aderenza alle procedure operative standard. Le variazioni nel flusso delle attività possono evidenziare eccezioni, ri-lavorazioni o deviazioni dal percorso ottimale. Perché è importante Definisce le fasi nella mappa di processo, consentendo la visualizzazione e l'analisi del viaggio della spedizione, dei colli di bottiglia e delle deviazioni. Dove trovare Questa informazione deriva dalle tabelle degli eventi di tracciamento o dai log di modifica dello stato in Oracle Transportation Management. Il nome specifico dell'attività può essere composto concatenando codici evento e descrizioni. Esempi Spedizione pianificataMerce ritirataPratica doganale evasaMerce consegnata | |||
| Spedizione ShipmentId | L'identificatore univoco di una singola spedizione, che funge da Case ID primario per tracciare tutte le attività di trasporto correlate. | ||
| Descrizione L'ID spedizione identifica in modo univoco il singolo movimento di merci da un mittente a un destinatario. Questo attributo è il pilastro dell'analisi di processo, poiché raggruppa tutti gli eventi correlati — pianificazione, prenotazione, ritiro, transito, consegna e fatturazione — in un unico caso. Nel Process Mining, l'analisi degli eventi per ID spedizione permette una visione end-to-end completa del ciclo di vita del trasporto. Viene utilizzato per calcolare metriche chiave come il tempo di ciclo totale, la puntualità della consegna e il costo per spedizione, fornendo una comprensione esaustiva dell'efficienza dei processi e dei livelli di servizio al cliente. Perché è importante Questo è il Case ID essenziale che collega tutte le fasi del processo, consentendo un'analisi completa dell'intero percorso di trasporto per ogni singola spedizione. Dove trovare Questa è una chiave primaria in Oracle Transportation Management, solitamente presente nelle tabelle di gestione delle spedizioni o degli ordini. Consulti la documentazione OTM per i nomi specifici di tabelle e campi. Esempi SH-0012345SH-0012346SH-0012347 | |||
| Timestamp Evento EventTime | La data e l'ora precise in cui si è verificata una specifica attività o evento di trasporto. | ||
| Descrizione Questo timestamp registra il momento esatto in cui un'attività, come 'Vettore assegnato' o 'Ricevuta prova di consegna', è stata registrata nel sistema. I timestamp sono fondamentali per il Process Mining poiché stabiliscono la sequenza cronologica degli eventi per ogni spedizione. L'accuratezza di questi dati è critica per ogni analisi temporale. Vengono utilizzati per calcolare i tempi di ciclo tra le attività, misurare la durata dei processi, identificare i ritardi e valutare le prestazioni rispetto ai service level agreement. Analizzare il tempo dell'evento aiuta a individuare con precisione dove si perde tempo nel processo. Perché è importante Questo timestamp è essenziale per ordinare gli eventi cronologicamente e calcolare tutte le metriche di performance, come i tempi di ciclo e i ritardi. Dove trovare Estratto dai campi timestamp associati agli eventi nelle tabelle di tracking o della cronologia degli stati di OTM. Esempi 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Costo della spedizione ShipmentCost | Il costo totale del nolo o l'importo finanziario addebitato per il trasporto della spedizione. | ||
| Descrizione Questo attributo rappresenta il costo finanziario totale associato a una spedizione, inclusi oneri del vettore, supplementi carburante e altre spese accessorie. È una misura chiave delle prestazioni finanziarie del processo di trasporto. Analizzare il costo della spedizione permette di calcolare il KPI 'Average Carrier Cost per Shipment'. Può essere segmentato per vettore, percorso, modalità di trasporto o tipo di spedizione per identificare opportunità di risparmio. Viene anche utilizzato nell'analisi delle discrepanze delle fatture di trasporto per confrontare i costi pianificati con quelli reali. Perché è importante Fornisce i dati finanziari necessari per analizzare la spesa dei trasporti, identificare opportunità di risparmio e misurare l'impatto economico delle inefficienze di processo. Dove trovare Queste informazioni si trovano solitamente nelle sezioni finanziarie o dei costi di una spedizione in OTM, spesso popolate dopo la determinazione delle tariffe e il regolamento. Esempi 250.751200.00545.50 | |||
| Data di consegna richiesta RequestedDeliveryDate | La data e l'ora di consegna richieste dal cliente o concordate come obiettivo del Service Level Agreement (SLA). | ||
| Descrizione Questo attributo cattura il timestamp di consegna previsto. Rappresenta l'impegno preso con il cliente e funge da benchmark primario per misurare la puntualità. Nel Process Mining, questa data viene confrontata con il timestamp di consegna effettivo (dall'attività 'Merce consegnata') per determinare se la spedizione è stata puntuale o in ritardo. Questa analisi è alla base del KPI 'On-Time Delivery Rate' ed è essenziale per la dashboard 'Panoramica prestazioni di consegna'. Analizzare gli scostamenti aiuta a identificare le cause sistemiche dei ritardi e a migliorare la soddisfazione del cliente. Perché è importante Questo è il benchmark primario per misurare la puntualità delle consegne, un KPI fondamentale per la soddisfazione del cliente e l'eccellenza operativa. Dove trovare Queste informazioni sono solitamente memorizzate a livello di ordine o spedizione in OTM, spesso in campi relativi alle date di consegna o agli appuntamenti. Esempi 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Modalità di trasporto TransportationMode | Il metodo di trasporto utilizzato per la spedizione, come camion, ferrovia, mare o aereo. | ||
| Descrizione Questo attributo categorizza la spedizione in base alla modalità di trasporto. Le modalità comuni includono il carico completo (FTL), il carico parziale (LTL), via mare, via aerea e via ferrovia. Si tratta di una caratteristica fondamentale che influenza costi, tempi di transito e complessità. In fase di analisi, la modalità di trasporto è una dimensione cruciale per la segmentazione. Permette di confrontare le prestazioni dei processi e i costi tra le diverse modalità. Ad esempio, può aiutare a identificare quali modalità siano più soggette a ritardi in transito o abbiano costi per chilometro più elevati, supportando le decisioni strategiche sulle reti logistiche. Perché è importante Consente di segmentare l'analisi delle performance e dei costi per modalità di trasporto, rivelando insight specifici per logistica stradale, aerea, marittima o ferroviaria. Dove trovare Questo è un attributo standard a livello di spedizione in OTM, spesso presente in un campo dedicato 'modalità' o 'tipo di trasporto'. Esempi FTLLTLOCEANAIR | |||
| Motivo del ritardo DelayReason | Un codice o una descrizione che spiega la causa di un ritardo nel progresso della spedizione. | ||
| Descrizione Quando una spedizione è in ritardo, questo attributo ne fornisce la ragione, come 'Meteo', 'Blocco doganale', 'Congestione porto' o 'Guasto meccanico'. Queste informazioni vengono acquisite dagli aggiornamenti dei vettori o dagli inserimenti manuali in OTM. L'attributo è essenziale per l'analisi delle cause profonde delle consegne in ritardo. Categorizzando e conteggiando le motivazioni, le aziende possono identificare i problemi più frequenti nella supply chain. Ciò consente iniziative di miglioramento mirate, come la selezione di vettori più affidabili per determinate rotte o il perfezionamento della documentazione per velocizzare le procedure doganali. Perché è importante Offre una visione critica sulle cause profonde dei ritardi nelle spedizioni, permettendo azioni mirate per mitigare i problemi comuni e migliorare la puntualità. Dove trovare Solitamente acquisito nei dettagli degli eventi di tracciamento in OTM. Può essere associato a specifici codici evento per eccezioni o ritardi. Esempi WEATHER_DELAYISPEZIONE_DOGANALECONGESTIONE DEL PORTOTRAFFICO | |||
| Nome vettore CarrierName | Il nome del vettore di trasporto o del fornitore di servizi responsabile del movimento della spedizione. | ||
| Descrizione Questo attributo identifica il partner logistico assegnato all'esecuzione del trasporto delle merci. Gli esempi includono grandi compagnie di spedizione, corrieri locali o linee marittime. L'analisi delle prestazioni per vettore è uno degli obiettivi principali del Process Mining nei trasporti. Questo attributo permette di segmentare le spedizioni per confrontare i vettori su metriche come il tasso di puntualità, il costo per spedizione, il tempo di transito e la frequenza di problemi come ritardi o discrepanze di fatturazione. Questi insight sono vitali per la selezione dei vettori, la negoziazione dei contratti e la gestione delle performance. Perché è importante Permette di confrontare le performance tra diversi vettori, fondamentale per ottimizzare la selezione, la negoziazione e la riduzione dei costi. Dove trovare Si trova nei dettagli della spedizione in OTM, collegato ai record del vettore o del fornitore di servizi assegnato. Può essere memorizzato in tabelle relative a spedizioni e provider. Esempi FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Agente doganale CustomsAgent | Lo spedizioniere doganale o l'agente responsabile della gestione del processo di sdoganamento per la spedizione. | ||
| Descrizione Per le spedizioni internazionali, questo attributo identifica l'agente terzo o il team interno incaricato delle pratiche doganali. La performance di questo attore incide drasticamente sul tempo di transito totale. Analizzare il tempo di sdoganamento per agente doganale permette di confrontare le prestazioni e identificare chi è più efficiente in determinati paesi o per specifici tipi di merce. Questo insight è prezioso per selezionare i partner migliori o per intervenire sui processi degli agenti meno performanti. Perché è importante Consente di misurare le performance dei broker doganali, identificando i partner più efficienti e riducendo i ritardi legati alla dogana. Dove trovare Queste informazioni possono essere memorizzate come fornitore di servizi o ruolo della parte nei dettagli della spedizione internazionale in OTM. Esempi Servizi Doganali GlobaliLivingston InternationalFlexport | |||
| Discrepanza fattura trasporti FreightBillDiscrepancy | Un indicatore che segnala se è stata riscontrata una discrepanza durante l'audit della fattura di trasporto. | ||
| Descrizione Questo attributo booleano è impostato su 'true' se la fattura di trasporto ricevuta dal vettore non corrisponde al costo previsto calcolato in OTM. Le discrepanze possono derivare da tariffe errate, spese accessorie o altri errori di fatturazione. Questo attributo è la base per il KPI 'Freight Bill Discrepancy Rate'. Analizzare la frequenza di questi avvisi per vettore, rotta o tipo di spedizione aiuta a identificare le cause degli errori. Ciò supporta le iniziative per migliorare l'accuratezza dei dati, snellire il processo di audit e prevenire pagamenti eccessivi. Perché è importante Supporta direttamente l'analisi delle discrepanze nelle fatture, segnalando gli errori di fatturazione per ridurre i pagamenti in eccesso e migliorare i controlli finanziari. Dove trovare Solitamente è uno stato o un flag impostato durante il processo di regolamento del trasporto e di abbinamento delle fatture in OTM. Esempi truefalse | |||
| È reindirizzato IsRerouted | Un indicatore che segnala se il percorso della spedizione è stato modificato dopo la prenotazione iniziale. | ||
| Descrizione Questo attributo è un flag booleano impostato su 'true' se una spedizione subisce un evento di re-routing significativo dopo essere già stata pianificata e prenotata. Ciò può dipendere da richieste del cliente, interruzioni impreviste o opportunità di ottimizzazione. L'attributo supporta direttamente il KPI 'Shipment Rerouting Rate' e la dashboard 'Re-routing and Expediting Insights'. Monitorare la frequenza dei cambi di percorso aiuta a identificare problemi di fondo nella pianificazione o nell'esecuzione. Evidenzia instabilità operative e costi associati, permettendo ai manager di trovare modi per ridurre al minimo cambiamenti costosi e dirompenti. Perché è importante Aiuta a quantificare la frequenza e l'impatto di eccezioni operative come i cambi di rotta, evidenziando le inefficienze nella pianificazione e nell'esecuzione. Dove trovare Questo flag deriva dal rilevamento di specifici eventi di cambio percorso nell'event log o dal confronto tra il percorso finale e quello inizialmente pianificato. Esempi truefalse | |||
| È una consegna puntuale IsOnTimeDelivery | Un indicatore calcolato che segnala se la spedizione è stata consegnata entro la data di consegna richiesta. | ||
| Descrizione Questo attributo booleano è derivato dal confronto tra il timestamp dell'attività 'Merce consegnata' e la 'Data di consegna richiesta'. È 'true' se la consegna è stata puntuale o anticipata, e 'false' se in ritardo. Questo attributo alimenta direttamente il KPI 'On-Time Delivery Rate' ed è un componente chiave della dashboard 'Panoramica prestazioni di consegna'. Semplifica l'analisi fornendo un esito binario chiaro per ogni spedizione, rendendo facile filtrare, aggregare e visualizzare le spedizioni puntuali rispetto a quelle in ritardo. Perché è importante Questo flag calcolato semplifica la misurazione del KPI di puntualità delle consegne e consente di filtrare e analizzare facilmente le spedizioni puntuali rispetto a quelle in ritardo. Dove trovare Questo attributo non è presente nel sistema sorgente. Viene calcolato durante la trasformazione dei dati confrontando il timestamp dell'attività 'Merce consegnata' con l'attributo 'RequestedDeliveryDate'. Esempi truefalse | |||
| Nome Utente UserName | Il nome o l'ID dell'utente che ha eseguito o è responsabile di una particolare attività. | ||
| Descrizione Questo attributo identifica il singolo utente o l'agente di sistema che ha eseguito uno specifico evento, come 'Spedizione pianificata' o 'Vettore assegnato'. Queste informazioni garantiscono la responsabilità e offrono visibilità sul coinvolgimento delle risorse nel processo. Nel Process Mining, analizzare le attività per utente aiuta a comprendere la distribuzione del carico di lavoro, identificare le esigenze di formazione e confrontare le prestazioni di diversi utenti o team. Può anche essere utilizzato per distinguere tra attività eseguite manualmente e quelle eseguite automaticamente dal sistema. Perché è importante Garantisce la responsabilità e consente l'analisi del carico di lavoro e delle prestazioni per singolo utente o team. Dove trovare Estratto dai campi ID utente (es. INSERT_USER) associati ai cambi di stato o agli eventi nelle tabelle della cronologia o dei log di OTM. Esempi JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| Paese di destinazione DestinationCountry | Il paese in cui è prevista la consegna della spedizione. | ||
| Descrizione Questo attributo specifica il paese di destinazione finale della spedizione, in base alla sede del destinatario. Integra il Paese di Origine per l'analisi geografica del processo. Analogamente all'origine, l'analisi per paese di destinazione è vitale per comprendere le differenze di performance tra le varie rotte commerciali. È particolarmente importante per analizzare i tempi di sdoganamento, le prestazioni di consegna nell'ultimo miglio e l'efficacia dei vettori in specifiche regioni. Ciò aiuta ad adattare le strategie logistiche ai requisiti dei diversi mercati di destinazione. Perché è importante Fondamentale per analizzare le performance su specifiche rotte commerciali e comprendere le sfide legate a dogane, vettori e normative nei mercati di destinazione. Dove trovare Derivato dai dettagli dell'indirizzo della destinazione o del destinatario, memorizzati nei dati anagrafici delle posizioni in OTM. Esempi CANFRAJPNBRA | |||
| Paese di Origine OriginCountry | Il paese da cui ha inizio il viaggio della spedizione. | ||
| Descrizione Questo attributo specifica il paese di partenza della spedizione, basato sulla sede del mittente. È un'informazione geografica chiave utilizzata per l'analisi logistica. Analizzare i processi per paese di origine aiuta a comprendere le variazioni regionali delle prestazioni. Ad esempio, i tempi di sdoganamento, i costi dei vettori e le durate del transito possono variare significativamente a seconda del paese di origine. Questa segmentazione è cruciale per gestire la logistica internazionale e identificare colli di bottiglia specifici per regione. Perché è importante Consente un'analisi geografica del processo di trasporto, aiutando a identificare colli di bottiglia, costi e variazioni di performance specifici per ogni regione. Dove trovare Derivato dai dettagli dell'indirizzo della sorgente o del mittente, memorizzati nei dati anagrafici delle posizioni in OTM. Esempi Stati UnitiDEUCHNMEX | |||
| Sistema di Origine SourceSystem | Identifica il sistema da cui provengono i dati dell'evento, ad esempio Oracle Transportation Management. | ||
| Descrizione Questo attributo specifica l'applicazione sorgente in cui i dati sono stati generati. In un ambiente logistico complesso, i dati possono provenire da OTM, da un sistema di gestione del magazzino (WMS), dal sistema di un vettore tramite EDI o da altre piattaforme integrate. Conoscere il sistema sorgente è importante per la data governance, la valutazione della qualità e la risoluzione dei problemi. Aiuta a comprendere il contesto dei dati e può spiegare variazioni nella granularità o nella tempestività. Ai fini dell'analisi, può essere utilizzato per filtrare gli eventi originati solo da un sistema specifico e affidabile. Perché è importante Fornisce un contesto cruciale sull'origine dei dati, importante per la validazione e per le analisi in ambienti multi-sistema. Dove trovare Questo è tipicamente un valore statico aggiunto durante il processo di estrazione dei dati per etichettare l'origine dei record. Esempi Oracle OTMOTM CloudSAP TM | |||
| Stato della spedizione ShipmentStatus | Lo stato attuale complessivo della spedizione nel suo ciclo di vita, come 'Pianificato', 'In transito' o 'Consegnato'. | ||
| Descrizione Questo attributo fornisce un riepilogo di alto livello sulla posizione della spedizione nel processo complessivo. A differenza di un'attività, che è un evento puntuale, lo stato rappresenta la condizione del caso di spedizione. Mentre il Process Mining si concentra sul flusso delle attività, lo stato generale è utile per filtrare i casi e fornire contesto nelle dashboard. Ad esempio, un'analisi potrebbe concentrarsi solo sulle spedizioni 'Completate' o indagare perché molte spedizioni siano bloccate nello stato 'In transito' per un tempo insolitamente lungo. Perché è importante Fornisce un riepilogo di alto livello dell'avanzamento della spedizione, utile per filtrare e segmentare i casi durante l'analisi. Dove trovare Disponibile nel record principale della spedizione in OTM, rappresenta lo stato attuale nel workflow. Esempi PIANIFICATOBOOKEDIN_TRANSITOCONSEGNATO | |||
| Tempo di ciclo end-to-end EndToEndCycleTime | La durata totale della spedizione, dalla richiesta iniziale di trasporto alla consegna finale della merce. | ||
| Descrizione Questa metrica calcolata misura il tempo totale trascorso per un caso di spedizione. Solitamente viene calcolato come differenza temporale tra l'attività 'Richiesta di trasporto ricevuta' e l'attività 'Merce consegnata'. Questo attributo è alla base del KPI 'Average End-to-End Cycle Time'. Fornisce una misura olistica dell'efficienza dell'intero processo di trasporto. Analizzare questa durata aiuta a identificare le spedizioni con tempi eccessivi e fornisce un punto di riferimento per misurare l'impatto delle iniziative di miglioramento. Perché è importante Fornisce una misura unica e fondamentale della velocità complessiva del processo, aiutando a identificare le spedizioni con tempi lunghi e a monitorare i miglioramenti nel tempo. Dove trovare Questo attributo non è presente nel sistema sorgente. Viene calcolato a livello di caso durante l'analisi di Process Mining o la trasformazione dei dati. Esempi 5 giorni 4 ore12 giorni 8 ore 30 minuti2 giorni 1 ora | |||
| Tipo di spedizione ShipmentType | Una classificazione della spedizione, ad esempio per livello di servizio, tipo di merce o unità aziendale. | ||
| Descrizione Questo attributo fornisce una categorizzazione specifica per la spedizione, ad esempio 'Standard', 'Espressa', 'Merci pericolose' o 'Inter-company'. Questa classificazione aiuta ad applicare diverse regole aziendali, priorità o viste analitiche. Utilizzare il tipo di spedizione come dimensione nel Process Mining permette di confrontare i processi per diverse tipologie di carico. Può rivelare se certi tipi siano più inclini ai ritardi, abbiano costi maggiori o seguano percorsi non standard. Questi insight aiutano a adattare i processi per gestire meglio le esigenze specifiche di ogni tipo di spedizione. Perché è importante Consente di segmentare l'analisi in base al contesto aziendale, aiutando a capire se diverse tipologie di spedizione seguono processi differenti o hanno livelli di performance diversi. Dove trovare Solitamente si tratta di un campo o attributo configurabile sul record della spedizione o dell'ordine in OTM. Esempi StandardAcceleratoInternazionaleNazionale | |||
| Ultimo `Data Update` LastDataUpdate | Il `timestamp` che indica l'ultima volta che i `dati` per questo `evento` sono stati aggiornati o estratti dal `sistema sorgente`. | ||
| Descrizione Questo attributo registra quando i dati sono stati estratti l'ultima volta da Oracle Transportation Management. Riflette l'aggiornamento dei dati analizzati, non il momento in cui si è verificato l'evento aziendale. Questo timestamp è cruciale per comprendere la tempestività dell'analisi di Process Mining. Aiuta gli utenti a sapere se stanno guardando informazioni in tempo reale o un'istantanea di un momento specifico. È essenziale per gestire i cicli di aggiornamento dei dati e garantire che le decisioni si basino su informazioni attuali. Perché è importante Indica l'aggiornamento dei dati, assicurando agli utenti la consapevolezza di quanto sia recente l'analisi e quando sia previsto il prossimo refresh. Dove trovare Solitamente si tratta di un timestamp generato dal sistema aggiunto durante l'ingestione dei dati o il processo ETL. Esempi 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
Attività di Transportation Management
| Activity | Descrizione | ||
|---|---|---|---|
| Merce consegnata | Questa attività rappresenta l'avvenuta consegna della spedizione al destinatario finale. Viene acquisita quando l'ultima fermata della spedizione viene contrassegnata con l'orario di arrivo effettivo. | ||
| Perché è importante Questo è il traguardo principale per misurare la puntualità delle consegne e il tempo di ciclo end-to-end. Rappresenta il culmine del processo di esecuzione del trasporto. Dove trovare Dedotto dalla compilazione del campo ACTUAL_ARRIVAL nell'ultimo record di sosta della tabella SHIPMENT_STOP associata alla spedizione. Acquisisci Utilizzare il timestamp ACTUAL_ARRIVAL dall'ultimo record della tabella SHIPMENT_STOP per la spedizione. Tipo di evento inferred | |||
| Merce ritirata | Questa attività indica l'inizio del trasporto fisico, ovvero quando il vettore ha ritirato la merce all'origine. L'evento viene acquisito quando la prima fermata della spedizione è contrassegnata come 'DEPARTED'. | ||
| Perché è importante Questo è un traguardo critico che segna l'inizio della fase di transito. È essenziale per monitorare le prestazioni di ritiro del vettore e i tempi di transito effettivi. Dove trovare Dedotto dal cambio di stato della prima sosta nella tabella SHIPMENT_STOP in 'DEPARTED', o tracciando un evento di stato della spedizione che indica il ritiro. Acquisisci Utilizzare il timestamp ACTUAL_DEPARTURE dal primo record della tabella SHIPMENT_STOP per la spedizione. Tipo di evento inferred | |||
| Pagamento Elaborato | Questa è l'attività finale, che rappresenta l'avvenuta elaborazione del pagamento al vettore per i suoi servizi. L'evento segna la chiusura finanziaria della spedizione. | ||
| Perché è importante Questa attività conclude il ciclo di vita del trasporto. È essenziale per misurare i tempi di elaborazione dei pagamenti ai vettori e per gestire efficacemente i rapporti con loro. Dove trovare Dedotto dal cambio di stato del voucher o della fattura associata verso lo stato 'PAID'. Questi dati sono nelle tabelle VOUCHER o BILL. Acquisisci Identifichi il timestamp quando VOUCHER.VOUCHER_STATUS_ID passa allo stato 'PAID'. Tipo di evento inferred | |||
| Ricezione prova di consegna | Rappresenta la ricezione e la registrazione della conferma formale dell'avvenuta consegna, come un documento firmato. Spesso viene registrato come un tipo di documento specifico allegato alla spedizione. | ||
| Perché è importante La prova di consegna (POD) è fondamentale per la fatturazione e la risoluzione delle controversie. Monitorarne la ricezione assicura la conformità del processo e accelera il ciclo di regolamento finanziario. Dove trovare Può essere un evento esplicito o inferito dalla data di creazione di un documento POD collegato alla spedizione. Verifichi nella tabella DOCUMENT i documenti con tipo 'POD'. Acquisisci Utilizzare il timestamp di creazione di un documento di tipo 'POD' associato alla spedizione. Tipo di evento explicit | |||
| Richiesta di trasporto ricevuta | Questa attività segna la creazione di una necessità di trasporto nel sistema, tipicamente come Order Release. L'evento viene acquisito quando viene creato un nuovo record di Order Release in Oracle Transportation Management, che rappresenta la domanda iniziale di spedizione. | ||
| Perché è importante Essendo il punto di partenza, questa attività è fondamentale per misurare il tempo di ciclo end-to-end e comprendere i pattern della domanda. Aiuta ad analizzare il tempo che intercorre dalla richiesta alla pianificazione. Dove trovare Questo è un evento esplicito acquisito dal timestamp di creazione del record Order Release nella tabella ORDER_RELEASE. Possono essere utilizzati INSERT_DATE o campi specifici della data di creazione. Acquisisci Utilizzare il timestamp di creazione dell'Order Release nella tabella ORDER_RELEASE. Tipo di evento explicit | |||
| Spedizione pianificata | Questa attività rappresenta la pianificazione riuscita di uno o più order release in una spedizione fattibile da parte del motore di pianificazione OTM. Viene rilevata quando il sistema cambia lo stato di una spedizione in 'pianificato', ad esempio 'PLANNING_PLANNED FINAL'. | ||
| Perché è importante Questo è un traguardo fondamentale che separa la fase della domanda da quella dell'esecuzione. Analizzare il tempo che precede questa attività aiuta a identificare l'efficienza della pianificazione e i colli di bottiglia nelle prestazioni del motore di calcolo. Dove trovare Dedotto dallo storico degli stati dell'oggetto Shipment nella tabella SHIPMENT. Cerchi il passaggio a uno stato che indica il completamento della pianificazione. Acquisisci Identifichi il timestamp quando SHIPMENT.SHIPMENT_STATUS_VALUE_GID passa allo stato 'Planned'. Tipo di evento inferred | |||
| Appuntamento di consegna pianificato | Questa attività indica quando è stata programmata una data e un'ora specifiche per la consegna con il destinatario. L'evento viene acquisito dai dati dell'appuntamento sull'ultima fermata della spedizione. | ||
| Perché è importante Questo è un passaggio chiave nel coordinamento della consegna finale. Analizzare il tempo che intercorre tra l'arrivo e la consegna programmata può rivelare colli di bottiglia nelle operazioni dell'ultimo miglio. Dove trovare Dedotto dalla compilazione dei campi data e ora dell'appuntamento per l'ultima sosta (punto di consegna), presenti nella tabella SHIPMENT_STOP. Acquisisci Utilizzare il timestamp di quando i campi dell'appuntamento vengono popolati per la prima volta per la fermata di consegna. Tipo di evento inferred | |||
| Appuntamento per il ritiro programmato | Questa attività indica che è stata programmata e registrata una data e un'ora specifiche per il ritiro. Spesso viene acquisita dai dati relativi agli appuntamenti a livello di fermata della spedizione. | ||
| Perché è importante La pianificazione degli appuntamenti è una fase di coordinamento cruciale. Analizzarla aiuta a comprendere l'efficienza della programmazione e il suo impatto sulla puntualità del ritiro. Dove trovare Dedotto dalla compilazione dei campi data e ora dell'appuntamento per la prima sosta (punto di ritiro), presenti nella tabella SHIPMENT_STOP. Acquisisci Utilizzare il timestamp di quando i campi dell'appuntamento vengono popolati per la prima volta per la fermata di ritiro. Tipo di evento inferred | |||
| Fattura di trasporto verificata | Questa attività segna il completamento del processo di audit della fattura di trasporto, in cui la fattura del vettore viene confrontata e verificata con i dettagli della spedizione. Viene registrata quando lo stato della fattura passa a 'VOUCHER_AUDITED' o simile. | ||
| Perché è importante L'audit è fondamentale per il controllo finanziario e l'identificazione di discrepanze di fatturazione. Analizzare questa attività aiuta a snellire il processo audit-to-pay e supporta il KPI sul tasso di discrepanza delle fatture. Dove trovare Dedotto dal cambio di stato sull'oggetto Bill associato alla spedizione. Verifichi nella tabella BILL gli aggiornamenti di stato relativi al completamento dell'audit. Acquisisci Identifichi il timestamp quando BILL.BILL_STATUS_VALUE_GID passa allo stato 'Audited'. Tipo di evento inferred | |||
| Pratica doganale evasa | Per le spedizioni internazionali, questa attività rappresenta il momento in cui le merci superano con successo la dogana. Solitamente viene registrata tramite un evento di spedizione specifico o un aggiornamento di stato. | ||
| Perché è importante Lo sdoganamento è spesso fonte di ritardi significativi. Tracciare questa attività aiuta a misurare e ottimizzare i tempi di ciclo delle pratiche doganali. Dove trovare Questo evento viene solitamente acquisito tramite un evento di spedizione 'Dogana' inserito manualmente o integrato. Cerchi i codici evento specifici relativi alla dogana nella tabella SHIPMENT_STATUS. Acquisisci Identifichi il timestamp di un evento 'Customs Cleared' dalla tabella SHIPMENT_STATUS. Tipo di evento explicit | |||
| Spedizione annullata | Rappresenta l'annullamento di una spedizione dopo la pianificazione, terminando prematuramente il suo ciclo di vita. Questo viene rilevato tramite un cambio di stato dell'oggetto Spedizione in 'annullato'. | ||
| Perché è importante Monitorare gli annullamenti è importante per comprendere le eccezioni e i fallimenti del processo. Aiuta a identificare i motivi della cancellazione, come variazioni della domanda o errori di pianificazione. Dove trovare Dedotto dallo storico degli stati dell'oggetto Shipment nella tabella SHIPMENT. Cerchi il passaggio a uno stato come 'PLANNING_CANCELED'. Acquisisci Identifichi il timestamp quando SHIPMENT.SHIPMENT_STATUS_VALUE_GID passa allo stato 'Cancelled'. Tipo di evento inferred | |||
| Spedizione in transito | Indica che la merce è stata ritirata e si sta muovendo verso la destinazione. Rappresenta l'inizio dello stato registrato subito dopo l'attività 'Goods Picked Up'. | ||
| Perché è importante Questa attività segna l'inizio della fase di transito, fondamentale per monitorare l'avanzamento della consegna e identificare i ritardi nel percorso. È la base per la dashboard relativa ai punti critici dei ritardi in transito. Dove trovare Questo è lo stesso evento di 'Merce ritirata' ma è spesso rappresentato come un'attività distinta nei modelli di processo per indicare l'inizio di una nuova fase. Deriva dalla partenza dalla prima fermata. Acquisisci Uguale a 'Merce ritirata': utilizzare il timestamp ACTUAL_DEPARTURE dal primo SHIPMENT_STOP. Tipo di evento inferred | |||
| Spedizione prenotata | Rappresenta la conferma formale di prenotazione con il vettore dopo l'assegnazione. Solitamente viene rilevata quando lo stato della spedizione passa a 'SECURE RESOURCES_BOOKED' o equivalente. | ||
| Perché è importante Questo conferma l'impegno del vettore e sposta ufficialmente la spedizione nella fase di esecuzione. È un passaggio cruciale per misurare il KPI del tempo di ciclo della pianificazione spedizioni. Dove trovare Dedotto da un cambio di stato sull'oggetto Shipment nella tabella SHIPMENT, tracciando il passaggio a uno stato confermato o prenotato dopo l'assegnazione al vettore. Acquisisci Identifichi il timestamp quando SHIPMENT.SHIPMENT_STATUS_VALUE_GID passa allo stato 'Booked'. Tipo di evento inferred | |||
| Vettore assegnato | Segna il momento in cui una spedizione è stata assegnata con successo e accettata da un vettore specifico. Viene rilevato osservando il cambio dello stato di assegnazione in 'TENDER_ACCEPTED' o simile. | ||
| Perché è importante Monitorare questo aspetto aiuta ad analizzare l'efficienza del processo di selezione e assegnazione ai vettori. I ritardi in questa fase possono influire pesantemente sulla tabella di marcia complessiva, ancora prima che la merce venga mossa. Dove trovare Dedotto dallo storico degli stati nella tabella SHIPMENT_TENDER, cercando il timestamp in cui lo stato indica l'accettazione da parte del vettore. Acquisisci Utilizzare il timestamp del cambio di stato in 'TENDER_ACCEPTED' nella cronologia di assegnazione della spedizione. Tipo di evento inferred | |||
Guide all'Estrazione
Fasi
- Accedere a BI Publisher: Acceda alla Sua applicazione Oracle Transportation Management (OTM). Navighi in Business Process Automation, poi Reporting, e selezioni Report Manager. Si aprirà l'interfaccia di Oracle Business Intelligence Publisher.
- Creare un Data Model: In BI Publisher, clicchi sul pulsante Nuovo e selezioni Data Model. Si aprirà l'editor per definire l'origine dati del report.
- Definire la query SQL: Nell'editor del modello dati, clicchi sull'icona '+' nel diagramma Data Sets e selezioni SQL Query. Assegni un nome al dataset, ad esempio 'OTM_Process_Mining_DS'. Selezioni il Suo database OTM come Data Source. Copi la query SQL completa fornita nella sezione 'query' di questo documento e la incolli nella casella di testo SQL Query.
- Aggiungere i parametri: La query utilizza parametri per l'intervallo di date e il nome del dominio (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher li rileverà automaticamente. Può configurare le loro proprietà, impostando ad esempio il tipo di dati su Date per i parametri temporali.
- Salvare il Data Model: Clicchi sull'icona Salva. Scelga una posizione nel catalogo BI Publisher, assegni un nome descrittivo come 'OTM Shipment Process Extraction' e salvi il modello.
- Creare il report: Torni nel catalogo, clicchi sul pulsante Nuovo e selezioni Report. Nella procedura guidata, scelga l'opzione 'Use Data Model' e selezioni il modello appena salvato.
- Configurare il Layout del report: La procedura La guiderà nella creazione del layout. Un formato 'Table' (Tabella) semplice è sufficiente. Trascini tutte le colonne dal Suo dataset nella tabella. Non esegua raggruppamenti o aggregazioni.
- Salvare il report: Una volta configurato il layout, proceda all'ultimo passaggio e salvi il report con un nome simile a quello del modello dati.
- Eseguire il report: Apra il report appena creato. Le verrà chiesto di inserire i valori per i parametri (Start Date, End Date, Domain Name). Inserisca l'intervallo desiderato.
- Esportare i dati: Dopo l'esecuzione del report, clicchi sul menu Azioni e selezioni Esporta. Scelga il formato CSV per scaricare il file contenente l'Event Log.
- Preparazione per l'upload: Apra il file CSV scaricato. Verifichi che le intestazioni di colonna corrispondano agli attributi richiesti:
ShipmentId,ActivityName,EventTimee gli attributi consigliati. Si assicuri che la colonnaEventTimeabbia un formato data/ora coerente. Il file è pronto per essere caricato su ProcessMind.
Configurazione
- Origine dati: La query deve essere eseguita sullo schema del database operativo primario di OTM, solitamente denominato GLOGOWNER.
- Parametri del report:
P_START_DATE: L'inizio del periodo di reporting. Il formato deve essere 'YYYY-MM-DD'.P_END_DATE: La fine del periodo di reporting. Il formato deve essere 'YYYY-MM-DD'.P_DOMAIN_NAME: Il dominio OTM specifico da cui estrarre i dati. Utilizzi '[Nome del Suo dominio]'.
- Intervallo date: Per l'analisi iniziale, si consiglia di estrarre dati per un periodo di 3-6 mesi per bilanciare volume dei dati e prestazioni. Per l'uso a regime, consideri estrazioni mensili o trimestrali.
- Permessi: L'utente OTM che esegue il report deve avere ruoli specifici, come BI PUBLISHER DATA MODEL DEVELOPER e BI PUBLISHER REPORT DEVELOPER, per creare e modificare modelli dati e report. È richiesto anche l'accesso in sola lettura alle tabelle del database sottostante.
- Prestazioni: La query esegue join tra diverse tabelle di grandi dimensioni. In ambienti con volumi elevati, si consiglia vivamente di eseguire questo report nelle ore non di punta. L'intervallo di date dovrebbe essere il più ristretto possibile per garantire tempi di risposta rapidi.
a Query di Esempio config
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' Fasi
- Stabilire la connessione al database: Ottenga le credenziali di sola lettura e i dettagli di connessione (host, porta, ID servizio) per il database Oracle Transportation Management. Sarà necessario l'accesso allo schema
GLOGOWNER. - Configurare il client SQL: Imposti un tool client SQL, come Oracle SQL Developer, DBeaver o Toad, con i dettagli di connessione ottenuti al passaggio precedente.
- Preparare la query: Copi la query SQL completa fornita in questo documento nell'editor del Suo client SQL.
- Impostare i parametri della query: Individui i valori segnaposto nelle clausole
WHERE. Sostituisca[START_DATE],[END_DATE]e[YOUR_DOMAIN_NAME]con i valori corretti per l'estrazione. Ad esempio, imposti le date per coprire un periodo di 3-6 mesi e specifichi il dominio operativo da analizzare. - Eseguire la query: Avvii la query SQL modificata. A seconda dell'intervallo temporale e della dimensione del sistema, l'operazione potrebbe richiedere alcuni minuti.
- Revisionare i risultati: Al termine, verifichi rapidamente l'output per assicurarsi che vengano restituite le righe e che le colonne chiave come
ShipmentId,ActivityNameeEventTimesiano popolate correttamente. - Esportare in CSV: Esporti l'intero set di risultati in un file CSV. Utilizzi le impostazioni standard: separatore virgola, virgolette doppie per il testo e codifica UTF-8.
- Finalizzare le intestazioni: Prima dell'upload, verifichi che le intestazioni di colonna nel CSV corrispondano esattamente agli attributi richiesti:
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeeDelayReason. - Upload su ProcessMind: Il file CSV preparato è pronto per il caricamento e l'analisi su ProcessMind.
Configurazione
- Schema del database: La query è progettata per essere eseguita sullo schema standard di Oracle Transportation Management, solitamente denominato
GLOGOWNER. - Autorizzazioni richieste: È necessario un utente database con accesso di sola lettura alle tabelle referenziate. Queste includono
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLeVOUCHER. - Filtraggio per dominio: In un ambiente OTM multi-tenant, è fondamentale filtrare per
DOMAIN_NAME. La query include il segnaposto[YOUR_DOMAIN_NAME]che deve essere configurato per estrarre i dati della corretta entità aziendale. - Intervallo date: Per gestire le prestazioni e il volume, è obbligatorio specificare una data di inizio e fine. Si consiglia il filtraggio su una colonna indicizzata come
SHIPMENT.INSERT_DATE. Un periodo di 3-6 mesi è ideale per un'analisi preliminare. - Personalizzazione dei codici di stato: La query utilizza codici di stato predefiniti comuni (es.
PLANNING_PLANNED FINAL,TENDER_ACCEPTED). Se la Sua implementazione OTM utilizza codici personalizzati, potrebbe essere necessario modificare i valori nelle clausoleWHEREper allinearli alla Sua configurazione.
a Query di Esempio 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%';