Uw Production Planning datatemplate
Uw Production Planning datatemplate
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- Extractiehandleiding voor Microsoft Dynamics 365 Manufacturing
Productieplanning Attributen
| Naam | Omschrijving | ||
|---|---|---|---|
| Productieorder ProductionOrderNumber | De unieke kenmerk voor een productieorder, dienend als de primaire case ID voor het tracken van alle gerelateerde planning- en uitvoeringsactiviteiten. | ||
| Omschrijving Het Productieordernummer, vaak aangeduid als ProdId in Microsoft Dynamics 365, is de centrale kenmerk die alle gebeurtenissen, materialen, bronnen en kosten koppelt die geassocieerd zijn met een specifieke manufacturing job. Het maakt een complete end-to-end-analyse van de productieplanning en execution levenscyclus mogelijk voor een enkele werkeenheid. Binnen process mining is dit attribuut belangrijk voor het groeperen van gerelateerde gebeurtenissen in een enkele case. Het analyseren van processen per Productieordernummer helpt knelpunten, vertragingen en afwijkingen in de standaard productie flow te vinden, van initiële creatie en scheduling tot voltooiing en costing. Het belang Dit is de fundamentele case kenmerk, die belangrijk is voor het groeperen van alle gerelateerde gebeurtenissen en het reconstrueren van het end-to-end productieplanningproces voor analyse. Vindplaats Dit is het 'ProdId' veld in de 'ProdTable' table in Microsoft Dynamics 365 Manufacturing. Voorbeelden WO-000456WO-000457WO-000458 | |||
| Activiteitsnaam ActivityName | De naam van de specifieke bedrijfsgebeurtenis of stap die plaatsvond binnen het productieplanningsproces. | ||
| Omschrijving De activiteitsnaam beschrijft een enkele stap in de productieplanning levenscyclus, zoals 'Productieorder aangemaakt', 'Materialen gepickt voor productie', of 'Productie gestart'. Deze activiteiten zijn de bouwstenen van de procesmap. Het analyseren van de volgorde en duur van deze activiteiten maakt het mogelijk de processtroom te visualiseren, gemeenschappelijke paden te vinden, herstelwerk-loops te detecteren en de bestede tijd in verschillende stages te meten. Dit attribuut is belangrijk voor het begrijpen van wat er op elk punt in het proces gebeurt. Het belang Dit attribuut definieert de stappen in het proces, waardoor de constructie van een procesmap en analyse van processtroom, variaties en knelpunten mogelijk worden. Vindplaats Deze waarde 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 velden. Voorbeelden Productieorder aangemaaktProductieorder vrijgegevenProductie gestartProductie afgemeld als gereed | |||
| Bronsysteem SourceSystem | Het bronsysteem waaruit de data is opgehaald. | ||
| Omschrijving Dit attribuut identificeert het source Informapakketmation system waar de gebeurtenis data vandaan komt. Voor deze procesweergave zou de waarde consistent 'Microsoft Dynamics 365 Manufacturing' zijn. In omgevingen met meerdere geïntegreerde systemen is dit veld belangrijk voor data lineage, probleemoplossing datakwaliteit 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 belangrijke context over de herkomst van de data, wat belangrijk is voor data-governance, validatie en het beheren van datapijplijnen uit meerdere bedrijfssystemen. Vindplaats Dit is een statische waarde die moet worden toegevoegd tijdens het data-extractie- en transformatieproces om de oorsprong van de dataset te labelen. Voorbeelden Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| 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 gegevens zijn onmisbaar voor alle tijdsgebonden process mining-analyses, inclusief het berekenen van doorlooptijden, het vinden 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 planningdoorlooptijd, vertragingen in productiestart en totale orderafhandelingstijd. Nauwkeurige en chronologische tijdstempels zijn belangrijk voor het bouwen van een correct en zinvol procesmodel. Het belang Deze timestamp is belangrijk voor het ordenen van gebeurtenissen, het berekenen van doorlooptijden tussen activiteiten, en het uitvoeren van elke tijdgebonden analyse zoals doorlooptijd 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 | |||
| Tijdstip van extractie LastDataUpdate | De timestamp die aangeeft wanneer de data voor dit gebeurtenis voor het laatst is vernieuwd of opgehaald uit het bronsysteem. | ||
| Omschrijving Dit attribuut biedt de datum en tijd van de meest recente data-extractie uit het bronsysteem. Het is een metadataveld dat belangrijk is voor het begrijpen van de relevantie en actualiteit van de analyse. Weten wanneer de data voor het laatst is geüpdatet, helpt analysesten en business gebruikers 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 attribuut is nodig voor data governance, en verzekert dat gebruikers de actualiteit van de data begrijpen en de tijdigheid van de procesinzichten kunnen vertrouwen. Vindplaats Deze timestamp wordt gegenereerd en gestempeld op elke record tijdens het data-extractie, transformation, en loading (ETL) proces. Voorbeelden 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Gebruiker UserId | De identificatie van de gebruiker die de activiteit heeft uitgevoerd of hiervoor verantwoordelijk is. | ||
| Omschrijving De Gebruiker 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 inzicht in wie werkzaamheden binnen het proces uitvoert. Het analyseren van het proces per user helpt bij het begrijpen van werklastverdeling, het vinden van training kansen, het vergelijken van prestaties tussen individuen of teams, en het onderzoeken van deviations uitgevoerd door specifieke gebruikers. 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 vinden 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 geplande eindtijd voor een productieorder zoals bepaald door de planningsmodule. Het houdt rekening met operation times, bron calendars en lead times om te forecasten wanneer de gereed product gereed zullen zijn. In procesanalyse is dit attribuut belangrijk voor het ewaarderen van de on-time completion prestaties. 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 vinden van systemische redenen voor late leveringen. Het belang Dit attribuut is de benchmark voor het meten van tijdige voltooiing en het analyseren van de nauwkeurigheid van productie scheduling. Vindplaats Dit is het 'SchedEnd' veld 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, bron capaciteit en vraagdeadlines. Dit attribuut is belangrijk 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 vinden 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 vinden van vertragingen tussen planning en de feitelijke start van de productie. Vindplaats Dit is het 'SchedStart' veld in de 'ProdTable' table. Voorbeelden 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Productieorder Status ProductionOrderStatus | Geeft de huidige levenscyclusstatus van de productieorder aan. | ||
| Omschrijving De Productieorderstatus weerspiegelt de voortgang van de order gedurende de manufacturing levenscyclus. Gangbare statuses in Dynamics 365 omvatten Aangemaakt, Geschat, Gepland, Vrijgegeven, Gestart, Afgemeld als gereed, en Beëindigd. Dit attribuut 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 processtroom 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 vinden die vastzitten of vertraagd zijn. Het belang Dit attribuut biedt een high-level overview van de voortgang van een order en is belangrijk voor filtering, conformance checking en het analyseren van de bestede tijd in verschillende productiephases. Vindplaats Dit is het 'ProdStatus' veld 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 attribuut helpt te begrijpen hoe vaak productieplannen worden verstoord door orders met een hoge prioriteit of versnelde orders. Het volgen van prioriteitswijzigingen gedurende de levenscyclus van een order kan instabiliteit in vraag of planning inzichtelijk maken. Dit is belangrijk voor het 'Expedited Production Trends' dashboard en de 'Expedited Production Rate' KPI. Het belang Dit helpt de frequentie en impact van versnelde orders te vinden, wat kan duiden op planning instabiliteit of reactief operationeel management. Vindplaats Dit kan een standaard of aangepast veld zijn op de 'ProdTable'. Configuratie is vaak bedrijfsspecifiek. Voorbeelden NormaalHoog`Urgent` | |||
| Productietype ProductionType | De classificatie van de productieorder, zoals standaard, herstelwerk, 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 attribuut is belangrijk voor het creëren van vergelijkbare analyseweergaven. Het proces voor een herstelwerk 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 attribuut maakt de segmentatie van analyse mogelijk, aangezien verschillende ordertypes zoals 'Standard' en 'Rework' van nature verschillende processen volgen en verschillende prestaties verwachtingen hebben. Vindplaats Dit is het 'ProdType' veld 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 productieprestaties. Binnen process mining maakt dit attribuut benchmarking van prestaties over verschillende plants mogelijk. Analisten kunnen doorlooptijden, de inzet van medewerkers en adherence aan standaard processen tussen sites vergelijken om best practices te vinden of faciliteiten te lokaliseren die operationele verbeteringen vereisen. Het is belangrijk voor capaciteitsbenuttingsanalyse. Het belang Dit maakt prestaties vergelijking en benchmarking mogelijk over verschillende manufacturing sites, wat helpt bij het vinden van best practices en gebieds-specifieke issues. Vindplaats Dit is het 'InventSiteId' veld in de 'ProdTable' table. Voorbeelden SITE-ASITE-BMain-WH | |||
| Productnummer ProductNumber | De unieke kenmerk 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 levenscyclus te zichtbaar maken. Het kan aantonen dat bepaalde producten langere doorlooptijden hebben, meer herstelwerk 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 vinden van productspecifieke knelpunten of kwaliteitsproblemen. Vindplaats Dit is het 'ItemId' veld 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 attribuut wordt gebruikt om producpakketendement 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 doorlooptijd analyse en capaciteitsbenuttings dashboards. Het belang Het is belangrijk voor het berekenen van producpakketendement, afvalpercentages en daadwerkelijke doorvoer, wat inzicht geeft in productie-efficiëntie en -prestaties. Vindplaats Deze waarde komt vaak uit het 'QtyGood' veld 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 Starttijd het begin aangeeft, is End Time nodig om de daadwerkelijke duur of verwerkingstijd van die enkele stap te begrijpen. Binnen process mining maakt het hebben van zowel een Start- als End Time voor activiteiten een fijnmazigere analyse van waiting time versus verwerkingstijd 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 belangrijk is voor gedetailleerde bottleneckanalyse. 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 attribuut dient als de basislijn voor prestaties meetwaarden 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 datapunt voor capaciteits- en materiaalbehoefteplanning. Het belang Dit is de basislijn hoeveelheid die wordt gebruikt om producpakketendement en scrap rates te meten door deze te vergelijken met de actuele geproduceerde hoeveelheid. Vindplaats Dit is het 'QtySched' veld in de 'ProdTable' table. Voorbeelden 1005000250 | |||
| Kwaliteitsordernummer QualityOrderNumber | De kenmerk 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 vollediger end-to-end procesoverzicht mogelijk dat kwaliteitsmanagementstappen omvat. Het helpt analyseren hoe kwaliteitsinspecties de productiedoorlooptijden beïnvloeden, vertragingen in het kwaliteitsproces vinden 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 attribuut trackt de readiness van componenten die nodig zijn voor productie. Het kan statuses weerspiegelen zoals 'Beschikbaar', 'In bestelling', of 'Tekort'. Deze Informatie is belangrijk voor schedulers om te begrijpen of een productieorder realistisch kan starten zoals gepland. Binnen process mining is dit attribuut belangrijk voor het diagnosticeren van de grondoorzaken van production start delays. Door deze status te correleren met de tijd tussen 'Productieorder vrijgegeven' en 'Productie gestart', kunnen analysesten de impact van materiaaltekorten op schedule adherence en de algehele doorlooptijd 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 prestaties aan manufacturing efficiency. Vindplaats Deze status is vaak geen single veld 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 'InventSom' 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 attribuut biedt een eenvoudige, binaire indicator van schedule adherence voor de start van productie. Het vergelijkt de actuele start timestamp ('Productie gestart' gebeurtenis) met het 'PlannedStartDate' attribuut. 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 worden. Vindplaats Dit is een berekende metriek. De logica is: 'Productie gestart' EventTime <= PlannedStartDate. Voorbeelden truefalse | |||
| Productielijn ProductionLine | De specifieke productielijn, work center, of brongroep toegewezen aan de productieorder. | ||
| Omschrijving De Productielijn identificeert de specifieke machine, cel, of groep bronnen die de manufacturing operations zullen uitvoeren. Dit biedt een meer granulair detailniveau dan de Productievestiging. Het analyseren van het proces per Productielijn is belangrijk voor gedetailleerde capaciteits- en utilizatieanalyse. Het helpt overloaded work centers te vinden, de efficiëntie van verschillende lijnen die hetzelfde product produceren te vergelijken, en bron-specifieke knelpunten te precies aanwijzen die mogelijk niet zichtbaar zijn op plant-niveau. Het belang Dit maakt gedetailleerde analyse van de inzet van medewerkers en prestaties mogelijk, wat helpt bij het vinden van overloaded work centers of inefficiënte lijnen. Vindplaats Deze Informatie is vaak te vinden in het 'WrkCtrId' veld 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 nodig 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 bron availability, material staging, of Informapakketmation 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 vinden die verband houden met middelenbeschikbaarheid of gereedheid van de werkplaats. Vindplaats Dit is een berekende metriek: 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 attribuut 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 vinden, zoals frequente vraagwijzigingen of inaccurate initiële planning. Het kwantificeert de hoeveelheid herstelwerk 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 herstelwerk. Vindplaats Dit is een afgeleid attribuut 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 belangrijk voor het berekenen van tijdige voltooiing, actuele productieduur en doorlooptijd. 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 belangrijk 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 gebeurtenis 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 gebeurtenis 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 kostenboekhouding of financial closing processen. Vindplaats Dit is de finale statuswijziging die wordt vastgelegd wanneer het 'ProdStatus' veld 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 bronnen, data en tijden alloceert voor de operations ervan. Deze stap kan operations scheduling of meer gedetailleerde job scheduling omvatten. | ||
| Het belang Scheduling is belangrijk voor capaciteitsplanning en bronbeheer. 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 mijlpaal 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 producpakketoute. Een productieorder zal typisch meerdere van deze gebeurtenissen hebben. | ||
| Het belang Het analyseren van de tijd tussen operaties helpt knelpunten binnen het productieproces zelf te vinden. Het biedt een gedetailleerder beeld van de werkplaatsstroom. Vindplaats Dit is een expliciete gebeurtenis 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 producpakketun. Dit bevestigt dat de geproduceerde items voldoen aan de vereiste kwaliteitsstandaarden. | ||
| Het belang Dit is een key mijlpaal 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 gebeurtenis 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 belangrijke gate voor het starten van productie. Vertragingen tussen scheduling en materiaalpicking benadrukken issues in warehouse operations of materiaalbeschikbaarheid. Vindplaats Dit is typisch een expliciete gebeurtenis 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 gebeurtenis wordt afgeleid door key velden voor en na een wijziging te vergelijken. | ||
| Het belang Frequente aanpassingen duiden op planningsinstabiliteit of volatiele vraag, wat leidt tot inefficiënties en herstelwerk. 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' gebeurtenis 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 vinden, 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 vinden. Gebeurtenistype inferred | |||
| Productieorder geschat | Representeert de berekening van het geschatte materiaal- en kostenverbruik voor de productieorder. Dit is een belangrijke 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 vinden. 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 | |||
Extractiegidsen
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 Verplichte Data-entiteiten toe: Voeg de benodigde data-entiteiten toe aan het project om alle productieorder gebeurtenissen 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 processen 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,ActiviteitNaam,EventTime,BronsysteemenLastDataUpdate, 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 belangrijk 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.
- Verplichten: 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 Verplichte 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 opgehaalde 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 attributenamen die door ProcessMind vereist zijn, zoals CaseId, Activiteit 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 zorgen. 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'. - Verplichten: 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 Verplichte Data-entiteiten toe: Voeg de benodigde data-entiteiten toe aan het project om alle productieorder gebeurtenissen 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 processen 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,ActiviteitNaam,EventTime,BronsysteemenLastDataUpdate, 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 belangrijk 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.
- Verplichten: 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