Votre modèle de données pour la planification de la production
Votre modèle de données pour la planification de la production
- Attributs recommandés à recueillir
- Activités clés à suivre
- Guide d’extraction pour Microsoft Dynamics 365 Manufacturing
Attributs de planification de la production
| Nom | Description | ||
|---|---|---|---|
| Ordre de production ProductionOrderNumber | Identifiant unique de l’ordre de production, utilisé comme ID de cas principal pour suivre toutes les activités de planification et d’exécution associées. | ||
| Description Le numéro de l’ordre de production, souvent appelé ProdId dans Microsoft Dynamics 365, est l’identifiant central qui relie tous les événements, matières, ressources et coûts associés à une opération de fabrication donnée. Il permet d’analyser de bout en bout le cycle de planification et d’exécution d’une unité de travail. En Process Mining, cet attribut est essentiel pour regrouper les événements associés dans un même cas. L’analyse par numéro d’ordre de production permet de repérer les goulots d’étranglement, les retards et les écarts dans le déroulement standard de la production, depuis la création et la planification initiales jusqu’à l’achèvement et au calcul des coûts. Pourquoi est-ce important ? Cet identifiant de cas fondamental permet de regrouper tous les événements associés et de reconstituer le processus de planification de la production de bout en bout pour l’analyser. Où trouver ces données Il s’agit du champ « ProdId » de la table « ProdTable » dans Microsoft Dynamics 365 Manufacturing. Exemples WO-000456WO-000457WO-000458 | |||
| Dernière mise à jour des données LastDataUpdate | Horodatage indiquant la dernière actualisation ou extraction des données de cet événement depuis le système source. | ||
| Description Cet attribut indique la date et l’heure de la dernière extraction des données depuis le système source. Il s’agit d’un champ de métadonnées essentiel pour connaître leur fraîcheur et leur actualité. La date de dernière mise à jour aide les analystes et les utilisateurs métier à évaluer la fiabilité des analyses issues de l’outil de Process Mining. Elle indique si les Dashboards présentent des informations en temps réel ou des données plus anciennes, ce qui est important pour prendre des décisions opérationnelles. Pourquoi est-ce important ? Cet attribut est essentiel à la gouvernance des données : il permet aux utilisateurs d’en connaître l’actualité et de savoir si les analyses du processus reposent sur des données récentes. Où trouver ces données Cet horodatage est généré et ajouté à chaque enregistrement lors du processus d’extraction, de transformation et de chargement des données (ETL). Exemples 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Heure de l’événement EventTime | Horodatage précis indiquant le moment où l’activité s’est produite. | ||
| Description L’heure de l’événement, ou son horodatage, indique la date et l’heure exactes auxquelles une activité s’est produite. Ces données sont indispensables aux analyses temporelles en Process Mining, notamment pour calculer les temps de cycle, repérer les délais entre les étapes et suivre les performances du processus dans le temps. Dans le cadre de la planification de la production, cet attribut sert à mesurer des durées telles que le délai de planification, les retards au démarrage de la production et le délai global d’exécution des ordres. Des horodatages exacts et chronologiques sont indispensables pour créer un modèle de processus fiable et pertinent. Pourquoi est-ce important ? Cet horodatage est essentiel pour ordonner les événements, calculer le temps écoulé entre les activités et réaliser des analyses temporelles, comme le calcul du temps de cycle et le repérage des goulots d’étranglement. Où trouver ces données Cet horodatage figure dans différentes tables de transactions, par exemple dans « createdDateTime » de « ProdTable » ou dans les champs de date de transaction de « ProdRouteTrans », « ProdJournalRoute » et « ProdJournalBOM ». Exemples 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Nom de l’activité ActivityName | Nom de l’événement métier ou de l’étape qui s’est produit dans le processus de planification de la production. | ||
| Description Le nom de l’activité désigne une étape du cycle de planification de la production, par exemple « Ordre de production créé », « Matières prélevées pour la production » ou « Production démarrée ». Ces activités constituent les éléments de base de la carte de processus. L’analyse de leur séquence et de leur durée permet de visualiser le déroulement du processus, de repérer les parcours fréquents et les boucles de reprise, et de mesurer le temps passé à chaque étape. Cet attribut est essentiel pour comprendre ce qui se passe à chaque moment du processus. Pourquoi est-ce important ? Cet attribut définit les étapes du processus. Il permet de créer une carte de processus et d’analyser son déroulement, ses variations et ses goulots d’étranglement. Où trouver ces données Cette valeur provient généralement des journaux d’événements ou de l’association de différents changements de statut et types de transaction dans des tables telles que « ProdRouteTrans » et « ProdJournalBOM », ainsi que des modifications des champs de statut de « ProdTable ». Exemples Ordre de production crééOrdre de production lancéProduction démarréeProduction déclarée terminée | |||
| Système source SourceSystem | Système de référence depuis lequel les données ont été extraites. | ||
| Description Cet attribut identifie le système d’information source dont proviennent les données d’événement. Pour cette vue du processus, sa valeur sera toujours « Microsoft Dynamics 365 Manufacturing ». Dans un environnement où plusieurs systèmes sont intégrés, ce champ est essentiel pour assurer la traçabilité des données, résoudre les problèmes de qualité et comprendre la contribution de chaque système au processus global. Il permet de connaître clairement l’origine des données analysées. Pourquoi est-ce important ? Cet attribut précise l’origine des données, une information essentielle à leur gouvernance et à leur validation, ainsi qu’à la gestion des pipelines de données provenant de plusieurs systèmes d’entreprise. Où trouver ces données Cette valeur statique doit être ajoutée lors de l’extraction et de la transformation des données afin d’indiquer l’origine du jeu de données. Exemples Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Date de début prévue PlannedStartDate | La date et l’heure auxquelles le lancement de l’ordre de production est prévu. | ||
| Description La date de début prévue est une donnée clé du processus de planification. Elle indique le moment auquel la production d’un ordre doit commencer. Elle est déterminée en fonction de la disponibilité des matières, de la capacité des ressources et des échéances de la demande. Cet attribut est essentiel pour analyser le respect du calendrier. En comparant la date de début prévue à l’heure réelle de démarrage de la production, indiquée par l’horodatage de l’activité « Production Started », les organisations peuvent mesurer la ponctualité, repérer les causes des retards et calculer des KPI tels que le taux de respect du calendrier de production. Pourquoi est-ce important ? Elle sert de référence pour mesurer le respect du calendrier et repérer les retards entre la planification et le démarrage effectif de la production. Où trouver ces données Il s’agit du champ 'SchedStart' de la table 'ProdTable'. Exemples 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Date de fin prévue PlannedEndDate | La date et l’heure auxquelles l’ordre de production doit être terminé. | ||
| Description La date de fin prévue correspond à l’échéance fixée par le moteur de planification pour un ordre de production. Elle tient compte des durées des opérations, des calendriers des ressources et des délais afin de prévoir quand les produits finis seront prêts. Dans l’analyse des processus, cet attribut est essentiel pour évaluer le respect des délais de production. La comparaison de la date de fin prévue avec l’horodatage réel de fin, associé à l’activité « Production Reported As Finished » ou « Production Order Ended », permet de calculer le KPI de taux de production terminée dans les délais et de repérer les causes systémiques des retards de livraison. Pourquoi est-ce important ? Cet attribut sert de référence pour mesurer le taux de production terminée dans les délais et évaluer la précision de la planification de la production. Où trouver ces données Il s’agit du champ 'SchedEnd' de la table 'ProdTable'. Exemples 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Numéro de produit ProductNumber | Identifiant unique de l’article fabriqué. | ||
| Description Le numéro de produit, ou identifiant d’article, désigne le produit fini que l’ordre de production doit fabriquer. Il relie le processus de production au produit concerné, ainsi qu’à sa nomenclature et à ses instructions de gamme. L’analyse du processus par numéro de produit permet de repérer les différences propres à chaque produit au cours du cycle de fabrication. Elle peut révéler que certains produits ont des temps de cycle plus longs, nécessitent davantage de reprises ou subissent des retards plus fréquents. Ces informations sont utiles aux ingénieurs produit et processus. Pourquoi est-ce important ? Il permet d’analyser les variations du processus selon le produit fabriqué et de repérer les goulots d’étranglement ou les problèmes de qualité propres à certains produits. Où trouver ces données Il s’agit du champ 'ItemId' de la table 'ProdTable'. Exemples FG-1001FG-2050ASSY-500B | |||
| Priorité de production ProductionPriority | Indicateur du degré d’urgence ou de priorité de l’ordre de production. | ||
| Description Les planificateurs utilisent la priorité de production pour gérer l’ordre des tâches dans l’atelier. Les ordres prioritaires peuvent être traités en avance, ce qui risque de perturber le calendrier prévu pour les autres ordres. L’analyse de cet attribut aide à comprendre à quelle fréquence les plans de production sont perturbés par des ordres prioritaires ou accélérés. Le suivi des changements de priorité pendant le cycle de vie d’un ordre peut révéler une instabilité de la demande ou de la planification. Cet attribut est essentiel au Dashboard « Expedited Production Trends » et au KPI « Expedited Production Rate ». Pourquoi est-ce important ? Il aide à mesurer la fréquence et l’impact des ordres accélérés, qui peuvent révéler une planification instable ou une gestion opérationnelle réactive. Où trouver ces données Il peut s’agir d’un champ standard ou personnalisé de la table 'ProdTable'. Sa configuration dépend souvent de l’entreprise. Exemples NormaleÉlevéeUrgente | |||
| Quantité réelle ActualQuantity | Quantité de produits fabriqués et déclarés comme terminés pour l’ordre. | ||
| Description La quantité réelle correspond au nombre d’unités achevées et ayant passé les contrôles qualité pour un ordre de production donné. Cette valeur est enregistrée lorsque la production est déclarée « Reported as finished ». Cet attribut sert à analyser le rendement et l’efficacité de la production. La comparaison de la quantité réelle avec la quantité prévue permet de calculer les taux de rebut et de comprendre les pertes de production. Il entre également dans l’analyse du débit et les Dashboards d’utilisation de la capacité. Pourquoi est-ce important ? Il est essentiel pour calculer le rendement de production, les taux de rebut et le débit réel, et pour évaluer l’efficacité et les performances de la fabrication. Où trouver ces données Cette valeur provient souvent du champ 'QtyGood' de la table 'ProdTable' ou des tables associées à la comptabilisation des journaux, lorsqu’un ordre est déclaré terminé. Exemples 100985000 | |||
| Site de production ProductionPlant | Site ou usine où l’ordre de production est exécuté. | ||
| Description Le site de production désigne le lieu ou l’établissement où se déroule le processus de fabrication. Il constitue une dimension organisationnelle importante pour segmenter et comparer les performances de production. En Process Mining, cet attribut permet de comparer les performances de différents sites. Les analystes peuvent comparer les temps de cycle, l’utilisation des ressources et le respect des processus standard afin de repérer les bonnes pratiques ou les sites qui nécessitent des améliorations opérationnelles. Il est essentiel pour analyser l’utilisation de la capacité. Pourquoi est-ce important ? Il permet de comparer les performances des différents sites de production et de repérer les bonnes pratiques ainsi que les problèmes propres à chaque site. Où trouver ces données Il s’agit du champ 'InventSiteId' de la table 'ProdTable'. Exemples SITE-ASITE-BMain-WH | |||
| Statut de l’ordre de production ProductionOrderStatus | Indique le statut actuel de l’ordre de production dans son cycle de vie. | ||
| Description Le statut de l’ordre de production indique son avancement dans le cycle de fabrication. Dans Dynamics 365, les statuts courants sont notamment « Created », « Estimated », « Scheduled », « Released », « Started », « Reported as finished » et « Ended ». Cet attribut donne un aperçu de l’état de chaque ordre à un moment donné. En Process Mining, l’analyse des changements de statut permet principalement de définir les activités et de comprendre le déroulement du processus. Elle sert à filtrer les ordres selon leur état, à mesurer le temps passé dans chaque statut et à repérer les ordres bloqués ou en retard. Pourquoi est-ce important ? Cet attribut donne une vue d’ensemble de l’avancement des ordres. Il est essentiel pour filtrer les données, vérifier la conformité du processus et analyser le temps passé dans les différentes phases de production. Où trouver ces données Il s’agit du champ « ProdStatus » de la table « ProdTable ». Exemples PlanifiéLancéDémarréClôturé | |||
| Type de production ProductionType | Catégorie de l’ordre de production, par exemple standard, reprise ou lié à un projet. | ||
| Description Le type de production classe l’ordre selon son objectif. Par exemple, un ordre « Standard » concerne la production courante destinée au stock, un ordre « Rework » vise à corriger des défauts sur un article déjà fabriqué et un ordre « Project » est associé à un projet client précis. Cet attribut permet de créer des vues d’analyse comparables. Le processus d’un ordre de reprise diffère par nature de celui d’un ordre standard. Segmenter l’analyse par type de production garantit la pertinence des comparaisons et aide à comprendre les difficultés et les flux propres à chaque type. Pourquoi est-ce important ? Cet attribut permet de segmenter l’analyse, car des types d’ordres comme « Standard » et « Rework » suivent naturellement des processus différents et répondent à des attentes de performance distinctes. Où trouver ces données Il s’agit du champ 'ProdType' de la table 'ProdTable'. Exemples StandardRepriseProjet | |||
| Utilisateur UserId | Identifiant de l’utilisateur qui a effectué l’activité ou qui en est responsable. | ||
| Description L’identifiant utilisateur indique quel employé ou compte système a exécuté une étape du processus, par exemple la libération d’un ordre ou la déclaration de fin de production. Cette information permet de savoir qui réalise les tâches dans le processus. L’analyse par utilisateur aide à comprendre la répartition de la charge de travail, à repérer les besoins de formation, à comparer les performances entre personnes ou équipes et à examiner les écarts associés à certains utilisateurs. Elle est également importante pour la conformité et la traçabilité des audits. Pourquoi est-ce important ? Il permet d’analyser les performances du processus par utilisateur ou par équipe, de repérer les possibilités d’automatisation et de conserver une piste d’audit des principales activités. Où trouver ces données Présent dans des champs tels que 'modifiedBy' ou 'createdBy' de différentes tables, ou dans les champs utilisateur des tables de journaux de transactions comme 'ProdJournalTable'. Exemples j.smithm.jonesAX_BATCH_SVC | |||
| Démarrage dans les délais ProductionScheduleAdherence | Indicateur booléen vrai si l’ordre de production a démarré à la date de début prévue ou avant. | ||
| Description Cet attribut calculé indique simplement, sous forme binaire, si le démarrage de la production respecte le calendrier. Il compare l’horodatage réel de début, associé à l’événement « Production Started », à l’attribut 'PlannedStartDate'. Cet indicateur est très utile pour créer des Dashboards et des KPI clairs et concis, comme le « Production Schedule Adherence Rate ». Il permet de filtrer et d’agréger facilement les ordres pour connaître la part de ceux qui démarrent dans les délais et analyser les caractéristiques des ordres en retard, sans avoir à comparer directement les dates dans l’outil d’analyse. Pourquoi est-ce important ? Il simplifie le reporting et le calcul des KPI de respect du calendrier, en facilitant le filtrage et l’agrégation des ordres démarrés dans les délais ou en retard. Où trouver ces données Il s’agit d’une métrique calculée selon la logique suivante : EventTime de « Production Started » <= PlannedStartDate. Exemples truefalse | |||
| Disponibilité des matières MaterialAvailabilityStatus | Indique si les matières premières nécessaires à l’ordre de production sont disponibles. | ||
| Description Cet attribut indique si les composants nécessaires à la production sont prêts. Il peut prendre des valeurs telles que « Available », « On Order » ou « Shortage ». Les planificateurs s’en servent pour déterminer si un ordre de production peut réellement démarrer comme prévu. En Process Mining, cet attribut aide à déterminer les causes des retards au démarrage de la production. En rapprochant ce statut du délai entre « Production Order Released » et « Production Started », les analystes peuvent mesurer l’impact des pénuries de matières sur le respect du calendrier et le temps de cycle global. Il contribue directement au Dashboard « Material Availability Delay Impact ». Pourquoi est-ce important ? Cet attribut permet de comprendre et de mesurer les retards de démarrage dus aux pénuries de matières, en reliant les performances de la chaîne d’approvisionnement à l’efficacité de la fabrication. Où trouver ces données Ce statut ne correspond souvent pas à un champ unique. Il est calculé en vérifiant, dans la table 'InventSum', les stocks disponibles de tous les articles de la nomenclature (BOM) de l’ordre de production. Exemples Entièrement disponibleDisponibilité partielleIndisponible | |||
| Heure de fin EndTime | Horodatage précis indiquant la fin de l’activité. | ||
| Description L’heure de fin marque l’achèvement d’une activité donnée. L’heure de début indique quand elle commence, tandis que l’heure de fin permet d’en connaître la durée réelle ou la durée de traitement. En Process Mining, disposer des heures de début et de fin des activités permet d’analyser plus précisément les temps d’attente et de traitement. Cela aide à distinguer le temps consacré activement à une activité du temps passé à attendre le début de l’étape suivante, ce qui est essentiel pour analyser les goulots d’étranglement en détail. Pourquoi est-ce important ? Elle permet de calculer la durée de traitement d’une activité et de la distinguer du temps d’attente, pour analyser les goulots d’étranglement avec plus de précision. Où trouver ces données Cette valeur est souvent calculée. Par exemple, l’heure de fin de « Production Started » peut correspondre à l’heure de début de « Operation Completed ». Certains journaux enregistrent explicitement un horodatage de fin. Exemples 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Ligne de production ProductionLine | Ligne de production, centre de charge ou groupe de ressources affecté à l’ordre de production. | ||
| Description La ligne de production désigne la machine, la cellule ou le groupe de ressources chargé des opérations de fabrication. Elle fournit un niveau de détail plus précis que le site de production. L’analyse par ligne de production est essentielle pour étudier en détail la capacité et l’utilisation des ressources. Elle aide à repérer les centres de charge surchargés, à comparer l’efficacité de différentes lignes fabriquant le même produit et à identifier les goulots d’étranglement propres à certaines ressources, qui ne sont pas forcément visibles à l’échelle du site. Pourquoi est-ce important ? Elle permet d’analyser en détail l’utilisation des ressources et leurs performances, afin de repérer les centres de charge surchargés ou les lignes peu efficaces. Où trouver ces données Cette information figure souvent dans le champ 'WrkCtrId' des transactions de gamme de production (tables 'ProdRoute' ou 'ProdRouteTrans'). Exemples LINE-01LINE-02CNC-A | |||
| Nombre de révisions ProductionOrderRevisionNumber | Nombre de fois où un plan de production a été modifié après sa création initiale. | ||
| Description Cet attribut indique le nombre de révisions ou de modifications importantes apportées à un ordre de production, par exemple à la quantité, aux dates ou à la gamme, après sa planification ou sa libération. Un nombre élevé signale un plan plus instable. Il mesure directement le KPI « Production Plan Revision Rate ». Son analyse aide à repérer les sources d’instabilité de la planification, comme les changements fréquents de la demande ou une planification initiale imprécise. Elle quantifie les reprises et les efforts de replanification, souvent à l’origine d’inefficacités. Pourquoi est-ce important ? Il mesure directement la stabilité de la planification et alimente le KPI « Production Plan Revision Rate », en mettant en évidence les processus sujets à des modifications et à des reprises excessives. Où trouver ces données Cet attribut est calculé en comptant, pour chaque dossier, les occurrences de l’activité « Production Order Adjusted ». Exemples 012 | |||
| Numéro de l’ordre qualité QualityOrderNumber | Identifiant d’un ordre de contrôle qualité associé à l’ordre de production. | ||
| Description Lorsqu’un contrôle qualité est nécessaire, Dynamics 365 génère souvent un ordre qualité. Cet attribut relie le processus de production à celui de l’assurance qualité en enregistrant l’identifiant de l’ordre qualité associé. Ce lien permet d’obtenir une vue plus complète du processus de bout en bout, qui inclut les étapes de gestion de la qualité. Il aide à analyser l’incidence des contrôles qualité sur les délais de production, à repérer les retards dans le processus qualité et à comprendre la fréquence des contrôles selon les produits ou les lignes de production. Pourquoi est-ce important ? Il relie le processus de production à celui de l’assurance qualité et permet d’analyser l’incidence des contrôles qualité sur les délais globaux. Où trouver ces données Cette information est stockée dans les tables de gestion de la qualité, par exemple 'InventQualityOrderTable', et doit être reliée à l’ordre de production. Exemples QO-00123QO-00124QO-00125 | |||
| Quantité prévue PlannedQuantity | Quantité de l’article dont la production est planifiée. | ||
| Description La quantité prévue correspond au nombre d’unités à fabriquer pour un ordre de production donné. Elle est généralement déterminée par la demande des commandes client, les besoins en stock de sécurité ou la planification générale. Cet attribut sert de référence pour les indicateurs de performance tels que le rendement et les rebuts. En comparant la quantité prévue à la quantité réelle produite, les planificateurs peuvent suivre l’efficacité de la production et les écarts de consommation de matières. C’est une donnée fondamentale pour la planification des capacités et des besoins en matières. Pourquoi est-ce important ? Cette quantité sert de référence pour mesurer le rendement de production et les taux de rebut en la comparant à la quantité réellement produite. Où trouver ces données Il s’agit du champ 'QtySched' de la table 'ProdTable'. Exemples 1005000250 | |||
| Retard au démarrage de la production ProductionStartDelay | Temps écoulé entre la libération de l’ordre et le démarrage effectif de la production. | ||
| Description Cette durée calculée mesure le temps d’attente ou de mise en file dans l’atelier. Elle correspond à l’écart entre l’activité « Production Order Released » et l’activité « Production Started ». Ce KPI est essentiel au Dashboard « Resource Allocation Delay Analysis », car il met en évidence les retards qui surviennent une fois la planification terminée et l’ordre prêt à être exécuté. Des valeurs élevées peuvent signaler des problèmes de disponibilité des ressources, de préparation des matières ou de transmission des informations à l’atelier. Elles indiquent ainsi clairement les points à améliorer dans les opérations. Pourquoi est-ce important ? Il mesure précisément le délai entre la mise à disposition de l’ordre et son démarrage, et aide à repérer les goulots d’étranglement liés à la disponibilité des ressources ou à la préparation de l’atelier. Où trouver ces données Il s’agit d’une métrique calculée : Timestamp('Production Started') - Timestamp('Production Order Released'). Exemples 0 j 4 h 15 min1 j 2 h 0 min0 j 1 h 30 min | |||
Activités de planification de la production
| Activité | Description | ||
|---|---|---|---|
| Ordre de production clôturé | Cette dernière activité correspond à la clôture financière de l’ordre de production. Tous les coûts ont été calculés et comptabilisés, et aucune autre transaction ne peut être effectuée sur l’ordre. | ||
| Pourquoi est-ce important ? Cet événement marque la fin réelle de l’ordre, sur les plans physique et financier. Les retards entre « Reported as Finished » et « Ended » peuvent révéler des problèmes de comptabilité analytique ou de clôture financière. Où trouver ces données Il s’agit du dernier changement de statut enregistré lorsque le champ « ProdStatus » de la table « ProdTable » passe à « Ended ». Il est déclenché par le calcul des coûts et la clôture de l’ordre. Données à recueillir Repérez l’horodatage auquel le champ ProdStatus de ProdTable passe à « Ended ». Type d’événement inferred | |||
| Ordre de production créé | Cette activité correspond à la création d’un ordre de production, qui formalise la demande pour une quantité donnée d’un produit. Elle est généralement enregistrée lorsqu’un ordre de production planifié est confirmé et qu’une entrée officielle, dotée d’un identifiant unique, est créée dans le système. | ||
| Pourquoi est-ce important ? Il s’agit de l’événement de début principal du processus de production. L’analyse du temps écoulé entre cette création et les étapes suivantes permet de mesurer le délai global et l’efficacité de la planification. Où trouver ces données Cet événement est déduit de l’horodatage de création de l’enregistrement de l’ordre de production dans ProdTable. Le statut initial est généralement « Created ». Données à recueillir Relevez l’horodatage de création d’une nouvelle entrée dans ProdTable dont le champ ProdStatus est « Created ». Type d’événement inferred | |||
| Ordre de production lancé | Cette activité indique que l’ordre de production a été approuvé et autorisé pour exécution dans l’atelier. Cette étape importante déclenche la création de documents tels que les fiches de travail et les fiches de gamme. | ||
| Pourquoi est-ce important ? Il s’agit du transfert officiel entre la planification et l’exécution. Le temps écoulé entre « Scheduled » et « Released » peut révéler des retards d’approbation ou de vérification finale. Le délai entre « Released » et « Started » indique si l’atelier est prêt à démarrer. Où trouver ces données Cet événement est enregistré lorsque le statut de l’ordre de production dans ProdTable passe à « Released ». Il résulte d’une action manuelle ou automatisée de l’utilisateur. Données à recueillir Repérez l’horodatage auquel le champ ProdStatus de ProdTable passe à « Released ». Type d’événement inferred | |||
| Ordre de production planifié | Cette activité correspond à la planification de l’ordre de production, qui consiste à affecter des ressources, des dates et des heures précises à ses opérations. Elle peut porter sur la planification des opérations ou sur une planification plus détaillée des tâches. | ||
| Pourquoi est-ce important ? La planification est essentielle à la gestion de la capacité et des ressources. L’analyse du temps nécessaire pour planifier les ordres et du délai avant leur lancement révèle les contraintes de planification et de capacité. Où trouver ces données Cet événement est enregistré lorsque le statut de l’ordre de production dans ProdTable passe à « Scheduled ». Il est déclenché par l’exécution d’une fonction de planification. Données à recueillir Repérez l’horodatage auquel le champ ProdStatus de ProdTable passe à « Scheduled ». Type d’événement inferred | |||
| Production déclarée terminée | Cet événement indique que la fabrication de la quantité prévue est physiquement terminée et que les produits finis sont désormais en stock. Cette mise à jour importante déclenche des transactions de stock. | ||
| Pourquoi est-ce important ? Cet événement marque la fin de la production physique. Il est indispensable pour calculer le taux de production terminée dans les délais, la durée réelle de production et le débit. Où trouver ces données Cet événement est enregistré lorsque le statut de l’ordre de production dans ProdTable passe à « Reported as finished ». Il est déclenché par la validation d’un journal de déclaration de fin de production. Données à recueillir Repérez l’horodatage auquel le champ ProdStatus de ProdTable passe à « Reported as finished ». Type d’événement inferred | |||
| Production démarrée | Cette activité marque le début des travaux de production de l’ordre dans l’atelier. Elle est souvent enregistrée au démarrage de la première opération ou tâche, depuis un terminal d’atelier ou lors de la validation d’un journal. | ||
| Pourquoi est-ce important ? Cette activité fournit l’heure réelle de début de la production, essentielle pour calculer les retards au démarrage, le respect du calendrier et les délais réels. Où trouver ces données Cet événement est enregistré lorsque le statut de l’ordre de production dans ProdTable passe à « Started ». Il est souvent déclenché par la validation d’un journal de fiche de travail ou de fiche de gamme pour la première opération. Données à recueillir Repérez l’horodatage auquel le champ ProdStatus de ProdTable passe à « Started ». Type d’événement inferred | |||
| Contrôle qualité réussi | Cette activité correspond à la réalisation et à la validation de l’ordre de contrôle qualité associé à la production. Elle confirme que les articles fabriqués respectent les normes de qualité requises. | ||
| Pourquoi est-ce important ? Cette étape marque un jalon important du contrôle qualité. Le temps écoulé entre la création de l’ordre de contrôle qualité et la réussite de l’inspection renseigne sur l’efficacité de l’équipe qualité. Où trouver ces données Cet événement est déduit du passage du statut de l’enregistrement InventQualityOrderTable à « Pass ». La valeur exacte du statut peut varier. Données à recueillir Repérez l’horodatage auquel le statut de l’enregistrement InventQualityOrderTable associé passe à « Pass ». Type d’événement inferred | |||
| Matières prélevées pour la production | Cet événement indique que les matières premières nécessaires à l’ordre de production ont été prélevées dans l’entrepôt et sont prêtes à être consommées. Il est enregistré à la fin d’un travail de prélèvement de matières premières ou lors de la validation du journal de la liste de prélèvement. | ||
| Pourquoi est-ce important ? Cette activité constitue un point de passage essentiel avant le démarrage de la production. Les retards entre la planification et le prélèvement des matières révèlent des problèmes dans les opérations d’entrepôt ou la disponibilité des matières. Où trouver ces données Il s’agit généralement d’un événement explicite enregistré dans les tables de gestion d’entrepôt (WHSWorkTable) ou les journaux de stock (InventJournalTrans) associés à l’ordre de production. Données à recueillir Relevez l’horodatage de validation du journal de la liste de prélèvement associé à l’ordre de production. Type d’événement explicit | |||
| Opération terminée | Cette activité indique qu’une opération de fabrication ou une étape de la gamme de production est terminée. Un ordre de production comporte généralement plusieurs événements de ce type. | ||
| Pourquoi est-ce important ? L’analyse du temps écoulé entre les opérations permet de repérer les goulots d’étranglement au sein même du processus de production. Elle donne une vue plus détaillée du déroulement des activités dans l’atelier. Où trouver ces données Il s’agit d’un événement explicite, enregistré lors de la validation des journaux de fiches de gamme (ProdJournalRoute) pour chaque opération, qui indique la fin de l’étape. Données à recueillir Relevez l’horodatage de validation de chaque enregistrement ProdJournalRoute associé à l’ordre de production. Type d’événement explicit | |||
| Ordre de contrôle qualité créé | Un ordre de contrôle qualité a été créé pour inspecter les produits issus de l’ordre de production. Cet événement marque le début du contrôle qualité des produits fabriqués. | ||
| Pourquoi est-ce important ? Le suivi du contrôle qualité est important pour comprendre le délai global. Les retards d’inspection peuvent empêcher l’expédition des produits ou leur utilisation dans les processus suivants. Où trouver ces données Il s’agit d’un événement explicite, déduit de la création d’un enregistrement dans InventQualityOrderTable faisant référence à l’ordre de production source. Données à recueillir Relevez l’horodatage de création de l’ordre de contrôle qualité dans InventQualityOrderTable, associé à l’identifiant de l’ordre de production. Type d’événement explicit | |||
| Ordre de production annulé | Cet événement correspond à l’annulation d’un ordre de production avant son achèvement. Il s’agit d’une issue alternative qui met fin au processus sans succès. | ||
| Pourquoi est-ce important ? Le suivi des annulations permet d’en repérer les causes, comme les changements de demande ou les erreurs de planification. Un taux d’annulation élevé peut révéler des problèmes systémiques. Où trouver ces données Il s’agit d’un état final alternatif, déduit d’un changement de statut. Le statut exact peut varier, mais l’ordre est souvent réinitialisé à un état antérieur puis marqué comme annulé. Données à recueillir Repérez un changement de statut indiquant une annulation. Une analyse spécifique du système peut être nécessaire pour l’identifier. Type d’événement inferred | |||
| Ordre de production estimé | Cette activité correspond au calcul des besoins estimés en matières et des coûts de l’ordre de production. Cette étape de planification permet de connaître les besoins financiers et matériels avant de poursuivre. | ||
| Pourquoi est-ce important ? Les retards dans l’estimation peuvent constituer un goulot d’étranglement important pendant la planification. Le suivi de cette activité permet de repérer les inefficacités dans le calcul des coûts et la planification des matières. Où trouver ces données Cet événement est enregistré lorsque le statut de l’ordre de production dans ProdTable passe à « Estimated ». Il est déclenché par l’exécution de la fonction « Estimate » sur l’ordre. Données à recueillir Repérez l’horodatage auquel le champ ProdStatus de ProdTable passe à « Estimated ». Type d’événement inferred | |||
| Ordre de production modifié | Cette activité correspond à une modification importante de l’ordre de production après son lancement, par exemple un changement de quantité ou de date. L’événement est déduit en comparant les champs clés avant et après la modification. | ||
| Pourquoi est-ce important ? Des modifications fréquentes peuvent révéler une planification instable ou une demande fluctuante, et entraîner des inefficacités et des reprises. Leur suivi permet d’en mesurer la fréquence et les effets. Où trouver ces données Cet événement est déduit de l’analyse des journaux de modifications ou de la comparaison d’instantanés de l’enregistrement ProdTable, notamment des champs « QtySched » ou « SchedEnd », après le passage du statut de l’ordre à « Released ». Données à recueillir Repérez les modifications apportées aux champs clés de ProdTable, par exemple la quantité ou les dates, après l’horodatage de l’événement « Released ». Type d’événement calculated | |||
Guides d’extraction
Étapes
- Accédez à l’espace de travail de gestion des données : Connectez-vous à Microsoft Dynamics 365 Finance and Operations. Utilisez la barre de recherche pour trouver l’espace de travail
Data managementet y accéder. - Créez un projet d’exportation : Dans l’espace de travail, sélectionnez la vignette
Exportpour créer un projet d’exportation de données. Donnez-lui un nom explicite, par exempleProcessMind_Production_Orders. - Choisissez le format du fichier d’exportation : Dans la configuration du projet, choisissez le format souhaité, par exemple CSV ou Excel. Définissez l’option
Entityet précisez les détails du format. Le format CSV est recommandé pour ses performances et sa compatibilité. - Ajoutez les entités de données requises : Ajoutez au projet les entités nécessaires pour recueillir tous les événements liés aux ordres de production. Ajoutez chacune des entités suivantes :
Ordres de production,Production order route transactions,Inventory quality ordersetProduction picking list journal lines. Pour chaque entité, sélectionnez tous les champs pertinents indiqués dans la section consacrée à la requête. - Appliquez des filtres aux données : Pour chaque entité, utilisez l’option
Filtrerafin de définir le périmètre de l’exportation. Au minimum, filtrez parCompanypour sélectionner l’entité juridique appropriée. Il est fortement recommandé de définir une période à partir d’un champ de date clé, par exempleCreation datepour l’entitéOrdres de production, afin de limiter le volume de données à une période gérable, comme les six derniers mois. - Configurez les exportations incrémentielles (facultatif) : Pour assurer le suivi dans le temps, configurez le projet afin d’effectuer des exportations incrémentielles. Le suivi des modifications dans les entités sources permet d’extraire uniquement les enregistrements nouveaux ou modifiés depuis la dernière exportation, ce qui réduit considérablement sa durée.
- Lancez l’exportation : Une fois le projet configuré, lancez l’exportation en cliquant sur
Exportdans le volet Actions. Vous pouvez l’exécuter immédiatement ou la planifier comme tâche récurrente. - Téléchargez les fichiers exportés : Une fois l’exportation terminée, accédez à l’historique des tâches. Téléchargez le package ZIP, qui contient un fichier de données distinct pour chaque entité incluse.
- Transformez les données en journal d’événements : Les fichiers exportés contiennent des données brutes de tables, et non un journal d’événements formaté. Vous devez utiliser un outil externe, comme un script Python, Power Query dans Excel ou Power BI, ou un outil ETL, pour traiter et combiner les données de ces fichiers. Appliquez la logique de transformation décrite dans la section consacrée à la requête afin de regrouper les champs de date et de statut des différentes entités dans un seul fichier de journal d’événements, avec une ligne par activité.
- Structurez le journal d’événements final : Vérifiez que le fichier CSV transformé contient les colonnes requises :
ProductionOrderNumber,ActivityName,EventTime,SourceSystemetLastDataUpdate, ainsi que les attributs recommandés. Le fichier doit comporter une ligne d’en-tête et être prêt à être importé dans ProcessMind.
Configuration
- Entités de données clés : Cette extraction repose sur l’exportation de plusieurs entités, qui seront ensuite jointes. Les principales sont
Ordres de production(ProdTable),Production order route transactions(ProdRouteTrans) etInventory quality orders(InventQualityOrderTable). - Filtrage par période : Pour maîtriser le volume de données, appliquez toujours un filtre de date. Il est recommandé de filtrer l’entité
Ordres de productionsur le champCreation date(CREATEDDATETIME) pour les trois à six derniers mois. Vous recueillerez ainsi des processus récents et complets sans surcharger le système. - Filtre par société : Il est essentiel de définir un filtre pour la société ou l’entité juridique à analyser. Pour cela, utilisez l’option
Filtrersur chaque entité du projet d’exportation. - Chargement complet ou incrémentiel : Une extraction initiale complète est nécessaire. Pour les mises à jour suivantes, il est fortement recommandé de configurer le suivi des modifications sur les entités et d’effectuer des exportations incrémentielles afin d’améliorer les performances et de réduire le volume de données traité.
- Prérequis : La personne qui lance l’exportation doit disposer des rôles de sécurité appropriés, généralement
Data management administratorou d’un rôle autorisant l’accès aux entités de données requises.
Exemple de requête sql
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Étapes
- Configurez BYOD dans Dynamics 365 : Vérifiez que la fonctionnalité « Bring your own database » est configurée dans votre environnement Dynamics 365 Finance and Operations. Cette configuration nécessite une base de données Azure SQL et la mise en place de l’exportation des données depuis Dynamics 365.
- Publiez les entités requises : Dans l’espace de travail « Data management », accédez à « Data entities ». Recherchez les entités suivantes et publiez-les dans votre base BYOD : ProdTable, ProdRouteTrans, InventPickingListJour et InventQualityOrderTable. Vérifiez qu’elles sont configurées pour une exportation récurrente.
- Vérifiez la synchronisation des données : Confirmez que les données des entités publiées sont bien synchronisées régulièrement avec votre base de données Azure SQL cible. Consultez l’historique des traitements d’exportation pour repérer d’éventuelles erreurs.
- Connectez-vous à la base BYOD : Utilisez un client SQL, comme SQL Server Management Studio (SSMS) ou Azure Data Studio, pour vous connecter à la base de données Azure SQL qui contient vos données Dynamics 365.
- Préparez la requête SQL : Ouvrez une nouvelle fenêtre de requête et copiez-y la requête SQL complète fournie dans ce document.
- Définissez les paramètres de la requête : Repérez les variables de remplacement dans la requête. Remplacez
{StartDate},{EndDate}et{CompanyCode}par la plage de dates souhaitée et le DataAreaId de la société à analyser. - Exécutez la requête : Lancez la requête SQL modifiée sur la base BYOD. La durée d’exécution dépend du volume de données et de la plage de dates sélectionnée.
- Vérifiez les résultats : Une fois la requête terminée, vérifiez que les résultats contiennent les colonnes attendues et les données de toutes les activités extraites. Le jeu de résultats constitue le journal d’événements.
- Exportez le journal d’événements : Exportez les résultats de la requête dans un fichier CSV. La plupart des clients SQL disposent d’une fonction intégrée permettant d’enregistrer directement les résultats dans un fichier.
- Préparez le fichier pour ProcessMind : Vérifiez que le fichier CSV exporté est encodé en UTF-8 et que ses en-têtes de colonnes correspondent aux noms d’attributs requis par ProcessMind, comme CaseId, Activity et Timestamp. Les alias de la requête fournie sont déjà corrects.
Configuration
- Entités de données clés : La requête s’appuie principalement sur les entités suivantes, exportées vers votre instance BYOD :
PRODTABLE: contient les principales informations d’en-tête et le statut des ordres de production.PRODROUTETRANS: fournit des détails sur les opérations de production et leur achèvement.INVENTPICKINGLISTJOUR: consigne le prélèvement des matières pour les ordres de production.INVENTQUALITYORDERTABLE: suit les ordres de contrôle qualité associés à la production.
- Plage de dates : Il est recommandé de commencer par une période limitée, par exemple trois à six mois de données, afin de préserver des performances de requête satisfaisantes. La requête utilise la date de création de l’ordre de production (
CREATEDDATETIMEdansPRODTABLE) pour le filtrage. - Filtre de code société : Le champ
DATAREAIDsert à filtrer les données d’une entité juridique ou d’une société précise. Remplacez l’espace réservé'{CompanyCode}'par l’identifiant correspondant, par exemple 'usmf'. - Prérequis : Cette méthode nécessite un accès d’administrateur système à Dynamics 365 Finance and Operations pour configurer BYOD, ainsi que des autorisations de contributeur sur la base de données Azure SQL pour exécuter les requêtes.
- Performances : Pour les très grands jeux de données couvrant plusieurs années ou sociétés, envisagez d’exécuter la requête en dehors des heures de pointe. Vous pouvez aussi répartir l’extraction en périodes plus courtes, puis réunir les résultats.
Exemple de requête sql
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity, -- Using calculated quantity at creation
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
p.COSTCALCDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.COSTCALCDATETIME IS NOT NULL AND p.PRODSTATUS >= 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
p.SCHEDDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.SCHEDDATE IS NOT NULL AND p.PRODSTATUS >= 3 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
pl.LEDGERVOUCHERPOSTEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
pl.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTPICKINGLISTJOUR pl
JOIN PRODTABLE p ON pl.INVENTREFID = p.PRODID AND pl.DATAREAID = p.DATAREAID
WHERE pl.LEDGERVOUCHERPOSTEDDATETIME IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
p.RELEASEDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.PRODSTATUS >= 4 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.MODIFIEDDATETIME > p.RELEASEDATE AND p.PRODSTATUS IN (4, 5) AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
p.STARTEDUPDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.STARTEDUPDATETIME IS NOT NULL AND p.PRODSTATUS >= 5 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
prt.PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
prt.TRANSDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
prt.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODROUTETRANS prt
JOIN PRODTABLE p ON prt.PRODID = p.PRODID AND prt.DATAREAID = p.DATAREAID
WHERE prt.POSTINGTYPE = 8 AND prt.TRANSDATE IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 6 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
qo.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
qo.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND qo.STATUS = 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 7 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 0 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'; Étapes
- Vérifiez que Power BI Desktop, ou un autre outil approuvé intégrant Power Query, est disponible et que l’utilisateur est autorisé à lire les entités de données requises de Microsoft Dynamics 365 Manufacturing. Confirmez l’URL de l’environnement, le périmètre de l’entité juridique ou de la société et la méthode d’authentification approuvée.
- Dans Power BI Desktop, sélectionnez Get data, puis choisissez le connecteur Dynamics 365 approuvé ou la connexion OData ou Dataverse propre à l’organisation. Utilisez [Your Dynamics 365 environment connection] et [Your credentials] selon la configuration de votre administrateur. Ne partez pas du principe qu’une entité, un point de terminaison ou un chemin de menu donné est disponible dans tous les déploiements.
- Sélectionnez l’entité d’en-tête des ordres de production, l’entité des opérations ou des gammes, celle du prélèvement des matières ou des listes de prélèvement, les entités de comptabilisation de la production, l’entité des ordres de contrôle qualité, ainsi que toute entité approuvée d’audit, d’historique ou de suivi des modifications nécessaire pour repérer les changements de statut. Dans la requête, remplacez chaque référence à une source par l’entité ou la requête correspondante disponible dans votre environnement.
- Définissez le périmètre de l’extraction. Appliquez [Start date parameter], [End date parameter] et [Your company or legal entity filter]. Limitez la requête aux ordres de production des sites, produits, types d’ordres et statuts requis. Conservez les horodatages sources nécessaires pour distinguer la création, l’estimation, la planification, le prélèvement, la libération, l’ajustement, le démarrage, l’achèvement des opérations, la déclaration de fin, le contrôle qualité, la clôture et l’annulation.
- Dans Power Query, uniformisez les noms et les types des colonnes sources. Convertissez les horodatages des événements dans un type date-heure cohérent et normalisez les identifiants, les valeurs de statut, les sociétés, les sites, les références de produits, les utilisateurs, les quantités et les priorités. Si un champ source n’est pas disponible, renvoyez une valeur nulle au lieu d’en inventer une. Utilisez le numéro de l’ordre de production comme identifiant du cas.
- Créez une table d’événements pour chaque activité. Chaque table doit renvoyer les champs ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity et ProductionPriority. Le nom de l’activité doit être une valeur fixe correspondant à l’un des 13 noms requis.
- Ne repérez l’activité Production Order Adjusted qu’à partir d’une source approuvée d’historique avant/après, d’audit ou de suivi des modifications. Comparez les champs pertinents, tels que la quantité, les dates planifiées, le statut, le site, le produit et la priorité. Créez une ligne d’ajustement pour chaque modification répondant aux critères, en utilisant l’horodatage enregistré. Ne déduisez pas un ajustement du seul instantané actuel de l’ordre de production.
- Combinez les 13 tables d’activités avec UNION ALL. Supprimez les lignes sans numéro d’ordre de production ou sans horodatage d’événement, mais ne dédupliquez pas les achèvements d’opérations, les ajustements ou les événements qualité répétés qui sont légitimes. Triez par ProductionOrderNumber et EventTime, puis selon un critère secondaire déterministe lorsqu’il est disponible.
- Chargez la table obtenue dans Power BI ou exportez-la au format CSV ou dans un autre format de journal d’événements pris en charge par ProcessMind. Vérifiez que les en-têtes exportés sont exactement ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity et ProductionPriority.
- Avant d’importer le fichier dans ProcessMind, vérifiez que chaque activité requise figure sous forme d’événement explicite dans le journal, que les horodatages utilisent un fuseau horaire cohérent, que ProductionOrderNumber est renseigné et que LastDataUpdate indique l’actualisation de l’extraction. ProcessMind lit le journal d’événements tel quel et ne reconstitue pas les événements manquants.
Configuration
- Connexion : Utilisez le connecteur Power Query et la méthode d’authentification approuvés pour l’environnement Dynamics 365. Remplacez [Your Dynamics 365 environment connection] et [Your credentials] par les valeurs approuvées par votre organisation.
- Entités sources : Sélectionnez les entités disponibles dans l’environnement pour les en-têtes des ordres de production, les opérations ou les gammes, le prélèvement des matières ou les listes de prélèvement, la comptabilisation de la production, les ordres de contrôle qualité et les audits ou le suivi des modifications approuvés. Les noms et la disponibilité des entités varient selon le déploiement et doivent être vérifiés dans l’explorateur de métadonnées.
- Plage de dates : Commencez par une période de trois à six mois. Dans la mesure du possible, filtrez les sources sur EventTime et élargissez la période pour vérifier les ordres de production de longue durée ou les transitions de statut historiques.
- Filtres de société et de site : Appliquez [Your company or legal entity filter] et, le cas échéant, le filtre requis pour le site de production. N’utilisez pas de filtre de société générique si l’environnement comprend plusieurs entités juridiques dont les numéros d’ordre peuvent se chevaucher.
- Filtres sur les ordres de production : Filtrez selon les types d’ordres de production, les produits, les sites, les statuts et les plages de numéros d’ordre requis. N’excluez pas les ordres annulés ou clôturés si ces résultats sont nécessaires à l’analyse du processus.
- Inclusion des événements : Conservez les événements répétés d’achèvement d’opération, de prélèvement de matières, de contrôle qualité et d’ajustement. Ne réduisez pas le journal à une seule ligne par ordre de production.
- Fuseau horaire : Convertissez tous les horodatages sources dans un fuseau horaire unique, documenté. Conservez l’horodatage source ou le décalage de fuseau horaire lorsqu’il est fourni.
- Métadonnées d’actualisation : Renseignez LastDataUpdate avec l’horodatage de l’actualisation ou de l’extraction pour chaque ligne. Un horodatage unique convient si l’ensemble des données est extrait au cours d’une seule actualisation.
- Performances : Appliquez les filtres de date, de société, de site et d’ordre à la source. Ne sélectionnez que les colonnes requises, évitez les jointures inutiles, préparez les requêtes sources réutilisables et envisagez une actualisation incrémentielle pour les grands jeux de données.
- Prérequis : Power BI Desktop ou un environnement Power Query approuvé, un accès réseau à l’environnement Dynamics 365, des droits de lecture valides pour toutes les entités sélectionnées et, le cas échéant, les droits nécessaires sur Dynamics 365 Manufacturing, l’entrepôt, la qualité, l’audit ou le suivi des modifications.
- Données dépendantes de la configuration : Si une source d’événements requise n’est pas activée, utilisez [Configure based on your system] et documentez la source manquante. Ne remplacez pas les événements historiques par un instantané du statut actuel.
Exemple de requête sql
let
StartDate = #datetime(2026, 1, 1, 0, 0, 0),
EndDate = #datetime(2026, 6, 30, 23, 59, 59),
CompanyFilter = "[Your company or legal entity filter]",
SourceSystemValue = "Microsoft Dynamics 365 Manufacturing",
RefreshTime = DateTimeZone.RemoveZone(DateTimeZone.UtcNow()),
ProductionOrderHeader = [Your production order header query],
ProductionOrderOperation = [Your production order operation or route query],
MaterialPicking = [Your material picking or picking list query],
ProductionPosting = [Your production posting query],
QualityOrder = [Your quality order query],
ProductionOrderHistory = [Your approved production order audit or change tracking query],
Header = Table.SelectRows(ProductionOrderHeader, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Operations = Table.SelectRows(ProductionOrderOperation, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Picking = Table.SelectRows(MaterialPicking, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Posting = Table.SelectRows(ProductionPosting, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Quality = Table.SelectRows(QualityOrder, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
History = Table.SelectRows(ProductionOrderHistory, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Created = Table.SelectRows(Header, each [EventType] = "Created" or [EventType] = "Firmed"),
Estimated = Table.SelectRows(Header, each [EventType] = "Estimated"),
Scheduled = Table.SelectRows(Operations, each [EventType] = "Scheduled"),
Picked = Table.SelectRows(Picking, each [EventType] = "Picked" or [EventType] = "Posted"),
Released = Table.SelectRows(Header, each [EventType] = "Released"),
Adjusted = Table.SelectRows(History, each [ChangedField] = "Quantity" or [ChangedField] = "PlannedStartDate" or [ChangedField] = "PlannedEndDate" or [ChangedField] = "Status" or [ChangedField] = "ProductionPlant" or [ChangedField] = "ProductNumber" or [ChangedField] = "ProductionPriority"),
Started = Table.SelectRows(Posting, each [EventType] = "Started"),
OperationCompleted = Table.SelectRows(Operations, each [EventType] = "Completed"),
ReportedFinished = Table.SelectRows(Posting, each [EventType] = "Reported as finished" or [EventType] = "Finished"),
QualityGenerated = Table.SelectRows(Quality, each [EventType] = "Generated" or [EventType] = "Created"),
QualityPassed = Table.SelectRows(Quality, each [EventType] = "Passed" or [EventType] = "Validated"),
Ended = Table.SelectRows(Header, each [EventType] = "Ended"),
Cancelled = Table.SelectRows(Header, each [EventType] = "Cancelled"),
ToEvent = (InputTable as table, Activity as text) as table =>
let
Selected = Table.SelectColumns(InputTable, {"ProductionOrderNumber", "EventTime", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}, MissingField.UseNull),
Named = Table.AddColumn(Selected, "ActivityName", each Activity, type text),
Source = Table.AddColumn(Named, "SourceSystem", each SourceSystemValue, type text),
Updated = Table.AddColumn(Source, "LastDataUpdate", each RefreshTime, type datetime),
Ordered = Table.ReorderColumns(Updated, {"ProductionOrderNumber", "ActivityName", "EventTime", "SourceSystem", "LastDataUpdate", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}),
Valid = Table.SelectRows(Ordered, each [ProductionOrderNumber] <> null and [ProductionOrderNumber] <> "" and [EventTime] <> null)
in
Valid,
EventsCreated = ToEvent(Created, "Production Order Created"),
EventsEstimated = ToEvent(Estimated, "Production Order Estimated"),
EventsScheduled = ToEvent(Scheduled, "Production Order Scheduled"),
EventsPicked = ToEvent(Picked, "Materials Picked For Production"),
EventsReleased = ToEvent(Released, "Production Order Released"),
EventsAdjusted = ToEvent(Adjusted, "Production Order Adjusted"),
EventsStarted = ToEvent(Started, "Production Started"),
EventsOperationCompleted = ToEvent(OperationCompleted, "Operation Completed"),
EventsReportedFinished = ToEvent(ReportedFinished, "Production Reported As Finished"),
EventsQualityGenerated = ToEvent(QualityGenerated, "Quality Order Generated"),
EventsQualityPassed = ToEvent(QualityPassed, "Quality Inspection Passed"),
EventsEnded = ToEvent(Ended, "Production Order Ended"),
EventsCancelled = ToEvent(Cancelled, "Production Order Cancelled"),
EventLog = Table.Combine({EventsCreated, EventsEstimated, EventsScheduled, EventsPicked, EventsReleased, EventsAdjusted, EventsStarted, EventsOperationCompleted, EventsReportedFinished, EventsQualityGenerated, EventsQualityPassed, EventsEnded, EventsCancelled}),
Typed = Table.TransformColumnTypes(EventLog, {{"ProductionOrderNumber", type text}, {"ActivityName", type text}, {"EventTime", type datetime}, {"SourceSystem", type text}, {"LastDataUpdate", type datetime}, {"ProductionOrderStatus", type text}, {"PlannedStartDate", type datetime}, {"PlannedEndDate", type datetime}, {"UserId", type text}, {"ProductionPlant", type text}, {"ProductNumber", type text}, {"ProductionType", type text}, {"ActualQuantity", type number}, {"ProductionPriority", type text}}),
Sorted = Table.Sort(Typed, {{"ProductionOrderNumber", Order.Ascending}, {"EventTime", Order.Ascending}, {"ActivityName", Order.Ascending}})
in
Sorted Prêt à commencer ?
Ce modèle complet vous fournit tout le nécessaire pour commencer à extraire et à analyser les données de planification de la production. Commencez dès aujourd’hui à optimiser vos opérations pour gagner en efficacité.
Gagnez en efficacité : optimisez dès aujourd’hui la planification de la production
Repérez les goulots d’étranglement et réduisez le temps de cycle de production de 30 % ou plus.
Aucune carte bancaire requise. Configuration en quelques minutes.