Votre modèle de données de gestion des transports
Votre modèle de données de gestion des transports
- Attributs recommandés à collecter
- Activités clés à suivre
- Guide d'extraction
Attributs de gestion des transports
| Nom | Descriptionn | ||
|---|---|---|---|
| Expédition ShipmentId | L'identifiant unique pour un seul envoi, qui sert d'ID de cas principal pour le suivi de toutes les activités de transport connexes. | ||
| Descriptionn L'ID d'envoi identifie de manière unique un seul mouvement de marchandises d'un expéditeur à un destinataire. Cet attribut est la base de l'analyse des processus, regroupant tous les événements connexes tels que la planification, la réservation, l'enlèvement, le transit, la livraison et la facturation en un seul cas. Dans le process mining, l'analyse des événements par ID d'envoi permet une vision globale complet du cycle de vie du transport. Il est utilisé pour calculer des métriques clés comme le temps de cycle total, la performance de paiement à temps et le coût par envoi, offrant une compréhension complète de l'efficacité du processus et des niveaux de service client. Pourquoi est-ce important ? : C'est l'identifiant de cas principal qui connecte toutes les étapes du processus, pour une analyse complète de l'ensemble du parcours de transport pour chaque envoi individuel. Source des données : C'est une clé primaire dans Oracle Transportation Management, généralement trouvée dans les tables de gestion des envois ou des commandes. Consultez la documentation OTM pour les noms de tables et de champs spécifiques. Exemples SH-001, 2, 3, 45SH-001, 2, 3, 46SH-001, 2, 3, 47 | |||
| Heure de l'événement EventTime | La date et l'heure précises auxquelles une activité ou un événement de transport spécifique s'est produit. | ||
| Descriptionn Cet horodatage marque le moment exact où une activité, comme 'Transporteur assigné' ou 'Preuve de livraison reçue', a été enregistrée dans le système. Les horodatages sont essentiels pour le process mining car ils établissent la séquence chronologique des événements pour chaque envoi. La précision de ces horodatages est indispensable pour toutes les analyses temporelles. Ils sont utilisés pour calculer les temps de cycle entre les activités, mesurer les durées des processus, identifier les retards et évaluer la performance par rapport aux accords de niveau de service. L'analyse du temps d'événement aide à identifier où le temps est perdu dans le processus. Pourquoi est-ce important ? : Cet horodatage est indispensable pour ordonner les événements chronologiquement et calculer toutes les métriques de performance, telles que les temps de cycle et les retards. Source des données : Provient des champs d'horodatage associés aux événements dans les tables d'historique des événements de suivi ou de statut d'OTM. Exemples 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Nom de l'activité ActivityName | Le nom d'un événement ou d'une étape spécifique qui s'est produit au sein du processus de transport pour un envoi. | ||
| Descriptionn Cet attribut décrit une seule étape du cycle de vie du transport, telle que 'Envoi planifié', 'Marchandises enlevées' ou 'Marchandises livrées'. Chaque activité représente un événement commercial distinct qui rapproche l'envoi de son achèvement. L'analyse de la séquence et de la durée de ces activités est au cœur du process mining. Elle permet la découverte du flux de processus réel, l'identification des points de blocage entre les étapes et la mesure de l'conformité aux procédures opérationnelles standard. Les variations dans le flux d'activités peuvent mettre en évidence des exceptions, des retouches ou des écarts par rapport au chemin optimal. Pourquoi est-ce important ? : Il définit les étapes de la cartographie des processus, pour visualiser et l'analyse du parcours de l'expédition, des points de blocage et des écarts. Source des données : Cette information est dérivée des tables d'événements de suivi ou des journaux de changement de statut au sein d'Oracle Transportation Management. Le nom d'activité spécifique peut être concaténé à partir des codes d'événement et des descriptions. Exemples Expédition planifiéeMarchandises enlevéesDédouanéMarchandises livrées | |||
| Coût d'expédition ShipmentCost | Le coût total du fret ou le montant financier facturé pour le transport de l'expédition. | ||
| Descriptionn Cet attribut représente le coût financier total associé à un envoi, y compris les frais de transporteur, les surcharges de carburant et autres frais accessoires. C'est une mesure clé de la performance financière du processus de transport. L'analyse du coût d'expédition permet le calcul de l'indicateur clé de performance (KPI) du coût moyen par transporteur par envoi. Il peut être segmenté par transporteur, itinéraire, mode de transport ou type d'envoi pour identifier les opportunités d'économies. Il est également utilisé dans l'analyse des écarts de facture de fret pour comparer les coûts prévus aux coûts réels. Pourquoi est-ce important ? : Fournit les données financières nécessaires pour analyser les dépenses de transport, identifier les opportunités d'économies et mesurer l'impact financier des inefficacités de processus. Source des données : Cette information se trouve généralement dans les sections financières ou de calcul des coûts d'un envoi dans OTM, souvent renseignée après l'évaluation et le règlement du fret. Exemples 250.751200.00545.50 | |||
| Date de livraison demandée RequestedDeliveryDate | La date et l'heure de livraison demandées par le client ou convenues comme objectif de l'accord de niveau de service (SLA). | ||
| Descriptionn Cet attribut capture l'horodatage de livraison cible pour un envoi. Il représente l'engagement pris envers le client et sert de référence principale pour mesurer la performance de paiement à temps. Dans le process mining, cette date est comparée à l'horodatage de livraison réel (de l'activité 'Marchandises livrées') pour déterminer si un envoi a été livré à temps ou en retard. Ceci est la base de l'indicateur clé de performance (KPI) du Taux de paiement à temps et est indispensable pour le tableau de bord 'Aperçu de la performance de livraison'. L'analyse des écarts aide à identifier les causes systémiques des retards et à améliorer la satisfaction client. Pourquoi est-ce important ? : C'est la référence principale pour mesurer la performance de paiement à temps, un indicateur clé de performance (KPI) critique pour la satisfaction client et l'excellence opérationnelle. Source des données : Cette information est généralement stockée au niveau de la commande ou de l'envoi dans OTM, souvent dans des champs liés 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 | La méthode de transport utilisée pour l'envoi, telle que camion, rail, océan ou air. | ||
| Descriptionn Cet attribut catégorise l'envoi par mode de transport. Les modes courants incluent le camion complet (FTL), le chargement partiel (LTL), l'océan, l'air et le rail. C'est une caractéristique clée d'un envoi qui influence le coût, le temps de transit et la complexité. Dans l'analyse, le mode de transport est une dimension majeure pour la segmentation. Il permet de comparer les performances et les coûts des processus entre différents modes. Par exemple, il peut aider à identifier quels modes sont plus sujets aux retards en transit ou ont des coûts par kilomètre plus élevés, soutenant les décisions stratégiques concernant les réseaux logistiques. Pourquoi est-ce important ? : Permet de segmenter l'analyse des performances et des coûts par mode de transport, révélant des informations spécifiques à la logistique routière, aérienne, maritime ou ferroviaire. Source des données : C'est un attribut standard au niveau de l'envoi dans OTM, souvent trouvé dans un champ dédié 'mode' ou 'type de transport'. Exemples FTLLTLOCÉANAÉRIEN | |||
| Motif du retard DelayReason | Un code ou une description qui explique la cause d'un retard dans l'avancement de l'expédition. | ||
| Descriptionn Lorsqu'une expédition est retardée, cet attribut indique le motif, tel que « Intempéries », « Retenue douanière », « Encombrement portuaire » ou « Panne mécanique ». Ces informationsns sont collectées via les mises à jour des transporteurs ou les saisies manuelles dans OTM. Cet attribut est indispensable pour l'analyse des causes profondes des retards de livraison. En catégorisant et en quantifiant les motifs de retard, les entreprises peuvent identifier les problèmes les plus récurrents de leur chaîne d'approvisionnement. Cela permet de lancer des initiatives d'amélioration ciblées, telles que le choix de transporteurs plus fiables pour certains itinéraires ou l'optimisation de la documentation pour accélérer les procédures douanières. Pourquoi est-ce important ? : Fournit un aperçu critique des causes profondes des retards d'expédition, permettant des actions ciblées pour atténuer les problèmes courants et améliorer la performance des livraisons à temps. Source des données : Généralement capturé dans les détails des événements de suivi au sein d'OTM. Il peut être associé à des codes d'événement d'exception ou de retard spécifiques. Exemples RETARD_MÉTÉOINSPECTION_DOUANIÈRECONGESTION_PORTUAIRETRAFIC | |||
| Nom du transporteur CarrierName | Le nom du transporteur ou du fournisseur de services responsable du déplacement de l'envoi. | ||
| Descriptionn Cet attribut identifie le partenaire logistique assigné pour exécuter le transport des marchandises. Les exemples incluent les grandes entreprises de fret, les coursiers locaux ou les lignes maritimes. L'analyse de la performance par transporteur est un objectif principal du process mining du transport. Cet attribut permet de segmenter les envois pour comparer les transporteurs sur des métriques telles que le taux de paiement à temps, le coût par envoi, le temps de transit et la fréquence des problèmes comme les retards ou les écarts de facturation. Ces informationsns sont essentielles pour la sélection des transporteurs, la négociation des contrats et la gestion de la performance. Pourquoi est-ce important ? : Permet l'analyse comparative des performances entre différents transporteurs, ce qui est indispensable pour optimiser la sélection des transporteurs, la négociation et la réduction des coûts. Source des données : Trouvé dans les détails de l'expédition au sein d'OTM, lié aux enregistrements du transporteur ou du fournisseur de services assigné. Il peut être stocké dans des tables liées aux expéditions et aux fournisseurs de services. Exemples FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Agent des douanes CustomsAgent | Le courtier ou l'agent en douane responsable de la gestion du processus de dédouanement de l'envoi. | ||
| Descriptionn Pour les expéditions internationales, cet attribut identifie l'agent tiers ou l'équipe interne chargée de la documentation et des procédures douanières. La performance de cet agent peut avoir un impact significatif sur le temps de transit global. L'analyse du temps de cycle de dédouanement par agent des douanes aide à évaluer leur performance. Elle peut identifier quels agents sont les plus efficaces dans des pays spécifiques ou pour des types de marchandises particuliers. Cette information est précieuse pour sélectionner les meilleurs partenaires douaniers et pour travailler avec les agents sous-performants afin d'améliorer leurs processus. Pourquoi est-ce important ? : Permet de mesurer la performance des courtiers en douane, aidant à identifier les partenaires les plus efficaces et à réduire les retards liés aux douanes. Source des données : Cette information peut être stockée en tant que fournisseur de services ou rôle de partie sur les détails de l'envoi international dans OTM. Exemples Services Douaniers MondiauxLivingston InternationalFlexport | |||
| Dernière mise à jour des données LastDataUpdate | L'horodatage (horodatage) indiquant la dernière fois que les données de cet événement ont été rafraîchies ou extraites du système source. | ||
| Descriptionn Cet attribut enregistre le moment où les données ont été extraites pour la dernière fois d'Oracle Transportation Management. Il reflète la la réactualisation des données analysées, et non l'heure à laquelle l'événement commercial s'est produit. Cet horodatage est impératif pour comprendre la pertinence de l'analyse du process mining. Il aide les utilisateurs à savoir s'ils consultent des informations en temps réel ou un instantané d'un moment précis. Il est indispensable pour gérer les cycles d'actualisation des données et garantir que les décisions sont basées sur des informations actuelles. Pourquoi est-ce important ? : Indique la la réactualisation des données, garantissant que les utilisateurs sont conscients de la pertinence de l'analyse et de la date prévue de la prochaine actualisation des données. Source des données : C'est généralement un horodatage généré par le système, ajouté pendant le processus d'ingestion de données ou ETL. Exemples 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Écart de facture de fret FreightBillDiscrepancy | Un indicateur signalant si un écart a été constaté lors de l'audit de la facture de transport. | ||
| Descriptionn Cet attribut booléen est défini sur 'vrai' si la facture de fret reçue du transporteur ne correspond pas au coût attendu calculé dans OTM. Les écarts peuvent provenir de tarifs incorrects, de frais accessoires ou d'autres erreurs de facturation. Cet attribut est la base de l'indicateur clé de performance (KPI) du Taux d'écart de facture de fret. L'analyse de la fréquence de ces indicateurs par transporteur, voie ou type d'envoi aide à identifier les causes profondes des erreurs de facturation. Ceci soutient les initiatives visant à améliorer la précision des données, à rationaliser le processus d'audit et à prévenir les paiements excessifs. Pourquoi est-ce important ? : Facilite l'analyse des écarts de facturation de fret en signalant les expéditions avec des erreurs de facturation, contribuant à réduire les trop-perçus et à améliorer les contrôles financiers. Source des données : C'est généralement un statut ou un indicateur défini lors du processus de règlement de fret et de rapprochement des factures au sein d'OTM. Exemples truefaux | |||
| Est Réacheminé IsRerouted | Un indicateur signalant si l'itinéraire de l'expédition a été modifié après la réservation initiale. | ||
| Descriptionn Cet attribut est un indicateur booléen qui est défini sur 'vrai' si un envoi subit un événement de réacheminement significatif après avoir déjà été planifié et réservé. Cela peut être dû à une demande client, des perturbations inattendues ou des opportunités d'optimisation. Cet attribut prend directement en charge l'indicateur clé de performance (KPI) du taux de réacheminement des envois et le tableau de bord 'Aperçus du réacheminement et de l'accélération'. Le suivi de la fréquence des réacheminements aide à identifier les problèmes sous-jacents dans la planification ou l'exécution. Il met en évidence les instabilités opérationnelles et les coûts associés, permettant aux gestionnaires de trouver des moyens de minimiser les changements coûteux et perturbateurs. Pourquoi est-ce important ? : Aide à quantifier la fréquence et l'impact des exceptions opérationnelles comme les réacheminements, mettant en évidence les inefficacités dans le processus de planification et d'exécution. Source des données : Cet indicateur est dérivé en détectant des événements de réacheminement spécifiques dans le journal d'événements ou en comparant l'itinéraire final à l'itinéraire initialement planifié. Exemples truefaux | |||
| Est une livraison ponctuelle IsOnTimeDelivery | Un indicateur calculé qui signale si l'expédition a été livrée à la date de livraison demandée ou avant. | ||
| Descriptionn Cet attribut booléen est dérivé en comparant l'horodatage de l'activité 'Marchandises livrées' avec l'attribut 'Requested Delivery Date'. Il est 'vrai' si la livraison a été effectuée à temps ou en avance, et 'faux' si elle a été en retard. Cet attribut alimente directement l'indicateur clé de performance (KPI) du Taux de paiement à temps et est un composant clé du tableau de bord 'Aperçu de la performance de livraison'. Il simplifie l'analyse de la performance de livraison en fournissant un résultat clair et binaire pour chaque envoi, facilitant ainsi le filtrage, l'agrégation et la visualisation des envois à temps par rapport aux envois en retard. Pourquoi est-ce important ? : Cet indicateur calculé simplifie la mesure de l'indicateur clé de performance (KPI) de paiement à temps et permet un filtrage et une analyse faciles des envois à temps par rapport aux envois en retard. Source des données : Cet attribut n'est 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 truefaux | |||
| Nom d'utilisateur UserName | Le nom ou l'ID de l'utilisateur qui a effectué ou est responsable d'une activité particulière. | ||
| Descriptionn Cet attribut identifie l'utilisateur individuel ou l'agent système qui a exécuté un événement spécifique, tel que 'Envoi planifié' ou 'Transporteur assigné'. Cette information assure la responsabilité et donne un aperçu de l'implication des ressources dans le processus. Dans le process mining, l'analyse des activités par utilisateur aide à comprendre la répartition de la charge de travail, à identifier les besoins de formation et à comparer la performance de différents utilisateurs ou équipes. Il peut également être utilisé pour distinguer les activités effectuées manuellement de celles exécutées automatiquement par le système. Pourquoi est-ce important ? : Assure la responsabilité et permet l'analyse de la charge de travail et de la performance par utilisateur individuel ou par équipe. Source des données : Provient des champs d'ID utilisateur (par exemple, INSERT_USER) associés aux changements de statut ou aux événements dans les tables d'historique ou de journaux d'OTM. Exemples JSMITHPLANIFICATEUR_LOGISTIQUE_ASYSTEM_AUTO | |||
| Pays d'origine OriginCountry | Le pays où le trajet de l'envoi commence. | ||
| Descriptionn Cet attribut spécifie le pays de départ de l'envoi, basé sur l'emplacement de l'expéditeur. C'est une information géographique clé utilisée pour l'analyse logistique. L'analyse des processus par pays d'origine aide à comprendre les variations régionales de performance. Par exemple, les délais de dédouanement, les coûts des transporteurs et les durées de transit peuvent varier considérablement selon le pays d'origine. Cette segmentation est indispensablele pour gérer la logistique internationale et identifier les points de blocage spécifiques à une région. Pourquoi est-ce important ? : Permet une analyse géographique du processus de transport, aidant à identifier les points de blocage, les coûts et les variations de performance spécifiques à une région. Source des données : Déduit des détails d'adresse du lieu source ou de l'expéditeur de l'expédition, qui est stocké dans les données de base de localisation d'OTM. Exemples États-UnisDEUCHIMEX | |||
| Pays de destination DestinationCountry | Le pays où l'envoi doit être livré. | ||
| Descriptionn Cet attribut spécifie le pays de destination final de l'envoi, basé sur l'emplacement du destinataire. Il complète le pays d'origine pour l'analyse géographique des processus. Similaire à l'origine, l'analyse par pays de destination permet de mieux comprendre les différences de performance entre diverses routes commerciales. Elle est particulièrement importante pour l'analyse des temps de dédouanement, de la performance de livraison du dernier kilomètre et de l'efficacité des transporteurs spécifiques à une région. Ceci aide à adapter les stratégies logistiques aux exigences des différents marchés de destination. Pourquoi est-ce important ? : Primordial pour analyser les performances sur des couloirs commerciaux spécifiques et comprendre les défis liés aux douanes, aux transporteurs et aux réglementations sur les marchés de destination. Source des données : Déduit des détails d'adresse du lieu de destination ou du destinataire de l'expédition, stockés dans les données de base de localisation d'OTM. Exemples CANFRAJPNBRÉ | |||
| Statut de l'expédition ShipmentStatus | Le statut général actuel de l'envoi dans son cycle de vie, tel que 'Planifié', 'En transit' ou 'Livré'. | ||
| Descriptionn Cet attribut fournit un vue d'ensemble de l'emplacement de l'envoi dans le processus global. Contrairement à une activité, qui est un événement ponctuel, le statut représente l'état du cas d'envoi. Alors que le process mining se concentre sur le flux d'activités, le statut global est utile pour filtrer les cas et fournir un contexte dans les dashboards. Par exemple, une analyse pourrait se concentrer uniquement sur les envois 'Terminés' ou enquêter sur les raisons pour lesquelles de nombreux envois sont bloqués en statut 'En transit' pendant une période anormalement longue. Pourquoi est-ce important ? : Fournit un vue d'ensemble de l'avancement d'un envoi, utile pour filtrer et segmenter les cas dans l'analyse. Source des données : Disponible sur l'enregistrement principal de l'expédition dans OTM, représentant son état actuel dans le workflow. Exemples PLANIFIÉBOOKEDEN_TRANSITLIVRÉ | |||
| Système source SourceSystem | Identifie le système d'où proviennent les données d'événements, par exemple, Oracle Transportation Management. | ||
| Descriptionn Cet attribut spécifie l'application source où les données ont été générées. Dans un environnement logistique complexe, les données 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. Comprendre le système source est important pour la gouvernance des données, l'évaluation de la qualité et le dépannage. Il aide à comprendre le contexte des données et peut expliquer les variations de granularité ou de rapidité des données. Pour l'analyse, il peut être utilisé pour filtrer les événements provenant uniquement d'un système spécifique et fiable. Pourquoi est-ce important ? : Il fournit un contexte essentiel sur l'origine des données, ce qui est important pour la validation des données et les analyses dans des environnements multi-systèmes. Source des données : Ceci est typiquement une valeur statique ajoutée pendant le processus d'extraction des données pour étiqueter l'origine des enregistrements. Exemples Oracle OTMOTM CloudSAP TM | |||
| Type d'envoi ShipmentType | Une classification de l'expédition, par exemple par niveau de service, type de marchandise ou unité commerciale. | ||
| Descriptionn Cet attribut fournit une catégorisation spécifique à l'entreprise pour l'envoi, par exemple 'Standard', 'Expédié', 'Matières dangereuses' ou 'Interne à l'entreprise'. Cette classification aide à appliquer différentes règles commerciales, priorités ou vues analytiques. L'utilisation du type d'envoi comme dimension dans le process mining permet de comparer les processus pour différents types d'envois. Cela peut révéler si certains types sont plus sujets aux retards, ont des coûts plus élevés ou suivent des chemins de processus non standard. Ces informationsns aident à adapter les processus pour mieux gérer les besoins spécifiques de chaque type d'envoi. Pourquoi est-ce important ? : Permet la segmentation de l'analyse en fonction du contexte métier, aidant à comprendre si différents types d'expéditions suivent des processus différents ou ont des niveaux de performance distincts. Source des données : C'est généralement un champ ou un attribut configurable sur l'enregistrement d'envoi ou de commande dans OTM. Exemples StandardAccéléréInternationalNational | |||
Activités de gestion des transports
| Activité | Descriptionn | ||
|---|---|---|---|
| Demande de transport reçue | Cette activité marque la création d'un besoin de transport au sein du système, généralement sous forme de "dégagement de commande" (Order Release). Cet événement est capturé lorsqu'un nouvel enregistrement de "dégagement de commande" est créé dans Oracle Transportation Management, représentant la demande initiale d'envoi. | ||
| Pourquoi est-ce important ? : En tant que point de départ du processus, cette activité est indispensablele pour mesurer le temps de cycle total complet et comprendre les schémas de demande. Elle aide à analyser le temps écoulé entre la demande et la planification. Source des données : C'est un événement explicite capturé à partir de l'horodatage de création de l'enregistrement de dégagement de commande dans la table ORDER_RELEASE. Les champs INSERT_DATE ou les champs de date de création spécifiques peuvent être utilisés. Capture Utilisez l'horodatage de création du dégagement de commande dans la table ORDER_RELEASE. Type d'événement explicit | |||
| Expédition planifiée | Cette activité représente la planification réussie d'un ou plusieurs dégagements de commande en un envoi viable par le moteur de planification OTM. Elle est capturée lorsque le système modifie le statut d'un envoi pour indiquer qu'il a été planifié, par exemple, 'PLANNING_PLANNED FINAL'. | ||
| Pourquoi est-ce important ? : C'est une étape clé qui sépare la phase de demande de la phase d'exécution. L'analyse du temps précédant cette activité aide à identifier l'efficacité de la planification et les points de blocage des performances du moteur. Source des données : Déduit de l'historique des statuts de l'objet Expédition dans la table SHIPMENT. Recherchez un changement de statut indiquant l'achèvement de la planification. Capture Identifiez l'horodatage lorsque SHIPMENT.SHIPMENT_STATUS_VALUE_GID passe à un statut 'Planifié'. Type d'événement inferred | |||
| Marchandises enlevées | Cette activité signifie le début du transport physique, lorsque le transporteur a collecté les marchandises à l'origine. Cet événement est capturé lorsque le premier arrêt de l'envoi est marqué comme 'DÉPART'. | ||
| Pourquoi est-ce important ? : C'est une étape critique qui marque le début de la phase de transit. Elle est indispensablele pour le suivi de la performance de collecte des transporteurs et des temps de transit réels. Source des données : Déduit du changement de statut du premier arrêt dans la table SHIPMENT_STOP à 'DEPARTED', ou en suivant un événement de statut d'expédition indiquant l'enlèvement. Capture Utilisez l'horodatage ACTUAL_DEPARTURE du premier enregistrement dans la table SHIPMENT_STOP pour l'envoi. Type d'événement inferred | |||
| Marchandises livrées | Cette activité représente la livraison réussie de l'envoi au destinataire final. Ceci est capturé lorsque le dernier arrêt de l'envoi est marqué avec une heure d'arrivée réelle. | ||
| Pourquoi est-ce important ? : C'est la principale étape pour mesurer la performance de paiement à temps et le temps de cycle complet. C'est l'aboutissement du processus d'exécution du transport. Source des données : Déduit de la population du champ ACTUAL_ARRIVAL sur l'enregistrement du dernier arrêt dans la table SHIPMENT_STOP associée à l'expédition. Capture Utilisez l'horodatage ACTUAL_ARRIVAL du dernier enregistrement dans la table SHIPMENT_STOP pour l'envoi. Type d'événement inferred | |||
| Paiement traité | C'est l'activité finale, représentant le traitement réussi du paiement au transporteur pour ses services. Cet événement marque la clôture financière de l'envoi. | ||
| Pourquoi est-ce important ? : Cette activité conclut le cycle de vie du transport. Elle est indispensablele pour mesurer les temps de traitement des paiements des transporteurs et gérer efficacement les relations avec les transporteurs. Source des données : Déduit du changement de statut sur le bon ou la facture associé(e) passant à un statut 'PAYÉ'. Ces données se trouvent dans les tables VOUCHER ou BILL. Capture Identifiez l'horodatage lorsque VOUCHER.VOUCHER_STATUS_ID passe à 'PAYÉ'. Type d'événement inferred | |||
| Preuve de livraison reçue | Ceci représente la réception et l'enregistrement d'une confirmation formelle que la livraison a été effectuée, telle qu'un document signé. Ceci est souvent enregistré comme un type de document spécifique joint à l'envoi. | ||
| Pourquoi est-ce important ? : La preuve de livraison (PDL) est indispensablele pour la facturation et la résolution des litiges. Le suivi de sa réception contribue à assurer la conformité des processus et accélère le cycle de règlement financier. Source des données : Ceci peut être un événement explicite ou inféré de la date de création d'un document PDL lié à l'envoi. Recherchez dans la table DOCUMENT les documents avec un type de document PDL. Capture Utilisez l'horodatage de création d'un type de document 'PDL' associé à l'envoi. Type d'événement explicit | |||
| Dédouané | Pour les expéditions internationales, cette activité représente le moment où les marchandises ont passé avec succès la douane à une frontière ou un port. Ceci est souvent capturé via un événement d'expédition spécifique ou une mise à jour de statut. | ||
| Pourquoi est-ce important ? : Le dédouanement est une source courante de retards importants dans la logistique internationale. Suivre cette activité aide à mesurer et à optimiser les temps de cycle de dédouanement. Source des données : Cet événement est généralement capturé via un événement d'envoi 'Douane' saisi manuellement ou intégré. Recherchez les codes d'événement spécifiques dans la table SHIPMENT_STATUS liés à la douane. Capture Identifiez l'horodatage d'un événement 'Dédouané' à partir de la table SHIPMENT_STATUS. Type d'événement explicit | |||
| Expédition annulée | Représente l'annulation d'un envoi après sa planification, mettant fin prématurément à son cycle de vie. Ceci est capturé par un changement de statut de l'objet Expédition à un état 'annulé'. | ||
| Pourquoi est-ce important ? : Le suivi des annulations est important pour comprendre les exceptions et les échecs des processus. Il aide à identifier les raisons de l'annulation, telles que les changements de demande ou les erreurs de planification. Source des données : Déduit de l'historique des statuts de l'objet Expédition dans la table SHIPMENT. Recherchez un changement de statut comme 'PLANNING_CANCELED'. Capture Identifiez l'horodatage lorsque SHIPMENT.SHIPMENT_STATUS_VALUE_GID passe à un statut 'Annulé'. Type d'événement inferred | |||
| Expédition en transit | Indique que les marchandises ont été enlevées et sont maintenant en route vers la destination. Ce n'est pas un point unique dans le temps, mais le début de cet état est capturé immédiatement après l'activité 'Marchandises enlevées'. | ||
| Pourquoi est-ce important ? : Cette activité marque le début de la phase de transit, ce qui est indispensable pour suivre l'avancement de la livraison et identifier les retards en transit. Elle est clée pour le tableau de bord des zones critiques des retards en transit. Source des données : C'est le 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 signifier le début d'une nouvelle phase. Il est dérivé du départ du premier arrêt. Capture Identique à 'Marchandises enlevées' : Utilisez l'horodatage ACTUAL_DEPARTURE du premier SHIPMENT_STOP. Type d'événement inferred | |||
| Expédition réservée | Représente la confirmation formelle de réservation avec le transporteur après une soumission réussie. Ceci est généralement capturé lorsque le statut de l'envoi est mis à jour à un statut 'SECURE RESOURCES_BOOKED' ou équivalent. | ||
| Pourquoi est-ce important ? : Ceci confirme l'engagement du transporteur et fait passer officiellement l'envoi à la phase d'exécution. C'est une étape critique pour mesurer l'indicateur clé de performance (KPI) du temps de cycle de planification des envois. Source des données : Déduit d'un changement de statut sur l'objet Expédition dans la table SHIPMENT, suivant le moment où il passe à un statut confirmé ou réservé après l'attribution du transporteur. Capture Identifiez l'horodatage lorsque SHIPMENT.SHIPMENT_STATUS_VALUE_GID passe à un statut 'Réservé'. Type d'événement inferred | |||
| Facture de fret auditée | Cette activité marque l'achèvement du processus d'audit des factures de fret, où la facture du transporteur est rapprochée et vérifiée par rapport aux détails de l'envoi. Elle est enregistrée lorsque le statut de la facture d'un envoi passe à 'VOUCHER_AUDITED' ou un état similaire. | ||
| Pourquoi est-ce important ? : L'audit est impératif pour le contrôle financier et l'identification des écarts de facturation. L'analyse de cette activité aide à rationaliser le processus d'audit-paiement et soutient l'indicateur clé de performance (KPI) du taux d'écart sur les factures de fret. Source des données : Déduit du changement de statut sur l'objet Facture associé à l'expédition. Recherchez dans la table BILL les mises à jour de statut liées à l'achèvement de l'audit. Capture Identifiez l'horodatage lorsque BILL.BILL_STATUS_VALUE_GID passe à un statut 'Audité'. Type d'événement inferred | |||
| Rendez-vous de collecte programmé | Cette activité indique qu'une date et une heure spécifiques pour l'enlèvement ont été programmées et enregistrées. Ceci est souvent capturé à partir des données liées aux rendez-vous au niveau de l'arrêt de l'envoi. | ||
| Pourquoi est-ce important ? : La planification des rendez-vous est une étape de coordination clé. L'analyse de cette étape aide à comprendre l'efficacité de la planification et son impact sur la ponctualité de l'enlèvement. Source des données : Déduit de la population des champs de date et d'heure de rendez-vous pour le premier arrêt (lieu de collecte) de l'expédition, trouvé dans la table SHIPMENT_STOP. Capture Utilisez l'horodatage lorsque les champs de rendez-vous sont renseignés pour la première fois pour l'arrêt de collecte. Type d'événement inferred | |||
| Rendez-vous de livraison planifié | Cette activité marque le moment où une date et une heure spécifiques de livraison ont été planifiées avec le destinataire. Cet événement est capturé à partir des données de rendez-vous du dernier arrêt de l'envoi. | ||
| Pourquoi est-ce important ? : C'est une étape clé dans la coordination de la livraison finale. L'analyse du temps entre l'arrivée et la livraison prévue peut révéler des points de blocage dans les opérations du dernier kilomètre. Source des données : Déduit de la population des champs de date et d'heure de rendez-vous pour le dernier arrêt (lieu de livraison) de l'expédition, trouvé dans la table SHIPMENT_STOP. Capture Utilisez l'horodatage lorsque 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 assigné | Ceci marque le point où un envoi a été soumissionné avec succès et accepté par un transporteur spécifique. Ceci est capturé en observant le changement de statut de soumission de l'envoi à 'TENDER_ACCEPTED' ou un état similaire. | ||
| Pourquoi est-ce important ? : Le suivi de cela aide à analyser l'efficacité de la sélection des transporteurs et du processus de soumission. Les retards à ce niveau peuvent avoir un impact significatif sur le calendrier global avant même que l'envoi n'ait bougé. Source des données : Déduit de l'historique des statuts dans la table SHIPMENT_TENDER, en recherchant spécifiquement l'horodatage lorsque le statut indique l'acceptation par un transporteur. Capture Utilisez l'horodatage du changement de statut à 'TENDER_ACCEPTED' dans l'historique des soumissions de l'envoi. Type d'événement inferred | |||
Guides d'extraction
Étapes
- Accéder à BI Publisher: Connectez-vous à votre application Oracle Transportation Management (OTM). Naviguez vers Automatisation des processus métier, puis Rapports, et sélectionnez Gestionnaire de rapports. Cela ouvrira l'interface Oracle Business Intelligence Publisher.
- Créer un modèle de données: Dans BI Publisher, cliquez sur le bouton Nouveau et sélectionnez Template de données. Cela ouvrira l'éditeur de modèle de données où vous définirez la source de données pour votre rapport.
- Définir la requête SQL: Dans l'éditeur de modèle de données, cliquez sur l'icône plus dans le diagramme des jeux de données et sélectionnez Requête SQL. Nommez le jeu de données, par exemple, 'OTM_Process_Mining_DS'. Sélectionnez votre base de données OTM comme source de données. Copiez la requête SQL complète fournie dans la section 'requête' de ce document et collez-la dans la zone de texte de la requête SQL.
- Ajouter des paramètres: La requête utilise des paramètres pour la plage de dates et le nom de domaine (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher les détectera automatiquement. Vous pouvez configurer leurs propriétés, telles que la définition du type de données sur Date pour les paramètres de date.
- Enregistrer le modèle de données: Cliquez sur l'icône Enregistrer. Choisissez un emplacement dans le catalogue BI Publisher, fournissez un nom descriptif comme 'Extraction du processus d'expédition OTM', et enregistrez le modèle de données.
- Créer le rapport: Revenez au catalogue, cliquez sur le bouton Nouveau et sélectionnez Rapport. Dans l'assistant de création de rapport, sélectionnez l'option 'Utiliser le modèle de données' et recherchez le modèle de données que vous venez d'enregistrer.
- Configurer la mise en page du rapport: L'assistant vous guidera dans la création d'une mise en page. Une mise en page 'Tableau' simple est suffisante. Faites glisser et déposez toutes les colonnes de votre jeu de données de données dans le tableau. N'effectuez aucun regroupement ou agrégation.
- Enregistrer le rapport: Une fois la mise en page configurée, passez à la dernière étape et enregistrez le rapport. Donnez-lui un nom similaire à celui du modèle de données.
- Exécuter le rapport: Ouvrez le rapport nouvellement créé. Il vous sera demandé de saisir des valeurs pour les paramètres (Date de début, Date de fin, Nom de domaine). Entrez la plage souhaitée.
- Exporter les données: Une fois le rapport exécuté et les données affichées, cliquez sur le menu Actions et sélectionnez Exporter. Choisissez le format CSV. Cela téléchargera un fichier CSV contenant le journal d'événements.
- Préparer le téléchargement: Ouvrez le fichier CSV téléchargé. Vérifiez que les en-têtes de colonne correspondent aux attributs requis:
ShipmentId,(ActivityName),(EventTime), et les attributs recommandés. Assurez-vous que la colonne(EventTime)est dans un format date/heure cohérent. Le fichier est maintenant prêt à être téléchargé sur 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 OTM principale, généralement nommée GLOGOWNER.
- Paramètres du rapport:
P_START_DATE: Le début de la période de rapport. Le format doit être 'YYYY-MM-DD'.P_END_DATE: La fin de la période de rapport. Le format doit être 'YYYY-MM-DD'.P_DOMAIN_NAME: Le domaine OTM spécifique pour lequel extraire les données. Utilisez '[Nom de votre domaine]'.
- Plage de dates: Pour une analyse initiale, il est recommandé d'extraire des données sur une période de 3 à 6 mois afin d'équilibrer le volume de données et les performances. Pour les exécutions en production, envisagez d'extraire les données par lots mensuels ou trimestriels.
- Permissions: L'utilisateur OTM exécutant le rapport a besoin 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 requis.
- Performances: La requête joint plusieurs grandes tables. Pour les environnements à grand volume de données, l'exécution de ce rapport en dehors des heures de pointe est fortement recommandée pour éviter d'impacter les performances du système. La plage de dates doit être maintenue aussi étroite que possible pour garantir que le rapport se termine dans les délais.
a Exemple de requête config
WITH SHIPMENTS_BASE AS (
SELECT
S.SHIPMENT_GID AS ShipmentId,
SP.SERVPROV_NAME AS CarrierName,
S.TOTAL_ACTUAL_COST AS ShipmentCost,
TM.TRANSPORT_MODE_NAME AS TransportationMode,
(
SELECT MAX(ORL.LATE_DELIVERY_DATE)
FROM SHIPMENT_S_SHIP_UNIT SSU
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SSU.SHIPMENT_GID = S.SHIPMENT_GID
) AS RequestedDeliveryDate,
S.DOMAIN_NAME
FROM SHIPMENT S
LEFT JOIN SERVPROV SP ON S.SERVPROV_GID = SP.SERVPROV_GID
LEFT JOIN TRANSPORT_MODE TM ON S.TRANSPORT_MODE_GID = TM.TRANSPORT_MODE_GID
WHERE S.INSERT_DATE BETWEEN TO_DATE(:P_START_DATE, 'YYYY-MM-DD') AND TO_DATE(:P_END_DATE, 'YYYY-MM-DD') + 1
AND S.DOMAIN_NAME = :P_DOMAIN_NAME
)
-- 1. Transportation Request Received
SELECT
SB.ShipmentId,
'Transportation Request Received' AS ActivityName,
MIN(ORL.INSERT_DATE) AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_S_SHIP_UNIT SSU ON SB.ShipmentId = SSU.SHIPMENT_GID
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SB.DOMAIN_NAME = ORL.DOMAIN_NAME
GROUP BY SB.ShipmentId, SB.CarrierName, SB.RequestedDeliveryDate, SB.ShipmentCost, SB.TransportationMode
UNION ALL
-- 2. Shipment Planned
SELECT
SB.ShipmentId,
'Shipment Planned' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
SB.ShipmentId,
'Carrier Assigned' AS ActivityName,
ST.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_TENDER ST ON SB.ShipmentId = ST.SHIPMENT_GID
WHERE ST.TENDER_STATUS_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
SB.ShipmentId,
'Shipment Booked' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
SB.ShipmentId,
'Pickup Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
SB.ShipmentId,
'Goods Picked Up' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
SB.ShipmentId,
'Shipment In Transit' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
SB.ShipmentId,
'Customs Cleared' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
SB.ShipmentId,
'Delivery Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
SB.ShipmentId,
'Goods Delivered' AS ActivityName,
SST.ACTUAL_ARRIVAL_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.ACTUAL_ARRIVAL_DATE IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
SB.ShipmentId,
'Proof of Delivery Received' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your POD Received Event Code]'
UNION ALL
-- 12. Freight Bill Audited
SELECT
SB.ShipmentId,
'Freight Bill Audited' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
SB.ShipmentId,
'Payment Processed' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = '[Your Payment Processed Bill Status]'
UNION ALL
-- 14. Shipment Cancelled
SELECT
SB.ShipmentId,
'Shipment Cancelled' AS ActivityName,
S.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT S ON SB.ShipmentId = S.SHIPMENT_GID
WHERE S.SHIPMENT_STATUS_GID = 'SHIPMENT_CANCELLED' Étapes
- Établir la connexion à la base de données: Obtenez les identifiants en lecture seule et les détails de connexion (hôte, port, ID de service) pour la base de données Oracle Transportation Management. Vous aurez besoin d'un accès au schéma
GLOGOWNER. - Configurer le client SQL: Configurez un outil client SQL, tel qu'Oracle SQL Developer, DBeaver ou Toad, avec les détails de connexion à la base de données de l'étape précédente.
- Préparer 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éfinir les paramètres de la requête: Localisez les valeurs de remplacement dans les clauses
WHEREde la requête. Vous devez remplacer[START_DATE],[END_DATE]et[YOUR_DOMAIN_NAME]par les valeurs appropriées pour votre extraction. Par exemple, définissez les dates pour couvrir une période de 3 à 6 mois et spécifiez le domaine opérationnel que vous souhaitez analyser. - Exécuter la requête: Exécutez la requête SQL modifiée. Selon la plage de dates et la taille du système, cela peut prendre plusieurs minutes.
- Examiner les résultats: Une fois la requête terminée, effectuez un examen rapide du résultat dans votre client pour vous assurer que des lignes sont retournées et que les colonnes clés comme
ShipmentId,(ActivityName)et(EventTime)sont renseignées. - Exporter au format CSV: Exportez l'ensemble complet des résultats vers un fichier CSV. Utilisez les paramètres CSV standard: délimiteur virgule, guillemets doubles pour le texte et encodage UTF-8.
- Finaliser les en-têtes de colonne: Avant de télécharger, vérifiez que les en-têtes de colonne dans le fichier CSV correspondent exactement aux noms d'attributs requis:
ShipmentId,(ActivityName),(EventTime),CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeetDelayReason. - Télécharger sur ProcessMind: Le fichier CSV préparé est maintenant prêt pour le téléchargement et l'analyse dans ProcessMind.
Configuration
- Schéma de la base de données: La requête est conçue pour être exécutée sur le schéma de base de données standard d'Oracle Transportation Management, généralement nommé
GLOGOWNER. - Autorisations requises: Un utilisateur de base de données avec un accès en lecture seule aux tables référencées dans la requête est nécessaire. Ces tables incluent
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLetVOUCHER. - Filtrage par domaine: Il est impératif de filtrer par
DOMAIN_NAMEdans un environnement OTM multi-tenant. La requête inclut un espace réservé[YOUR_DOMAIN_NAME]qui doit être configuré pour extraire les données de l'entité commerciale correcte. - Plage de dates: Pour gérer les performances et le volume de données, vous devez spécifier une date de début et une date de fin. Il est recommandé de filtrer sur une colonne indexée comme
SHIPMENT.INSERT_DATE. Une période de 3 à 6 mois est typique pour une analyse initiale. - Personnalisation des codes de statut: La requête utilise des codes de statut courants et par défaut (par exemple,
PLANNING_PLANNED FINAL,TENDER_ACCEPTED). Votre implémentation OTM peut utiliser des codes de statut personnalisés. Vous devrez peut-être ajuster les valeurs des clausesWHEREpour qu'elles correspondent à la configuration de votre système.
a 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%';