Il Suo template dei dati per la pianificazione della produzione
Il Suo template dei dati per la pianificazione della produzione
- Attributi consigliati da raccogliere
- Attività principali da monitorare
- Indicazioni per l’estrazione da Microsoft Dynamics 365 Manufacturing
Attributi della pianificazione della produzione
| Nome | Descrizione | ||
|---|---|---|---|
| Ordine di produzione ProductionOrderNumber | Identificativo univoco dell’ordine di produzione, utilizzato come ID del caso principale per monitorare tutte le attività di pianificazione e produzione correlate. | ||
| Descrizione Il numero dell’ordine di produzione, spesso indicato come ProdId in Microsoft Dynamics 365, è l’identificativo centrale che collega tutti gli eventi, i materiali, le risorse e i costi associati a una specifica lavorazione. Consente di analizzare l’intero ciclo di vita della pianificazione e dell’esecuzione della produzione per una singola unità di lavoro. Nel Process Mining, questo attributo è essenziale per raggruppare gli eventi correlati in un unico caso. Analizzare i processi in base al numero dell’ordine di produzione aiuta a individuare colli di bottiglia, ritardi e deviazioni dal flusso di produzione standard, dalla creazione e programmazione iniziali fino al completamento e al calcolo dei costi. Perché è importante È l’identificativo fondamentale del caso, indispensabile per raggruppare tutti gli eventi correlati e ricostruire il processo di pianificazione della produzione dall’inizio alla fine. Dove reperirli È il campo «ProdId» della tabella «ProdTable» in Microsoft Dynamics 365 Manufacturing. Esempi WO-000456WO-000457WO-000458 | |||
| Nome dell’attività ActivityName | Nome dello specifico evento o passaggio aziendale che si è verificato nel processo di pianificazione della produzione. | ||
| Descrizione Il nome dell’attività descrive un singolo passaggio del ciclo di pianificazione della produzione, come «Ordine di produzione creato», «Materiali prelevati per la produzione» o «Produzione avviata». Queste attività costituiscono gli elementi fondamentali della mappa di processo. Analizzarne la sequenza e la durata permette di visualizzare il flusso del processo, individuare i percorsi più frequenti e i cicli di rilavorazione e misurare il tempo trascorso nelle diverse fasi. Questo attributo è essenziale per capire che cosa accade in ogni punto del processo. Perché è importante Questo attributo definisce le fasi del processo e consente di creare una mappa di processo e analizzare il flusso, le variazioni e i colli di bottiglia. Dove reperirli Questo valore deriva in genere dagli Event Log o dalla mappatura delle diverse modifiche di stato e dei tipi di transazione in tabelle come «ProdRouteTrans» e «ProdJournalBOM», nonché dalle modifiche ai campi di stato di «ProdTable». Esempi Ordine di produzione creatoOrdine di produzione rilasciatoProduzione avviataProduzione dichiarata completata | |||
| Ora dell’evento EventTime | Data e ora esatte in cui si è verificata l’attività. | ||
| Descrizione L’ora dell’evento, o timestamp, registra la data e l’ora esatte in cui si è svolta una specifica attività. Questi dati sono fondamentali per tutte le analisi di Process Mining basate sul tempo, compreso il calcolo dei tempi di ciclo, l’individuazione dei ritardi tra le fasi e l’analisi delle prestazioni del processo nel tempo. Nella pianificazione della produzione, questo attributo serve a misurare durate come il tempo di attraversamento della pianificazione, i ritardi nell’avvio della produzione e il tempo complessivo di evasione dell’ordine. Timestamp accurati e in ordine cronologico sono indispensabili per creare un modello di processo corretto e significativo. Perché è importante Questo timestamp è essenziale per ordinare gli eventi, calcolare la durata tra le attività e svolgere analisi basate sul tempo, come il calcolo del tempo di ciclo e l’individuazione dei colli di bottiglia. Dove reperirli È presente in diverse tabelle delle transazioni, per esempio nel campo «createdDateTime» di «ProdTable» o nei campi della data di transazione di «ProdRouteTrans», «ProdJournalRoute» e «ProdJournalBOM». Esempi 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Sistema di origine SourceSystem | Sistema di registrazione da cui sono stati estratti i dati. | ||
| Descrizione Questo attributo identifica il sistema informativo di origine dei dati degli eventi. In questa vista del processo, il valore sarà sempre «Microsoft Dynamics 365 Manufacturing». Negli ambienti con più sistemi integrati, questo campo è fondamentale per ricostruire la provenienza dei dati, risolvere i problemi di qualità e capire come i diversi sistemi contribuiscono al processo complessivo. Chiarisce l’origine dei dati analizzati. Perché è importante Fornisce un contesto essenziale sull’origine dei dati, necessario per la governance e la convalida dei dati e per gestire le pipeline di dati provenienti da più sistemi aziendali. Dove reperirli È un valore statico da aggiungere durante l’estrazione e la trasformazione dei dati per indicare l’origine dell’insieme di dati. Esempi Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Data e ora dell’ultimo aggiornamento o dell’ultima estrazione dei dati di questo evento dal sistema di origine. | ||
| Descrizione Questo attributo indica la data e l’ora dell’estrazione più recente dal sistema di origine. È un campo di metadati essenziale per capire quanto sono aggiornati i dati su cui si basa l’analisi. Sapere quando i dati sono stati aggiornati l’ultima volta aiuta analisti e utenti aziendali a valutare l’affidabilità delle informazioni ricavate dallo strumento di Process Mining. Chiarisce se le Dashboard mostrano dati in tempo reale o dati riferiti a un momento precedente, un aspetto importante per prendere decisioni operative. Perché è importante Questo attributo è fondamentale per la governance dei dati: permette agli utenti di verificarne l’aggiornamento e di fare affidamento sulla tempestività delle informazioni sul processo. Dove reperirli Questo timestamp viene generato e aggiunto a ogni record durante il processo di estrazione, trasformazione e caricamento dei dati (ETL). Esempi 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Data di fine pianificata PlannedEndDate | La data e l’ora previste per il completamento dell’ordine di produzione. | ||
| Descrizione La data di fine pianificata è l’ora prevista per il completamento di un ordine di produzione, definita dal motore di pianificazione. Tiene conto dei tempi delle operazioni, dei calendari delle risorse e dei tempi di attraversamento per stimare quando saranno disponibili i prodotti finiti. Nell’analisi dei processi, questo attributo è fondamentale per valutare il completamento puntuale. Confrontando la data di fine pianificata con la data e ora effettive di completamento, ricavate dall’attività «Produzione dichiarata come finita» o «Ordine di produzione terminato», è possibile calcolare il KPI del tasso di completamento puntuale della produzione e individuare le cause sistemiche dei ritardi nelle consegne. Perché è importante Questo attributo è il riferimento per misurare i tassi di completamento puntuale e analizzare l’accuratezza della pianificazione della produzione. Dove reperirli Corrisponde al campo «SchedEnd» della tabella «ProdTable». Esempi 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Data di inizio pianificata PlannedStartDate | La data e l’ora previste per l’inizio dell’ordine di produzione. | ||
| Descrizione La data di inizio pianificata è un risultato fondamentale del processo di pianificazione e indica l’ora prevista per avviare le attività di produzione di un ordine. Viene determinata in base alla disponibilità dei materiali, alla capacità delle risorse e alle scadenze della domanda. Questo attributo è essenziale per analizzare il rispetto della pianificazione. Confrontando la data di inizio pianificata con l’ora effettiva di avvio della produzione, ricavata dalla data e ora dell’attività «Produzione avviata», è possibile misurare la puntualità, individuare le cause dei ritardi e calcolare KPI come il tasso di rispetto della pianificazione della produzione. Perché è importante Costituisce la base di riferimento per misurare il rispetto della pianificazione e individuare i ritardi tra la pianificazione e l’effettivo avvio della produzione. Dove reperirli Corrisponde al campo «SchedStart» della tabella «ProdTable». Esempi 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Numero prodotto ProductNumber | L’identificativo univoco dell’articolo prodotto. | ||
| Descrizione Il numero prodotto, o ID articolo, identifica il prodotto finito che l’ordine di produzione deve realizzare. Collega il processo produttivo al prodotto specifico, alla relativa distinta base e alle istruzioni di ciclo. Analizzare il processo per numero prodotto aiuta a individuare le differenze specifiche tra i cicli di produzione. Può rivelare, ad esempio, che alcuni prodotti hanno tempi di ciclo più lunghi, richiedono più rilavorazioni o subiscono ritardi più frequenti, fornendo indicazioni utili agli ingegneri di prodotto e di processo. Perché è importante Consente di analizzare le variazioni del processo in base al prodotto realizzato e di individuare colli di bottiglia o problemi di qualità specifici del prodotto. Dove reperirli Corrisponde al campo «ItemId» della tabella «ProdTable». Esempi FG-1001FG-2050ASSY-500B | |||
| Priorità di produzione ProductionPriority | Un valore che indica l’urgenza o la priorità dell’ordine di produzione. | ||
| Descrizione La priorità di produzione è un campo utilizzato dai responsabili della pianificazione per gestire la sequenza delle attività in reparto. Gli ordini con priorità più alta possono essere anticipati, con possibili ripercussioni sulla pianificazione degli altri ordini. Analizzare questo attributo aiuta a capire con quale frequenza i piani di produzione vengono modificati per dare precedenza agli ordini urgenti o prioritari. Monitorare le variazioni di priorità durante il ciclo di vita di un ordine può mettere in luce instabilità della domanda o della pianificazione. È un dato fondamentale per la Dashboard «Andamento della produzione urgente» e per il KPI «Tasso di produzione urgente». Perché è importante Aiuta a individuare la frequenza e l’impatto degli ordini urgenti, che possono segnalare instabilità nella pianificazione o una gestione operativa reattiva. Dove reperirli Può essere un campo standard o personalizzato della tabella «ProdTable». La configurazione dipende spesso dalla singola azienda. Esempi NormaleAltaUrgente | |||
| Quantità effettiva ActualQuantity | La quantità di prodotti realizzati correttamente e registrati come finiti per l’ordine. | ||
| Descrizione La quantità effettiva indica il numero di unità completate e che hanno superato i controlli di qualità per un determinato ordine di produzione. Il valore viene registrato quando la produzione è «dichiarata come finita». Questo attributo serve ad analizzare la resa e l’efficienza della produzione. Confrontando la quantità effettiva con quella pianificata, è possibile calcolare i tassi di scarto e comprendere le perdite di produzione. È inoltre un elemento fondamentale per l’analisi della produttività e per le Dashboard sull’utilizzo della capacità. Perché è importante È essenziale per calcolare la resa della produzione, i tassi di scarto e la produttività effettiva, fornendo indicazioni sull’efficienza e sui risultati della produzione. Dove reperirli Questo valore proviene spesso dal campo «QtyGood» della tabella «ProdTable» o da tabelle correlate di registrazione dei giornali, quando un ordine viene dichiarato finito. Esempi 100985000 | |||
| Stabilimento di produzione ProductionPlant | Il sito o stabilimento in cui viene eseguito l’ordine di produzione. | ||
| Descrizione Lo stabilimento di produzione identifica la sede fisica o l’impianto responsabile del processo produttivo. È una dimensione organizzativa fondamentale per segmentare e confrontare i risultati della produzione. Nel Process Mining, questo attributo consente di confrontare i risultati dei diversi stabilimenti. Gli analisti possono mettere a confronto i tempi di ciclo, l’utilizzo delle risorse e il rispetto dei processi standard tra le sedi, così da individuare le prassi migliori o gli impianti che potrebbero richiedere interventi operativi. È essenziale per analizzare l’utilizzo della capacità. Perché è importante Consente di confrontare i risultati e i valori di riferimento dei diversi stabilimenti, aiutando a individuare le prassi migliori e i problemi specifici di ciascuna area. Dove reperirli Corrisponde al campo «InventSiteId» della tabella «ProdTable». Esempi SITE-ASITE-BMain-WH | |||
| Stato dell’ordine di produzione ProductionOrderStatus | Indica lo stato corrente dell’ordine di produzione nel suo ciclo di vita. | ||
| Descrizione Lo stato dell’ordine di produzione riflette l’avanzamento dell’ordine nel ciclo di produzione. In Dynamics 365, gli stati più comuni sono Created, Estimated, Scheduled, Released, Started, Reported as finished ed Ended. Questo attributo mostra a che punto si trova ogni ordine in un determinato momento. Nel Process Mining, analizzare le modifiche di stato è uno dei principali metodi per definire le attività e comprendere il flusso del processo. L’attributo può servire a filtrare gli ordini in uno stato specifico, analizzare il tempo trascorso in ciascuno stato e individuare gli ordini bloccati o in ritardo. Perché è importante Questo attributo offre una panoramica generale dell’avanzamento dell’ordine ed è fondamentale per applicare filtri, eseguire il controllo di conformità e analizzare il tempo trascorso nelle diverse fasi di produzione. Dove reperirli È il campo «ProdStatus» della tabella «ProdTable». Esempi ProgrammatoRilasciatoAvviatoConcluso | |||
| Tipo di produzione ProductionType | La classificazione dell’ordine di produzione, ad esempio standard, rilavorazione o legato a un progetto. | ||
| Descrizione Il tipo di produzione classifica l’ordine in base alla sua finalità. Ad esempio, un ordine «Standard» riguarda la produzione ordinaria per le scorte, un ordine di «Rilavorazione» serve a correggere difetti di un articolo già prodotto e un ordine «Progetto» è collegato a uno specifico progetto cliente. Questo attributo è importante per creare viste di analisi confrontabili. Il processo di un ordine di rilavorazione è per sua natura diverso da quello di un ordine standard. Segmentare l’analisi del processo per tipo di produzione permette di effettuare confronti significativi e di comprendere le sfide e i flussi specifici di ciascun tipo. Perché è importante Questo attributo consente di segmentare l’analisi, poiché tipi di ordine diversi, come «Standard» e «Rilavorazione», seguono processi differenti e hanno aspettative diverse in termini di risultati. Dove reperirli Corrisponde al campo «ProdType» della tabella «ProdTable». Esempi StandardRilavorazioneProgetto | |||
| Utente UserId | L’identificativo dell’utente che ha eseguito l’attività o ne è responsabile. | ||
| Descrizione L’ID utente identifica il dipendente o l’account di sistema che ha eseguito una determinata fase del processo, ad esempio il rilascio di un ordine o la registrazione del completamento. Queste informazioni consentono di capire chi svolge le attività nel processo. Analizzare il processo per utente aiuta a comprendere la distribuzione dei carichi di lavoro, individuare opportunità di formazione, confrontare i risultati di singole persone o team e verificare le anomalie riconducibili a utenti specifici. È inoltre importante ai fini della conformità e della tracciabilità degli audit. Perché è importante Consente di analizzare i risultati del processo per utente o team, aiuta a individuare opportunità di automazione e fornisce una traccia di audit delle attività chiave. Dove reperirli Si trova in campi come «modifiedBy» o «createdBy» di diverse tabelle, oppure nei campi utente delle tabelle dei registri delle transazioni, come «ProdJournalTable». Esempi j.smithm.jonesAX_BATCH_SVC | |||
| Avvio puntuale ProductionScheduleAdherence | Un indicatore booleano che vale vero se l’ordine di produzione è iniziato entro la data di inizio pianificata. | ||
| Descrizione Questo attributo calcolato fornisce un’indicazione semplice e binaria del rispetto della pianificazione per l’avvio della produzione. Confronta la data e ora effettive di inizio, registrate dall’evento «Produzione avviata», con l’attributo «PlannedStartDate». Questo indicatore è molto utile per creare Dashboard e KPI chiari e sintetici, come il «Tasso di rispetto della pianificazione della produzione». Consente di filtrare e aggregare facilmente i dati per calcolare la percentuale di ordini avviati in orario e analizzare le caratteristiche di quelli in ritardo, senza dover confrontare direttamente le date nello strumento di analisi. Perché è importante Semplifica la reportistica e il calcolo dei KPI sul rispetto della pianificazione, consentendo di filtrare e aggregare facilmente gli ordini puntuali e quelli in ritardo. Dove reperirli È una metrica calcolata. La logica è: evento «Produzione avviata» EventTime <= PlannedStartDate. Esempi truefalse | |||
| Disponibilità dei materiali MaterialAvailabilityStatus | Indica se sono disponibili le materie prime necessarie per l’ordine di produzione. | ||
| Descrizione Questo attributo indica se i componenti necessari alla produzione sono pronti. Può riportare stati come «Disponibile», «In ordine» o «Mancante». È un’informazione fondamentale per capire se un ordine di produzione può effettivamente iniziare secondo i piani. Nel Process Mining, questo attributo è essenziale per individuare le cause profonde dei ritardi nell’avvio della produzione. Correlando lo stato con il tempo trascorso tra «Ordine di produzione rilasciato» e «Produzione avviata», gli analisti possono quantificare l’impatto delle carenze di materiali sul rispetto della pianificazione e sul tempo di ciclo complessivo. Queste informazioni alimentano direttamente la Dashboard «Impatto dei ritardi nella disponibilità dei materiali». Perché è importante È fondamentale per comprendere e quantificare i ritardi nell’avvio della produzione causati dalla mancanza di materiali, collegando i risultati della catena di fornitura all’efficienza produttiva. Dove reperirli Spesso questo stato non corrisponde a un singolo campo, ma viene ricavato verificando le giacenze disponibili di tutti gli articoli nella distinta base (BOM) dell’ordine di produzione tramite la tabella «InventSum». Esempi Completamente disponibileDisponibilità parzialeNon disponibile | |||
| Linea di produzione ProductionLine | La linea di produzione, il centro di lavoro o il gruppo di risorse specifico assegnato all’ordine di produzione. | ||
| Descrizione La linea di produzione identifica la macchina, la cella o il gruppo di risorse specifico che esegue le operazioni di produzione. Offre un livello di dettaglio maggiore rispetto allo stabilimento di produzione. Analizzare il processo per linea di produzione è fondamentale per esaminare nel dettaglio la capacità e l’utilizzo delle risorse. Aiuta a individuare i centri di lavoro sovraccarichi, confrontare l’efficienza di linee diverse che realizzano lo stesso prodotto e localizzare i colli di bottiglia legati a risorse specifiche, che potrebbero non essere visibili a livello di stabilimento. Perché è importante Consente di analizzare nel dettaglio l’utilizzo e i risultati delle risorse, aiutando a individuare centri di lavoro sovraccarichi o linee inefficienti. Dove reperirli Queste informazioni si trovano spesso nel campo «WrkCtrId» delle transazioni del ciclo di produzione, nelle tabelle «ProdRoute» o «ProdRouteTrans». Esempi LINE-01LINE-02CNC-A | |||
| Numero di revisioni ProductionOrderRevisionNumber | Il numero di volte in cui un piano di produzione è stato modificato dopo la sua creazione iniziale. | ||
| Descrizione Questo attributo registra il numero di revisioni o modifiche significative apportate a un ordine di produzione, ad esempio alla quantità, alle date o al ciclo di produzione, dopo la pianificazione o il rilascio. Un valore più alto indica una maggiore instabilità del piano. È una misura diretta per il KPI «Tasso di revisione del piano di produzione». La sua analisi aiuta a individuare le cause dell’instabilità della pianificazione, come frequenti variazioni della domanda o una pianificazione iniziale imprecisa. Quantifica il lavoro da rifare e le attività di riprogrammazione, che spesso causano inefficienze. Perché è importante Misura direttamente la stabilità della pianificazione e supporta il KPI «Tasso di revisione del piano di produzione», mettendo in evidenza i processi soggetti a modifiche e rilavorazioni eccessive. Dove reperirli È un attributo derivato, che richiede di contare le occorrenze delle attività «Ordine di produzione modificato» per ciascun caso. Esempi 012 | |||
| Numero ordine di qualità QualityOrderNumber | L’identificativo di un ordine di controllo qualità collegato all’ordine di produzione. | ||
| Descrizione Quando è necessario un controllo qualità, in Dynamics 365 viene spesso generato un ordine di qualità. Questo attributo collega il processo di produzione a quello di assicurazione della qualità e registra l’ID dell’ordine di qualità associato. Il collegamento offre una visione più completa del processo, dall’inizio alla fine, includendo le fasi di gestione della qualità. Aiuta ad analizzare l’impatto dei controlli qualità sui tempi di attraversamento della produzione, individuare i ritardi nel processo di qualità e capire con quale frequenza vengono effettuati i controlli per prodotti o linee di produzione diversi. Perché è importante Collega il processo di produzione a quello di assicurazione della qualità e consente di analizzare l’impatto dei controlli qualità sui tempi di attraversamento complessivi. Dove reperirli Queste informazioni sono archiviate nelle tabelle di gestione della qualità, ad esempio «InventQualityOrderTable», e devono essere collegate all’ordine di produzione. Esempi QO-00123QO-00124QO-00125 | |||
| Ora di fine EndTime | La data e ora esatte in cui l’attività è stata completata. | ||
| Descrizione L’ora di fine indica il completamento di una specifica attività. Mentre l’ora di inizio ne segna l’avvio, quella di fine è necessaria per determinarne la durata effettiva o il tempo di elaborazione. Nel Process Mining, disporre dell’ora di inizio e di fine delle attività consente di analizzare in modo più dettagliato i tempi di attesa e quelli di elaborazione. Aiuta a distinguere il tempo dedicato allo svolgimento dell’attività da quello trascorso in attesa della fase successiva, un aspetto fondamentale per un’analisi approfondita dei colli di bottiglia. Perché è importante Consente di calcolare il tempo di elaborazione dell’attività e distinguerlo dal tempo di attesa, rendendo più precisa l’analisi dei colli di bottiglia. Dove reperirli Spesso viene ricavata da altri dati. Ad esempio, l’ora di fine di «Produzione avviata» potrebbe corrispondere all’ora di inizio di «Operazione completata». In alcuni registri, la data e ora di fine è registrata esplicitamente. Esempi 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Quantità pianificata PlannedQuantity | La quantità dell’articolo che si prevede di produrre. | ||
| Descrizione La quantità pianificata è il numero di unità da realizzare per un determinato ordine di produzione. In genere dipende dalla domanda degli ordini di vendita, dai requisiti di scorta di sicurezza o dalla pianificazione generale. Questo attributo costituisce la base di riferimento per metriche di risultato come la resa e gli scarti. Confrontando la quantità pianificata con quella effettivamente prodotta, i responsabili della pianificazione possono monitorare l’efficienza produttiva e le variazioni nel consumo dei materiali. È un dato fondamentale per la pianificazione della capacità e del fabbisogno di materiali. Perché è importante È la quantità di riferimento per misurare la resa della produzione e i tassi di scarto, confrontandola con la quantità effettivamente prodotta. Dove reperirli Corrisponde al campo «QtySched» della tabella «ProdTable». Esempi 1005000250 | |||
| Ritardo nell’avvio della produzione ProductionStartDelay | Il tempo trascorso tra il rilascio dell’ordine e l’effettivo avvio della produzione. | ||
| Descrizione Questa durata calcolata misura il tempo di attesa o di coda in reparto. È la differenza tra l’attività «Ordine di produzione rilasciato» e l’attività «Produzione avviata». Questo KPI è fondamentale per la Dashboard «Analisi dei ritardi nell’allocazione delle risorse», perché individua i ritardi che si verificano dopo il completamento della pianificazione, quando l’ordine è pronto per essere eseguito. Valori elevati possono indicare problemi di disponibilità delle risorse, preparazione dei materiali o trasmissione delle informazioni al reparto, offrendo un obiettivo chiaro per gli interventi operativi. Perché è importante Misura con precisione il ritardo tra la disponibilità dell’ordine e il suo avvio, aiutando a individuare i colli di bottiglia legati alla disponibilità delle risorse o alla preparazione del reparto. Dove reperirli È una metrica calcolata: Timestamp(«Produzione avviata») - Timestamp(«Ordine di produzione rilasciato»). Esempi 0g 4h 15m1g 2h 0m0g 1h 30m | |||
Attività di pianificazione della produzione
| Attività | Descrizione | ||
|---|---|---|---|
| Ordine di produzione concluso | È l’attività finale, che rappresenta la chiusura contabile dell’ordine di produzione. Tutti i costi sono stati calcolati e registrati e non è più possibile effettuare transazioni sull’ordine. | ||
| Perché è importante Segna il completamento effettivo dell’ordine, sia dal punto di vista fisico sia da quello finanziario. I ritardi tra «Reported as Finished» e «Ended» possono indicare problemi nella contabilità dei costi o nelle procedure di chiusura contabile. Dove reperirli È l’ultima modifica di stato registrata quando il campo «ProdStatus» in «ProdTable» viene impostato su «Ended». L’evento è attivato dal calcolo dei costi e dalla chiusura dell’ordine. Acquisizione Rilevare la data e ora in cui il campo ProdStatus di ProdTable passa a «Ended». Tipo di evento inferred | |||
| Ordine di produzione creato | Questa attività registra la creazione di un ordine di produzione, che formalizza la richiesta di una determinata quantità di prodotto. In genere viene rilevata quando un ordine di produzione pianificato viene confermato e registrato ufficialmente nel sistema con un ID univoco. | ||
| Perché è importante È il principale evento di inizio del processo produttivo. Analizzare il tempo che intercorre tra la creazione e le fasi successive permette di misurare il tempo di attraversamento complessivo della pianificazione e la relativa efficienza. Dove reperirli L’evento si deduce dalla data e ora di creazione del record dell’ordine di produzione in ProdTable. Lo stato iniziale è in genere «Created». Acquisizione Rilevare la data e ora di creazione di una nuova voce in ProdTable con ProdStatus impostato su «Created». Tipo di evento inferred | |||
| Ordine di produzione programmato | Questa attività registra la programmazione dell’ordine di produzione, con l’assegnazione di risorse, date e orari specifici alle operazioni. Può comprendere la programmazione delle operazioni o una pianificazione più dettagliata delle singole lavorazioni. | ||
| Perché è importante La programmazione è fondamentale per pianificare la capacità e gestire le risorse. Analizzare il tempo necessario per programmare gli ordini e l’intervallo prima del rilascio permette di individuare vincoli di pianificazione e capacità. Dove reperirli L’evento viene registrato quando lo stato dell’ordine di produzione in ProdTable passa a «Scheduled», in seguito all’esecuzione di una funzione di programmazione da parte di un utente. Acquisizione Rilevare la data e ora in cui il campo ProdStatus di ProdTable passa a «Scheduled». Tipo di evento inferred | |||
| Ordine di produzione rilasciato | Questa attività indica che l’ordine di produzione è stato approvato e autorizzato per l’esecuzione in reparto. È una tappa fondamentale, che consente di generare documenti come le schede di lavorazione e i cartellini di ciclo. | ||
| Perché è importante È il passaggio ufficiale dalla pianificazione all’esecuzione. Il tempo tra «Scheduled» e «Released» può indicare ritardi nelle approvazioni o nei controlli finali, mentre quello tra «Released» e «Started» misura il livello di preparazione del reparto produttivo. Dove reperirli L’evento viene registrato quando lo stato dell’ordine di produzione in ProdTable passa a «Released». Il cambiamento può derivare da un’azione manuale o automatica dell’utente. Acquisizione Rilevare la data e ora in cui il campo ProdStatus di ProdTable passa a «Released». Tipo di evento inferred | |||
| Produzione avviata | Segna l’inizio delle attività di produzione effettive dell’ordine in reparto. Spesso viene registrato quando si avvia la prima operazione o lavorazione da un terminale di reparto o tramite la registrazione di un giornale. | ||
| Perché è importante Questa attività fornisce l’ora effettiva di avvio della produzione, essenziale per calcolare i ritardi di avvio, l’aderenza al programma e i tempi di attraversamento effettivi. Dove reperirli L’evento viene registrato quando lo stato dell’ordine di produzione in ProdTable passa a «Started». Spesso è attivato dalla registrazione del giornale della scheda di lavorazione o del cartellino di ciclo per la prima operazione. Acquisizione Rilevare la data e ora in cui il campo ProdStatus di ProdTable passa a «Started». Tipo di evento inferred | |||
| Produzione dichiarata completata | Indica che la produzione della quantità specificata è fisicamente terminata e che i prodotti finiti sono ora disponibili in inventario. Questo aggiornamento di stato è fondamentale perché attiva le transazioni di inventario. | ||
| Perché è importante Segna la fine della produzione effettiva. È essenziale per calcolare il tasso di completamento nei tempi previsti, la durata effettiva della produzione e il volume prodotto. Dove reperirli L’evento viene registrato quando lo stato dell’ordine di produzione in ProdTable passa a «Reported as finished». È attivato dalla registrazione di un giornale «Report as Finished». Acquisizione Rilevare la data e ora in cui il campo ProdStatus di ProdTable passa a «Reported as finished». Tipo di evento inferred | |||
| Controllo qualità superato | Indica il completamento con esito positivo e la convalida di un ordine di controllo qualità associato al ciclo di produzione. Conferma che gli articoli prodotti rispettano gli standard di qualità richiesti. | ||
| Perché è importante È una tappa fondamentale del processo di controllo qualità. La durata tra la generazione dell’ordine di controllo qualità e il superamento dell’ispezione mette in evidenza l’efficienza del team di controllo qualità. Dove reperirli L’evento si deduce dal passaggio del record in InventQualityOrderTable allo stato «Pass». Il valore specifico dello stato può variare. Acquisizione Rilevare la data e ora in cui lo stato del record associato in InventQualityOrderTable viene aggiornato a «Pass». Tipo di evento inferred | |||
| Materiali prelevati per la produzione | Indica che le materie prime necessarie per l’ordine di produzione sono state prelevate dal magazzino e sono pronte per essere utilizzate. L’evento viene registrato al completamento di un’attività di prelievo delle materie prime o alla registrazione del giornale della distinta di prelievo. | ||
| Perché è importante Questa attività è un passaggio fondamentale prima dell’avvio della produzione. I ritardi tra la programmazione e il prelievo dei materiali evidenziano problemi nelle operazioni di magazzino o nella disponibilità dei materiali. Dove reperirli In genere si tratta di un evento esplicito registrato nelle tabelle di gestione del magazzino (WHSWorkTable) o nei giornali di inventario (InventJournalTrans) associati all’ordine di produzione. Acquisizione Rilevare la data e ora di registrazione del giornale della distinta di prelievo associato all’ordine di produzione. Tipo di evento explicit | |||
| Operazione completata | Questa attività indica il completamento di una singola operazione di produzione o fase del ciclo di lavorazione. In genere, ogni ordine di produzione comprende più eventi di questo tipo. | ||
| Perché è importante Analizzare il tempo tra un’operazione e l’altra aiuta a individuare i colli di bottiglia all’interno del processo produttivo e offre una visione più dettagliata del flusso in reparto. Dove reperirli È un evento esplicito, registrato con la registrazione dei giornali dei cartellini di ciclo (ProdJournalRoute) per ogni operazione, che ne indica il completamento. Acquisizione Rilevare la data e ora di registrazione di ogni record ProdJournalRoute associato all’ordine di produzione. Tipo di evento explicit | |||
| Ordine di controllo qualità generato | È stato creato un ordine di controllo qualità per ispezionare il risultato dell’ordine di produzione. Questo evento segna l’inizio del processo di controllo qualità dei prodotti realizzati. | ||
| Perché è importante Monitorare il processo di controllo qualità è importante per comprendere il tempo di attraversamento complessivo. I ritardi nelle ispezioni possono impedire la spedizione dei prodotti o il loro utilizzo nelle fasi successive. Dove reperirli È un evento esplicito, basato sulla creazione di un record in InventQualityOrderTable che fa riferimento all’ordine di produzione di origine. Acquisizione Rilevare la data e ora di creazione dell’ordine di controllo qualità in InventQualityOrderTable, collegato all’ID dell’ordine di produzione. Tipo di evento explicit | |||
| Ordine di produzione annullato | Indica l’annullamento di un ordine di produzione prima del suo completamento. È una possibile conclusione alternativa del processo, con esito negativo. | ||
| Perché è importante Monitorare gli annullamenti aiuta a individuare le cause degli insuccessi del processo, come variazioni della domanda o errori di pianificazione. Un tasso elevato di annullamenti può indicare problemi sistemici. Dove reperirli È uno stato finale alternativo, dedotto da una modifica dello stato. Lo stato esatto può variare, ma spesso l’ordine viene riportato a uno stato precedente e contrassegnato come annullato. Acquisizione Rilevare una modifica dello stato che indica l’annullamento. Potrebbe essere necessario analizzare il sistema per identificare il cambiamento specifico. Tipo di evento inferred | |||
| Ordine di produzione modificato | Indica una modifica significativa apportata all’ordine di produzione dopo il rilascio, per esempio una variazione della quantità o della data. L’evento si deduce confrontando i campi principali prima e dopo la modifica. | ||
| Perché è importante Modifiche frequenti indicano instabilità nella pianificazione o una domanda variabile e possono causare inefficienze e rilavorazioni. Monitorarle permette di quantificarne la frequenza e l’impatto. Dove reperirli L’evento si deduce analizzando i registri delle modifiche o confrontando le istantanee del record ProdTable per campi come «QtySched» o «SchedEnd», dopo che lo stato dell’ordine è passato a «Released». Acquisizione Individuare le modifiche ai campi principali, per esempio quantità e date, in ProdTable dopo la data e ora dell’evento «Released». Tipo di evento calculated | |||
| Ordine di produzione stimato | Indica il calcolo del consumo stimato di materiali e dei costi dell’ordine di produzione. È una fase fondamentale della pianificazione, perché permette di definire i requisiti finanziari e di materiali prima di procedere. | ||
| Perché è importante I ritardi nella stima possono diventare un importante collo di bottiglia nella fase di pianificazione. Monitorare questa attività aiuta a individuare le inefficienze nella pianificazione dei costi e dei materiali. Dove reperirli L’evento viene registrato quando lo stato dell’ordine di produzione in ProdTable passa a «Estimated». Il cambiamento è attivato da un utente che esegue la funzione «Estimate» sull’ordine. Acquisizione Rilevare la data e ora in cui il campo ProdStatus di ProdTable passa a «Estimated». Tipo di evento inferred | |||
Guide all’estrazione
Passaggi
- Acceda all’area di lavoro Data Management: acceda a Microsoft Dynamics 365 Finance and Operations. Utilizzi la barra di ricerca per trovare e aprire l’area di lavoro
Data management. - Crei un nuovo progetto di esportazione: nell’area di lavoro, selezioni il riquadro
Exportper creare un progetto di esportazione dei dati. Assegni al progetto un nome descrittivo, ad esempioProcessMind_Production_Orders. - Scelga il formato del file di esportazione: nella configurazione del progetto, scelga il formato desiderato, ad esempio CSV o Excel. Imposti l’opzione
Entitye specifichi i dettagli del formato. CSV è consigliato per prestazioni e compatibilità. - Aggiunga le entità dati necessarie: aggiunga al progetto le entità dati necessarie per acquisire tutti gli eventi degli ordini di produzione. Aggiunga ciascuna delle seguenti entità:
Ordini di produzione,Production order route transactions,Inventory quality orderseProduction picking list journal lines. Per ogni entità, selezioni tutti i campi pertinenti indicati nella sezione della query. - Applichi i filtri ai dati: per ciascuna entità, utilizzi l’opzione
Filtroper definire l’ambito dell’esportazione. Come minimo, applichi un filtro perCompanye selezioni la corretta entità giuridica. È fortemente consigliato impostare un intervallo di date su un campo data pertinente, ad esempioCreation datenell’entitàOrdini di produzione, per limitare i dati a un periodo gestibile, per esempio gli ultimi 6 mesi. - Configuri le esportazioni incrementali (facoltativo): per le analisi continuative, configuri il progetto per eseguire esportazioni incrementali. È possibile farlo monitorando le modifiche alle entità di origine, così da estrarre solo i record nuovi o modificati dall’ultima esportazione e ridurre notevolmente i tempi.
- Esegua il processo di esportazione: una volta configurato il progetto, avvii l’esportazione selezionando
Exportnel riquadro delle azioni. Può eseguirla subito oppure pianificarla come processo batch ricorrente. - Scarichi i file esportati: al termine del processo di esportazione, apra la cronologia dei processi e scarichi il pacchetto ZIP, che contiene un file di dati separato per ciascuna entità inclusa.
- Trasformi i dati in un Event Log: i file esportati contengono dati grezzi delle tabelle, non un Event Log già formattato. Per elaborare e combinare i dati dei file, dovrà utilizzare uno strumento esterno, ad esempio uno script Python, Power Query in Excel o Power BI oppure uno strumento ETL. Applichi la logica di trasformazione descritta nella sezione della query per trasformare i campi data e stato delle diverse entità in un unico file Event Log, con una riga per attività.
- Strutturi l’Event Log finale: verifichi che il file CSV trasformato contenga le colonne richieste:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate, oltre agli attributi consigliati. Il file deve includere una riga di intestazione ed essere pronto per il caricamento in ProcessMind.
Configurazione
- Entità dati principali: l’estrazione si basa sull’esportazione di diverse entità, da unire in un secondo momento. Le entità principali sono
Ordini di produzione(ProdTable),Production order route transactions(ProdRouteTrans) eInventory quality orders(InventQualityOrderTable). - Filtro per intervallo di date: per gestire il volume dei dati, applichi sempre un filtro per data. È consigliabile filtrare l’entità
Ordini di produzionein base aCreation date(CREATEDDATETIME), considerando gli ultimi 3-6 mesi. In questo modo acquisirà dati recenti e processi completi senza sovraccaricare il sistema. - Filtro per società: è fondamentale impostare un filtro per la società o l’entità giuridica da analizzare. A tale scopo, utilizzi l’opzione
Filtrosu ciascuna entità del progetto di esportazione. - Caricamento completo o incrementale: per l’estrazione iniziale è necessario un caricamento completo. Per gli aggiornamenti successivi, è fortemente consigliato configurare il rilevamento delle modifiche sulle entità ed eseguire esportazioni incrementali, così da migliorare le prestazioni e ridurre il carico sui dati.
- Prerequisiti: l’utente che esegue l’esportazione deve disporre dei ruoli di sicurezza appropriati, in genere
Data management administratoro un ruolo che consenta di accedere alle entità dati necessarie.
Query di esempio sql
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Passaggi
- Configuri BYOD in Dynamics 365: verifichi che la funzionalità 'Bring your own database' sia configurata nell’ambiente Dynamics 365 Finance and Operations. La configurazione prevede la creazione di un database Azure SQL e l’impostazione dell’esportazione dei dati da Dynamics 365.
- Pubblichi le entità necessarie: dall’area di lavoro 'Data management', apra 'Data entities'. Cerchi e pubblichi nel database BYOD le seguenti entità principali: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Verifichi che siano configurate per l’esportazione ricorrente.
- Verifichi la sincronizzazione dei dati: confermi che i dati delle entità pubblicate vengano sincronizzati correttamente e con regolarità nel database Azure SQL di destinazione. Controlli la cronologia dei processi di esportazione per individuare eventuali errori.
- Si connetta al database BYOD: utilizzi un client SQL, ad esempio SQL Server Management Studio (SSMS) o Azure Data Studio, per connettersi al database Azure SQL che contiene i dati di Dynamics 365.
- Prepari la query SQL: apra una nuova finestra di query e copi la query SQL completa fornita in questo documento.
- Imposti i parametri della query: individui nella query le variabili segnaposto. Sostituisca '{StartDate}', '{EndDate}' e '{CompanyCode}' con l’intervallo di date desiderato e con il DataAreaId della società da analizzare.
- Esegua la query: esegua la query SQL modificata sul database BYOD. Il tempo di esecuzione varia in base al volume dei dati e all’intervallo di date specificato.
- Riveda i risultati: al termine della query, verifichi che l’output contenga le colonne previste e i dati relativi a tutte le attività estratte. Il set di risultati costituisce l’Event Log.
- Esporti l’Event Log: esporti i risultati della query in un file CSV. La maggior parte dei client SQL include una funzione per salvare direttamente i risultati in un file.
- Prepari i dati per ProcessMind: verifichi che il file CSV esportato utilizzi la codifica UTF-8 e che le intestazioni delle colonne corrispondano ai nomi degli attributi richiesti da ProcessMind, ad esempio CaseId, Activity e Timestamp. La query fornita utilizza già gli alias corretti.
Configurazione
- Entità dati principali: la query si basa principalmente sulle seguenti entità esportate nell’istanza BYOD:
PRODTABLE: contiene le informazioni principali e lo stato dell’intestazione dell’ordine di produzione.PRODROUTETRANS: fornisce i dettagli sulle singole operazioni di produzione e sul loro completamento.INVENTPICKINGLISTJOUR: registra il prelievo dei materiali per gli ordini di produzione.INVENTQUALITYORDERTABLE: tiene traccia degli ordini di controllo qualità associati alla produzione.
- Intervallo di date: è consigliabile iniziare con un intervallo limitato, ad esempio 3-6 mesi di dati, per mantenere gestibili le prestazioni della query. Il filtro della query utilizza la data di creazione dell’ordine di produzione (
CREATEDDATETIMEdaPRODTABLE). - Filtro per codice società: il campo
DATAREAIDconsente di filtrare i dati per una specifica entità giuridica o società. Sostituisca il segnaposto'{CompanyCode}'con l’ID pertinente, ad esempio 'usmf'. - Prerequisiti: questo metodo richiede l’accesso come amministratore di sistema a Dynamics 365 Finance and Operations per configurare BYOD e le autorizzazioni Contributor sul database Azure SQL per eseguire le query.
- Prestazioni: per set di dati molto ampi, che coprono diversi anni o società, valuti di eseguire la query nelle ore di minore attività. Può anche suddividere l’estrazione in periodi più brevi e combinare i risultati in un secondo momento.
Query di esempio 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}'; Passaggi
- Verifichi che Power BI Desktop o un altro strumento approvato che includa Power Query sia disponibile e che l’utente disponga dell’autorizzazione per leggere le entità dati necessarie di Microsoft Dynamics 365 Manufacturing. Confermi l’URL dell’ambiente, l’ambito dell’entità giuridica o della società e il metodo di autenticazione approvato.
- In Power BI Desktop, selezioni Get data e scelga il connettore Dynamics 365 approvato oppure la connessione OData o Dataverse specifica dell’organizzazione. Utilizzi [Your Dynamics 365 environment connection] e [Your credentials] secondo la configurazione dell’amministratore. Non presuma che una determinata entità, un endpoint o un percorso di menu sia disponibile in tutte le installazioni.
- Selezioni l’entità dell’intestazione dell’ordine di produzione, quella delle operazioni o del ciclo di produzione, quella del prelievo dei materiali o della distinta di prelievo, le entità di registrazione della produzione, l’entità degli ordini di qualità e le eventuali entità approvate di audit, cronologia o rilevamento delle modifiche necessarie per identificare i cambiamenti di stato. Sostituisca ogni riferimento alla fonte nella query con l’entità o la query corrispondente disponibile nell’ambiente.
- Definisca l’ambito dell’estrazione. Applichi [Start date parameter], [End date parameter] e [Your company or legal entity filter]. Limiti la query agli ordini di produzione degli stabilimenti, prodotti, tipi di ordine e stati richiesti. Mantenga i timestamp di origine necessari a distinguere la creazione, la stima, la pianificazione, il prelievo, il rilascio, la modifica, l’avvio, il completamento delle operazioni, la registrazione come completato, i controlli di qualità, la chiusura e l’annullamento.
- In Power Query, standardizzi i nomi delle colonne di origine e i tipi di dati. Converta i timestamp degli eventi in un tipo data e ora uniforme e normalizzi gli identificativi, i valori di stato, i dati della società e dello stabilimento, i numeri di prodotto, gli utenti, le quantità e le priorità. Se un campo di origine non è disponibile, restituisca un valore null anziché inventarne uno. Utilizzi il numero dell’ordine di produzione come identificativo del caso.
- Crei una tabella di eventi per ogni attività. Ogni tabella deve restituire ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity e ProductionPriority. Il nome dell’attività deve essere un valore fisso corrispondente a uno dei 13 nomi richiesti.
- Identifichi Production Order Adjusted solo tramite una fonte approvata di cronologia delle modifiche, audit o rilevamento delle modifiche che riporti i valori precedenti e successivi. Confronti campi pertinenti come quantità, date pianificate, stato, stabilimento, prodotto e priorità. Generi una riga di modifica per ogni cambiamento conforme ai criteri, utilizzando il timestamp registrato della modifica. Non deduca una modifica basandosi soltanto sull’istantanea corrente dell’ordine di produzione.
- Combini tutte le 13 tabelle delle attività con UNION ALL. Rimuova le righe prive del numero dell’ordine di produzione o del timestamp dell’evento, senza eliminare le ripetizioni legittime di completamenti delle operazioni, modifiche o eventi di qualità. Ordini i dati per ProductionOrderNumber e EventTime, aggiungendo un criterio secondario deterministico quando disponibile.
- Carichi la tabella risultante in Power BI oppure la esporti in formato CSV o in un altro formato di Event Log supportato da ProcessMind. Verifichi che le intestazioni esportate siano esattamente ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity e ProductionPriority.
- Prima di caricare i dati in ProcessMind, verifichi che ogni attività richiesta sia rappresentata da una riga esplicita nell’Event Log, che i timestamp utilizzino un fuso orario uniforme, che ProductionOrderNumber sia valorizzato e che LastDataUpdate indichi l’aggiornamento dell’estrazione. ProcessMind legge l’Event Log così com’è e non ricava gli eventi mancanti.
Configurazione
- Connessione: utilizzi il connettore Power Query e il metodo di autenticazione approvati per l’ambiente Dynamics 365. Sostituisca [Your Dynamics 365 environment connection] e [Your credentials] con i valori approvati dall’organizzazione.
- Entità di origine: selezioni le entità disponibili nell’ambiente relative all’intestazione dell’ordine di produzione, alle operazioni o al ciclo di produzione, al prelievo dei materiali o alla distinta di prelievo, alle registrazioni della produzione, agli ordini di qualità e agli audit o al rilevamento delle modifiche approvati. I nomi e la disponibilità delle entità variano in base all’installazione e devono essere verificati nel browser dei metadati.
- Intervallo di date: inizi con un intervallo di 3-6 mesi. Quando possibile, applichi alla fonte i filtri EventTime e ampli l’intervallo per convalidare gli ordini di produzione di lunga durata o le transizioni di stato storiche.
- Filtri per società e stabilimento: applichi [Your company or legal entity filter] e, se pertinente, il filtro richiesto per lo stabilimento di produzione. Non utilizzi un filtro generico per la società se l’ambiente contiene più entità giuridiche con numeri d’ordine sovrapposti.
- Filtri per gli ordini di produzione: filtri in base ai tipi di ordine, ai prodotti, agli stabilimenti, agli stati e agli intervalli di numeri d’ordine richiesti. Eviti di escludere gli ordini annullati o chiusi se tali esiti sono necessari per l’analisi del processo.
- Inclusione degli eventi: mantenga gli eventi ripetuti di completamento delle operazioni, prelievo dei materiali, qualità e modifica. Non riduca l’Event Log a una sola riga per ordine di produzione.
- Fuso orario: converta tutti i timestamp di origine in un unico fuso orario documentato. Mantenga il timestamp di origine o l’offset del fuso orario, se fornito dalla fonte.
- Metadati di aggiornamento: valorizzi LastDataUpdate con il timestamp di aggiornamento o di estrazione per ogni riga. Se l’intero set di dati viene estratto con un unico aggiornamento, è sufficiente un solo timestamp.
- Prestazioni: applichi alla fonte i filtri per data, società, stabilimento e ordine. Selezioni solo le colonne necessarie, eviti unioni superflue, prepari query di origine riutilizzabili e valuti l’aggiornamento incrementale per i set di dati di grandi dimensioni.
- Prerequisiti: Power BI Desktop o un ambiente Power Query approvato, accesso di rete all’ambiente Dynamics 365, autorizzazioni di lettura valide per tutte le entità selezionate e gli eventuali accessi necessari a Dynamics 365 Manufacturing, magazzino, qualità, audit o rilevamento delle modifiche.
- Dati dipendenti dalla configurazione: se una fonte di eventi necessaria non è abilitata, utilizzi [Configure based on your system] e documenti la fonte mancante. Non sostituisca gli eventi storici con un’istantanea dello stato corrente.
Query di esempio sql
let
StartDate = #datetime(2026, 1, 1, 0, 0, 0),
EndDate = #datetime(2026, 6, 30, 23, 59, 59),
CompanyFilter = "[Your company or legal entity filter]",
SourceSystemValue = "Microsoft Dynamics 365 Manufacturing",
RefreshTime = DateTimeZone.RemoveZone(DateTimeZone.UtcNow()),
ProductionOrderHeader = [Your production order header query],
ProductionOrderOperation = [Your production order operation or route query],
MaterialPicking = [Your material picking or picking list query],
ProductionPosting = [Your production posting query],
QualityOrder = [Your quality order query],
ProductionOrderHistory = [Your approved production order audit or change tracking query],
Header = Table.SelectRows(ProductionOrderHeader, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Operations = Table.SelectRows(ProductionOrderOperation, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Picking = Table.SelectRows(MaterialPicking, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Posting = Table.SelectRows(ProductionPosting, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Quality = Table.SelectRows(QualityOrder, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
History = Table.SelectRows(ProductionOrderHistory, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Created = Table.SelectRows(Header, each [EventType] = "Created" or [EventType] = "Firmed"),
Estimated = Table.SelectRows(Header, each [EventType] = "Estimated"),
Scheduled = Table.SelectRows(Operations, each [EventType] = "Scheduled"),
Picked = Table.SelectRows(Picking, each [EventType] = "Picked" or [EventType] = "Posted"),
Released = Table.SelectRows(Header, each [EventType] = "Released"),
Adjusted = Table.SelectRows(History, each [ChangedField] = "Quantity" or [ChangedField] = "PlannedStartDate" or [ChangedField] = "PlannedEndDate" or [ChangedField] = "Status" or [ChangedField] = "ProductionPlant" or [ChangedField] = "ProductNumber" or [ChangedField] = "ProductionPriority"),
Started = Table.SelectRows(Posting, each [EventType] = "Started"),
OperationCompleted = Table.SelectRows(Operations, each [EventType] = "Completed"),
ReportedFinished = Table.SelectRows(Posting, each [EventType] = "Reported as finished" or [EventType] = "Finished"),
QualityGenerated = Table.SelectRows(Quality, each [EventType] = "Generated" or [EventType] = "Created"),
QualityPassed = Table.SelectRows(Quality, each [EventType] = "Passed" or [EventType] = "Validated"),
Ended = Table.SelectRows(Header, each [EventType] = "Ended"),
Cancelled = Table.SelectRows(Header, each [EventType] = "Cancelled"),
ToEvent = (InputTable as table, Activity as text) as table =>
let
Selected = Table.SelectColumns(InputTable, {"ProductionOrderNumber", "EventTime", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}, MissingField.UseNull),
Named = Table.AddColumn(Selected, "ActivityName", each Activity, type text),
Source = Table.AddColumn(Named, "SourceSystem", each SourceSystemValue, type text),
Updated = Table.AddColumn(Source, "LastDataUpdate", each RefreshTime, type datetime),
Ordered = Table.ReorderColumns(Updated, {"ProductionOrderNumber", "ActivityName", "EventTime", "SourceSystem", "LastDataUpdate", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}),
Valid = Table.SelectRows(Ordered, each [ProductionOrderNumber] <> null and [ProductionOrderNumber] <> "" and [EventTime] <> null)
in
Valid,
EventsCreated = ToEvent(Created, "Production Order Created"),
EventsEstimated = ToEvent(Estimated, "Production Order Estimated"),
EventsScheduled = ToEvent(Scheduled, "Production Order Scheduled"),
EventsPicked = ToEvent(Picked, "Materials Picked For Production"),
EventsReleased = ToEvent(Released, "Production Order Released"),
EventsAdjusted = ToEvent(Adjusted, "Production Order Adjusted"),
EventsStarted = ToEvent(Started, "Production Started"),
EventsOperationCompleted = ToEvent(OperationCompleted, "Operation Completed"),
EventsReportedFinished = ToEvent(ReportedFinished, "Production Reported As Finished"),
EventsQualityGenerated = ToEvent(QualityGenerated, "Quality Order Generated"),
EventsQualityPassed = ToEvent(QualityPassed, "Quality Inspection Passed"),
EventsEnded = ToEvent(Ended, "Production Order Ended"),
EventsCancelled = ToEvent(Cancelled, "Production Order Cancelled"),
EventLog = Table.Combine({EventsCreated, EventsEstimated, EventsScheduled, EventsPicked, EventsReleased, EventsAdjusted, EventsStarted, EventsOperationCompleted, EventsReportedFinished, EventsQualityGenerated, EventsQualityPassed, EventsEnded, EventsCancelled}),
Typed = Table.TransformColumnTypes(EventLog, {{"ProductionOrderNumber", type text}, {"ActivityName", type text}, {"EventTime", type datetime}, {"SourceSystem", type text}, {"LastDataUpdate", type datetime}, {"ProductionOrderStatus", type text}, {"PlannedStartDate", type datetime}, {"PlannedEndDate", type datetime}, {"UserId", type text}, {"ProductionPlant", type text}, {"ProductNumber", type text}, {"ProductionType", type text}, {"ActualQuantity", type number}, {"ProductionPriority", type text}}),
Sorted = Table.Sort(Typed, {{"ProductionOrderNumber", Order.Ascending}, {"EventTime", Order.Ascending}, {"ActivityName", Order.Ascending}})
in
Sorted È pronto a iniziare?
Con questo template completo ha a disposizione tutto ciò che serve per iniziare a estrarre e analizzare i dati di pianificazione della produzione. Inizi oggi a ottimizzare le operazioni per raggiungere la massima efficienza.
Raggiunga la massima efficienza: migliori oggi la pianificazione della produzione
Individui i colli di bottiglia e riduca il tempo di ciclo della produzione del 30% o più.
Non è richiesta la carta di credito. La configurazione richiede pochi minuti.