Votre modèle de données pour la gestion des transports
Votre modèle de données pour la gestion des transports
- Attributs recommandés à collecter
- Activités clés à suivre
- Conseils pour l’extraction
Attributs de gestion des transports
| Nom | Description | ||
|---|---|---|---|
| Expédition ShipmentId | Identifiant unique d’une expédition, utilisé comme ID de cas principal pour suivre toutes les activités de transport associées. | ||
| Description L’identifiant de l’expédition permet de distinguer chaque acheminement de marchandises entre un expéditeur et un destinataire. Cet attribut est au cœur de l’analyse du processus : il regroupe dans un même cas tous les événements associés, notamment la planification, la réservation, l’enlèvement, le transit, la livraison et la facturation. En Process Mining, l’analyse des événements par identifiant d’expédition donne une vue complète du cycle de transport, de bout en bout. Cet identifiant sert à calculer des indicateurs clés comme le temps de cycle total, la performance des livraisons dans les délais et le coût par expédition. Il permet ainsi de mieux comprendre l’efficacité du processus et le niveau de service client. Pourquoi est-ce important ? Cet ID de cas principal relie toutes les étapes du processus et permet d’analyser l’ensemble du parcours de chaque expédition. Où trouver ces données Il s’agit d’une clé primaire dans Oracle Transportation Management, généralement présente dans les tables de gestion des expéditions ou des commandes. Consultez la documentation OTM pour connaître les noms précis des tables et des champs. Exemples SH-0012345SH-0012346SH-0012347 | |||
| Heure de l’événement EventTime | Date et heure précises auxquelles une activité ou un événement de transport a eu lieu. | ||
| Description Cet horodatage indique le moment exact où une activité, comme « Transporteur affecté » ou « Preuve de livraison reçue », a été enregistrée dans le système. Les horodatages sont essentiels au Process Mining, car ils établissent l’ordre chronologique des événements pour chaque expédition. La précision de ces horodatages est déterminante pour toutes les analyses temporelles. Ils servent à calculer les temps de cycle entre les activités, à mesurer la durée des processus, à repérer les retards et à évaluer les performances au regard des accords de niveau de service. L’analyse de l’heure des événements permet de localiser les étapes où le processus prend du retard. Pourquoi est-ce important ? Cet horodatage est indispensable pour ordonner les événements chronologiquement et calculer les indicateurs de performance, notamment les temps de cycle et les retards. Où trouver ces données Provient des champs d’horodatage associés aux événements dans les tables de suivi des événements ou d’historique des statuts d’OTM. Exemples 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Nom de l’activité ActivityName | Nom d’un événement ou d’une étape précise survenu au cours du processus de transport d’une expédition. | ||
| Description Cet attribut décrit une étape du cycle de transport, comme « Expédition planifiée », « Marchandises enlevées » ou « Marchandises livrées ». Chaque activité correspond à un événement métier distinct qui rapproche l’expédition de son terme. L’analyse de l’ordre et de la durée de ces activités est au cœur du Process Mining. Elle permet de découvrir le flux réel du processus, de repérer les goulots d’étranglement entre les étapes et de mesurer le respect des procédures opérationnelles standard. Les écarts dans l’enchaînement des activités peuvent révéler des exceptions, des reprises ou des déviations par rapport au parcours optimal. Pourquoi est-ce important ? Cet attribut définit les étapes de la cartographie du processus et permet de visualiser et d’analyser le parcours de l’expédition, ses goulots d’étranglement et ses écarts. Où trouver ces données Ces informations proviennent des tables de suivi des événements ou des journaux de changements de statut dans Oracle Transportation Management. Le nom de l’activité peut être composé à partir des codes et des descriptions d’événements. Exemples Expédition planifiéeMarchandises enlevéesDédouanement effectuéMarchandises livrées | |||
| Coût de l’expédition ShipmentCost | Coût total du transport de marchandises ou montant facturé pour l’acheminement de l’expédition. | ||
| Description Cet attribut représente le coût financier total d’une expédition, y compris les frais du transporteur, les suppléments carburant et les autres frais annexes. Il constitue un indicateur clé de la performance financière du processus de transport. L’analyse du coût de l’expédition permet de calculer le KPI du coût moyen par expédition et par transporteur. Les données peuvent être ventilées par transporteur, itinéraire, mode de transport ou type d’expédition afin de repérer les possibilités de réduction des coûts. Elles servent également à comparer les coûts prévus aux coûts réels dans le cadre de l’analyse des écarts sur les factures de transport. Pourquoi est-ce important ? Fournit les données financières nécessaires à l’analyse des dépenses de transport, à la recherche de possibilités de réduction des coûts et à la mesure de l’incidence financière des inefficacités du processus. Où trouver ces données Ces informations figurent généralement dans les sections financières ou de calcul des coûts d’une expédition dans OTM. Elles sont souvent renseignées après le calcul du tarif de transport et le règlement. Exemples 250.751200.00545.50 | |||
| Date de livraison demandée RequestedDeliveryDate | Date et heure de livraison demandées par le client ou convenues comme objectif de l’accord de niveau de service (SLA). | ||
| Description Cet attribut indique l’heure de livraison cible d’une expédition. Il correspond à l’engagement pris envers le client et sert de référence principale pour mesurer la ponctualité. En Process Mining, cette date est comparée à l’heure réelle de livraison, issue de l’activité « Marchandises livrées », afin de déterminer si l’expédition est arrivée à l’heure ou en retard. Elle sert de base au KPI du taux de livraison dans les délais et est essentielle au Dashboard de suivi des performances de livraison. L’analyse des écarts aide à repérer les causes récurrentes des retards et à améliorer la satisfaction client. Pourquoi est-ce important ? Il s’agit de la référence principale pour mesurer la performance des livraisons dans les délais, un KPI important pour la satisfaction client et l’excellence opérationnelle. Où trouver ces données Ces informations sont généralement enregistrées au niveau de la commande ou de l’expédition dans OTM, souvent dans des champs relatifs aux dates de livraison ou aux rendez-vous. Exemples 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Mode de transport TransportationMode | Mode de transport utilisé pour l’expédition, par exemple la route, le rail, le transport maritime ou aérien. | ||
| Description Cet attribut classe l’expédition selon son mode de transport. Les modes courants comprennent le transport routier en chargement complet (FTL) ou partiel (LTL), le transport maritime, aérien et ferroviaire. Cette caractéristique fondamentale de l’expédition influe sur le coût, le temps de transit et la complexité. Dans l’analyse, le mode de transport constitue un axe de segmentation important. Il permet de comparer les performances et les coûts des processus selon les modes. Il peut, par exemple, aider à repérer les modes les plus exposés aux retards en transit ou présentant un coût au kilomètre plus élevé, et ainsi éclairer les décisions stratégiques relatives aux réseaux logistiques. Pourquoi est-ce important ? Permet de ventiler l’analyse des performances et des coûts par mode de transport et de faire ressortir les particularités du transport routier, aérien, maritime ou ferroviaire. Où trouver ces données Il s’agit d’un attribut standard au niveau de l’expédition dans OTM, généralement présent dans un champ dédié au mode ou au type de transport. Exemples FTLLTLMARITIMEAIR | |||
| Motif du retard DelayReason | Code ou description expliquant la cause d’un retard dans l’acheminement de l’expédition. | ||
| Description Lorsqu’une expédition est en retard, cet attribut en indique la cause, par exemple « Météo », « Blocage douanier », « Congestion portuaire » ou « Panne mécanique ». Ces informations proviennent des mises à jour du transporteur ou de saisies manuelles dans OTM. Cet attribut est essentiel à l’analyse des causes profondes des retards de livraison. En classant et en comptant les motifs de retard, les entreprises peuvent repérer les problèmes les plus fréquents de leur chaîne logistique. Elles peuvent alors cibler leurs initiatives d’amélioration, par exemple en choisissant des transporteurs plus fiables pour certains itinéraires ou en améliorant les documents pour accélérer le dédouanement. Pourquoi est-ce important ? Aide à comprendre les causes profondes des retards d’expédition et à cibler les mesures visant à réduire les problèmes récurrents et à améliorer la ponctualité des livraisons. Où trouver ces données Généralement enregistré dans les détails des événements de suivi dans OTM. Il peut être associé à des codes d’événement spécifiques aux exceptions ou aux retards. Exemples WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONTRAFFIC | |||
| Nom du transporteur CarrierName | Nom du transporteur ou du prestataire chargé d’acheminer l’expédition. | ||
| Description Cet attribut désigne le partenaire logistique chargé du transport des marchandises. Il peut s’agir d’une grande entreprise de transport de marchandises, d’un coursier local ou d’une compagnie maritime. L’analyse des performances par transporteur est un objectif majeur du Process Mining appliqué au transport. Cet attribut permet de comparer les transporteurs selon des indicateurs comme le taux de livraison dans les délais, le coût par expédition, le temps de transit et la fréquence des problèmes, tels que les retards ou les écarts de facturation. Ces analyses sont utiles pour choisir les transporteurs, négocier les contrats et suivre les performances. Pourquoi est-ce important ? Permet de comparer les performances des transporteurs, un élément important pour améliorer leur sélection, les négociations et la maîtrise des coûts. Où trouver ces données Figure dans les détails de l’expédition dans OTM et est associé aux enregistrements du transporteur ou du prestataire affecté. Il peut être stocké dans des tables relatives aux expéditions et aux prestataires de services. Exemples FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Agent en douane CustomsAgent | Courtier ou agent en douane chargé du dédouanement de l’expédition. | ||
| Description Pour les expéditions internationales, cet attribut identifie l’agent externe ou l’équipe interne chargé de gérer les documents et les formalités douanières. Les performances de cet intervenant peuvent avoir une incidence importante sur le temps de transit total. L’analyse du temps de cycle de dédouanement par agent permet de comparer leurs performances. Elle peut montrer quels agents sont les plus efficaces dans certains pays ou pour certaines catégories de marchandises. Ces résultats aident à choisir les partenaires douaniers les mieux adaptés et à travailler avec ceux dont les performances sont insuffisantes pour améliorer leurs processus. Pourquoi est-ce important ? Permet de mesurer les performances des courtiers en douane, de repérer les partenaires les plus efficaces et de réduire les retards liés au dédouanement. Où trouver ces données Dans OTM, ces informations peuvent être enregistrées comme prestataire de services ou rôle de partie dans les détails de l’expédition internationale. Exemples Global Customs ServicesLivingston InternationalFlexport | |||
| Dernière mise à jour des données LastDataUpdate | Horodatage indiquant la dernière actualisation ou extraction des données de cet événement depuis le système source. | ||
| Description Cet attribut indique la dernière extraction des données depuis Oracle Transportation Management. Il renseigne sur leur fraîcheur, et non sur l’heure à laquelle l’événement métier s’est produit. Cet horodatage est essentiel pour comprendre l’actualité de l’analyse Process Mining. Il permet de savoir si les informations consultées sont en temps réel ou correspondent à un instantané pris à un moment précis. Il est également indispensable pour gérer les cycles d’actualisation des données et veiller à ce que les décisions reposent sur des informations à jour. Pourquoi est-ce important ? Indique la fraîcheur des données, afin que les utilisateurs sachent à quel point l’analyse est à jour et quand la prochaine actualisation est prévue. Où trouver ces données Il s’agit généralement d’un horodatage généré par le système lors de l’ingestion des données ou du processus ETL. Exemples 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Écart sur la facture de transport FreightBillDiscrepancy | Indique si l’audit de la facture de transport a révélé un écart. | ||
| Description Cet attribut booléen prend la valeur « true » lorsque la facture de transport reçue du transporteur ne correspond pas au coût prévisionnel calculé dans OTM. Les écarts peuvent provenir de tarifs incorrects, de frais annexes ou d’autres erreurs de facturation. Cet attribut sert de base à l’indicateur de taux d’écart sur les factures de transport. L’analyse de la fréquence de ces écarts par transporteur, itinéraire ou type d’expédition permet d’en repérer les causes profondes. Elle contribue à améliorer la qualité des données, à simplifier le processus d’audit et à éviter les paiements en trop. Pourquoi est-ce important ? Signale les expéditions présentant des erreurs de facturation et contribue ainsi à l’analyse des écarts sur les factures de transport, à la réduction des paiements en trop et au renforcement des contrôles financiers. Où trouver ces données Il s’agit généralement d’un statut ou d’un indicateur défini dans OTM lors du règlement du transport et du rapprochement des factures. Exemples truefalse | |||
| Itinéraire modifié IsRerouted | Indique si l’itinéraire de l’expédition a été modifié après la réservation initiale. | ||
| Description Cet attribut booléen prend la valeur « true » lorsqu’une expédition fait l’objet d’un changement d’itinéraire important après avoir été planifiée et réservée. Ce changement peut être dû à une demande du client, à un imprévu ou à une possibilité d’optimisation. Cet attribut contribue directement au calcul du taux de réacheminement des expéditions et au Dashboard d’analyse des réacheminements et des expéditions accélérées. Le suivi de la fréquence des changements d’itinéraire aide à repérer les problèmes sous-jacents de planification ou d’exécution. Il met en évidence les instabilités opérationnelles et les coûts associés, afin que les responsables puissent chercher à limiter les changements coûteux et perturbateurs. Pourquoi est-ce important ? Permet de mesurer la fréquence et les conséquences des exceptions opérationnelles, comme les changements d’itinéraire, et de repérer les inefficacités dans la planification et l’exécution. Où trouver ces données Cet indicateur est calculé en repérant les événements de réacheminement dans le journal d’événements ou en comparant l’itinéraire final à l’itinéraire initialement prévu. Exemples truefalse | |||
| Livraison à temps IsOnTimeDelivery | Indicateur calculé qui précise si l’expédition a été livrée à la date demandée ou avant celle-ci. | ||
| Description Cet attribut booléen est calculé en comparant l’horodatage de l’activité « Marchandises livrées » à la « Date de livraison demandée ». Il prend la valeur « true » si la livraison a eu lieu à temps ou en avance, et « false » si elle a été effectuée en retard. Cet attribut alimente directement l’indicateur de taux de livraison à temps et constitue un élément clé du Dashboard de suivi des performances de livraison. Il simplifie l’analyse en indiquant clairement, pour chaque expédition, si la livraison a été effectuée à temps ou en retard. Vous pouvez ainsi filtrer, agréger et visualiser facilement les expéditions selon leur ponctualité. Pourquoi est-ce important ? Cet indicateur calculé simplifie la mesure du taux de livraison à temps et facilite le filtrage et l’analyse des expéditions livrées à temps ou en retard. Où trouver ces données Cet attribut ne figure pas dans le système source. Il est calculé lors de la transformation des données, en comparant l’horodatage de l’activité « Marchandises livrées » à l’attribut « RequestedDeliveryDate ». Exemples truefalse | |||
| Nom d’utilisateur UserName | Nom ou identifiant de l’utilisateur qui a effectué une activité donnée ou qui en est responsable. | ||
| Description Cet attribut identifie l’utilisateur ou l’agent système qui a exécuté un événement précis, comme « Expédition planifiée » ou « Transporteur affecté ». Il permet de savoir qui est intervenu et de comprendre le rôle des ressources dans le processus. Dans le cadre du Process Mining, l’analyse des activités par utilisateur aide à comprendre la répartition de la charge de travail, à repérer les besoins de formation et à comparer les performances entre utilisateurs ou équipes. Elle permet également de distinguer les activités réalisées manuellement de celles exécutées automatiquement par le système. Pourquoi est-ce important ? Permet d’identifier les responsabilités et d’analyser la charge de travail ainsi que les performances par utilisateur ou par équipe. Où trouver ces données Provient des champs d’identifiant utilisateur, par exemple INSERT_USER, associés aux changements de statut ou aux événements dans les tables d’historique ou de journal d’OTM. Exemples JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| Pays d’origine OriginCountry | Pays où commence le parcours de l’expédition. | ||
| Description Cet attribut indique le pays de départ de l’expédition, d’après le lieu de l’expéditeur. Il s’agit d’une information géographique importante pour l’analyse logistique. L’analyse des processus par pays d’origine permet de comprendre les différences de performance entre les régions. Les délais de dédouanement, les coûts des transporteurs et les temps de transit peuvent, par exemple, varier considérablement selon le pays d’origine. Cette segmentation est essentielle à la gestion de la logistique internationale et à la détection des goulots d’étranglement propres à certaines régions. Pourquoi est-ce important ? Permet d’analyser la dimension géographique du processus de transport et de repérer les goulots d’étranglement, les coûts et les écarts de performance propres à chaque région. Où trouver ces données Déduit des coordonnées de l’adresse du lieu de départ de l’expédition ou de l’expéditeur, enregistrées dans les données de référence des lieux d’OTM. Exemples USADEUCHNMEX | |||
| Pays de destination DestinationCountry | Pays où l’expédition doit être livrée. | ||
| Description Cet attribut indique le pays de destination finale de l’expédition, d’après le lieu du destinataire. Il complète le pays d’origine pour l’analyse géographique des processus. Comme pour le pays d’origine, l’analyse par pays de destination est essentielle pour comprendre les écarts de performance entre les différents itinéraires commerciaux. Elle est particulièrement utile pour étudier les délais de dédouanement, les performances de livraison du dernier kilomètre et l’efficacité des transporteurs selon les régions. Ces analyses permettent d’adapter les stratégies logistiques aux exigences des différents marchés de destination. Pourquoi est-ce important ? Essentiel à l’analyse des performances sur des itinéraires commerciaux précis et à la compréhension des enjeux liés aux douanes, aux transporteurs et à la réglementation des marchés de destination. Où trouver ces données Déduit des coordonnées de l’adresse du lieu de destination de l’expédition ou du destinataire, enregistrées dans les données de référence des lieux d’OTM. Exemples CANFRAJPNBRA | |||
| Statut de l’expédition ShipmentStatus | Statut actuel de l’expédition dans son cycle de vie, par exemple « Planned », « In Transit » ou « Delivered ». | ||
| Description Cet attribut donne une vue d’ensemble de l’avancement de l’expédition dans le processus. Contrairement à une activité, qui correspond à un événement ponctuel, le statut décrit l’état du cas d’expédition. Le Process Mining porte sur l’enchaînement des activités, mais le statut général est utile pour filtrer les cas et apporter du contexte dans les Dashboards. Une analyse peut, par exemple, porter uniquement sur les expéditions « Completed » ou chercher à comprendre pourquoi de nombreuses expéditions restent anormalement longtemps au statut « In Transit ». Pourquoi est-ce important ? Donne une vue d’ensemble de l’avancement de l’expédition, utile pour filtrer et segmenter les cas dans l’analyse. Où trouver ces données Disponible dans l’enregistrement principal de l’expédition dans OTM, il indique son état actuel dans le flux de travail. Exemples PLANIFIÉERÉSERVÉEEN_TRANSITLIVRÉE | |||
| Système source SourceSystem | Indique le système d’origine des données de l’événement, par exemple Oracle Transportation Management. | ||
| Description Cet attribut désigne l’application source dans laquelle les données ont été générées. Dans un environnement logistique complexe, elles peuvent provenir d’OTM, d’un système de gestion d’entrepôt (WMS), du système d’un transporteur via EDI ou d’autres plateformes intégrées. Connaître le système source est important pour la gouvernance des données, l’évaluation de leur qualité et le dépannage. Cela permet de comprendre leur contexte et peut expliquer les différences de granularité ou de fraîcheur. Pour l’analyse, cet attribut permet de filtrer les événements afin de ne conserver que ceux provenant d’un système précis et fiable. Pourquoi est-ce important ? Il apporte un contexte essentiel sur l’origine des données, utile à leur validation et aux analyses dans des environnements faisant appel à plusieurs systèmes. Où trouver ces données Il s’agit généralement d’une valeur statique ajoutée lors de l’extraction des données pour indiquer l’origine des enregistrements. Exemples Oracle OTMOTM CloudSAP TM | |||
| Type d’expédition ShipmentType | Classification de l’expédition selon le niveau de service, le type de marchandise ou l’unité opérationnelle, par exemple. | ||
| Description Cet attribut classe l’expédition selon des critères propres à l’entreprise, par exemple « Standard », « Accélérée », « Marchandises dangereuses » ou « Interentreprises ». Cette classification permet d’appliquer des règles métier, des priorités ou des vues analytiques différentes. Dans le cadre du Process Mining, le type d’expédition peut servir de dimension pour comparer les processus associés aux différentes catégories d’expéditions. L’analyse peut révéler si certaines catégories sont davantage sujettes aux retards, entraînent des coûts plus élevés ou suivent des parcours non standard. Ces résultats aident à adapter les processus aux besoins propres à chaque type d’expédition. Pourquoi est-ce important ? Permet de segmenter l’analyse selon le contexte métier et de déterminer si les différentes catégories d’expéditions suivent des processus distincts ou affichent des niveaux de performance différents. Où trouver ces données Il s’agit généralement d’un champ ou d’un attribut configurable dans l’enregistrement de l’expédition ou de la commande dans OTM. Exemples StandardAccéléréeInternationaleNationale | |||
Activités de gestion des transports
| Activité | Description | ||
|---|---|---|---|
| Demande de transport reçue | Cette activité marque la création d’un besoin de transport dans le système, généralement sous la forme d’un Order Release. L’événement est enregistré à la création d’un nouvel enregistrement Order Release dans Oracle Transportation Management et correspond à la demande initiale d’expédition. | ||
| Pourquoi est-ce important ? Point de départ du processus, cette activité est essentielle pour mesurer le temps de cycle total de bout en bout et comprendre les tendances de la demande. Elle permet d’analyser le délai entre la demande et la planification. Où trouver ces données Il s’agit d’un événement explicite, enregistré à partir de l’horodatage de création de l’enregistrement Order Release dans la table ORDER_RELEASE. Le champ INSERT_DATE ou un champ de date de création spécifique peut être utilisé. Données à recueillir Utilisez l’horodatage de création de l’Order Release dans la table ORDER_RELEASE. Type d’événement explicit | |||
| Expédition planifiée | Cette activité correspond à la planification réussie d’un ou plusieurs Order Releases en une expédition réalisable par le moteur de planification OTM. Elle est enregistrée lorsque le système modifie le statut de l’expédition pour indiquer qu’elle a été planifiée, par exemple « PLANNING_PLANNED FINAL ». | ||
| Pourquoi est-ce important ? Cette étape clé marque le passage de la phase de demande à la phase d’exécution. L’analyse du délai qui la précède permet de repérer les problèmes d’efficacité de la planification et les goulots d’étranglement liés aux performances du moteur. Où trouver ces données Déduite de l’historique des statuts de l’objet Shipment dans la table SHIPMENT. Recherchez un changement de statut indiquant que la planification est terminée. Données à recueillir Repérez l’horodatage auquel SHIPMENT.SHIPMENT_STATUS_VALUE_GID prend le statut « Planned ». Type d’événement inferred | |||
| Marchandises enlevées | Cette activité marque le début du transport physique, lorsque le transporteur prend en charge les marchandises au point de départ. L’événement est enregistré lorsque le premier arrêt de l’expédition prend le statut « DEPARTED ». | ||
| Pourquoi est-ce important ? Cette étape importante marque le début du transport. Elle est indispensable pour suivre la ponctualité des enlèvements par les transporteurs et les temps de transit réels. Où trouver ces données Déduite du passage du premier arrêt au statut « DEPARTED » dans la table SHIPMENT_STOP, ou du suivi d’un événement de statut de l’expédition indiquant l’enlèvement. Données à recueillir Utilisez l’horodatage ACTUAL_DEPARTURE du premier enregistrement de l’expédition dans la table SHIPMENT_STOP. Type d’événement inferred | |||
| Marchandises livrées | Cette activité correspond à la livraison réussie de l’expédition au destinataire final. Elle est enregistrée lorsque l’heure réelle d’arrivée est renseignée pour le dernier arrêt de l’expédition. | ||
| Pourquoi est-ce important ? Il s’agit de l’étape de référence pour mesurer la performance des livraisons dans les délais et le temps de cycle de bout en bout. Elle marque l’aboutissement du processus d’exécution du transport. Où trouver ces données Déduite du renseignement du champ ACTUAL_ARRIVAL dans l’enregistrement du dernier arrêt de l’expédition associé à celle-ci, dans la table SHIPMENT_STOP. Données à recueillir Utilisez l’horodatage ACTUAL_ARRIVAL du dernier enregistrement de l’expédition dans la table SHIPMENT_STOP. Type d’événement inferred | |||
| Paiement traité | Cette dernière activité correspond au traitement réussi du paiement des services du transporteur. Elle marque la clôture financière de l’expédition. | ||
| Pourquoi est-ce important ? Cette activité clôt le cycle de transport. Elle est essentielle pour mesurer les délais de traitement des paiements aux transporteurs et gérer efficacement les relations avec eux. Où trouver ces données Déduite du passage au statut « PAID » du bon de paiement ou de la facture associé à l’expédition. Ces données figurent dans les tables VOUCHER ou BILL. Données à recueillir Repérez l’horodatage auquel VOUCHER.VOUCHER_STATUS_ID prend le statut « PAID ». Type d’événement inferred | |||
| Preuve de livraison reçue | Cette étape correspond à la réception et à l’enregistrement d’une confirmation officielle de livraison, par exemple un document signé. Elle est souvent consignée sous la forme d’un type de document associé à l’expédition. | ||
| Pourquoi est-ce important ? La preuve de livraison est essentielle à la facturation et au règlement des litiges. Le suivi de sa réception contribue au respect des procédures et accélère le cycle de règlement financier. Où trouver ces données Il peut s’agir d’un événement explicite ou d’une étape déduite de la date de création d’un document de preuve de livraison associé à l’expédition. Recherchez dans la table DOCUMENT les documents de type POD. Données à recueillir Utilisez l’horodatage de création d’un document de type « POD » associé à l’expédition. Type d’événement explicit | |||
| Dédouanement effectué | Pour les expéditions internationales, cette activité marque le passage réussi des marchandises en douane à une frontière ou dans un port. Elle est souvent enregistrée au moyen d’un événement ou d’une mise à jour de statut propre à l’expédition. | ||
| Pourquoi est-ce important ? Le dédouanement est une cause fréquente de retards importants dans la logistique internationale. Le suivi de cette activité permet de mesurer et d’optimiser les temps de cycle de dédouanement. Où trouver ces données Cet événement est généralement enregistré au moyen d’un événement d’expédition « Customs », saisi manuellement ou transmis par intégration. Recherchez dans la table SHIPMENT_STATUS les codes d’événement liés aux douanes. Données à recueillir Repérez l’horodatage d’un événement « Customs Cleared » dans la table SHIPMENT_STATUS. Type d’événement explicit | |||
| Expédition annulée | Cette activité correspond à l’annulation d’une expédition après sa planification, ce qui met fin prématurément à son cycle de vie. Elle est enregistrée lorsque le statut de l’objet Shipment passe à l’état « cancelled ». | ||
| Pourquoi est-ce important ? Le suivi des annulations est important pour comprendre les exceptions et les échecs du processus. Il permet d’en déterminer les causes, comme une évolution de la demande ou des erreurs de planification. Où trouver ces données Déduite de l’historique des statuts de l’objet Shipment dans la table SHIPMENT. Recherchez un changement vers un statut tel que « PLANNING_CANCELED ». Données à recueillir Repérez l’horodatage auquel SHIPMENT.SHIPMENT_STATUS_VALUE_GID prend le statut « Cancelled ». Type d’événement inferred | |||
| Expédition en transit | Indique que les marchandises ont été enlevées et sont en route vers leur destination. Il ne s’agit pas d’un instant précis, mais le début de cet état est enregistré juste après l’activité « Marchandises enlevées ». | ||
| Pourquoi est-ce important ? Cette activité marque le début du transit. Elle est essentielle pour suivre l’avancement des livraisons et repérer les retards en cours de transport. Elle constitue la base du Dashboard des principaux points de retard en transit. Où trouver ces données Il s’agit du même événement que « Marchandises enlevées », mais il est souvent représenté comme une activité distincte dans les modèles de processus pour marquer le début d’une nouvelle phase. Il est déduit du départ du premier arrêt. Données à recueillir Comme pour « Marchandises enlevées », utilisez l’horodatage ACTUAL_DEPARTURE du premier enregistrement SHIPMENT_STOP. Type d’événement inferred | |||
| Expédition réservée | Cette étape correspond à la confirmation officielle de la réservation auprès du transporteur, après acceptation de la proposition. Elle est généralement enregistrée lorsque le statut de l’expédition passe à « SECURE RESOURCES_BOOKED » ou à un statut équivalent. | ||
| Pourquoi est-ce important ? Cette confirmation formalise l’engagement du transporteur et marque le passage officiel de l’expédition à la phase d’exécution. C’est une étape essentielle pour mesurer le KPI du temps de cycle de planification des expéditions. Où trouver ces données Déduite d’un changement de statut de l’objet Shipment dans la table SHIPMENT, lorsque celui-ci passe à un statut confirmé ou réservé après l’affectation du transporteur. Données à recueillir Repérez l’horodatage auquel SHIPMENT.SHIPMENT_STATUS_VALUE_GID prend le statut « Booked ». Type d’événement inferred | |||
| Facture de transport auditée | Cette activité marque la fin de l’audit de la facture de transport, au cours duquel la facture du transporteur est rapprochée des détails de l’expédition et vérifiée. Elle est enregistrée lorsque le statut de facturation de l’expédition passe à « VOUCHER_AUDITED » ou à un état équivalent. | ||
| Pourquoi est-ce important ? L’audit est essentiel au contrôle financier et à la détection des écarts de facturation. L’analyse de cette activité aide à optimiser le processus allant de l’audit au paiement et contribue au KPI du taux d’écart sur les factures de transport. Où trouver ces données Déduite du changement de statut de l’objet Bill associé à l’expédition. Recherchez dans la table BILL les mises à jour de statut indiquant la fin de l’audit. Données à recueillir Repérez l’horodatage auquel BILL.BILL_STATUS_VALUE_GID prend le statut « Audited ». Type d’événement inferred | |||
| Rendez-vous d’enlèvement planifié | Cette activité indique qu’une date et une heure précises ont été planifiées et enregistrées pour l’enlèvement. Ces informations proviennent souvent des données de rendez-vous au niveau de l’arrêt de l’expédition. | ||
| Pourquoi est-ce important ? La planification des rendez-vous est une étape importante de coordination. Son analyse permet de comprendre l’efficacité de la planification et son incidence sur la ponctualité des enlèvements. Où trouver ces données Déduite du renseignement des champs de date et d’heure de rendez-vous pour le premier arrêt de l’expédition, c’est-à-dire le lieu d’enlèvement, dans la table SHIPMENT_STOP. Données à recueillir Utilisez l’horodatage auquel les champs de rendez-vous sont renseignés pour la première fois pour l’arrêt d’enlèvement. Type d’événement inferred | |||
| Rendez-vous de livraison planifié | Cette activité marque la planification d’une date et d’une heure précises de livraison avec le destinataire. L’événement est enregistré à partir des données de rendez-vous du dernier arrêt de l’expédition. | ||
| Pourquoi est-ce important ? Cette étape est essentielle à la coordination de la livraison finale. L’analyse du délai entre l’arrivée et la livraison planifiée peut révéler des goulots d’étranglement dans les opérations du dernier kilomètre. Où trouver ces données Déduite du renseignement des champs de date et d’heure de rendez-vous pour le dernier arrêt de l’expédition, c’est-à-dire le lieu de livraison, dans la table SHIPMENT_STOP. Données à recueillir Utilisez l’horodatage auquel les champs de rendez-vous sont renseignés pour la première fois pour l’arrêt de livraison. Type d’événement inferred | |||
| Transporteur affecté | Cette étape marque le moment où une expédition a été proposée à un transporteur précis, qui l’a acceptée. Elle est repérée par le passage du statut de proposition de l’expédition à « TENDER_ACCEPTED » ou à un état équivalent. | ||
| Pourquoi est-ce important ? Le suivi de cette étape permet d’analyser l’efficacité du choix du transporteur et du processus de proposition. Tout retard à ce stade peut fortement perturber le calendrier global, avant même le départ de l’expédition. Où trouver ces données Déduite de l’historique des statuts dans la table SHIPMENT_TENDER, en recherchant l’horodatage auquel le statut indique l’acceptation par un transporteur. Données à recueillir Utilisez l’horodatage du changement de statut à « TENDER_ACCEPTED » dans l’historique des propositions de l’expédition. Type d’événement inferred | |||
Guides d’extraction
Étapes
- Accédez à BI Publisher : Connectez-vous à votre application Oracle Transportation Management (OTM). Ouvrez Business Process Automation, puis Reporting, et sélectionnez Report Manager. L’interface Oracle Business Intelligence Publisher s’ouvre.
- Créez un modèle de données : Dans BI Publisher, cliquez sur le bouton New et sélectionnez Data Model. L’éditeur de modèle de données s’ouvre et vous permet de définir la source de données de votre rapport.
- Définissez la requête SQL : Dans l’éditeur de modèle de données, cliquez sur l’icône plus du diagramme Data Sets et sélectionnez SQL Query. Nommez le jeu de données, par exemple « OTM_Process_Mining_DS ». Sélectionnez votre base de données OTM comme Data Source. Copiez la requête SQL complète fournie dans la section « query » de ce document et collez-la dans le champ de texte SQL Query.
- Ajoutez les paramètres : La requête utilise des paramètres pour la période et le nom du domaine (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher les détecte automatiquement. Vous pouvez configurer leurs propriétés, par exemple définir le type Date pour les paramètres de date.
- Enregistrez le modèle de données : Cliquez sur l’icône Save. Choisissez un emplacement dans le catalogue BI Publisher, donnez-lui un nom explicite, par exemple « OTM Shipment Process Extraction », puis enregistrez le modèle de données.
- Créez le rapport : Retournez au catalogue, cliquez sur le bouton New et sélectionnez Report. Dans l’assistant de création de rapport, choisissez l’option « Use Data Model » et sélectionnez le modèle de données que vous venez d’enregistrer.
- Configurez la mise en page du rapport : L’assistant vous guide dans la création de la mise en page. Une mise en page simple de type « Table » suffit. Faites glisser toutes les colonnes du jeu de données dans le tableau. N’effectuez aucun regroupement ni aucune agrégation.
- Enregistrez le rapport : Une fois la mise en page configurée, passez à la dernière étape et enregistrez le rapport. Donnez-lui un nom proche de celui du modèle de données.
- Exécutez le rapport : Ouvrez le rapport que vous venez de créer. Vous devrez saisir les valeurs des paramètres (Start Date, End Date, Domain Name). Indiquez la période souhaitée.
- Exportez les données : Une fois le rapport exécuté et les données affichées, cliquez sur le menu Actions et sélectionnez Export. Choisissez le format CSV. Un fichier CSV contenant le journal d’événements sera téléchargé.
- Préparez l’importation : Ouvrez le fichier CSV téléchargé. Vérifiez que les en-têtes de colonnes correspondent aux attributs requis :
ShipmentId,ActivityName,EventTime, ainsi qu’aux attributs recommandés. Assurez-vous que la colonneEventTimeutilise un format de date et d’heure cohérent. Le fichier est prêt à être importé dans ProcessMind.
Configuration
- Source de données : La requête doit être exécutée sur le schéma de la base de données opérationnelle principale d’OTM, généralement nommé GLOGOWNER.
- Paramètres du rapport :
P_START_DATE: Début de la période du rapport. Utilisez le format « YYYY-MM-DD ».P_END_DATE: Fin de la période du rapport. Utilisez le format « YYYY-MM-DD ».P_DOMAIN_NAME: Domaine OTM dont vous souhaitez extraire les données. Indiquez « [Your Domain Name] ».
- Période : Pour une première analyse, il est recommandé d’extraire les données sur une période de 3 à 6 mois afin de trouver un équilibre entre le volume de données et les performances. En production, envisagez des extractions mensuelles ou trimestrielles.
- Autorisations : L’utilisateur OTM qui exécute le rapport doit disposer de rôles spécifiques, tels que BI PUBLISHER DATA MODEL DEVELOPER et BI PUBLISHER REPORT DEVELOPER, pour créer et modifier des modèles de données et des rapports. Un accès en lecture seule aux tables de la base de données sous-jacente est également nécessaire.
- Performances : La requête joint plusieurs tables volumineuses. Si le volume de données est élevé, il est fortement recommandé d’exécuter le rapport en dehors des heures de pointe afin de ne pas affecter les performances du système. Limitez autant que possible la période pour que le rapport s’exécute dans un délai raisonnable.
Exemple de requête 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' Étapes
- Établissez la connexion à la base de données : Obtenez des identifiants en lecture seule et les informations de connexion (hôte, port, identifiant de service) à la base de données Oracle Transportation Management. Vous devez avoir accès au schéma
GLOGOWNER. - Configurez le client SQL : Configurez un outil client SQL, comme Oracle SQL Developer, DBeaver ou Toad, avec les informations de connexion à la base de données obtenues à l’étape précédente.
- Préparez la requête : Copiez la requête SQL complète fournie dans ce document dans l’éditeur de requêtes de votre client SQL.
- Définissez les paramètres de la requête : Repérez les valeurs de remplacement dans les clauses
WHEREde la requête. Remplacez[START_DATE],[END_DATE]et[YOUR_DOMAIN_NAME]par les valeurs correspondant à votre extraction. Par exemple, indiquez une période de 3 à 6 mois et précisez le domaine opérationnel à analyser. - Exécutez la requête : Lancez la requête SQL modifiée. Selon la période et la taille du système, l’exécution peut prendre plusieurs minutes.
- Vérifiez les résultats : Une fois la requête terminée, vérifiez rapidement les résultats dans votre client. Assurez-vous que des lignes ont été renvoyées et que les colonnes clés, comme
ShipmentId,ActivityNameetEventTime, sont renseignées. - Exportez au format CSV : Exportez l’ensemble des résultats dans un fichier CSV. Utilisez les paramètres CSV standard : virgule comme séparateur, guillemets doubles pour le texte et encodage UTF-8.
- Vérifiez les en-têtes de colonnes : Avant l’importation, assurez-vous que les en-têtes du fichier CSV correspondent exactement aux noms d’attributs requis :
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeetDelayReason. - Importez les données dans ProcessMind : Le fichier CSV préparé est prêt à être importé dans ProcessMind pour analyse.
Configuration
- Schéma de la base de données : La requête est conçue pour s’exécuter sur le schéma standard de la base de données Oracle Transportation Management, généralement nommé
GLOGOWNER. - Autorisations requises : Un utilisateur de la base de données doit disposer d’un accès en lecture seule aux tables référencées dans la requête. Il s’agit notamment de
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLetVOUCHER. - Filtrage par domaine : Dans un environnement OTM multi-tenant, il est essentiel de filtrer les données par
DOMAIN_NAME. La requête contient un espace réservé,[YOUR_DOMAIN_NAME], à renseigner pour extraire les données de la bonne entité métier. - Période : Pour maîtriser les performances et le volume de données, vous devez préciser une date de début et une date de fin. Il est recommandé d’utiliser une colonne indexée, comme
SHIPMENT.INSERT_DATE, pour le filtrage. Une période de 3 à 6 mois est généralement adaptée à une première analyse. - Personnalisation des codes de statut : La requête utilise des codes de statut courants par défaut, par exemple
PLANNING_PLANNED FINALetTENDER_ACCEPTED. Votre configuration OTM peut utiliser des codes personnalisés. Vous devrez peut-être modifier les valeurs des clausesWHEREpour les adapter à votre système.
Exemple de requête 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%'; Prêt à commencer ?
Utilisez ce modèle pour transformer vos données brutes en analyses concrètes et améliorer sensiblement vos processus de transport. Commencez dès aujourd’hui à optimiser vos opérations.
Optimisez dès aujourd’hui la gestion de vos transports
Réduisez le temps de cycle de 30 % et éliminez les goulots d’étranglement dans Oracle OTM.
Aucune carte bancaire requise • Essai gratuit de 14 jours