Il Suo template dei dati per la gestione dei trasporti
Il Suo template dei dati per la gestione dei trasporti
- Attributi consigliati da raccogliere
- Attività principali da monitorare
- Indicazioni per l’estrazione
Attributi per la gestione dei trasporti
| Nome | Descrizione | ||
|---|---|---|---|
| Nome dell’attività ActivityName | Nome di uno specifico evento o traguardo verificatosi nel processo di trasporto di una spedizione. | ||
| Descrizione Questo attributo descrive una singola fase del ciclo di vita del trasporto, ad esempio '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 fulcro del Process Mining. Consente di ricostruire il flusso effettivo del processo, individuare i colli di bottiglia tra le fasi e misurare il rispetto delle procedure operative standard. Le variazioni nel flusso delle attività possono mettere in luce eccezioni, rilavorazioni o deviazioni dal percorso ottimale. Perché è importante Definisce le fasi della mappa del processo e consente di visualizzare e analizzare il percorso della spedizione, i colli di bottiglia e le deviazioni. Dove reperirli Queste informazioni derivano dalle tabelle degli eventi di tracciamento o dai registri delle modifiche di stato in Oracle Transportation Management. Il nome specifico dell’attività può essere composto concatenando i codici e le descrizioni degli eventi. Esempi Spedizione pianificataMerce ritirataSdoganamento completatoMerce consegnata | |||
| Ora dell’evento EventTime | Data e ora esatte in cui si è verificata una specifica attività o un evento di trasporto. | ||
| Descrizione Questo timestamp indica il momento esatto in cui un’attività, come 'Vettore assegnato' o 'Prova di consegna ricevuta', è stata registrata nel sistema. I timestamp sono fondamentali per il Process Mining, perché stabiliscono la sequenza cronologica degli eventi per ogni spedizione. La loro precisione è essenziale per tutte le analisi basate sul tempo. Servono a calcolare i tempi di ciclo tra le attività, misurare la durata dei processi, individuare i ritardi e valutare i risultati rispetto agli accordi sul livello di servizio. Analizzare l’ora dell’evento aiuta a individuare i punti in cui si perde tempo nel processo. Perché è importante Questo timestamp è essenziale per ordinare cronologicamente gli eventi e calcolare tutte le metriche temporali, come i tempi di ciclo e i ritardi. Dove reperirli Proviene dai campi timestamp associati agli eventi nelle tabelle OTM degli eventi di tracciamento o della cronologia degli stati. Esempi 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Spedizione ShipmentId | Identificativo univoco di una singola spedizione, utilizzato come ID del caso principale per monitorare tutte le attività di trasporto correlate. | ||
| Descrizione L’ID della spedizione identifica in modo univoco un singolo trasferimento di merci dal mittente al destinatario. Questo attributo è il riferimento centrale per l’analisi del processo: raggruppa in un unico caso tutti gli eventi correlati, come pianificazione, prenotazione, ritiro, transito, consegna e fatturazione. Nel Process Mining, analizzare gli eventi in base all’ID della spedizione consente di ottenere una visione completa del ciclo di vita del trasporto. Questo identificativo serve a calcolare metriche chiave, come il tempo di ciclo totale, le prestazioni delle consegne puntuali e il costo per spedizione, offrendo una comprensione complessiva dell’efficienza del processo e del livello di servizio al cliente. Perché è importante È l’ID del caso fondamentale che collega tutte le fasi del processo e consente di analizzare per intero il percorso di ogni singola spedizione. Dove reperirli È una chiave primaria in Oracle Transportation Management, generalmente presente nelle tabelle di gestione delle spedizioni o degli ordini. Per conoscere i nomi esatti delle tabelle e dei campi, consultare la documentazione OTM. Esempi SH-0012345SH-0012346SH-0012347 | |||
| Costo della spedizione ShipmentCost | Costo totale del trasporto o importo addebitato per la spedizione. | ||
| Descrizione Questo attributo rappresenta il costo finanziario totale associato a una spedizione, inclusi gli addebiti del vettore, i supplementi per il carburante e gli altri oneri accessori. È una misura chiave dei risultati finanziari del processo di trasporto. Analizzare il costo della spedizione consente di calcolare il KPI relativo al costo medio del vettore per spedizione. Il dato può essere segmentato per vettore, percorso, modalità di trasporto o tipo di spedizione, così da individuare opportunità di risparmio. Viene inoltre utilizzato nell’analisi delle discrepanze nelle fatture di trasporto per confrontare i costi pianificati con quelli effettivi. Perché è importante Fornisce i dati finanziari necessari per analizzare la spesa di trasporto, individuare opportunità di risparmio e misurare l’impatto economico delle inefficienze di processo. Dove reperirli Queste informazioni si trovano generalmente nelle sezioni finanziarie o di calcolo dei costi della spedizione in OTM e vengono spesso compilate dopo il calcolo delle tariffe e la liquidazione del trasporto. Esempi 250.751200.00545.50 | |||
| Data di consegna richiesta RequestedDeliveryDate | Data e ora di consegna richieste dal cliente o concordate come obiettivo dell’accordo sul livello di servizio (SLA). | ||
| Descrizione Questo attributo registra il timestamp previsto per la consegna della spedizione. Rappresenta l’impegno preso con il cliente e costituisce il principale valore di riferimento per misurare la puntualità. Nel Process Mining, questa data viene confrontata con il timestamp effettivo della consegna, ricavato dall’attività 'Merce consegnata', per stabilire se una spedizione è arrivata puntualmente o in ritardo. È il riferimento per il KPI relativo al tasso di consegne puntuali ed è essenziale per la Dashboard di panoramica delle prestazioni di consegna. Analizzare gli scostamenti aiuta a individuare le cause sistemiche dei ritardi e a migliorare la soddisfazione dei clienti. Perché è importante È il principale valore di riferimento per misurare le prestazioni delle consegne puntuali, un KPI fondamentale per la soddisfazione dei clienti e l’eccellenza operativa. Dove reperirli Queste informazioni sono generalmente memorizzate a livello di ordine o di spedizione in OTM, spesso nei 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 mezzo di trasporto utilizzato per la spedizione, ad esempio camion, ferrovia, nave o aereo. | ||
| Descrizione Questo attributo classifica la spedizione in base alla modalità di trasporto. Le modalità più comuni includono carico completo (FTL), carico parziale (LTL), trasporto marittimo, aereo e ferroviario. È una caratteristica fondamentale della spedizione, che ne influenza i costi, i tempi di transito e la complessità. Nell’analisi, la modalità di trasporto è una dimensione essenziale per la segmentazione. Consente di confrontare le prestazioni dei processi e i costi delle diverse modalità. Ad esempio, può aiutare a individuare quelle più soggette a ritardi durante il transito o con costi per chilometro più elevati, supportando le decisioni strategiche sulle reti logistiche. Perché è importante Consente di segmentare l’analisi delle prestazioni e dei costi in base alla modalità di trasporto, mettendo in luce aspetti specifici della logistica su strada, aerea, marittima o ferroviaria. Dove reperirli È un attributo standard a livello di spedizione in OTM, spesso presente in un campo dedicato alla modalità o al tipo di trasporto. Esempi FTLLTLTRASPORTO MARITTIMOAIR | |||
| Motivo del ritardo DelayReason | Codice o descrizione che spiega la causa di un ritardo nell’avanzamento della spedizione. | ||
| Descrizione Quando una spedizione subisce un ritardo, questo attributo ne indica il motivo, ad esempio 'Condizioni meteorologiche', 'Blocco doganale', 'Congestione portuale' o 'Guasto meccanico'. L’informazione proviene dagli aggiornamenti del vettore o da inserimenti manuali in OTM. Questo attributo è essenziale per analizzare le cause profonde dei ritardi nelle consegne. Classificando e contando i motivi dei ritardi, le aziende possono individuare i problemi più frequenti nella catena di approvvigionamento. È quindi possibile intervenire in modo mirato, ad esempio scegliendo vettori più affidabili per determinate tratte o migliorando la documentazione per accelerare lo sdoganamento. Perché è importante Fornisce informazioni essenziali sulle cause profonde dei ritardi nelle spedizioni e consente di intervenire in modo mirato per ridurre i problemi ricorrenti e migliorare la puntualità. Dove reperirli In genere viene registrato nei dettagli degli eventi di tracciamento in OTM e può essere associato a codici evento specifici relativi a eccezioni o ritardi. Esempi RITARDO_METEOROLOGICOCONTROLLO_DOGANALECONGESTIONE_PORTUALETRAFFICO | |||
| Nome del vettore CarrierName | Nome del vettore o del fornitore di servizi responsabile del trasporto della spedizione. | ||
| Descrizione Questo attributo identifica il partner logistico incaricato del trasporto delle merci. Può trattarsi di grandi aziende di trasporto merci, corrieri locali o compagnie di navigazione. Analizzare le prestazioni per vettore è uno degli obiettivi principali del Process Mining applicato ai trasporti. L’attributo consente di segmentare le spedizioni e confrontare i vettori in base a metriche come il tasso di consegne puntuali, il costo per spedizione, il tempo di transito e la frequenza di problemi quali ritardi o discrepanze di fatturazione. Queste informazioni sono fondamentali per scegliere i vettori, negoziare i contratti e gestirne le prestazioni. Perché è importante Consente di confrontare le prestazioni dei diversi vettori, un aspetto fondamentale per ottimizzare la selezione, la negoziazione e la riduzione dei costi. Dove reperirli Si trova nei dettagli della spedizione in OTM ed è collegato ai record del vettore o del fornitore di servizi assegnato. Può essere memorizzato nelle tabelle relative alle spedizioni e ai fornitori di servizi. Esempi FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Agente doganale CustomsAgent | Lo spedizioniere o l’agente responsabile della gestione dello sdoganamento della spedizione. | ||
| Descrizione Per le spedizioni internazionali, questo attributo identifica l’agente esterno o il team interno incaricato di gestire la documentazione e le procedure doganali. Le prestazioni dell’agente possono incidere in modo significativo sul tempo di transito complessivo. Analizzare il tempo di ciclo dello sdoganamento per agente doganale consente di confrontarne le prestazioni. È possibile individuare gli agenti più efficienti in determinati Paesi o per specifiche categorie di merci. Queste informazioni sono utili per scegliere i partner doganali più adatti e collaborare con gli agenti meno efficienti per migliorare i processi. Perché è importante Consente di misurare le prestazioni degli spedizionieri doganali, individuare i partner più efficienti e ridurre i ritardi legati allo sdoganamento. Dove reperirli In OTM, queste informazioni possono essere memorizzate nei dettagli della spedizione internazionale come fornitore di servizi o ruolo della parte. Esempi Global Customs ServicesLivingston InternationalFlexport | |||
| Consegna puntuale IsOnTimeDelivery | Indicatore calcolato che segnala se la spedizione è stata consegnata entro la data richiesta. | ||
| Descrizione Questo attributo booleano si ottiene confrontando la data e l’ora dell’attività «Merce consegnata» con la «Data di consegna richiesta». Assume il valore «true» se la consegna è avvenuta entro la data prevista o in anticipo e «false» se è avvenuta in ritardo. Questo attributo alimenta direttamente il KPI relativo al tasso di consegne puntuali ed è un elemento chiave della Dashboard di panoramica delle prestazioni di consegna. Semplifica l’analisi delle consegne fornendo un esito chiaro, sì o no, per ogni spedizione e agevolando il filtraggio, l’aggregazione e la visualizzazione delle spedizioni puntuali e in ritardo. Perché è importante Questo indicatore calcolato semplifica la misurazione del KPI delle consegne puntuali e consente di filtrare e analizzare facilmente le spedizioni puntuali e quelle in ritardo. Dove reperirli Questo attributo non è presente nel sistema di origine. Viene calcolato durante la trasformazione dei dati confrontando la data e l’ora dell’attività «Merce consegnata» con l’attributo «RequestedDeliveryDate». Esempi truefalse | |||
| Discrepanza nella fattura di trasporto FreightBillDiscrepancy | Indicatore che segnala se durante la verifica della fattura di trasporto è stata rilevata una discrepanza. | ||
| Descrizione Questo attributo booleano assume il valore «true» se la fattura di trasporto ricevuta dal vettore non corrisponde al costo previsto calcolato in OTM. Le discrepanze possono dipendere da tariffe errate, supplementi o altri errori di fatturazione. Questo attributo è alla base del KPI relativo al tasso di discrepanze nelle fatture di trasporto. Analizzare la frequenza di questi indicatori per vettore, tratta o tipo di spedizione aiuta a individuare le cause profonde degli errori di fatturazione. Le informazioni ottenute consentono di migliorare l’accuratezza dei dati, semplificare il processo di verifica e prevenire pagamenti in eccesso. Perché è importante Supporta direttamente l’analisi delle discrepanze nelle fatture di trasporto, segnalando le spedizioni con errori di fatturazione e contribuendo a ridurre i pagamenti in eccesso e a rafforzare i controlli finanziari. Dove reperirli In OTM si tratta in genere di uno stato o indicatore impostato durante il processo di liquidazione del trasporto e di abbinamento delle fatture. Esempi truefalse | |||
| Nome utente UserName | Il nome o l’ID dell’utente che ha eseguito o a cui è attribuita una determinata attività. | ||
| Descrizione Questo attributo identifica l’utente o l’agente di sistema che ha eseguito un evento specifico, ad esempio «Spedizione pianificata» o «Vettore assegnato». Queste informazioni chiariscono le responsabilità e mostrano quali risorse sono coinvolte nel processo. Nel Process Mining, analizzare le attività per utente aiuta a comprendere la distribuzione dei carichi di lavoro, individuare le esigenze di formazione e confrontare le prestazioni di utenti o team diversi. Consente inoltre di distinguere le attività svolte manualmente da quelle eseguite automaticamente dal sistema. Perché è importante Chiarisce le responsabilità e consente di analizzare il carico di lavoro e le prestazioni dei singoli utenti o dei team. Dove reperirli Ricavato dai campi ID utente, ad esempio INSERT_USER, associati alle modifiche di stato o agli eventi nelle tabelle di cronologia o di registro di OTM. Esempi JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| Paese di destinazione DestinationCountry | 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. Completa il paese di origine nell’analisi geografica dei processi. Come per il paese di origine, analizzare i dati per paese di destinazione è fondamentale per comprendere le differenze nelle prestazioni delle diverse tratte commerciali. È particolarmente utile per analizzare i tempi di sdoganamento, le prestazioni delle consegne dell’ultimo miglio e l’efficacia dei vettori nelle diverse regioni. Queste informazioni aiutano ad adattare le strategie logistiche alle esigenze dei vari mercati di destinazione. Perché è importante È fondamentale per analizzare le prestazioni su specifiche tratte commerciali e comprendere le difficoltà legate a dogane, vettori e normative nei mercati di destinazione. Dove reperirli Si ricava dai dettagli dell’indirizzo del luogo di destinazione della spedizione o del destinatario, memorizzati nei dati anagrafici delle località di OTM. Esempi CANFRAJPNBRA | |||
| Paese di origine OriginCountry | Paese da cui parte la spedizione. | ||
| Descrizione Questo attributo specifica il paese di partenza della spedizione in base alla sede del mittente. È un’informazione geografica importante per l’analisi logistica. Analizzare i processi per paese di origine aiuta a comprendere le differenze regionali nelle prestazioni. Ad esempio, i tempi di sdoganamento, i costi dei vettori e i tempi di transito possono variare notevolmente in base al paese di origine. Questa segmentazione è fondamentale per gestire la logistica internazionale e individuare i colli di bottiglia specifici di una regione. Perché è importante Consente di analizzare geograficamente il processo di trasporto e aiuta a individuare colli di bottiglia, costi e differenze nelle prestazioni specifici di ciascuna regione. Dove reperirli Si ricava dai dettagli dell’indirizzo del luogo di origine della spedizione o del mittente, memorizzati nei dati anagrafici delle località di OTM. Esempi USADEUCHNMEX | |||
| Percorso modificato IsRerouted | Indicatore che segnala se il percorso della spedizione è stato modificato dopo la prenotazione iniziale. | ||
| Descrizione Questo attributo booleano assume il valore «true» se, dopo la pianificazione e la prenotazione, la spedizione subisce una modifica significativa del percorso. La modifica può dipendere da una richiesta del cliente, da imprevisti o da opportunità di ottimizzazione. Questo attributo supporta direttamente il KPI relativo al tasso di modifiche del percorso delle spedizioni e la Dashboard di analisi delle modifiche di percorso e delle spedizioni urgenti. Monitorare la frequenza delle modifiche aiuta a individuare i problemi alla base della pianificazione o dell’esecuzione. Mette in evidenza le instabilità operative e i relativi costi, consentendo ai responsabili di ridurre le modifiche onerose e problematiche. Perché è importante Aiuta a quantificare la frequenza e l’impatto delle eccezioni operative, come le modifiche di percorso, mettendo in luce le inefficienze nella pianificazione e nell’esecuzione. Dove reperirli L’indicatore si ricava rilevando eventi specifici di modifica del percorso nell’Event Log oppure confrontando il percorso finale con quello pianificato inizialmente. Esempi truefalse | |||
| 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 di origine in cui sono stati generati i dati. 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 di origine è importante per la governance e la valutazione della qualità dei dati, oltre che per la risoluzione dei problemi. Aiuta a comprendere il contesto dei dati e può spiegare le differenze nel livello di dettaglio o nella tempestività. Nell’analisi, consente di filtrare gli eventi provenienti da un sistema specifico e affidabile. Perché è importante Fornisce un contesto essenziale sull’origine dei dati, importante per convalidarli e analizzarli in ambienti con più sistemi. Dove reperirli In genere è un valore statico aggiunto durante l’estrazione dei dati per indicare l’origine dei record. Esempi Oracle OTMOTM CloudSAP TM | |||
| Stato della spedizione ShipmentStatus | Stato corrente della spedizione nel suo ciclo di vita, ad esempio 'Pianificata', 'In transito' o 'Consegnata'. | ||
| Descrizione Questo attributo offre una sintesi generale della fase in cui si trova la spedizione nel processo. A differenza di un’attività, che rappresenta un evento in un preciso momento, lo stato descrive la condizione del caso di spedizione. Il Process Mining si concentra sul flusso delle attività, mentre lo stato complessivo è utile per filtrare i casi e fornire contesto nelle Dashboard. Ad esempio, un’analisi può riguardare solo le spedizioni 'Completate' oppure indagare perché molte spedizioni restano nello stato 'In transito' per un tempo insolitamente lungo. Perché è importante Fornisce una sintesi generale dell’avanzamento della spedizione, utile per filtrare e segmentare i casi nell’analisi. Dove reperirli È disponibile nel record principale della spedizione in OTM e ne rappresenta lo stato corrente nel flusso di lavoro. Esempi PIANIFICATAPRENOTATAIN_TRANSITOCONSEGNATA | |||
| Tipo di spedizione ShipmentType | Classificazione della spedizione, ad esempio in base al livello di servizio, al tipo di merce o all’unità aziendale. | ||
| Descrizione Questo attributo consente di classificare la spedizione in base a criteri aziendali, ad esempio «Standard», «Urgente», «Merci pericolose» o «Tra società». La classificazione permette di applicare regole aziendali, priorità o viste analitiche diverse. Utilizzare il tipo di spedizione come dimensione nel Process Mining consente di confrontare i processi relativi a diverse categorie di spedizioni. In questo modo è possibile verificare se alcune categorie sono più soggette a ritardi, comportano costi maggiori o seguono percorsi di processo non standard. Queste informazioni aiutano ad adattare i processi alle esigenze specifiche di ciascun tipo di spedizione. Perché è importante Consente di segmentare l’analisi in base al contesto aziendale e di capire se le diverse categorie di spedizioni seguono processi differenti o presentano livelli di prestazione diversi. Dove reperirli In OTM si tratta in genere di un campo o attributo configurabile nella scheda della spedizione o dell’ordine. Esempi StandardUrgenteInternazionaleNazionale | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Timestamp che indica l’ultima volta in cui i dati relativi a questo evento sono stati aggiornati o estratti dal sistema di origine. | ||
| Descrizione Questo attributo registra quando i dati sono stati acquisiti più di recente da Oracle Transportation Management. Indica quanto sono aggiornati i dati analizzati, non quando si è verificato l’evento aziendale. Questo timestamp è fondamentale per valutare l’attualità dell’analisi di Process Mining. Consente di capire se si stanno consultando informazioni in tempo reale o un’istantanea riferita a un momento specifico. È essenziale per gestire i cicli di aggiornamento dei dati e assicurarsi che le decisioni si basino su informazioni aggiornate. Perché è importante Indica quanto sono aggiornati i dati, così da sapere a quale momento si riferisce l’analisi e quando è previsto il prossimo aggiornamento. Dove reperirli In genere è un timestamp generato dal sistema durante l’acquisizione dei dati o il processo ETL. Esempi 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
Attività di gestione dei trasporti
| Attività | Descrizione | ||
|---|---|---|---|
| Merce consegnata | Questa attività rappresenta la consegna della spedizione al destinatario finale. Viene registrata quando per l’ultima fermata della spedizione è indicato un orario di arrivo effettivo. | ||
| Perché è importante È la tappa principale per misurare le prestazioni delle consegne puntuali e il tempo di ciclo complessivo. Segna il completamento del processo di esecuzione del trasporto. Dove reperirli Si deduce dalla compilazione del campo ACTUAL_ARRIVAL nell’ultimo record della fermata associato alla spedizione nella tabella SHIPMENT_STOP. Acquisizione Utilizzare il timestamp ACTUAL_ARRIVAL dell’ultimo record della spedizione nella tabella SHIPMENT_STOP. Tipo di evento inferred | |||
| Merce ritirata | Questa attività segna l’inizio del trasporto fisico, quando il vettore ritira la merce presso il luogo di partenza. L’evento viene registrato quando la prima fermata della spedizione è contrassegnata come 'DEPARTED'. | ||
| Perché è importante È una tappa fondamentale che segna l’inizio della fase di trasporto. È essenziale per monitorare le prestazioni dei vettori nei ritiri e i tempi effettivi di transito. Dove reperirli Si deduce dal passaggio dello stato della prima fermata nella tabella SHIPMENT_STOP a 'DEPARTED' oppure monitorando un evento di stato della spedizione che indica il ritiro. Acquisizione Utilizzare il timestamp ACTUAL_DEPARTURE del primo record della spedizione nella tabella SHIPMENT_STOP. Tipo di evento inferred | |||
| Pagamento elaborato | È l’attività finale e rappresenta l’elaborazione corretta del pagamento al vettore per i servizi prestati. Questo 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 gestire efficacemente i rapporti con loro. Dove reperirli Si deduce dal passaggio dello stato del voucher o della fattura associati a 'PAID'. Questi dati si trovano nelle tabelle VOUCHER o BILL. Acquisizione Individuare il timestamp in cui VOUCHER.VOUCHER_STATUS_ID passa a 'PAID'. Tipo di evento inferred | |||
| Prova di consegna ricevuta | Indica la ricezione e la registrazione di una conferma formale dell’avvenuta consegna, ad esempio un documento firmato. Spesso viene registrata come tipo di documento specifico allegato alla spedizione. | ||
| Perché è importante La POD è fondamentale per la fatturazione e la risoluzione delle controversie. Monitorarne la ricezione aiuta a garantire la conformità del processo e ad accelerare il ciclo di liquidazione finanziaria. Dove reperirli Può trattarsi di un evento esplicito oppure può essere dedotto dalla data di creazione di un documento POD collegato alla spedizione. Nella tabella DOCUMENT, cercare i documenti con tipo POD. Acquisizione Utilizzare il timestamp di creazione del documento di tipo 'POD' associato alla spedizione. Tipo di evento explicit | |||
| Richiesta di trasporto ricevuta | Questa attività segna la creazione nel sistema di un’esigenza di trasporto, generalmente sotto forma di Order Release. L’evento viene registrato quando in Oracle Transportation Management viene creato un nuovo record Order Release, che rappresenta la richiesta iniziale di spedizione. | ||
| Perché è importante Essendo il punto di avvio del processo, questa attività è fondamentale per misurare il tempo di ciclo complessivo e comprendere l’andamento della domanda. Consente di analizzare il tempo che intercorre tra la richiesta e la pianificazione. Dove reperirli Si tratta di un evento esplicito, rilevato dal timestamp di creazione del record Order Release nella tabella ORDER_RELEASE. È possibile utilizzare INSERT_DATE o i campi specifici relativi alla data di creazione. Acquisizione 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 registrata quando il sistema aggiorna lo stato della spedizione per indicare che è stata pianificata, ad esempio con lo stato 'PLANNING_PLANNED FINAL'. | ||
| Perché è importante È una tappa fondamentale che separa la fase della domanda da quella dell’esecuzione. Analizzare il tempo che precede questa attività aiuta a valutare l’efficienza della pianificazione e a individuare i colli di bottiglia nelle prestazioni del motore. Dove reperirli Si deduce dalla cronologia degli stati dell’oggetto Shipment nella tabella SHIPMENT. Occorre individuare il passaggio a uno stato che indica il completamento della pianificazione. Acquisizione Individuare il timestamp in cui SHIPMENT.SHIPMENT_STATUS_VALUE_GID passa allo stato 'Planned'. Tipo di evento inferred | |||
| Consegna programmata | Questa attività indica quando vengono concordati con il destinatario una data e un orario specifici per la consegna. L’evento viene rilevato dai dati dell’appuntamento relativi all’ultima fermata della spedizione. | ||
| Perché è importante È un passaggio fondamentale per coordinare la 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 reperirli Si deduce dalla compilazione dei campi relativi alla data e all’ora dell’appuntamento per l’ultima fermata della spedizione, ovvero il luogo di consegna, nella tabella SHIPMENT_STOP. Acquisizione Utilizzare il timestamp in cui vengono compilati per la prima volta i campi dell’appuntamento per la fermata di consegna. Tipo di evento inferred | |||
| Fattura di trasporto verificata | Questa attività segna il completamento della verifica della fattura di trasporto, durante la quale la fattura del vettore viene confrontata con i dettagli della spedizione e convalidata. Viene registrata quando lo stato della fattura della spedizione passa a 'VOUCHER_AUDITED' o a uno stato equivalente. | ||
| Perché è importante La verifica è fondamentale per il controllo finanziario e per individuare le discrepanze di fatturazione. Analizzare questa attività aiuta a semplificare il processo dalla verifica al pagamento e supporta il KPI relativo al tasso di discrepanze nelle fatture di trasporto. Dove reperirli Si deduce dalla modifica dello stato dell’oggetto Bill associato alla spedizione. Nella tabella BILL, cercare gli aggiornamenti di stato relativi al completamento della verifica. Acquisizione Individuare il timestamp in cui BILL.BILL_STATUS_VALUE_GID passa allo stato 'Audited'. Tipo di evento inferred | |||
| Ritiro programmato | Questa attività indica che sono stati programmati e registrati una data e un orario specifici per il ritiro. Spesso viene rilevata dai dati relativi agli appuntamenti associati alla fermata della spedizione. | ||
| Perché è importante La programmazione degli appuntamenti è un passaggio fondamentale per il coordinamento. Analizzarla aiuta a comprendere l’efficienza della pianificazione e il suo impatto sulla puntualità dei ritiri. Dove reperirli Si deduce dalla compilazione dei campi relativi alla data e all’ora dell’appuntamento per la prima fermata della spedizione, ovvero il luogo di ritiro, nella tabella SHIPMENT_STOP. Acquisizione Utilizzare il timestamp in cui vengono compilati per la prima volta i campi dell’appuntamento per la fermata di ritiro. Tipo di evento inferred | |||
| Sdoganamento completato | Per le spedizioni internazionali, questa attività indica che la merce ha superato i controlli doganali presso una frontiera o un porto. Spesso viene rilevata tramite un evento specifico della spedizione o un aggiornamento di stato. | ||
| Perché è importante Lo sdoganamento è una causa frequente di ritardi significativi nella logistica internazionale. Monitorare questa attività aiuta a misurare e ottimizzare i tempi di ciclo dello sdoganamento. Dove reperirli In genere, l’evento viene registrato tramite un evento di spedizione 'Customs' inserito manualmente o integrato. Nella tabella SHIPMENT_STATUS occorre cercare codici evento specifici relativi alle operazioni doganali. Acquisizione Individuare il timestamp dell’evento 'Customs Cleared' nella tabella SHIPMENT_STATUS. Tipo di evento explicit | |||
| Spedizione annullata | Rappresenta l’annullamento di una spedizione dopo la pianificazione, che ne interrompe prematuramente il ciclo di vita. Viene registrato quando lo stato dell’oggetto Shipment passa a uno stato di annullamento. | ||
| Perché è importante Monitorare gli annullamenti è importante per comprendere le eccezioni e gli insuccessi del processo. Aiuta a individuare le cause, come variazioni della domanda o errori di pianificazione. Dove reperirli Si deduce dalla cronologia degli stati dell’oggetto Shipment nella tabella SHIPMENT. Occorre individuare il passaggio a uno stato come 'PLANNING_CANCELED'. Acquisizione Individuare il timestamp in cui SHIPMENT.SHIPMENT_STATUS_VALUE_GID passa allo stato 'Cancelled'. Tipo di evento inferred | |||
| Spedizione in transito | Indica che la merce è stata ritirata ed è in viaggio verso la destinazione. Non corrisponde a un singolo istante: l’inizio di questo stato viene registrato subito dopo l’attività 'Merce ritirata'. | ||
| Perché è importante Questa attività segna l’inizio della fase di transito, fondamentale per monitorare l’avanzamento della consegna e individuare i ritardi durante il trasporto. È alla base della Dashboard dedicata ai punti critici dei ritardi durante il transito. Dove reperirli È lo stesso evento di 'Merce ritirata', ma nei modelli di processo viene spesso rappresentato come un’attività distinta per indicare l’inizio di una nuova fase. Si ricava dalla partenza dalla prima fermata. Acquisizione Come per 'Merce ritirata': utilizzare il timestamp ACTUAL_DEPARTURE della prima SHIPMENT_STOP. Tipo di evento inferred | |||
| Spedizione prenotata | Rappresenta la conferma formale della prenotazione da parte del vettore, successiva all’accettazione dell’affidamento. In genere viene registrata quando lo stato della spedizione passa a 'SECURE RESOURCES_BOOKED' o a uno stato equivalente. | ||
| Perché è importante Conferma l’impegno del vettore e segna il passaggio ufficiale della spedizione alla fase di esecuzione. È un passaggio fondamentale per misurare il KPI relativo al tempo di ciclo della pianificazione della spedizione. Dove reperirli Si deduce da una modifica dello stato dell’oggetto Shipment nella tabella SHIPMENT, verificando quando, dopo l’assegnazione del vettore, passa a uno stato di conferma o prenotazione. Acquisizione Individuare il timestamp in cui SHIPMENT.SHIPMENT_STATUS_VALUE_GID passa allo stato 'Booked'. Tipo di evento inferred | |||
| Vettore assegnato | Indica che la spedizione è stata affidata con successo a un vettore specifico e che quest’ultimo l’ha accettata. L’evento si rileva osservando il passaggio dello stato dell’offerta di trasporto a 'TENDER_ACCEPTED' o a uno stato equivalente. | ||
| Perché è importante Monitorare questa fase aiuta ad analizzare l’efficienza della selezione del vettore e dell’affidamento della spedizione. Eventuali ritardi possono incidere notevolmente sulla pianificazione complessiva, prima ancora che la spedizione sia partita. Dove reperirli Si deduce dalla cronologia degli stati nella tabella SHIPMENT_TENDER, individuando in particolare il timestamp in cui lo stato indica l’accettazione da parte di un vettore. Acquisizione Utilizzare il timestamp del passaggio a 'TENDER_ACCEPTED' nella cronologia delle offerte di trasporto della spedizione. Tipo di evento inferred | |||
Guide all’estrazione
Passaggi
- Acceda a BI Publisher: acceda all’applicazione Oracle Transportation Management (OTM). Apra Business Process Automation, quindi Reporting e selezioni Report Manager. Si aprirà l’interfaccia di Oracle Business Intelligence Publisher.
- Crei un modello di dati: in BI Publisher, faccia clic sul pulsante New e selezioni Data Model. Si aprirà l’editor del modello di dati, in cui potrà definire l’origine dei dati per il report.
- Definisca la query SQL: nell’editor del modello di dati, faccia clic sull’icona del segno più nel diagramma Data Sets e selezioni SQL Query. Assegni un nome al set di dati, ad esempio «OTM_Process_Mining_DS». Selezioni il 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.
- Aggiunga 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ò configurarne le proprietà, ad esempio impostando il tipo di dati Date per i parametri relativi alle date.
- Salvi il modello di dati: faccia clic sull’icona Save. Scelga una posizione nel catalogo BI Publisher, inserisca un nome descrittivo, ad esempio «OTM Shipment Process Extraction», e salvi il modello di dati.
- Crei il report: torni al catalogo, faccia clic sul pulsante New e selezioni Report. Nella procedura guidata di creazione del report, selezioni l’opzione «Use Data Model» e individui il modello di dati appena salvato.
- Configuri il layout del report: la procedura guidata la guiderà nella creazione del layout. È sufficiente un semplice layout «Table». Trascini tutte le colonne del set di dati nella tabella. Non applichi raggruppamenti né aggregazioni.
- Salvi il report: dopo aver configurato il layout, proceda fino all’ultimo passaggio e salvi il report. Gli assegni un nome simile a quello del modello di dati.
- Esegua il report: apra il report appena creato. Le verrà chiesto di inserire i valori dei parametri (Start Date, End Date, Domain Name). Indichi l’intervallo desiderato.
- Esporti i dati: al termine dell’esecuzione, quando il report mostra i dati, faccia clic sul menu Actions e selezioni Export. Scelga il formato CSV. Verrà scaricato un file CSV contenente l’Event Log.
- Prepari il caricamento: apra il file CSV scaricato. Verifichi che le intestazioni delle colonne corrispondano agli attributi richiesti:
ShipmentId,ActivityName,EventTimee agli attributi consigliati. Si assicuri che la colonnaEventTimeutilizzi un formato data e ora coerente. Il file è pronto per essere caricato in ProcessMind.
Configurazione
- Origine dei dati: la query deve essere eseguita sullo schema del database operativo principale di OTM, generalmente denominato GLOGOWNER.
- Parametri del report:
P_START_DATE: data di inizio del periodo del report. Il formato deve essere «YYYY-MM-DD».P_END_DATE: data di fine del periodo del report. Il formato deve essere «YYYY-MM-DD».P_DOMAIN_NAME: dominio OTM specifico da cui estrarre i dati. Utilizzi «[Your Domain Name]».
- Intervallo di date: per l’analisi iniziale, si consiglia di estrarre dati relativi a un periodo da 3 a 6 mesi, così da bilanciare il volume dei dati e le prestazioni. Per le esecuzioni in produzione, valuti estrazioni mensili o trimestrali.
- Autorizzazioni: l’utente OTM che esegue il report deve disporre di ruoli specifici, come BI PUBLISHER DATA MODEL DEVELOPER e BI PUBLISHER REPORT DEVELOPER, per creare e modificare modelli di dati e report. È inoltre necessario l’accesso in sola lettura alle tabelle del database sottostante.
- Prestazioni: la query unisce diverse tabelle di grandi dimensioni. Negli ambienti con volumi elevati di dati, si consiglia vivamente di eseguire il report nelle ore di minore attività per evitare ripercussioni sulle prestazioni del sistema. Per completare il report in tempi ragionevoli, mantenga l’intervallo di date il più ristretto possibile.
a Query di esempio 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' Passaggi
- Stabilisca la connessione al database: richieda credenziali di sola lettura e i dettagli di connessione (host, porta, ID del servizio) per il database Oracle Transportation Management. Dovrà accedere allo schema
GLOGOWNER. - Configuri il client SQL: configuri un client SQL, ad esempio Oracle SQL Developer, DBeaver o Toad, con i dettagli di connessione al database indicati nel passaggio precedente.
- Prepari la query: copi la query SQL completa fornita in questo documento nell’editor delle query del client SQL.
- Imposti i parametri della query: individui i valori segnaposto nelle clausole
WHEREdella query. Dovrà sostituire[START_DATE],[END_DATE]e[YOUR_DOMAIN_NAME]con i valori appropriati per l’estrazione. Ad esempio, imposti un intervallo di date da 3 a 6 mesi e specifichi il dominio operativo da analizzare. - Esegua la query: esegua la query SQL modificata. A seconda dell’intervallo di date e delle dimensioni del sistema, l’operazione potrebbe richiedere alcuni minuti.
- Riveda i risultati: al termine dell’esecuzione, controlli rapidamente i risultati nel client per verificare che siano state restituite righe e che le colonne principali, come
ShipmentId,ActivityNameedEventTime, contengano dati. - Esporti in CSV: esporti l’intero set di risultati in un file CSV. Utilizzi le impostazioni CSV standard: virgola come separatore, virgolette doppie per il testo e codifica UTF-8.
- Verifichi le intestazioni delle colonne: prima del caricamento, controlli che le intestazioni nel file CSV corrispondano esattamente ai nomi degli attributi richiesti:
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeeDelayReason. - Carichi il file in ProcessMind: il file CSV preparato è pronto per essere caricato e analizzato in ProcessMind.
Configurazione
- Schema del database: la query è progettata per essere eseguita sullo schema standard del database Oracle Transportation Management, generalmente denominato
GLOGOWNER. - Autorizzazioni necessarie: è necessario un utente del database con accesso in sola lettura alle tabelle utilizzate nella query. Tra queste figurano
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLeVOUCHER. - Filtro per dominio: in un ambiente OTM multi-tenant è fondamentale filtrare per
DOMAIN_NAME. La query contiene il segnaposto[YOUR_DOMAIN_NAME], che deve essere configurato per estrarre i dati dell’entità aziendale corretta. - Intervallo di date: per gestire le prestazioni e il volume dei dati, è necessario specificare una data di inizio e una di fine. Si consiglia di applicare il filtro a una colonna indicizzata, come
SHIPMENT.INSERT_DATE. Per un’analisi iniziale si utilizza in genere un periodo da 3 a 6 mesi. - Personalizzazione dei codici di stato: la query utilizza codici di stato comuni e predefiniti, ad esempio
PLANNING_PLANNED FINALeTENDER_ACCEPTED. L’implementazione di OTM potrebbe utilizzare codici personalizzati. Potrebbe quindi essere necessario modificare i valori nelle clausoleWHEREin base alla configurazione del sistema.
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%'; È pronto a iniziare?
Utilizzi questo template per trasformare i dati grezzi in informazioni utili e migliorare in modo significativo i processi di trasporto. Inizi oggi il percorso di ottimizzazione.
Ottimizzi oggi la gestione dei trasporti
Riduca del 30% il tempo di ciclo ed elimini i colli di bottiglia di Oracle OTM.
Non è richiesta la carta di credito • Prova gratuita di 14 giorni