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à chiave da monitorare
- Indicazioni per l'estrazione da Microsoft Dynamics 365 Manufacturing
Attributi della pianificazione della produzione
| Nome | Descrizione | ||
|---|---|---|---|
| Ordine di produzione ProductionOrderNumber | L’identificativo univoco di un Production Order, utilizzato come ID principale del caso per monitorare tutte le attività di pianificazione ed esecuzione correlate. | ||
| Descrizione Il numero del Production Order, 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 attività produttiva. Consente di analizzare end-to-end il 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 per numero di Production Order aiuta a individuare colli di bottiglia, ritardi e deviazioni nel flusso produttivo 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 Production Planning end-to-end ai fini dell’analisi. Dove reperirlo È il campo 'ProdId' nella tabella 'ProdTable' di Microsoft Dynamics 365 Manufacturing. Esempi WO-000456WO-000457WO-000458 | |||
| Nome dell’attività ActivityName | Il nome dello specifico evento o passaggio aziendale che si è verificato nel processo di Production Planning. | ||
| Descrizione Il nome dell’attività descrive una singola fase del ciclo di vita del Production Planning, come 'Production Order Created', 'Materials Picked For Production' o 'Production Started'. Queste attività costituiscono gli elementi fondamentali della mappa del processo. Analizzare la sequenza e la durata di tali attività consente di visualizzare il flusso del processo, identificare i percorsi più comuni, rilevare i cicli di rilavorazione e misurare il tempo trascorso nelle diverse fasi. Questo Attributo è fondamentale per comprendere cosa accade in ogni punto del processo. Perché è importante Questo Attributo definisce le fasi del processo, consentendo di costruire una mappa del processo e di analizzare il flusso, le variazioni e i colli di bottiglia. Dove reperirlo Questo valore deriva generalmente dagli Event Log oppure dalla mappatura di diverse modifiche di stato e tipologie di transazione nelle tabelle come 'ProdRouteTrans', 'ProdJournalBOM' e nei campi di stato della 'ProdTable'. Esempi Production Order creatoProduction Order rilasciatoProduzione avviataProduzione dichiarata completata | |||
| Orario dell’evento EventTime | Il timestamp preciso che indica quando si è verificata l’attività. | ||
| Descrizione L’orario dell’evento, ovvero il 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’identificazione dei ritardi tra le fasi e la comprensione delle performance del processo nel tempo. Nel contesto del Production Planning, questo Attributo viene utilizzato per misurare durate quali il lead time della pianificazione, i ritardi nell’avvio della produzione e il tempo complessivo di evasione dell’ordine. Timestamp accurati e cronologici sono essenziali per costruire un modello di processo corretto e significativo. Perché è importante Questo timestamp è essenziale per ordinare gli eventi, calcolare le durate tra le attività ed eseguire qualsiasi analisi basata sul tempo, come il calcolo del tempo di ciclo e l’identificazione dei colli di bottiglia. Dove reperirlo È disponibile in diverse tabelle delle transazioni, ad esempio come 'createdDateTime' nella 'ProdTable' o nei campi relativi alla data delle transazioni in 'ProdRouteTrans', 'ProdJournalRoute' e 'ProdJournalBOM'. Esempi 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Sistema di origine SourceSystem | Il sistema di riferimento dal quale sono stati estratti i dati. | ||
| Descrizione Questo Attributo identifica il sistema informativo di origine dal quale provengono i dati degli eventi. Per questa vista del processo, il valore sarebbe costantemente 'Microsoft Dynamics 365 Manufacturing'. Negli ambienti con più sistemi integrati, questo campo è fondamentale per la tracciabilità dei dati, la risoluzione dei problemi di qualità e la comprensione del contributo dei diversi sistemi al processo complessivo. Garantisce chiarezza sull’origine dei dati analizzati. Perché è importante Fornisce un contesto essenziale sull’origine dei dati, indispensabile per la governance dei dati, la convalida e la gestione delle pipeline di dati provenienti da più sistemi aziendali. Dove reperirlo È un valore statico che deve essere aggiunto durante il processo di estrazione e trasformazione dei dati per indicare l’origine del dataset. Esempi Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Il timestamp che indica quando i dati relativi a questo evento sono stati aggiornati o estratti per l’ultima volta dal sistema di origine. | ||
| Descrizione Questo Attributo fornisce la data e l’ora dell’estrazione più recente dei dati dal sistema di origine. È un campo di metadati fondamentale per comprendere il livello di aggiornamento e l’attualità dell’analisi. Sapere quando i dati sono stati aggiornati l’ultima volta aiuta analisti e utenti aziendali a riporre fiducia negli insight ottenuti dallo strumento di Process Mining. Chiarisce se i Dashboard riflettono informazioni in tempo reale o dati relativi a un momento precedente, aspetto importante per prendere decisioni operative. Perché è importante Questo Attributo è fondamentale per la governance dei dati, perché consente agli utenti di comprendere il livello di aggiornamento dei dati e di confidare nella tempestività degli insight sul processo. Dove reperirlo Questo timestamp viene generato e applicato 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 in cui è previsto il completamento del Production Order. | ||
| Descrizione La data di fine pianificata rappresenta l’orario obiettivo di completamento di un Production Order, determinato dal motore di programmazione. Tiene conto dei tempi delle operazioni, dei calendari delle risorse e dei lead time per prevedere quando i prodotti finiti saranno pronti. Nell’analisi dei processi, questo Attributo è fondamentale per valutare le performance di completamento puntuale. Confrontando la data di fine pianificata con il timestamp effettivo di completamento, ricavato dall’attività 'Production Reported As Finished' o 'Production Order Ended', è possibile calcolare il KPI del tasso di completamento puntuale della produzione e individuare le cause sistemiche delle consegne in ritardo. Perché è importante Questo Attributo costituisce il riferimento per misurare i tassi di completamento puntuale e analizzare l’accuratezza della programmazione della produzione. Dove reperirlo È il campo 'SchedEnd' nella 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 in cui è previsto l’inizio del Production Order. | ||
| Descrizione La data di inizio pianificata è un risultato fondamentale del processo di programmazione e rappresenta l’orario obiettivo per l’avvio delle attività produttive di un ordine. Questa data viene determinata in base alla disponibilità dei materiali, alla capacità delle risorse e alle scadenze della domanda. Questo Attributo è essenziale per analizzare l’aderenza al programma. Confrontando la data di inizio pianificata con l’orario effettivo di avvio della produzione, ricavato dal timestamp dell’attività 'Production Started', le organizzazioni possono misurare la puntualità, individuare le cause dei ritardi e calcolare KPI quali il tasso di aderenza al programma di produzione. Perché è importante Funge da riferimento per misurare l’aderenza al programma e identificare i ritardi tra la pianificazione e l’avvio effettivo della produzione. Dove reperirlo È il campo 'SchedStart' nella 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, specifica il prodotto finito che il Production Order deve realizzare. Collega il processo produttivo al prodotto specifico, insieme alla relativa distinta base e alle istruzioni di ciclo. Analizzare il processo per numero prodotto aiuta a individuare variazioni specifiche del prodotto nel ciclo di vita produttivo. Può rivelare che determinati prodotti presentano tempi di ciclo più lunghi, richiedono più rilavorazioni o subiscono ritardi più frequenti, fornendo indicazioni preziose agli ingegneri di prodotto e di processo. Perché è importante Consente di analizzare le variazioni del processo in base al prodotto realizzato, aiutando a individuare colli di bottiglia o problemi di qualità specifici del prodotto. Dove reperirlo È il campo 'ItemId' nella tabella 'ProdTable'. Esempi FG-1001FG-2050ASSY-500B | |||
| Priorità di produzione ProductionPriority | Un indicatore che segnala l'urgenza o la priorità dell'ordine di produzione. | ||
| Descrizione Production Priority è un campo utilizzato dai responsabili della pianificazione e della schedulazione per gestire la sequenza delle attività nell'area produttiva. Gli ordini con priorità più elevata possono essere evasi con urgenza, causando potenzialmente variazioni nel programma pianificato degli altri ordini. L'analisi di questo attributo aiuta a comprendere con quale frequenza i piani di produzione vengono modificati a causa di ordini ad alta priorità o urgenti. Monitorare le variazioni della priorità lungo il ciclo di vita di un ordine può evidenziare instabilità nella domanda o nella pianificazione. Questo dato è fondamentale per il Dashboard «Expedited Production Trends» e per il KPI «Expedited Production Rate». Perché è importante Aiuta a identificare la frequenza e l'impatto degli ordini urgenti, che possono indicare instabilità nella pianificazione o una gestione operativa reattiva. Dove reperirlo Può trattarsi di un campo standard o personalizzato della tabella «ProdTable». La configurazione è spesso specifica per ciascuna azienda. Esempi NormaleAltaUrgente | |||
| Quantità effettiva ActualQuantity | La quantità di beni prodotti correttamente e registrati come completati per l'ordine. | ||
| Descrizione La quantità effettiva rappresenta il numero di unità completate e che hanno superato i controlli qualità per uno specifico ordine di produzione. Questo valore viene registrato quando la produzione viene «Reported as finished». Questo attributo viene utilizzato per analizzare la resa e l'efficienza produttiva. Il confronto tra Quantità effettiva e Quantità pianificata aiuta a calcolare i tassi di scarto e a comprendere le perdite di produzione. È inoltre un elemento fondamentale per l'analisi del throughput e per i Dashboard sull'utilizzo della capacità. Perché è importante È essenziale per calcolare la resa produttiva, i tassi di scarto e il throughput effettivo, offrendo una visione dell'efficienza e delle performance produttive. Dove reperirlo Questo valore proviene spesso dal campo «QtyGood» della tabella «ProdTable» o da tabelle correlate di registrazione dei giornali, quando un ordine viene registrato come completato. Esempi 100985000 | |||
| Stabilimento produttivo ProductionPlant | Il sito o lo stabilimento produttivo in cui viene eseguito il Production Order. | ||
| Descrizione Lo stabilimento produttivo identifica la sede fisica o l’impianto responsabile del processo di produzione. È una dimensione organizzativa fondamentale per segmentare e confrontare le performance produttive. Nel Process Mining, questo Attributo consente di confrontare le performance tra diversi stabilimenti. Gli analisti possono comparare tempi di ciclo, utilizzo delle risorse e aderenza ai processi standard tra i vari siti, così da individuare le best practice o gli stabilimenti che potrebbero richiedere miglioramenti operativi. È essenziale per analizzare l’utilizzo della capacità. Perché è importante Consente di confrontare e mettere a benchmark le performance di diversi siti produttivi, aiutando a individuare best practice e problematiche specifiche delle singole aree. Dove reperirlo È il campo 'InventSiteId' nella tabella 'ProdTable'. Esempi SITE-ASITE-BMain-WH | |||
| Stato del Production Order ProductionOrderStatus | Indica lo stato attuale del ciclo di vita del Production Order. | ||
| Descrizione Lo stato del Production Order riflette l’avanzamento dell’ordine lungo il ciclo di vita produttivo. Gli stati comuni in Dynamics 365 includono Created, Estimated, Scheduled, Released, Started, Reported as finished ed Ended. Questo Attributo fornisce una fotografia della situazione di ciascun ordine in un determinato momento. Nel Process Mining, l’analisi delle modifiche di stato è uno dei principali metodi per definire le attività e comprendere il flusso del processo. Può essere utilizzato per filtrare gli ordini che si trovano in uno stato specifico, analizzare il tempo trascorso in ciascuno stato e identificare gli ordini bloccati o in ritardo. Perché è importante Questo Attributo offre una visione di alto livello dell’avanzamento dell’ordine ed è fondamentale per il filtraggio, i controlli di conformità e l’analisi del tempo trascorso nelle diverse fasi produttive. Dove reperirlo È il campo 'ProdStatus' nella tabella 'ProdTable'. Esempi PianificatoRilasciatoAvviatoTerminato | |||
| Tipo di produzione ProductionType | La classificazione del Production Order, ad esempio standard, rilavorazione o basato su progetto. | ||
| Descrizione Production Type classifica l'ordine in base alla sua finalità. Ad esempio, un ordine «Standard» riguarda la produzione ordinaria per le scorte, un ordine «Rework» serve a correggere i difetti di un articolo prodotto in precedenza, mentre un ordine «Project» è collegato a uno specifico progetto cliente. Questo attributo è importante per creare viste di analisi confrontabili. Il processo relativo a un ordine Rework è intrinsecamente diverso da quello di un ordine Standard. Segmentare l'analisi del processo per Production Type garantisce confronti significativi e aiuta a comprendere le sfide e i flussi specifici di ciascun tipo. Perché è importante Questo attributo consente di segmentare l'analisi, poiché diversi tipi di ordine, come «Standard» e «Rework», seguono naturalmente processi differenti e presentano aspettative di performance diverse. Dove reperirlo È il 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 specifica fase del processo, come il rilascio di un ordine o la dichiarazione di completamento. Queste informazioni offrono visibilità su chi svolge le attività all’interno del processo. Analizzare il processo per utente aiuta a comprendere la distribuzione del carico di lavoro, individuare opportunità di formazione, confrontare le performance di singoli utenti o team e analizzare le deviazioni eseguite da utenti specifici. È inoltre importante ai fini della conformità e della tracciabilità di audit. Perché è importante Consente di analizzare le performance del processo per utente o team, aiuta a individuare opportunità di automazione e fornisce una traccia di audit per le attività chiave del processo. Dove reperirlo È disponibile in campi quali 'modifiedBy' o 'createdBy' di diverse tabelle oppure nei campi utente delle tabelle dei log delle transazioni, come 'ProdJournalTable'. Esempi j.smithm.jonesAX_BATCH_SVC | |||
| Avvio puntuale ProductionScheduleAdherence | Un flag booleano che vale true se l'ordine di produzione è iniziato alla data di inizio pianificata o prima di essa. | ||
| Descrizione Questo attributo calcolato fornisce un indicatore semplice e binario del rispetto del programma all'avvio della produzione. Confronta il timestamp effettivo di avvio, l'evento «Production Started», con l'attributo «PlannedStartDate». Il flag è estremamente utile per creare Dashboard e KPI chiari e sintetici, come il «Production Schedule Adherence Rate». Consente di filtrare e aggregare facilmente i dati per vedere quale percentuale di ordini inizia puntualmente e analizzare le caratteristiche degli ordini in ritardo, senza dover eseguire direttamente confronti tra date nello strumento di analisi. Perché è importante Semplifica la reportistica e il calcolo dei KPI relativi al rispetto del programma, consentendo di filtrare e aggregare facilmente gli ordini puntuali e quelli in ritardo. Dove reperirlo È una metrica calcolata. La logica è: «Production Started» EventTime <= PlannedStartDate. Esempi truefalse | |||
| Disponibilità dei materiali MaterialAvailabilityStatus | Indica se le materie prime necessarie per l'ordine di produzione sono disponibili. | ||
| Descrizione Questo attributo monitora la disponibilità dei componenti necessari per la produzione. Può riflettere stati quali «Available», «On Order» o «Shortage». Queste informazioni sono fondamentali per consentire ai responsabili della schedulazione di capire se un ordine di produzione può effettivamente iniziare come previsto. Nel Process Mining, questo attributo è essenziale per diagnosticare le cause principali dei ritardi nell'avvio della produzione. Correlando lo stato con il tempo compreso tra «Production Order Released» e «Production Started», gli analisti possono quantificare l'impatto delle carenze di materiali sul rispetto del programma e sul tempo di ciclo complessivo. Questo supporta direttamente il Dashboard «Material Availability Delay Impact». Perché è importante È fondamentale per comprendere e quantificare i ritardi nell'avvio della produzione causati dalle carenze di materiali, collegando le performance della supply chain all'efficienza produttiva. Dove reperirlo Questo stato spesso non corrisponde a un singolo campo, ma viene calcolato verificando i livelli di inventario disponibili per tutti gli articoli nella distinta base (BOM) dell'ordine di produzione, tramite la tabella «InventSum». Esempi Completamente disponibileCarenza parzialeNon disponibile | |||
| Linea di produzione ProductionLine | La specifica linea di produzione, il centro di lavoro o il gruppo di risorse assegnato all'ordine di produzione. | ||
| Descrizione La linea di produzione identifica la macchina, la cella o il gruppo di risorse specifico che eseguirà le operazioni produttive. Offre un livello di dettaglio più granulare rispetto allo stabilimento di produzione. Analizzare il processo per linea di produzione è fondamentale per una valutazione dettagliata della capacità e dell'utilizzo. Aiuta a identificare i centri di lavoro sovraccarichi, a confrontare l'efficienza di linee diverse che producono lo stesso articolo e a individuare i colli di bottiglia specifici delle risorse, che potrebbero non essere visibili a livello di stabilimento. Perché è importante Consente un'analisi granulare dell'utilizzo e delle performance delle risorse, aiutando a identificare i centri di lavoro sovraccarichi o le linee inefficienti. Dove reperirlo 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 dell'ordine qualità QualityOrderNumber | L'identificativo di un ordine di controllo qualità collegato all'ordine di produzione. | ||
| Descrizione Quando è richiesta un'ispezione qualità, in Dynamics 365 viene spesso generato un Quality Order. Questo attributo collega il processo produttivo al processo di assicurazione qualità, registrando l'ID dell'ordine qualità associato. Questo collegamento consente una visione end-to-end più completa del processo, includendo le attività di gestione della qualità. Aiuta ad analizzare l'impatto delle ispezioni sui tempi di attraversamento della produzione, a identificare i ritardi nel processo qualità e a comprendere la frequenza dei controlli per diversi prodotti o linee di produzione. Perché è importante Collega il processo produttivo al processo di assicurazione qualità, consentendo di analizzare l'impatto delle ispezioni sui tempi di attraversamento complessivi. Dove reperirlo Queste informazioni sono memorizzate nelle tabelle di gestione della qualità, ad esempio «InventQualityOrderTable», e devono essere ricollegate all'ordine di produzione. Esempi QO-00123QO-00124QO-00125 | |||
| Numero di revisione ProductionOrderRevisionNumber | Il numero di volte in cui un piano di produzione è stato modificato dopo la sua creazione iniziale. | ||
| Descrizione Questo attributo monitora il numero di revisioni o modifiche significative apportate a un ordine di produzione, ad esempio a quantità, date o ciclo di produzione, dopo che è stato schedulato o rilasciato. Un numero elevato indica una maggiore instabilità del piano. È una misura diretta per il KPI «Production Plan Revision Rate». La sua analisi aiuta a identificare le cause dell'instabilità nella pianificazione, come frequenti variazioni della domanda o un'errata pianificazione iniziale. Quantifica il lavoro di rilavorazione e riprogrammazione, che spesso genera inefficienze. Perché è importante Misura direttamente la stabilità della pianificazione e supporta il KPI «Production Plan Revision Rate», evidenziando i processi caratterizzati da modifiche e rilavorazioni eccessive. Dove reperirlo È un attributo derivato che richiede il conteggio delle occorrenze delle attività «Production Order Adjusted» per ciascun caso. Esempi 012 | |||
| Ora di fine EndTime | Il timestamp preciso che indica quando l'attività è stata completata. | ||
| Descrizione L'ora di fine indica il completamento di una specifica attività. Mentre l'ora di inizio segnala l'avvio, l'ora di fine è necessaria per comprendere la durata effettiva o il tempo di elaborazione di quel singolo passaggio. Nel Process Mining, disporre sia dell'ora di inizio sia dell'ora di fine delle attività consente un'analisi più dettagliata del tempo di attesa rispetto al tempo di elaborazione. Permette di distinguere il tempo durante il quale un'attività è stata effettivamente eseguita da quello trascorso in attesa dell'avvio del passaggio successivo, un elemento essenziale per un'analisi dettagliata dei colli di bottiglia. Perché è importante Consente di calcolare il tempo di elaborazione dell'attività e di distinguerlo dal tempo di attesa, permettendo un'analisi più precisa dei colli di bottiglia. Dove reperirlo Spesso viene calcolata. Ad esempio, l'ora di fine di «Production Started» potrebbe corrispondere all'ora di inizio di «Operation Completed». In alcuni log, il timestamp di fine viene registrato 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 obiettivo di unità da produrre per uno specifico ordine di produzione. In genere, questa quantità è determinata dalla domanda derivante dagli ordini di vendita, dai requisiti di scorta di sicurezza o dalla pianificazione principale. Questo attributo costituisce la base per metriche di performance quali resa e scarto. Confrontando la quantità pianificata con la quantità effettiva dei beni prodotti, i responsabili della pianificazione possono monitorare l'efficienza produttiva e la varianza dei materiali. È un dato fondamentale per la pianificazione della capacità e del fabbisogno di materiali. Perché è importante È la quantità di riferimento utilizzata per misurare la resa produttiva e i tassi di scarto, confrontandola con la quantità effettivamente prodotta. Dove reperirlo È il campo «QtySched» della tabella «ProdTable». Esempi 1005000250 | |||
| Ritardo nell'avvio della produzione ProductionStartDelay | Il tempo trascorso tra il rilascio dell'ordine e l'avvio effettivo della produzione. | ||
| Descrizione Questa durata calcolata misura il tempo di attesa o di coda nell'area produttiva. Corrisponde alla differenza temporale tra l'attività «Production Order Released» e l'attività «Production Started». Questo KPI è fondamentale per il Dashboard «Resource Allocation Delay Analysis», poiché individua i ritardi che si verificano dopo il completamento della pianificazione, quando l'ordine è pronto per l'esecuzione. Valori elevati possono indicare problemi di disponibilità delle risorse, preparazione dei materiali o flusso delle informazioni verso l'area produttiva, offrendo un obiettivo chiaro per i miglioramenti operativi. Perché è importante Misura con precisione il ritardo tra la disponibilità e l'avvio, aiutando a individuare i colli di bottiglia legati alla disponibilità delle risorse o alla preparazione dell'area produttiva. Dove reperirlo È una metrica calcolata: Timestamp('Production Started') - Timestamp('Production Order Released'). Esempi 0g 4h 15min1g 2h 0min0g 1h 30min | |||
Attività di pianificazione della produzione
| Attività | Descrizione | ||
|---|---|---|---|
| Production Order creato | Questa attività indica la creazione di un Production Order, che formalizza la domanda relativa a una quantità specifica di prodotto. In genere viene registrata quando un Production Order pianificato viene confermato, creando nel sistema un record ufficiale con un ID univoco. | ||
| Perché è importante Questo è il principale evento di avvio del processo produttivo. Analizzare il tempo che intercorre tra la creazione e le fasi successive aiuta a misurare il lead time complessivo della pianificazione e la relativa efficienza. Dove reperirlo Questo evento viene dedotto dal timestamp di creazione del record del Production Order nella ProdTable. Lo stato iniziale è generalmente 'Created'. Acquisizione Acquisisca il timestamp di creazione di una nuova voce nella ProdTable in cui ProdStatus è 'Created'. Tipo di evento inferred | |||
| Production Order programmato | Questa attività indica la programmazione del Production Order, che assegna risorse, date e orari specifici alle relative operazioni. La fase può comprendere la programmazione delle operazioni o una programmazione dei singoli job più dettagliata. | ||
| Perché è importante La programmazione è fondamentale per la pianificazione della capacità e la gestione delle risorse. Analizzare il tempo necessario per programmare gli ordini e l’intervallo che precede il rilascio consente di evidenziare i vincoli di pianificazione e capacità. Dove reperirlo Viene registrato quando lo stato del Production Order nella ProdTable cambia in 'Scheduled'. Il cambiamento viene attivato da un utente che esegue una funzione di programmazione. Acquisizione Rilevi il timestamp in cui il campo ProdStatus della ProdTable cambia in 'Scheduled'. Tipo di evento inferred | |||
| Production Order rilasciato | Questa attività indica che il Production Order è stato approvato e autorizzato per l’esecuzione nell’area produttiva. Si tratta di una milestone fondamentale, che rende disponibili documenti quali job card e route card. | ||
| Perché è importante Questo è il passaggio ufficiale dalla pianificazione all’esecuzione. Il tempo tra 'Scheduled' e 'Released' può indicare ritardi nelle approvazioni o nei controlli finali, mentre il tempo tra 'Released' e 'Started' misura la prontezza dell’area produttiva. Dove reperirlo Viene registrato quando lo stato del Production Order nella ProdTable cambia in 'Released'. Il cambiamento è il risultato di un’azione manuale o automatizzata dell’utente. Acquisizione Rilevi il timestamp in cui il campo ProdStatus della ProdTable cambia in 'Released'. Tipo di evento inferred | |||
| Production Order terminato | Questa è l’attività finale e rappresenta la chiusura finanziaria del Production Order. Tutti i costi sono stati calcolati e registrati e non è più possibile effettuare transazioni a carico dell’ordine. | ||
| Perché è importante Questo evento 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 nei processi di contabilità dei costi o di chiusura finanziaria. Dove reperirlo Si tratta dell’ultima modifica di stato, registrata quando il campo 'ProdStatus' nella tabella 'ProdTable' viene impostato su 'Ended'. Il cambiamento viene attivato eseguendo il calcolo dei costi e chiudendo l’ordine. Acquisizione Rilevi il timestamp in cui il campo ProdStatus della ProdTable cambia in 'Ended'. Tipo di evento inferred | |||
| Produzione avviata | Indica l’inizio delle attività produttive fisiche relative all’ordine nell’area produttiva. Spesso viene registrato quando la prima operazione o il primo job viene avviato tramite un terminale dell’area produttiva o la registrazione di un giornale. | ||
| Perché è importante Questa attività fornisce l’orario effettivo di avvio della produzione, fondamentale per calcolare i ritardi di avvio, l’aderenza al programma e i lead time effettivi. Dove reperirlo Viene registrato quando lo stato del Production Order nella ProdTable cambia in 'Started'. Spesso il cambiamento viene attivato dalla registrazione del giornale di una job card o route card relativa alla prima operazione. Acquisizione Rilevi il timestamp in cui il campo ProdStatus della ProdTable cambia in 'Started'. Tipo di evento inferred | |||
| Produzione dichiarata completata | Indica che il processo produttivo della quantità specificata di prodotto è fisicamente completato e che i prodotti finiti si trovano ora a magazzino. Si tratta di un aggiornamento di stato fondamentale, che attiva le transazioni di inventario. | ||
| Perché è importante Questo evento segna la fine della produzione fisica. È essenziale per calcolare i tassi di completamento puntuale, la durata effettiva della produzione e il throughput. Dove reperirlo Viene registrato quando lo stato del Production Order nella ProdTable cambia in 'Reported as finished'. Il cambiamento viene attivato dalla registrazione di un giornale Report as Finished. Acquisizione Rilevi il timestamp in cui il campo ProdStatus della ProdTable cambia in 'Reported as finished'. Tipo di evento inferred | |||
| Ispezione qualità superata | Rappresenta il completamento e la convalida con esito positivo di un Quality Order associato al ciclo produttivo. Conferma che gli articoli prodotti soddisfano gli standard di qualità richiesti. | ||
| Perché è importante Questa è una milestone fondamentale nel processo di qualità. La durata tra la generazione del Quality Order e il superamento dell’ispezione evidenzia l’efficienza del team QA. Dove reperirlo Viene dedotto da una modifica dello stato del record nella InventQualityOrderTable allo stato 'Pass'. Il valore specifico dello stato può variare. Acquisizione Rilevi il timestamp in cui lo stato del record associato nella InventQualityOrderTable viene aggiornato a 'Pass'. Tipo di evento inferred | |||
| Materiali prelevati per la produzione | Indica che le materie prime necessarie per il Production Order sono state prelevate dal magazzino e sono pronte per il consumo. Questo evento viene registrato al completamento di un’attività di prelievo delle materie prime o della registrazione del giornale della picking list. | ||
| Perché è importante Questa attività rappresenta un passaggio fondamentale per l’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 reperirlo In genere si tratta di un evento esplicito registrato nelle tabelle di gestione del magazzino (WHSWorkTable) o nei giornali di inventario (InventJournalTrans) collegati al Production Order. Acquisizione Acquisisca il timestamp di registrazione del giornale della picking list associato al Production Order. Tipo di evento explicit | |||
| Operazione completata | Questa attività indica il completamento di una singola operazione o fase di produzione nel ciclo produttivo. Un Production Order comprende generalmente più eventi di questo tipo. | ||
| Perché è importante Analizzare il tempo tra le operazioni aiuta a individuare i colli di bottiglia all’interno del processo produttivo. Offre una visione più granulare del flusso nell’area produttiva. Dove reperirlo Si tratta di un evento esplicito acquisito dalla registrazione dei giornali delle route card (ProdJournalRoute) per ciascuna operazione, che indica il completamento della fase. Acquisizione Acquisisca il timestamp di registrazione di ogni record ProdJournalRoute associato al Production Order. Tipo di evento explicit | |||
| Production Order annullato | Rappresenta l’annullamento di un Production Order prima del suo completamento. Costituisce un esito alternativo e non riuscito del processo. | ||
| Perché è importante Monitorare gli annullamenti aiuta a individuare le cause degli insuccessi del processo, come variazioni della domanda o errori di pianificazione. Tassi elevati di annullamento possono indicare problemi sistemici. Dove reperirlo Si tratta di uno stato finale alternativo dedotto da una modifica di stato. Lo stato esatto può variare, ma spesso comporta il ripristino dell’ordine a uno stato precedente e la sua marcatura come annullato. Acquisizione Rilevi una modifica di stato che indichi l’annullamento. Potrebbe essere necessaria un’analisi specifica del sistema per identificarla. Tipo di evento inferred | |||
| Production Order modificato | Rappresenta una modifica significativa apportata al Production Order dopo il rilascio, come una variazione della quantità o della data. Questo evento viene dedotto confrontando i campi principali prima e dopo la modifica. | ||
| Perché è importante Modifiche frequenti indicano instabilità nella pianificazione o una domanda volatile, con conseguenti inefficienze e rilavorazioni. Questo consente di quantificare la frequenza e l’impatto di tali cambiamenti. Dove reperirlo Viene dedotto analizzando i log delle modifiche o confrontando gli snapshot del record ProdTable per campi quali 'QtySched' o 'SchedEnd' dopo che lo stato dell’ordine è diventato 'Released'. Acquisizione Identifichi le modifiche ai campi principali, ad esempio quantità e date, nella ProdTable dopo il timestamp dell’evento 'Released'. Tipo di evento calculated | |||
| Production Order stimato | Rappresenta il calcolo del consumo stimato di materiali e costi per il Production Order. Si tratta di una fase di pianificazione fondamentale, che consente di comprendere i requisiti finanziari e materiali prima di procedere. | ||
| Perché è importante I ritardi nella stima possono costituire un collo di bottiglia significativo nella fase di pianificazione. Monitorare questa attività aiuta a individuare le inefficienze nel processo di pianificazione dei costi e dei materiali. Dove reperirlo Viene registrato quando lo stato del Production Order nella ProdTable cambia in 'Estimated'. Il cambiamento viene attivato da un utente che esegue la funzione 'Estimate' sull’ordine. Acquisizione Rilevi il timestamp in cui il campo ProdStatus della ProdTable cambia in 'Estimated'. Tipo di evento inferred | |||
| Quality Order generato | È stato creato un Quality Order per ispezionare l’output del Production Order. Questo evento indica l’inizio del processo di assicurazione della qualità per i prodotti realizzati. | ||
| Perché è importante Monitorare il processo di qualità è importante per comprendere il lead time complessivo. I ritardi nell’ispezione possono impedire la spedizione dei prodotti o il loro utilizzo nei processi successivi. Dove reperirlo Si tratta di un evento esplicito basato sulla creazione di un record nella InventQualityOrderTable che fa riferimento al Production Order di origine. Acquisizione Acquisisca il timestamp di creazione del Quality Order nella InventQualityOrderTable collegato all’ID del Production Order. Tipo di evento explicit | |||
Guide all'estrazione
Passaggi
- Accesso 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. - Creazione di un nuovo progetto di esportazione: nell’area di lavoro, selezioni il riquadro
Exportper creare un nuovo progetto di esportazione dei dati. Assegni al progetto un nome descrittivo, ad esempioProcessMind_Production_Orders. - Selezione del formato del file di esportazione: nella configurazione del progetto, scelga il formato desiderato per l’esportazione, ad esempio CSV o Excel. Imposti l’opzione
Entitye specifichi i dettagli del formato. CSV è il formato consigliato per prestazioni e compatibilità. - Aggiunta delle entità dati richieste: aggiunga al progetto le entità dati necessarie per acquisire tutti gli eventi degli ordini di produzione. Dovrà aggiungere 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. - Applicazione dei filtri dati: per ogni entità, utilizzi l’opzione
Filtroper definire l’ambito dell’esportazione. Come minimo, applichi il filtroCompanyper selezionare la corretta entità giuridica. È fortemente consigliato applicare un filtro per intervallo di date su un campo data rilevante, ad esempioCreation datenell’entitàOrdini di produzione, così da limitare il volume dei dati a un periodo gestibile, per esempio gli ultimi 6 mesi. - Configurazione delle esportazioni incrementali (facoltativa): per l’analisi continuativa, configuri il progetto per le esportazioni incrementali. A questo scopo può attivare il rilevamento delle modifiche nelle entità di origine, così da estrarre soltanto i record nuovi o modificati dall’ultima esportazione e ridurre sensibilmente i tempi.
- Esecuzione del processo di esportazione: dopo aver configurato il progetto, avvii l’esportazione facendo clic su
Exportnel riquadro delle azioni. Può eseguirla immediatamente oppure pianificarla come processo batch ricorrente. - Download dei file esportati: dopo il completamento corretto del processo di esportazione, apra la cronologia dei processi. Scarichi il pacchetto, che sarà un file ZIP contenente file dati separati per ciascuna entità inclusa.
- Trasformazione dei dati in un Event Log: i file esportati rappresentano dati grezzi delle tabelle, non un Event Log formattato. Dovrà utilizzare uno strumento esterno, come uno script Python, Power Query in Excel o Power BI oppure uno strumento ETL, per elaborare e combinare i dati dei file. Applichi la logica di trasformazione descritta nella sezione della query per trasformare i campi data e stato delle varie entità in un unico file Event Log con una riga per attività.
- Strutturazione dell’Event Log finale: verifichi che il file CSV trasformato contenga le colonne richieste:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate, oltre agli eventuali 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à, che verranno unite 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. È buona pratica filtrare l’entità
Ordini di produzionein base aCreation date(CREATEDDATETIME) per gli ultimi 3-6 mesi. In questo modo acquisirà processi recenti completi senza sovraccaricare il sistema. - Filtro azienda: è fondamentale impostare un filtro per l’azienda o l’entità giuridica specifica che desidera analizzare. Il filtro si applica tramite l’opzione
Filtrosu ciascuna entità del progetto di esportazione. - Esportazione completa o incrementale: per l’estrazione iniziale è necessaria un’esportazione completa. Per gli aggiornamenti successivi è fortemente consigliato configurare il rilevamento delle modifiche nelle 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 administratoroppure un ruolo con autorizzazioni per accedere alle entità dati richieste.
a 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: si assicuri che la funzionalità «Bring your own database» sia configurata nell'ambiente Dynamics 365 for Finance and Operations. Ciò richiede la configurazione di un database Azure SQL e dell'esportazione dei dati da Dynamics 365.
- Pubblichi le entità necessarie: dal Workspace «Data management», apra «Data entities». Cerchi e pubblichi nel database BYOD le seguenti entità chiave: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Si assicuri che siano configurate per l'esportazione ricorrente.
- Verifichi la sincronizzazione dei dati: confermi che i dati delle entità pubblicate vengano sincronizzati correttamente e regolarmente con il 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, come SQL Server Management Studio (SSMS) o Azure Data Studio, per connettersi al database Azure SQL in cui risiedono i dati di Dynamics 365.
- Prepari la query SQL: apra una nuova finestra di query. 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 dell'azienda specifica che desidera analizzare. - Esegua la query: esegua la query SQL modificata sul database BYOD. Il tempo di esecuzione varierà in base al volume dei dati e all'intervallo di date specificato.
- Esamini i risultati: al termine della query, verifichi che l'output contenga le colonne e i dati previsti per 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 dispone di una funzione integrata per salvare direttamente i risultati in un file.
- Formatti i dati per ProcessMind: si assicuri che il file CSV esportato utilizzi la codifica UTF-8 e che le intestazioni delle colonne corrispondano ai nomi degli attributi richiesti da ProcessMind, come CaseId, Activity e Timestamp. La query fornita utilizza già gli alias corretti.
Configurazione
- Entità dati chiave: la query si basa principalmente sulle seguenti entità esportate nell'istanza BYOD:
PRODTABLE: contiene le informazioni principali dell'intestazione e dello stato dell'ordine di produzione.PRODROUTETRANS: fornisce i dettagli sulle singole operazioni produttive e sul loro completamento.INVENTPICKINGLISTJOUR: registra il prelievo dei materiali per gli ordini di produzione.INVENTQUALITYORDERTABLE: monitora gli ordini di assicurazione qualità collegati alla produzione.
- Intervallo di date: è consigliabile iniziare con un intervallo limitato, ad esempio da 3 a 6 mesi di dati, per garantire performance gestibili della query. La query utilizza la data di creazione dell'ordine di produzione (
CREATEDDATETIMEdaPRODTABLE) per il filtro. - Filtro per codice azienda: il campo
DATAREAIDviene utilizzato per filtrare i dati relativi a una specifica entità giuridica o azienda. Deve sostituire il segnaposto'{CompanyCode}'con l'ID pertinente, ad esempio «usmf». - Prerequisiti: questo metodo richiede l'accesso come amministratore di sistema sia a Dynamics 365 Finance and Operations, per configurare BYOD, sia al database Azure SQL, con autorizzazioni Contributor per eseguire le query.
- Performance: per dataset molto grandi, distribuiti su diversi anni o aziende, valuti l'esecuzione della query negli orari di minore attività. Può inoltre suddividere l'estrazione in periodi più brevi e combinare successivamente i risultati.
a 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 a leggere le entità dati richieste di Microsoft Dynamics 365 Manufacturing. Verifichi l'URL dell'ambiente, l'ambito dell'entità giuridica o dell'azienda e il metodo di autenticazione approvato.
- In Power BI Desktop, selezioni Recupera dati 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 definita dall'amministratore. Non presuma che una determinata entità, un endpoint o un percorso di menu siano disponibili in ogni implementazione.
- Selezioni l'entità dell'intestazione dell'ordine di produzione, l'entità delle operazioni o del ciclo dell'ordine di produzione, l'entità del prelievo materiali o della distinta di prelievo, le entità delle registrazioni di produzione, l'entità dell'ordine qualità e tutte le entità approvate di audit, cronologia o tracciamento delle modifiche necessarie per identificare i cambiamenti di stato. Sostituisca ogni riferimento alla fonte nella query con l'entità o la query corrispondente disponibile nel Suo ambiente.
- Configuri 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 relativi agli stabilimenti, ai prodotti, ai tipi di ordine e agli stati richiesti. Conservi i timestamp di origine necessari per distinguere creazione, stima, pianificazione, prelievo, rilascio, rettifica, avvio, completamento dell'operazione, dichiarazione di completamento, qualità, chiusura e annullamento.
- In Power Query, standardizzi i nomi delle colonne di origine e i tipi di dati. Converta i timestamp degli eventi in un tipo datetime coerente e normalizzi identificativi, valori di stato, valori aziendali, valori dello stabilimento, numeri di prodotto, utenti, quantità e priorità. Quando un campo di origine non è disponibile, restituisca un valore null invece di 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 esclusivamente sulla base di una fonte approvata di cronologia, audit o tracciamento delle modifiche che contenga i valori prima e dopo. Confronti campi rilevanti quali quantità, date pianificate, stato, stabilimento, prodotto e priorità. Generi una riga di rettifica per ogni modifica qualificante, utilizzando il timestamp registrato della modifica. Non deduca una rettifica esclusivamente dall'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, ma non elimini i completamenti ripetuti delle operazioni, le rettifiche o gli eventi qualità legittimi. Ordini per ProductionOrderNumber ed EventTime, applicando, ove disponibile, un ordinamento secondario deterministico.
- 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 come riga esplicita dell'event log, che i timestamp utilizzino un fuso orario coerente, che ProductionOrderNumber sia valorizzato e che LastDataUpdate identifichi 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à dell'intestazione dell'ordine di produzione, delle operazioni o del ciclo, del prelievo materiali o della distinta di prelievo, delle registrazioni di produzione, dell'ordine qualità e di audit o tracciamento delle modifiche approvate disponibili nell'ambiente. I nomi e la disponibilità delle entità variano in base all'implementazione e devono essere verificati nel browser dei metadati.
- Intervallo di date: inizi con un intervallo compreso tra 3 e 6 mesi. Utilizzi, ove possibile, filtri EventTime all'origine ed estenda l'intervallo durante la convalida degli ordini di produzione di lunga durata o delle transizioni di stato storiche.
- Filtri per azienda e stabilimento: applichi [Your company or legal entity filter] e, ove pertinente, il filtro per lo stabilimento di produzione richiesto. Non utilizzi un filtro aziendale generico 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 di produzione, ai prodotti, agli stabilimenti, agli stati e agli intervalli di numeri d'ordine richiesti. Eviti di escludere gli ordini annullati o chiusi quando tali esiti sono necessari per l'analisi del processo.
- Inclusione degli eventi: conservi gli eventi ripetuti di completamento delle operazioni, prelievo materiali, qualità e rettifica. Non riduca il log a una sola riga per ordine di produzione.
- Fuso orario: converta tutti i timestamp di origine in un unico fuso orario documentato. Conservi il timestamp di origine o l'offset del fuso orario quando la fonte lo fornisce.
- Metadati dell'aggiornamento: valorizzi LastDataUpdate con il timestamp dell'aggiornamento o dell'estrazione per ogni riga. È accettabile utilizzare un unico timestamp di aggiornamento quando l'intero dataset viene estratto in un solo aggiornamento.
- Prestazioni: applichi all'origine i filtri per data, azienda, stabilimento e ordine. Selezioni solo le colonne necessarie, eviti unioni superflue, prepari query di origine riutilizzabili e valuti l'aggiornamento incrementale per dataset di grandi dimensioni.
- Prerequisiti: Power BI Desktop o un host Power Query approvato, accesso di rete all'ambiente Dynamics 365, autorizzazioni di lettura valide per tutte le entità selezionate e gli eventuali accessi richiesti a Dynamics 365 Manufacturing, magazzino, qualità, audit o tracciamento delle modifiche.
- Dati dipendenti dalla configurazione: se una fonte di eventi richiesta non è abilitata, utilizzi [Configure based on your system] e documenti la fonte mancante. Non sostituisca gli eventi storici con un'istantanea dello stato corrente.
a 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 per iniziare?
Con questo Template completo dispone di tutto ciò che Le serve per iniziare a estrarre e analizzare i dati della pianificazione della produzione. Inizi oggi stesso a ottimizzare le operazioni per raggiungere la massima efficienza.
Raggiunga la massima efficienza: semplifichi oggi la pianificazione della produzione
Individui i colli di bottiglia e riduca del 30% o più il tempo di ciclo della produzione.
Non è richiesta alcuna carta di credito, configurazione in pochi minuti.