Uw Template voor Productieplanning Data
Uw Template voor Productieplanning Data
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- Extractiehandleiding voor Microsoft Dynamics 365 Manufacturing
Productieplanning attributes
| Naam | Omschrijving | ||
|---|---|---|---|
| Productieorder ProductionOrderNumber | De unieke identifier voor een productieorder, dienend als de primaire case ID voor het tracken van alle gerelateerde planning- en execution activiteiten. | ||
| Omschrijving Het Productieordernummer, vaak aangeduid als ProdId in Microsoft Dynamics 365, is de centrale identifier die alle events, materialen, resources en kosten koppelt die geassocieerd zijn met een specifieke manufacturing job. Het maakt een complete end-to-end analyse van de productieplanning en execution lifecycle mogelijk voor een enkele unit of work. Binnen process mining is dit attribute essentieel voor het groeperen van gerelateerde events in een enkele case. Het analyseren van processen per Productieordernummer helpt knelpunten, vertragingen en afwijkingen in de standaard productie flow te identificeren, van initiële creatie en scheduling tot voltooiing en costing. Het belang Dit is de fundamentele case identifier, die cruciaal is voor het groeperen van alle gerelateerde events en het reconstrueren van het end-to-end productieplanning proces voor analyse. Vindplaats Dit is het 'ProdId' field in de 'ProdTable' table in Microsoft Dynamics 365 Manufacturing. Voorbeelden WO-000456WO-000457WO-000458 | |||
| Activiteitsnaam ActivityName | De naam van de specifieke business event of stap die plaatsvond binnen het productieplanning proces. | ||
| Omschrijving De Activity Name beschrijft een enkele stap in de productieplanning lifecycle, zoals 'Productieorder aangemaakt', 'Materialen gepickt voor productie', of 'Productie gestart'. Deze activiteiten zijn de bouwstenen van de process map. Het analyseren van de sequentie en duur van deze activiteiten maakt het mogelijk de process flow te visualiseren, gemeenschappelijke pathways te identificeren, rework loops te detecteren en de bestede tijd in verschillende stages te meten. Dit attribute is cruciaal voor het begrijpen van wat er op elk punt in het proces gebeurt. Het belang Dit attribute definieert de stappen in het proces, waardoor de constructie van een process map en analyse van process flow, variaties en knelpunten mogelijk wordt. Vindplaats Deze value wordt typisch afgeleid van event logs of door verschillende statuswijzigingen en transactietypes te mappen in tables zoals 'ProdRouteTrans', 'ProdJournalBOM', en wijzigingen in de 'ProdTable' status fields. Voorbeelden Productieorder aangemaaktProductieorder vrijgegevenProductie gestartProductie afgemeld als gereed | |||
| Bronsysteem SourceSystem | Het bronsysteem waaruit de data is geëxtraheerd. | ||
| Omschrijving Dit attribute identificeert het source information system waar de event data vandaan komt. Voor deze process view zou de waarde consistent 'Microsoft Dynamics 365 Manufacturing' zijn. In omgevingen met meerdere geïntegreerde systemen is dit field cruciaal voor data lineage, troubleshooting data quality issues, en het begrijpen hoe verschillende systemen bijdragen aan het algehele proces. Het verzekert helderheid over de oorsprong van de geanalyseerde data. Het belang Het biedt cruciale context over de herkomst van de data, wat essentieel is voor datagovernance, validatie en het beheren van datapijplijnen uit meerdere bedrijfssystemen. Vindplaats Dit is een statische value die moet worden toegevoegd tijdens het data extraction en transformation proces om de origin van de dataset te labelen. Voorbeelden Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Laatste data-update LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit event voor het laatst is vernieuwd of geëxtraheerd uit het bronsysteem. | ||
| Omschrijving Dit attribute biedt de datum en tijd van de meest recente data pull uit het source systeem. Het is een metadata field dat cruciaal is voor het begrijpen van de freshness en currency van de analyse. Weten wanneer de data voor het laatst is geüpdatet, helpt analisten en business users de inzichten die voortkomen uit de process mining tool te vertrouwen. Het verduidelijkt of de dashboards real-time informatie weerspiegelen of data van een eerder tijdstip, wat belangrijk is voor operationele besluitvorming. Het belang Dit attribute is vitaal voor data governance, en verzekert dat users de freshness van de data begrijpen en de timeliness van de procesinzichten kunnen vertrouwen. Vindplaats Deze timestamp wordt gegenereerd en gestempeld op elke record tijdens het data extraction, transformation, en loading (ETL) proces. Voorbeelden 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Tijdstip Gebeurtenis EventTime | De precieze `timestamp` die aangeeft wanneer de `activiteit` plaatsvond. | ||
| Omschrijving Event Time, of de tijdstempel, registreert de exacte datum en tijd waarop een specifieke activiteit plaatsvond. Deze data is fundamenteel voor alle tijdsgebonden process mining-analyses, inclusief het berekenen van doorlooptijden, het identificeren van vertragingen tussen stappen en het begrijpen van procesprestaties over tijd. In de context van productieplanning wordt dit attribuut gebruikt om duur te meten, zoals planning doorlooptijd, vertragingen in productiestart en totale orderafhandelingstijd. Nauwkeurige en chronologische tijdstempels zijn essentieel voor het bouwen van een correct en zinvol procesmodel. Het belang Deze timestamp is essentieel voor het ordenen van events, het berekenen van duraties tussen activities, en het uitvoeren van elke tijdgebaseerde analyse zoals cycle time en bottleneck identificatie. Vindplaats Gevonden in verschillende transactietabellen, zoals 'createdDateTime' in 'ProdTable', of transactiedatumvelden in 'ProdRouteTrans', 'ProdJournalRoute' en 'ProdJournalBOM'. Voorbeelden 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Gebruiker UserId | De identificatie van de gebruiker die de activiteit heeft uitgevoerd of hiervoor verantwoordelijk is. | ||
| Omschrijving De User ID identificeert de medewerker of het systeemaccount dat een specifieke processtap heeft uitgevoerd, zoals het vrijgeven van een order of het afmelden van voltooiing. Deze informatie biedt visibility in wie werkzaamheden binnen het proces uitvoert. Het analyseren van het proces per user helpt bij het begrijpen van workload distributie, het identificeren van training opportunities, het vergelijken van performance tussen individuen of teams, en het onderzoeken van deviations uitgevoerd door specifieke users. Het is ook belangrijk voor compliance en audit trail doeleinden. Het belang Het maakt analyse van procesprestaties per gebruiker of team mogelijk, helpt automatiseringskansen te identificeren en biedt een audit trail voor belangrijke procesactiviteiten. Vindplaats Gevonden in velden zoals 'modifiedBy' of 'createdBy' in verschillende tabellen, of gebruikersvelden in transactielogtabellen zoals 'ProdJournalTable'. Voorbeelden j.smithm.jonesAX_BATCH_SVC | |||
| Geplande Einddatum PlannedEndDate | De datum en tijd waarop de productieorder gepland is te worden voltooid. | ||
| Omschrijving De Geplande Einddatum is de target voltooiingstijd voor een productieorder zoals bepaald door de scheduling engine. Het houdt rekening met operation times, resource calendars en lead times om te forecasten wanneer de finished goods gereed zullen zijn. In procesanalyse is dit attribute cruciaal voor het evalueren van de on-time completion performance. Het vergelijken van de Geplande Einddatum met de actuele completion timestamp (van de 'Productie afgemeld als gereed' of 'Productieorder beëindigd' activity) maakt de berekening van de On-Time Production Completion Rate KPI mogelijk en helpt bij het identificeren van systemische redenen voor late leveringen. Het belang Dit attribute is de benchmark voor het meten van on-time completion rates en het analyseren van de nauwkeurigheid van productie scheduling. Vindplaats Dit is het 'SchedEnd' field in de 'ProdTable' table. Voorbeelden 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Geplande Startdatum PlannedStartDate | De datum en tijd waarop de productieorder gepland is te beginnen. | ||
| Omschrijving De Geplande Startdatum is een key output van het scheduling proces, en representeert de target tijd voor het starten van productieactiviteiten voor een order. Deze datum wordt bepaald op basis van materiaalbeschikbaarheid, resource capaciteit en vraagdeadlines. Dit attribute is essentieel voor schedule adherence analyse. Door de Geplande Startdatum te vergelijken met de actuele starttijd van productie (van de 'Productie gestart' activity timestamp), kunnen organisaties de punctualiteit meten, oorzaken van vertragingen identificeren en KPI's zoals de Production Schedule Adherence Rate berekenen. Het belang Het dient als basislijn voor het meten van de naleving van het schema en het identificeren van vertragingen tussen planning en de feitelijke start van de productie. Vindplaats Dit is het 'SchedStart' field in de 'ProdTable' table. Voorbeelden 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Productieorderstatus ProductionOrderStatus | Geeft de huidige levenscyclusstatus van de productieorder aan. | ||
| Omschrijving De Productieorderstatus weerspiegelt de voortgang van de order gedurende de manufacturing lifecycle. Gangbare statuses in Dynamics 365 omvatten Aangemaakt, Geschat, Gepland, Vrijgegeven, Gestart, Afgemeld als gereed, en Beëindigd. Dit attribute biedt een snapshot van waar elke order zich op een gegeven moment bevindt. Binnen process mining is het analyseren van statuswijzigingen een primaire manier om activiteiten te definiëren en de process flow te begrijpen. Het kan worden gebruikt om te filteren op orders in een specifieke state, de bestede tijd in elke status te analyseren, en orders te identificeren die vastzitten of vertraagd zijn. Het belang Dit attribute biedt een high-level overview van de voortgang van een order en is cruciaal voor filtering, conformance checking en het analyseren van de bestede tijd in verschillende productiephases. Vindplaats Dit is het 'ProdStatus' field in de 'ProdTable' table. Voorbeelden IngeplandVrijgegevenGestartAfgesloten | |||
| Productieprioriteit ProductionPriority | Een beoordeling die de urgentie of prioriteit van de productieorder aangeeft. | ||
| Omschrijving Productieprioriteit is een veld dat door planners en schedulers wordt gebruikt om de volgorde van werkzaamheden op de werkvloer te beheren. Orders met een hogere prioriteit kunnen worden versneld, wat mogelijk de geplande schedule voor andere orders verstoort. Het analyseren van dit attribute helpt te begrijpen hoe vaak productieplannen worden verstoord door orders met een hoge prioriteit of versnelde orders. Het volgen van prioriteitswijzigingen gedurende de lifecycle van een order kan instabiliteit in vraag of planning aan het licht brengen. Dit is cruciaal voor het 'Expedited Production Trends' dashboard en de 'Expedited Production Rate' KPI. Het belang Dit helpt de frequentie en impact van versnelde orders te identificeren, wat kan duiden op planning instabiliteit of reactief operationeel management. Vindplaats Dit kan een standaard of custom field zijn op de 'ProdTable'. Configuratie is vaak bedrijfsspecifiek. Voorbeelden NormaalHoog`Urgent` | |||
| Productietype ProductionType | De classificatie van de productieorder, zoals standaard, rework, of projectgebaseerd. | ||
| Omschrijving Productietype categoriseert de order op basis van het doel. Een 'Standard' order is bijvoorbeeld voor reguliere voorraadproductie, een 'Rework' order dient om defecten in een eerder geproduceerd item te herstellen, en een 'Project' order is gekoppeld aan een specifiek klantproject. Dit attribute is belangrijk voor het creëren van vergelijkbare analyseweergaven. Het proces voor een rework order is inherent anders dan dat van een standaard order. Het segmenteren van de procesanalyse per Productietype zorgt ervoor dat vergelijkingen zinvol zijn en helpt bij het begrijpen van de unieke uitdagingen en flows van elk type. Het belang Dit attribute maakt de segmentatie van analyse mogelijk, aangezien verschillende ordertypes zoals 'Standard' en 'Rework' van nature verschillende processen volgen en verschillende performance verwachtingen hebben. Vindplaats Dit is het 'ProdType' field in de 'ProdTable' table. Voorbeelden StandaardHerwerkProject | |||
| Productievestiging ProductionPlant | De productievestiging of fabriek waar de productieorder wordt uitgevoerd. | ||
| Omschrijving De Productievestiging identificeert de fysieke locatie of faciliteit die verantwoordelijk is voor het manufacturing proces. Het is een key organisatorische dimensie voor het segmenteren en vergelijken van productieperformance. Binnen process mining maakt dit attribute benchmarking van performance over verschillende plants mogelijk. Analisten kunnen cycle times, resource utilization en adherence aan standaard processen tussen sites vergelijken om best practices te identificeren of faciliteiten te lokaliseren die operationele verbeteringen vereisen. Het is essentieel voor capaciteitsbenuttingsanalyse. Het belang Dit maakt performance vergelijking en benchmarking mogelijk over verschillende manufacturing sites, wat helpt bij het identificeren van best practices en gebieds-specifieke issues. Vindplaats Dit is het 'InventSiteId' field in de 'ProdTable' table. Voorbeelden SITE-ASITE-BMain-WH | |||
| Productnummer ProductNumber | De unieke identifier voor het item dat wordt geproduceerd. | ||
| Omschrijving Het Productnummer, of Item ID, specificeert het finished good dat de productieorder beoogt te creëren. Het koppelt het productieproces aan het specifieke product dat wordt gemaakt, samen met de bijbehorende bill of materials en routing instructies. Het analyseren van het proces per Productnummer helpt product-specifieke variaties in de manufacturing lifecycle te onthullen. Het kan aantonen dat bepaalde producten langere cycle times hebben, meer rework vereisen, of frequentere vertragingen ervaren, wat waardevolle input levert voor product- en procesingenieurs. Het belang Het maakt analyse van procesvariaties op basis van het geproduceerde product mogelijk, wat helpt bij het identificeren van productspecifieke knelpunten of kwaliteitsproblemen. Vindplaats Dit is het 'ItemId' field in de 'ProdTable' table. Voorbeelden FG-1001FG-2050ASSY-500B | |||
| Werkelijke Hoeveelheid ActualQuantity | De hoeveelheid goederen die succesvol is geproduceerd en afgemeld als gereed voor de order. | ||
| Omschrijving De Actuele Hoeveelheid representeert het aantal eenheden dat is voltooid en kwaliteitscontroles heeft doorstaan voor een gegeven productieorder. Deze waarde wordt geregistreerd wanneer productie wordt 'Afgemeld als gereed'. Dit attribute wordt gebruikt om productierendement en efficiëntie te analyseren. Het vergelijken van de Actuele Hoeveelheid met de Geplande Hoeveelheid helpt bij het berekenen van uitvalpercentages en het begrijpen van productieverliezen. Het is ook een key component van throughput analyse en capaciteitsbenuttings dashboards. Het belang Het is essentieel voor het berekenen van productierendement, afvalpercentages en daadwerkelijke doorvoer, wat inzicht geeft in productie-efficiëntie en -prestaties. Vindplaats Deze value komt vaak uit het 'QtyGood' field in de 'ProdTable' of gerelateerde journal posting tables wanneer een order wordt afgemeld als gereed. Voorbeelden 100985000 | |||
| Eindtijd EndTime | De precieze timestamp die aangeeft wanneer de activity werd voltooid. | ||
| Omschrijving De End Time markeert de voltooiing van een specifieke activity. Terwijl Start Time het begin aangeeft, is End Time nodig om de daadwerkelijke duur of processing time van die enkele stap te begrijpen. Binnen process mining maakt het hebben van zowel een Start- als End Time voor activiteiten een meer granulaire analyse van waiting time versus processing time mogelijk. Het helpt onderscheid te maken tussen de tijd dat aan een activity actief werd gewerkt en de tijd die werd besteed aan wachten op de volgende stap, wat cruciaal is voor gedetailleerde bottleneck analyse. Het belang Het maakt de berekening van de activiteitsverwerkingstijd mogelijk, waarbij deze wordt onderscheiden van wachttijd, wat een preciezere knelpuntanalyse toestaat. Vindplaats Dit is vaak afgeleid. Bijvoorbeeld, de end time van 'Productie gestart' zou de start time van 'Operation voltooid' kunnen zijn. In sommige logs kan een end timestamp expliciet worden geregistreerd. Voorbeelden 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Geplande Hoeveelheid PlannedQuantity | De hoeveelheid van het item dat gepland is te worden geproduceerd. | ||
| Omschrijving De Geplande Hoeveelheid is het target aantal eenheden dat voor een gegeven productieorder moet worden geproduceerd. Deze hoeveelheid wordt typisch gedreven door vraag vanuit sales orders, safety stock vereisten, of master planning. Dit attribute dient als de baseline voor performance metrics zoals yield en scrap. Door de Geplande Hoeveelheid te vergelijken met de Actuele Hoeveelheid geproduceerde goederen, kunnen planners de productie-efficiëntie en materiaalvariantie monitoren. Het is een fundamenteel data point voor capaciteits- en materiaalbehoefteplanning. Het belang Dit is de baseline hoeveelheid die wordt gebruikt om productierendement en scrap rates te meten door deze te vergelijken met de actuele geproduceerde hoeveelheid. Vindplaats Dit is het 'QtySched' field in de 'ProdTable' table. Voorbeelden 1005000250 | |||
| Kwaliteitsordernummer QualityOrderNumber | De identifier voor een kwaliteitscontroleorder gekoppeld aan de productieorder. | ||
| Omschrijving Wanneer een kwaliteitsinspectie vereist is, wordt er vaak een Kwaliteitsorder gegenereerd in Dynamics 365. Dit attribuut koppelt het productieproces aan het kwaliteitsborgingsproces en legt de ID van de bijbehorende kwaliteitsorder vast. Deze koppeling maakt een uitgebreider end-to-end procesoverzicht mogelijk dat kwaliteitsmanagementstappen omvat. Het helpt analyseren hoe kwaliteitsinspecties de productiedoorlooptijden beïnvloeden, vertragingen in het kwaliteitsproces identificeren en de frequentie van kwaliteitscontroles voor verschillende producten of productielijnen begrijpen. Het belang Het verbindt het productieproces met het kwaliteitsborgingsproces, waardoor analyse mogelijk is van hoe kwaliteitsinspecties de totale doorlooptijden beïnvloeden. Vindplaats Deze informatie is opgeslagen in quality management tables (bijv. 'InventQualityOrderTable') en moet worden teruggekoppeld aan de productieorder. Voorbeelden QO-00123QO-00124QO-00125 | |||
| Materiaalbeschikbaarheid MaterialAvailabilityStatus | Geeft aan of de benodigde grondstoffen voor de productieorder beschikbaar zijn. | ||
| Omschrijving Dit attribute trackt de readiness van componenten die nodig zijn voor productie. Het kan statuses weerspiegelen zoals 'Beschikbaar', 'In bestelling', of 'Tekort'. Deze informatie is cruciaal voor schedulers om te begrijpen of een productieorder realistisch kan starten zoals gepland. Binnen process mining is dit attribute cruciaal voor het diagnosticeren van de root causes van production start delays. Door deze status te correleren met de tijd tussen 'Productieorder vrijgegeven' en 'Productie gestart', kunnen analisten de impact van materiaaltekorten op schedule adherence en de algehele cycle time kwantificeren. Dit ondersteunt direct het 'Material Availability Delay Impact' dashboard. Het belang Dit is key voor het begrijpen en kwantificeren van production start delays veroorzaakt door materiaaltekorten, en koppelt supply chain performance aan manufacturing efficiency. Vindplaats Deze status is vaak geen single field maar wordt afgeleid door de on-hand inventory levels voor alle items in de Bill of Materials (BOM) van de productieorder te controleren via de 'InventSum' table. Voorbeelden Volledig BeschikbaarGedeeltelijk TekortNiet Beschikbaar | |||
| Op Tijd Gestart ProductionScheduleAdherence | Een Booleaanse vlag die 'true' is als de productieorder op of vóór de geplande startdatum is begonnen. | ||
| Omschrijving Dit berekende attribute biedt een eenvoudige, binaire indicator van schedule adherence voor de start van productie. Het vergelijkt de actuele start timestamp ('Productie gestart' event) met het 'PlannedStartDate' attribute. Deze flag is extreem nuttig voor het creëren van duidelijke en beknopte dashboards en KPI's, zoals de 'Production Schedule Adherence Rate'. Het maakt eenvoudige filtering en aggregatie mogelijk om te zien welk percentage orders op tijd start en om de kenmerken van vertraagde orders te analyseren, zonder dat directe datumvergelijkingen in de analyse tool hoeven te worden uitgevoerd. Het belang Dit vereenvoudigt reporting en KPI berekening voor schedule adherence, waardoor eenvoudige filtering en aggregatie van on-time versus late orders mogelijk wordt. Vindplaats Dit is een berekende metric. De logica is: 'Productie gestart' EventTime <= PlannedStartDate. Voorbeelden truefalse | |||
| Productiecyclustijd ProductionCycleTime | De totale duur van de productieorder van aanmaak tot de uiteindelijke voltooiing. | ||
| Omschrijving Deze metric meet de end-to-end cycle time voor een enkele productieorder. Het wordt berekend als het tijdsverschil tussen de eerste event (typisch 'Productieorder aangemaakt') en de laatste event (bijv. 'Productieorder beëindigd') voor de case. Productiecyclustijd is een fundamentele KPI voor het beoordelen van de algehele procesefficiëntie. Het analyseren van deze metric helpt langlopende orders te identificeren, de gemiddelde tijd voor het produceren van producten te begrijpen, en performance verbeteringen over tijd te tracken. Het is een key measure voor het 'Production Performance Overview' dashboard. Het belang Dit is een kritische KPI voor het meten van de algehele procesefficiëntie en het identificeren van trends of outliers in de tijd die nodig is om een productieorder te voltooien. Vindplaats Dit is een berekende metric, gecomputed door de timestamp van de eerste event af te trekken van de timestamp van de laatste event voor elk Productieordernummer. Voorbeelden 7d 4u 30m10d 2u 15m5d 8u 0m | |||
| Productielijn ProductionLine | De specifieke productielijn, work center, of resourcegroep toegewezen aan de productieorder. | ||
| Omschrijving De Productielijn identificeert de specifieke machine, cel, of groep resources die de manufacturing operations zullen uitvoeren. Dit biedt een meer granulair detailniveau dan de Productievestiging. Het analyseren van het proces per Productielijn is cruciaal voor gedetailleerde capaciteits- en utilizatieanalyse. Het helpt overloaded work centers te identificeren, de efficiëntie van verschillende lijnen die hetzelfde product produceren te vergelijken, en resource-specifieke knelpunten te pinpointen die mogelijk niet zichtbaar zijn op plant-niveau. Het belang Dit maakt granulaire analyse van resource utilization en performance mogelijk, wat helpt bij het identificeren van overloaded work centers of inefficiënte lijnen. Vindplaats Deze informatie is vaak te vinden in het 'WrkCtrId' field in de productie route transacties ('ProdRoute' of 'ProdRouteTrans' tables). Voorbeelden LINE-01LINE-02CNC-A | |||
| Productiestartvertraging ProductionStartDelay | De verstreken tijd tussen het vrijgeven van de order en de daadwerkelijke start van de productie. | ||
| Omschrijving Deze berekende duur meet de waiting time of queue time op de shop floor. Het is het tijdsverschil tussen de 'Productieorder vrijgegeven' activity en de 'Productie gestart' activity. Deze KPI is vitaal voor het 'Resource Allocation Delay Analysis' dashboard, aangezien het delays pinpoint die optreden nadat de planning is voltooid en de order klaar is voor execution. Hoge waarden kunnen duiden op issues met resource availability, material staging, of information flow naar de shop floor, wat een helder target biedt voor operationele verbeteringen. Het belang Het meet nauwkeurig de 'klaar-om-te-starten'-vertraging, wat helpt knelpunten te identificeren die verband houden met middelenbeschikbaarheid of gereedheid van de werkplaats. Vindplaats Dit is een berekende metric: Timestamp('Productie gestart') - Timestamp('Productieorder vrijgegeven'). Voorbeelden 0d 4u 15m1d 2u 0m0d 1u 30m | |||
| Revisienummer ProductionOrderRevisionNumber | Een telling van hoe vaak een productieplan is aangepast na de initiële aanmaak. | ||
| Omschrijving Dit attribute trackt het aantal revisies of significante wijzigingen aan een productieorder, zoals wijzigingen in hoeveelheid, data, of routing, nadat deze is gescheduled of vrijgegeven. Een hoger aantal duidt op grotere instabiliteit in het plan. Dit is een directe measure voor de 'Production Plan Revision Rate' KPI. Het analyseren hiervan helpt bronnen van planning instabiliteit te identificeren, zoals frequente vraagwijzigingen of inaccurate initiële planning. Het kwantificeert de hoeveelheid rework en rescheduling effort, wat vaak leidt tot inefficiënties. Het belang Dit meet direct de planning stabiliteit en ondersteunt de 'Production Plan Revision Rate' KPI, en belicht processen met excessieve wijzigingen en rework. Vindplaats Dit is een afgeleid attribute dat het tellen van de occurrences van 'Productieorder aangepast' activiteiten voor elke case vereist. Voorbeelden 012 | |||
Productieplanning activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Productie afgemeld als gereed | Geeft aan dat het productieproces voor de gespecificeerde hoeveelheid van het product fysiek is voltooid en de gereed product goederen nu in voorraad zijn. Dit is een kritieke statusupdate die voorraadtransacties triggert. | ||
| Het belang Dit markeert het einde van de fysieke productie. Het is essentieel voor het berekenen van on-time completion rates, actuele productieduur en throughput. Vindplaats Vastgelegd wanneer de productieorderstatus in de ProdTable verandert naar 'Gereedgemeld'. Dit wordt geactiveerd door het boeken van een Gereedgemeld-journaal. Vastleggen Detecteer de tijdstempel wanneer het ProdStatus-veld in de ProdTable verandert naar 'Gereedgemeld'. Gebeurtenistype inferred | |||
| Productie gestart | Markeert het begin van fysiek productiewerk voor de order op de werkvloer. Dit wordt vaak geregistreerd wanneer de eerste operatie of taak wordt gestart via een werkplaats terminal of journaalboeking. | ||
| Het belang Deze activity biedt de actuele starttijd voor productie, wat cruciaal is voor het berekenen van startvertragingen, schedule adherence en actuele lead times. Vindplaats Vastgelegd wanneer de productieorderstatus in de ProdTable verandert naar 'Gestart'. Dit wordt vaak geactiveerd door het boeken van een job card of route card-journaal voor de eerste operatie. Vastleggen Detecteer de tijdstempel wanneer het ProdStatus-veld in de ProdTable verandert naar 'Gestart'. Gebeurtenistype inferred | |||
| Productieorder aangemaakt | Deze activity markeert de creatie van een productieorder, die de vraag naar een specifieke hoeveelheid van een product formaliseert. Dit wordt typisch vastgelegd wanneer een geplande productieorder wordt gefirmed, wat een officiële record in het systeem creëert met een unieke ID. | ||
| Het belang Dit is de primaire start event voor het productieproces. Het analyseren van de tijd vanaf deze creatie tot volgende stappen helpt de algehele planning lead time en efficiëntie te meten. Vindplaats Deze event wordt afgeleid van de creation timestamp van de productieorder record in de ProdTable. De initiële status is typisch 'Aangemaakt'. Vastleggen Leg de aanmaaktijdstempel vast van een nieuwe entry in de ProdTable waar de ProdStatus 'Created' is. Gebeurtenistype inferred | |||
| Productieorder beëindigd | Dit is de finale activity, die de financial closing van de productieorder representeert. Alle kosten zijn berekend en geboekt, en geen verdere transacties kunnen tegen de order worden gemaakt. | ||
| Het belang Dit markeert de ware voltooiing van de order vanuit zowel een fysiek als financieel perspectief. Vertragingen tussen 'Afgemeld als gereed' en 'Beëindigd' kunnen wijzen op issues in kostenaccounting of financial closing processen. Vindplaats Dit is de finale statuswijziging die wordt vastgelegd wanneer het 'ProdStatus' field in de 'ProdTable' is ingesteld op 'Beëindigd'. Dit wordt getriggerd door het uitvoeren van de kostenberekening en het beëindigen van de order. Vastleggen Detecteer de tijdstempel wanneer het ProdStatus-veld in de ProdTable verandert naar 'Afgesloten'. Gebeurtenistype inferred | |||
| Productieorder gepland | Deze activity markeert de scheduling van de productieorder, die specifieke resources, data en tijden alloceert voor de operations ervan. Deze stap kan operations scheduling of meer gedetailleerde job scheduling omvatten. | ||
| Het belang Scheduling is cruciaal voor capaciteitsplanning en resource management. Het analyseren van de tijd die nodig is om orders te schedule'en en de kloof vóór vrijgave, onthult planning- en capaciteitsbeperkingen. Vindplaats Vastgelegd wanneer de productieorderstatus in de ProdTable verandert naar 'Gepland'. Dit wordt geactiveerd door een gebruiker die een planningsfunctie uitvoert. Vastleggen Detecteer de tijdstempel wanneer het ProdStatus-veld in de ProdTable verandert naar 'Gepland'. Gebeurtenistype inferred | |||
| Productieorder vrijgegeven | Deze activity duidt aan dat de productieorder is goedgekeurd en geautoriseerd voor execution op de shop floor. Dit is een key milestone die documenten zoals job cards en route cards vrijgeeft. | ||
| Het belang Dit is de officiële handoff van planning naar execution. De tijd tussen 'Gepland' en 'Vrijgegeven' kan duiden op approval delays of finale checks, terwijl de tijd van 'Vrijgegeven' naar 'Gestart' de shop floor readiness meet. Vindplaats Dit wordt vastgelegd wanneer de productieorder status in de ProdTable verandert naar 'Vrijgegeven'. Dit is een handmatige of geautomatiseerde user actie. Vastleggen Detecteer de tijdstempel wanneer het ProdStatus-veld in de ProdTable verandert naar 'Vrijgegeven'. Gebeurtenistype inferred | |||
| Bewerking Voltooid | Deze activity duidt de voltooiing aan van een individuele manufacturing operation of stap in de productieroute. Een productieorder zal typisch meerdere van deze events hebben. | ||
| Het belang Het analyseren van de tijd tussen operaties helpt knelpunten binnen het productieproces zelf te identificeren. Het biedt een gedetailleerder beeld van de werkplaatsstroom. Vindplaats Dit is een expliciete event vastgelegd vanuit het boeken van routekaart journals (ProdJournalRoute) voor elke operation, wat de voltooiing van die stap aangeeft. Vastleggen Leg de boekingstijdstempel vast van elke ProdJournalRoute-record die geassocieerd is met de productieorder. Gebeurtenistype explicit | |||
| Kwaliteitsinspectie goedgekeurd | Representeert de succesvolle voltooiing en validatie van een kwaliteitsorder die geassocieerd is met de productierun. Dit bevestigt dat de geproduceerde items voldoen aan de vereiste kwaliteitsstandaarden. | ||
| Het belang Dit is een key milestone in het kwaliteitsproces. De duur tussen kwaliteitsorder generatie en het slagen voor de inspectie belicht de efficiëntie van het QA team. Vindplaats Afgeleid uit een statuswijziging op de InventQualityOrderTable-record naar een 'Geslaagd'-status. De specifieke statuswaarde kan variëren. Vastleggen Detecteer de tijdstempel wanneer de status op de geassocieerde InventQualityOrderTable-record wordt bijgewerkt naar 'Geslaagd'. Gebeurtenistype inferred | |||
| Kwaliteitsorder gegenereerd | Er is een kwaliteitsorder aangemaakt om de output van de productieorder te inspecteren. Deze gebeurtenis markeert de start van het kwaliteitsborgingsproces voor de geproduceerde goederen. | ||
| Het belang Het volgen van het kwaliteitsproces is belangrijk voor het begrijpen van de totale doorlooptijd. Vertragingen bij kwaliteitsinspecties kunnen voorkomen dat goederen worden verzonden of gebruikt in volgende processen. Vindplaats Dit is een expliciete event gebaseerd op de creatie van een record in de InventQualityOrderTable die verwijst naar de source productieorder. Vastleggen Leg de aanmaaktijdstempel vast van de kwaliteitsorder in InventQualityOrderTable gekoppeld aan de productieorder-ID. Gebeurtenistype explicit | |||
| Materialen Gepickt Voor Productie | Geeft aan dat de benodigde grondstoffen voor de productieorder uit het magazijn zijn gepickt en klaar zijn voor verbruik. Deze gebeurtenis wordt vastgelegd na voltooiing van een grondstoffen-picktaak of het boeken van een picklijstjournaal. | ||
| Het belang Deze activity is een cruciale gate voor het starten van productie. Vertragingen tussen scheduling en materiaalpicking benadrukken issues in warehouse operations of materiaalbeschikbaarheid. Vindplaats Dit is typisch een expliciete event geregistreerd in warehouse management tables (WHSWorkTable) of inventory journals (InventJournalTrans) gekoppeld aan de productieorder. Vastleggen Leg de boekingstijdstempel vast van het picklijstjournaal dat geassocieerd is met de productieorder. Gebeurtenistype explicit | |||
| Productieorder aangepast | Representeert een significante wijziging aan de productieorder nadat deze is vrijgegeven, zoals een hoeveelheidswijziging of datumaanpassing. Deze event wordt afgeleid door key fields voor en na een wijziging te vergelijken. | ||
| Het belang Frequente aanpassingen duiden op planningsinstabiliteit of volatiele vraag, wat leidt tot inefficiënties en herbewerking. Dit helpt de frequentie en impact van dergelijke wijzigingen te kwantificeren. Vindplaats Afgeleid door wijzigingslogs te analyseren of momentopnamen van de ProdTable-record te vergelijken voor velden zoals 'QtySched' of 'SchedEnd' nadat de orderstatus 'Vrijgegeven' is. Vastleggen Identificeer wijzigingen in sleutelvelden (bijv. hoeveelheid, data) op ProdTable na de 'Vrijgegeven' event tijdstempel. Gebeurtenistype calculated | |||
| Productieorder geannuleerd | Representeert de annulering van een productieorder voordat deze was voltooid. Dit is een alternatief, niet-succesvol einde van het proces. | ||
| Het belang Het bijhouden van annuleringen helpt de oorzaken van procesfalen te identificeren, zoals wijzigingen in de vraag of planningsfouten. Hoge annuleringspercentages kunnen duiden op systemische problemen. Vindplaats Dit is een alternatieve end state afgeleid van een statuswijziging. De exacte status kan variëren, maar het omvat vaak het resetten van de order status naar een vorige state en het markeren als geannuleerd. Vastleggen Detecteer een statuswijziging die annulering aangeeft. Dit kan specifieke systeemanalyses vereisen om te identificeren. Gebeurtenistype inferred | |||
| Productieorder geschat | Representeert de berekening van het geschatte materiaal- en kostenverbruik voor de productieorder. Dit is een cruciale planningsstap om te verzekeren dat financiële en materiële vereisten worden begrepen voordat verder wordt gegaan. | ||
| Het belang Vertragingen bij de schatting kunnen een aanzienlijk knelpunt zijn in de planningsfase. Het volgen van deze activiteit helpt inefficiënties in het kosten- en materiaalplanningsproces te identificeren. Vindplaats Dit wordt vastgelegd wanneer de productieorder status in de ProdTable verandert naar 'Geschat'. Dit wordt getriggerd door een user die de 'Schatten' functie op de order uitvoert. Vastleggen Detecteer de tijdstempel wanneer het ProdStatus-veld in de ProdTable verandert naar 'Geschat'. Gebeurtenistype inferred | |||
Extractie Guides
Stappen
- Navigeer naar de Data Management Werkruimte: Log in op Microsoft Dynamics 365 Finance and Operations. Gebruik de zoekbalk om de
Data management-werkruimte te vinden en ernaartoe te navigeren. - Maak een Nieuw Exportproject: Selecteer binnen de werkruimte de
Export-tegel om een nieuw gegevensexportproject aan te maken. Geef een beschrijvende naam voor het project, zoalsProcessMind_Productie_Orders. - Selecteer Exportbestandsformaat: Kies in de projectconfiguratie het gewenste dataformaat voor de export, zoals CSV of Excel. Stel de
Entiteit-optie in en specificeer de formatdetails. CSV wordt aanbevolen voor prestaties en compatibiliteit. - Voeg Vereiste Data-entiteiten toe: Voeg de benodigde data-entiteiten toe aan het project om alle productieorder events vast te leggen. U moet elk van de volgende entiteiten toevoegen:
Productieorders,Productieorder routetransacties,Inventaris kwaliteitsordersenProductie picklijst journaalregels. Zorg ervoor dat u voor elke entiteit alle relevante velden selecteert, zoals beschreven in de querysectie. - Pas Datafilters toe: Gebruik voor elke entiteit de
Filter-optie om de gegevensexport af te bakenen. Filter minimaal opBedrijfom de juiste juridische entiteit te selecteren. Het wordt sterk aanbevolen om een datumbereikfilter toe te passen op een sleuteldatumveld, zoalsAanmaakdatumop deProductieorders-entiteit, om het datavolume te beperken tot een beheersbare periode, bijvoorbeeld de laatste 6 maanden. - Configureer Incrementele Exports (Optioneel): Configureer het project voor incrementele exports voor doorlopende analyse. Dit kan worden gedaan door wijzigingen op de bronentiteiten te volgen, waardoor u alleen nieuwe of gewijzigde records sinds de laatste export kunt extraheren, wat de exporttijd aanzienlijk verkort.
- Voer de Exporttaak uit: Zodra het project is geconfigureerd, start u de export door op
Exporterente klikken in het actievenster. U kunt het onmiddellijk uitvoeren of plannen als een terugkerende batchtaak. - Download de Geëxporteerde Bestanden: Nadat de exporttaak succesvol is voltooid, navigeert u naar de taakgeschiedenis. Download het pakket, dit zal een ZIP-bestand zijn dat afzonderlijke databestanden bevat voor elke entiteit die u hebt opgenomen.
- Transformeer Data naar een Event Log: De geëxporteerde bestanden vertegenwoordigen ruwe tabeldata, geen geformatteerde event log. U moet een externe tool (zoals een Python-script, Power Query in Excel/Power BI, of een ETL-tool) gebruiken om de data uit deze bestanden te verwerken en te combineren. De transformatielogica die in de querysectie is beschreven, moet worden toegepast om de datum- en statusvelden van de verschillende entiteiten te draaien naar één event log-bestand met één rij per activiteit.
- Structureer de Definitieve Event Log: Zorg ervoor dat het uiteindelijk getransformeerde CSV-bestand de vereiste kolommen bevat:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemenLastDataUpdate, samen met alle aanbevolen attributen. Het bestand moet zijn geformatteerd met een headerrij en klaar zijn voor upload naar ProcessMind.
Configuratie
- Sleutel Data-entiteiten: De kern van deze extractie berust op het exporteren van verschillende entiteiten en deze later samen te voegen. De primaire entiteiten zijn
Productieorders(ProdTable),Productieorder routetransacties(ProdRouteTrans) enInventaris kwaliteitsorders(InventQualityOrderTable). - Datumbereik Filtering: Om het datavolume te beheren, past u altijd een datumfilter toe. Een goede praktijk is om de entiteit
Productieorderste filteren op deAanmaakdatum(CREATEDDATETIME) voor de laatste 3 tot 6 maanden. Dit zorgt ervoor dat u complete, recente processen vastlegt zonder het systeem te overbelasten. - Bedrijfsfilter: Het is cruciaal om een filter in te stellen voor het specifieke bedrijf of de juridische entiteit die u wilt analyseren. Dit gebeurt via de
Filter-optie op elke entiteit binnen het exportproject. - Volledige versus Incrementele Push: Voor de initiële extractie is een volledige push noodzakelijk. Voor volgende updates wordt sterk aanbevolen om wijzigingstracking op de entiteiten te configureren en incrementele exports uit te voeren om de prestaties te verbeteren en de databelasting te verminderen.
- Vereisten: De gebruiker die de export uitvoert, moet over de juiste beveiligingsrollen beschikken, typisch inclusief
Data management administratorof een rol met machtigingen om toegang te krijgen tot de vereiste data-entiteiten.
a Voorbeeldquery config
/*
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 Stappen
- Configureer BYOD in Dynamics 365: Zorg ervoor dat de 'Bring your own database'-functionaliteit is geconfigureerd in uw Dynamics 365 for Finance and Operations-omgeving. Dit omvat het instellen van een Azure SQL Database en het configureren van de gegevensexport vanuit Dynamics 365.
- Publiceer Vereiste Entiteiten: Navigeer vanuit de 'Data management'-werkruimte naar 'Data-entiteiten'. Zoek en publiceer de volgende sleutelentiteiten naar uw BYOD-database: ProdTable, ProdRouteTrans, InventPickingListJour en InventQualityOrderTable. Zorg ervoor dat ze zijn geconfigureerd voor terugkerende export.
- Verifieer Gegevenssynchronisatie: Bevestig dat de data van de gepubliceerde entiteiten succesvol en regelmatig synchroniseren met uw doel-Azure SQL Database. Controleer de exporttaakgeschiedenis op eventuele fouten.
- Maak Verbinding met de BYOD-Database: Gebruik een SQL-client, zoals SQL Server Management Studio (SSMS) of Azure Data Studio, om verbinding te maken met de Azure SQL Database waar uw Dynamics 365-gegevens zich bevinden.
- Bereid de SQL-query voor: Open een nieuw queryvenster. Kopieer de complete SQL-query die in dit document wordt vermeld.
- Stel Queryparameters in: Zoek in de query de placeholder-variabelen. Vervang '{StartDate}', '{EndDate}' en '{CompanyCode}' door het gewenste datumbereik en de DataAreaId van het specifieke bedrijf dat u wilt analyseren.
- Voer de Query uit: Voer de gewijzigde SQL-query uit op de BYOD-database. De uitvoeringstijd varieert afhankelijk van het datavolume en het opgegeven datumbereik.
- Bekijk de Resultaten: Zodra de query is voltooid, controleert u de uitvoer om er zeker van te zijn dat deze de verwachte kolommen en data bevat voor alle geëxtraheerde activiteiten. De resultaatset is de event log.
- Exporteer de Event Log: Exporteer de queryresultaten naar een CSV-bestand. De meeste SQL-clients hebben een ingebouwde functie om resultaten direct op te slaan naar een bestand.
- Formatteer voor ProcessMind: Zorg ervoor dat het geëxporteerde CSV-bestand UTF-8-codering heeft en dat de kolomkoppen overeenkomen met de attribuutnamen die door ProcessMind vereist zijn, zoals CaseId, Activity en Timestamp. De meegeleverde query gebruikt al de juiste aliassen.
Configuratie
- Sleutel Data-entiteiten: De query is primair afhankelijk van de volgende entiteiten die naar uw BYOD-instantie worden geëxporteerd:
PRODTABLE: Bevat de belangrijkste productieorder kopinformatie en status.PRODROUTETRANS: Biedt details over individuele productieoperaties en hun voltooiing.INVENTPICKINGLISTJOUR: Registreert het picken van materialen voor productieorders.INVENTQUALITYORDERTABLE: Volgt kwaliteitsborgingsorders gekoppeld aan productie.
- Datumbereik: Het wordt aanbevolen om te beginnen met een beperkt datumbereik, bijvoorbeeld 3 tot 6 maanden aan data, om beheersbare queryprestaties te garanderen. De query gebruikt de aanmaakdatum van de productieorder (
CREATEDDATETIMEuitPRODTABLE) voor filtering. - Bedrijfscodefilter: Het veld
DATAREAIDwordt gebruikt om data te filteren voor een specifieke juridische entiteit of bedrijf. U moet de'{CompanyCode}'placeholder vervangen door de relevante ID, bijvoorbeeld 'usmf'. - Vereisten: Deze methode vereist systeembeheerdersrechten voor zowel Dynamics 365 Finance and Operations om BYOD te configureren als Contributor-machtigingen op de Azure SQL Database om queries uit te voeren.
- Prestaties: Voor zeer grote datasets die meerdere jaren of bedrijven beslaan, kunt u overwegen de query buiten piekuren uit te voeren. U kunt de extractie ook opsplitsen in kleinere tijdsperioden en de resultaten later combineren.
a Voorbeeldquery 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}'; Stappen
- Navigeer naar de Data Management Werkruimte: Log in op Microsoft Dynamics 365 Finance and Operations. Gebruik de zoekbalk om de
Data management-werkruimte te vinden en ernaartoe te navigeren. - Maak een Nieuw Exportproject: Selecteer binnen de werkruimte de
Export-tegel om een nieuw gegevensexportproject aan te maken. Geef een beschrijvende naam voor het project, zoalsProcessMind_Productie_Orders. - Selecteer Exportbestandsformaat: Kies in de projectconfiguratie het gewenste dataformaat voor de export, zoals CSV of Excel. Stel de
Entiteit-optie in en specificeer de formatdetails. CSV wordt aanbevolen voor prestaties en compatibiliteit. - Voeg Vereiste Data-entiteiten toe: Voeg de benodigde data-entiteiten toe aan het project om alle productieorder events vast te leggen. U moet elk van de volgende entiteiten toevoegen:
Productieorders,Productieorder routetransacties,Inventaris kwaliteitsordersenProductie picklijst journaalregels. Zorg ervoor dat u voor elke entiteit alle relevante velden selecteert, zoals beschreven in de querysectie. - Pas Datafilters toe: Gebruik voor elke entiteit de
Filter-optie om de gegevensexport af te bakenen. Filter minimaal opBedrijfom de juiste juridische entiteit te selecteren. Het wordt sterk aanbevolen om een datumbereikfilter toe te passen op een sleuteldatumveld, zoalsAanmaakdatumop deProductieorders-entiteit, om het datavolume te beperken tot een beheersbare periode, bijvoorbeeld de laatste 6 maanden. - Configureer Incrementele Exports (Optioneel): Configureer het project voor incrementele exports voor doorlopende analyse. Dit kan worden gedaan door wijzigingen op de bronentiteiten te volgen, waardoor u alleen nieuwe of gewijzigde records sinds de laatste export kunt extraheren, wat de exporttijd aanzienlijk verkort.
- Voer de Exporttaak uit: Zodra het project is geconfigureerd, start u de export door op
Exporterente klikken in het actievenster. U kunt het onmiddellijk uitvoeren of plannen als een terugkerende batchtaak. - Download de Geëxporteerde Bestanden: Nadat de exporttaak succesvol is voltooid, navigeert u naar de taakgeschiedenis. Download het pakket, dit zal een ZIP-bestand zijn dat afzonderlijke databestanden bevat voor elke entiteit die u hebt opgenomen.
- Transformeer Data naar een Event Log: De geëxporteerde bestanden vertegenwoordigen ruwe tabeldata, geen geformatteerde event log. U moet een externe tool (zoals een Python-script, Power Query in Excel/Power BI, of een ETL-tool) gebruiken om de data uit deze bestanden te verwerken en te combineren. De transformatielogica die in de querysectie is beschreven, moet worden toegepast om de datum- en statusvelden van de verschillende entiteiten te draaien naar één event log-bestand met één rij per activiteit.
- Structureer de Definitieve Event Log: Zorg ervoor dat het uiteindelijk getransformeerde CSV-bestand de vereiste kolommen bevat:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemenLastDataUpdate, samen met alle aanbevolen attributen. Het bestand moet zijn geformatteerd met een headerrij en klaar zijn voor upload naar ProcessMind.
Configuratie
- Sleutel Data-entiteiten: De kern van deze extractie berust op het exporteren van verschillende entiteiten en deze later samen te voegen. De primaire entiteiten zijn
Productieorders(ProdTable),Productieorder routetransacties(ProdRouteTrans) enInventaris kwaliteitsorders(InventQualityOrderTable). - Datumbereik Filtering: Om het datavolume te beheren, past u altijd een datumfilter toe. Een goede praktijk is om de entiteit
Productieorderste filteren op deAanmaakdatum(CREATEDDATETIME) voor de laatste 3 tot 6 maanden. Dit zorgt ervoor dat u complete, recente processen vastlegt zonder het systeem te overbelasten. - Bedrijfsfilter: Het is cruciaal om een filter in te stellen voor het specifieke bedrijf of de juridische entiteit die u wilt analyseren. Dit gebeurt via de
Filter-optie op elke entiteit binnen het exportproject. - Volledige versus Incrementele Push: Voor de initiële extractie is een volledige push noodzakelijk. Voor volgende updates wordt sterk aanbevolen om wijzigingstracking op de entiteiten te configureren en incrementele exports uit te voeren om de prestaties te verbeteren en de databelasting te verminderen.
- Vereisten: De gebruiker die de export uitvoert, moet over de juiste beveiligingsrollen beschikken, typisch inclusief
Data management administratorof een rol met machtigingen om toegang te krijgen tot de vereiste data-entiteiten.
a Voorbeeldquery config
/*
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