Votre modèle de données pour la gestion du transport
Votre modèle de données pour la gestion du transport
- Attributs recommandés à collecter
- Activités clés à suivre
- Guide d'extraction
Attributs de gestion du transport
| Nom | Description | ||
|---|---|---|---|
| Envoi 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. | ||
| Description L'ID d'envoi identifie de manière unique un seul mouvement de marchandises d'un expéditeur à un destinataire. Cet attribut est la pierre angulaire 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 vue complète de bout en bout 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 livraison à 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 c'est important C'est l'ID de cas essentiel qui connecte toutes les étapes du processus, permettant une analyse complète de l'ensemble du parcours de transport pour chaque envoi individuel. Où obtenir 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-0012345SH-0012346SH-0012347 | |||
| 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. | ||
| Description 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 fondamentaux pour le process mining car ils établissent la séquence chronologique des événements pour chaque envoi. La précision de ces horodatages est critique pour toutes les analyses basées sur le temps. 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 c'est important Cet horodatage est essentiel pour ordonner les événements chronologiquement et calculer toutes les métriques de performance, telles que les temps de cycle et les retards. Où obtenir 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. | ||
| Description 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 goulots d'étranglement entre les étapes et la mesure de l'adhésion 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 c'est important Il définit les étapes de la carte des processus, permettant la visualisation et l'analyse du parcours de l'expédition, des goulots d'étranglement et des déviations. Où obtenir 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 de l'envoi ShipmentCost | Le coût total du fret ou le montant financier facturé pour le transport de l'envoi. | ||
| Description 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 c'est 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. Où obtenir 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). | ||
| Description 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 livraison à 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 livraison à temps et est essentiel 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 c'est important C'est la référence principale pour mesurer la performance de livraison à temps, un indicateur clé de performance (KPI) critique pour la satisfaction client et l'excellence opérationnelle. Où obtenir 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. | ||
| Description 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 fondamentale 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 critique 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 c'est 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. Où obtenir 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 | |||
| Nom du transporteur CarrierName | Le nom du transporteur ou du fournisseur de services responsable du déplacement de l'envoi. | ||
| Description 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 livraison à 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 informations sont vitales pour la sélection des transporteurs, la négociation des contrats et la gestion de la performance. Pourquoi c'est important Permet l'analyse comparative des performances entre différents transporteurs, ce qui est essentiel pour optimiser la sélection des transporteurs, la négociation et la réduction des coûts. Où obtenir 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 | |||
| Raison du retard DelayReason | Un code ou une description qui explique la cause d'un retard dans l'avancement de l'expédition. | ||
| Description 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 informations sont collectées via les mises à jour des transporteurs ou les saisies manuelles dans OTM. Cet attribut est essentiel 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 c'est 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. Où obtenir 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 | |||
| Agent des douanes CustomsAgent | Le courtier ou l'agent en douane responsable de la gestion du processus de dédouanement de l'envoi. | ||
| Description 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 c'est 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. Où obtenir 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 (`timestamp`) indiquant la dernière fois que les `données` de cet `événement` ont été rafraîchies ou extraites du `système source`. | ||
| Description 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 fraîcheur des données analysées, et non l'heure à laquelle l'événement commercial s'est produit. Cet horodatage est crucial pour comprendre l'actualité 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 essentiel pour gérer les cycles d'actualisation des données et garantir que les décisions sont basées sur des informations actuelles. Pourquoi c'est important Indique la fraîcheur 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. Où obtenir 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 une divergence a été constatée lors de l'audit de la facture de fret. | ||
| Description 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 c'est important Soutient directement 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. Où obtenir 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. | ||
| Description 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 c'est 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. Où obtenir 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. | ||
| Description 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 livraison à 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 c'est important Cet indicateur calculé simplifie la mesure de l'indicateur clé de performance (KPI) de livraison à temps et permet un filtrage et une analyse faciles des envois à temps par rapport aux envois en retard. Où obtenir 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. | ||
| Description 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 c'est important Assure la responsabilité et permet l'analyse de la charge de travail et de la performance par utilisateur individuel ou par équipe. Où obtenir 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. | ||
| Description 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 cruciale pour gérer la logistique internationale et identifier les goulots d'étranglement spécifiques à une région. Pourquoi c'est important Permet une analyse géographique du processus de transport, aidant à identifier les goulots d'étranglement, les coûts et les variations de performance spécifiques à une région. Où obtenir 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é. | ||
| Description 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 est vitale pour 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 c'est important Crucial 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. Où obtenir 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'envoi ShipmentStatus | Le statut général actuel de l'envoi dans son cycle de vie, tel que 'Planifié', 'En transit' ou 'Livré'. | ||
| Description Cet attribut fournit un résumé de haut niveau 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 tableaux de bord. 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 c'est important Fournit un résumé de haut niveau de l'avancement d'un envoi, utile pour filtrer et segmenter les cas dans l'analyse. Où obtenir 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. | ||
| Description 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 c'est important Il fournit un contexte crucial 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. Où obtenir 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 | |||
| Temps de cycle de bout en bout EndToEndCycleTime | La durée totale de l'envoi, de la demande de transport initiale à la livraison finale des marchandises. | ||
| Description Cette métrique calculée mesure le temps total écoulé pour un cas d'envoi. Elle est généralement calculée comme la différence de temps entre l'activité 'Demande de transport reçue' et l'activité 'Marchandises livrées'. Cet attribut est la base de l'indicateur clé de performance (KPI) du temps de cycle moyen de bout en bout. Il fournit une mesure holistique de l'efficacité de l'ensemble du processus de transport. L'analyse de cette durée aide à identifier les envois de longue durée et fournit une base pour mesurer l'impact des initiatives d'amélioration des processus. Pourquoi c'est important Fournit une mesure unique et critique de la vélocité globale du processus, aidant à identifier les envois de longue durée et à suivre les améliorations au fil du temps. Où obtenir Cet attribut n'est pas dans le système source. Il est calculé au niveau du cas lors de l'analyse du process mining ou de la transformation des données. Exemples 5 jours 4 heures12 jours 8 heures 30 minutes2 jours 1 heure | |||
| Type d'envoi ShipmentType | Une classification de l'expédition, par exemple par niveau de service, type de marchandise ou unité commerciale. | ||
| Description 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 informations aident à adapter les processus pour mieux gérer les besoins spécifiques de chaque type d'envoi. Pourquoi c'est 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. Où obtenir 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 du transport
| Activité | Description | ||
|---|---|---|---|
| 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 c'est important En tant que point de départ du processus, cette activité est cruciale pour mesurer le temps de cycle total de bout en bout et comprendre les schémas de demande. Elle aide à analyser le temps écoulé entre la demande et la planification. Où obtenir 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 c'est 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 goulots d'étranglement des performances du moteur. Où obtenir 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 c'est important C'est une étape critique qui marque le début de la phase de transit. Elle est essentielle pour le suivi de la performance de collecte des transporteurs et des temps de transit réels. Où obtenir 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 c'est important C'est la principale étape pour mesurer la performance de livraison à temps et le temps de cycle de bout en bout. C'est l'aboutissement du processus d'exécution du transport. Où obtenir 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 c'est important Cette activité conclut le cycle de vie du transport. Elle est essentielle pour mesurer les temps de traitement des paiements des transporteurs et gérer efficacement les relations avec les transporteurs. Où obtenir 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 c'est important La preuve de livraison (PDL) est essentielle 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. Où obtenir 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 c'est 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. Où obtenir 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 | |||
| Envoi annulé | 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 c'est 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. Où obtenir 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 | |||
| Envoi 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 c'est important Cette activité marque le début de la phase de transit, ce qui est essentiel pour suivre l'avancement de la livraison et identifier les retards en transit. Elle est fondamentale pour le tableau de bord des points chauds des retards en transit. Où obtenir 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 | |||
| Envoi réservé | 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 c'est 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. Où obtenir 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 c'est important L'audit est crucial 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. Où obtenir 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 c'est 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. Où obtenir 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 c'est 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 goulots d'étranglement dans les opérations du dernier kilomètre. Où obtenir 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 c'est 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é. Où obtenir 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 Modèle 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 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 colonneEventTimeest 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 en temps voulu.
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,ActivityNameetEventTimesont 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 crucial 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%';