Il Suo Modello Dati per la Pianificazione della Produzione
Il Suo Modello Dati per la Pianificazione della Produzione
- Attributi consigliati da raccogliere
- Attività chiave da tracciare
- Guida all'estrazione per Microsoft Dynamics 365 Manufacturing
Attributi della Pianificazione della Produzione
| Nome | Descrizione | ||
|---|---|---|---|
| Ordine di Produzione ProductionOrderNumber | L'identificatore univoco per un ordine di produzione, che funge da ID `case` primario per il tracciamento di tutte le `attività` di pianificazione ed esecuzione correlate. | ||
| Descrizione Il Numero Ordine di Produzione, spesso indicato come ProdId in Microsoft Dynamics 365, è l'identificatore centrale che collega tutti gli Perché è importante Questo è l'identificatore Dove trovare Questo è il campo 'ProdId' nella tabella 'ProdTable' in Microsoft Dynamics 365 Manufacturing. Esempi WO-000456WO-000457WO-000458 | |||
| Nome attività ActivityName | Il nome dello specifico `event` o passaggio commerciale che si è verificato all'interno del processo di pianificazione della produzione. | ||
| Descrizione Il Nome dell'Attività descrive un singolo passaggio nel ciclo di vita della pianificazione della produzione, come 'Ordine di Produzione Creato', 'Materiali Prelevati per la Produzione' o 'Produzione Avviata'. Queste Perché è importante Questo Dove trovare Questo valore è tipicamente derivato dagli Esempi Ordine di Produzione CreatoOrdine di Produzione RilasciatoProduzione AvviataProduzione Dichiarata Come Finita | |||
| Sistema di Origine SourceSystem | Il sistema di origine da cui sono stati estratti i dati. | ||
| Descrizione Questo Perché è importante Fornisce un contesto cruciale sull'origine dei Dove trovare Questo è un valore statico che dovrebbe essere aggiunto durante il processo di estrazione e trasformazione dei Esempi Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Timestamp Evento EventTime | Il timestamp preciso che indica quando si è verificata l'attività. | ||
| Descrizione Event Time, o il Nel contesto della pianificazione della produzione, questo Perché è importante Questo Dove trovare Trovato in varie tabelle di transazione, come 'createdDateTime' in 'ProdTable', o campi data di transazione in 'ProdRouteTrans', 'ProdJournalRoute' e 'ProdJournalBOM'. Esempi 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Ultimo `Data Update` LastDataUpdate | Il `timestamp` che indica l'ultima volta che i `dati` per questo `evento` sono stati aggiornati o estratti dal sistema di origine. | ||
| Descrizione Questo Perché è importante Questo Dove trovare Questo Esempi 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Codice prodotto ProductNumber | L'identificatore univoco per l'articolo in fase di produzione. | ||
| Descrizione Il Numero Prodotto, o ID Articolo, specifica il prodotto finito che l'ordine di produzione intende creare. Collega il processo di produzione al prodotto specifico che viene realizzato, insieme alla sua distinta base e alle istruzioni di Perché è importante Permette l'analisi delle variazioni di processo basate sul prodotto fabbricato, aiutando a identificare Dove trovare Questo è il campo 'ItemId' nella tabella 'ProdTable'. Esempi FG-1001FG-2050ASSY-500B | |||
| Data di Fine Pianificata PlannedEndDate | La `data` e l'ora in cui l'ordine di produzione è previsto per essere completato. | ||
| Descrizione La Data di Fine Pianificata è il tempo obiettivo di completamento per un ordine di produzione come determinato dal motore di programmazione. Considera i tempi di operazione, i calendari delle risorse e i Perché è importante Questo Dove trovare Questo è 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 l'ordine di produzione è previsto per iniziare. | ||
| Descrizione La Data di Inizio Pianificata è un output chiave del processo di programmazione, che rappresenta il tempo obiettivo per l'inizio delle Perché è importante Serve come base per misurare l'aderenza al programma e identificare i ritardi tra la pianificazione e l'inizio effettivo della produzione. Dove trovare Questo è il campo 'SchedStart' nella tabella 'ProdTable'. Esempi 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Impianto di Produzione ProductionPlant | Il sito o impianto di produzione dove viene eseguito l'ordine di produzione. | ||
| Descrizione L'Impianto di Produzione identifica la posizione fisica o la struttura responsabile del processo di produzione. È una dimensione organizzativa chiave per segmentare e confrontare le performance di produzione.\n\nNel Perché è importante Ciò consente il confronto delle performance e il Dove trovare Questo è il campo 'InventSiteId' nella tabella 'ProdTable'. Esempi SITE-ASITE-BMain-WH | |||
| Priorità di Produzione ProductionPriority | Una valutazione che indica l'urgenza o la priorità dell'ordine di produzione. | ||
| Descrizione La Priorità di Produzione è un campo utilizzato dai pianificatori e dagli schedulatori per gestire la sequenza del lavoro in officina. Gli ordini con una priorità più alta possono essere accelerati, potenzialmente interrompendo il programma pianificato per altri ordini.\n\nL'analisi di questo Perché è importante Ciò aiuta a identificare la frequenza e l'impatto degli ordini accelerati, che possono indicare instabilità della pianificazione o gestione operativa reattiva. Dove trovare Questo può essere un campo standard o personalizzato sulla 'ProdTable'. La configurazione è spesso specifica dell'azienda. Esempi NormaleElevatoUrgente | |||
| Quantità Effettiva ActualQuantity | La quantità di beni prodotti con successo e dichiarati finiti per l'ordine. | ||
| Descrizione La Quantità Effettiva rappresenta il numero di unità che sono state completate e hanno superato i controlli di qualità per un dato ordine di produzione. Questo valore viene registrato quando la produzione è 'Dichiarata come finita'.\n\nQuesto Perché è importante È essenziale per calcolare la resa di produzione, i tassi di scarto e la produzione effettiva, fornendo informazioni sull'efficienza e le prestazioni della produzione. Dove trovare Questo valore spesso proviene dal campo 'QtyGood' nella 'ProdTable' o dalle tabelle di registrazione del giornale correlate quando un ordine viene dichiarato finito. Esempi 100985000 | |||
| Stato dell'Ordine di Produzione ProductionOrderStatus | Indica lo stato attuale del ciclo di vita dell'ordine di produzione. | ||
| Descrizione Lo Stato dell'Ordine di Produzione riflette l'avanzamento dell'ordine attraverso il ciclo di vita della produzione. Gli stati comuni in Dynamics 365 includono Creato, Stimato, Pianificato, Rilasciato, Avviato, Dichiarato come finito e Terminato. Questo Perché è importante Questo Dove trovare Questo è il campo 'ProdStatus' nella tabella 'ProdTable'. Esempi PianificatoRilasciatoAvviatoTerminato | |||
| Tipo di Produzione ProductionType | La classificazione dell'ordine di produzione, come standard, rilavorazione o basato su progetto. | ||
| Descrizione Il Tipo di Produzione classifica l'ordine in base al suo scopo. Ad esempio, un ordine 'Standard' è per la produzione di scorte regolari, un ordine di 'Rilavorazione' serve a correggere difetti in un articolo precedentemente prodotto, e un ordine di 'Progetto' è collegato a uno specifico progetto cliente.\n\nQuesto Perché è importante Questo Dove trovare Questo è il campo 'ProdType' nella tabella 'ProdTable'. Esempi StandardRilavorazioneProgetto | |||
| Utente UserId | L'identificatore dell'utente che ha eseguito o è responsabile dell'attività. | ||
| Descrizione L'ID Utente identifica il dipendente o l' Perché è importante Permette l'analisi delle prestazioni del processo per utente o Dove trovare Trovato in campi come 'modifiedBy' o 'createdBy' su varie tabelle, o campi utente in tabelle di Esempi j.smithm.jonesAX_BATCH_SVC | |||
| Disponibilità Materiali MaterialAvailabilityStatus | Indica se le materie prime richieste per l'ordine di produzione sono disponibili. | ||
| Descrizione Questo Perché è importante Questo è fondamentale per comprendere e quantificare i ritardi nell'avvio della produzione causati dalle carenze di materiali, collegando le performance della Dove trovare Questo stato non è spesso un singolo campo ma è derivato controllando i livelli di inventario disponibile per tutti gli articoli nella distinta base (BOM) dell'ordine di produzione tramite la tabella 'InventSum'. Esempi Completamente DisponibileCarenza ParzialeNon Disponibile | |||
| Inizio Puntuale ProductionScheduleAdherence | Un `flag` booleano che è `true` se l'ordine di produzione è iniziato alla data di inizio pianificata o prima. | ||
| Descrizione Questo Perché è importante Ciò semplifica il Dove trovare Questa è una metrica calcolata. La logica è: 'Produzione Avviata' Esempi truefalse | |||
| Linea di Produzione ProductionLine | La specifica linea di produzione, centro di lavoro o 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 di produzione. Questo fornisce un livello di dettaglio più granulare rispetto all'Impianto di Produzione.\n\nL'analisi del processo per Linea di Produzione è critica per un'analisi dettagliata della capacità e dell'utilizzo. Aiuta a identificare centri di lavoro sovraccarichi, a confrontare l'efficienza di diverse linee che producono lo stesso prodotto e a individuare Perché è importante Ciò consente un'analisi granulare dell'utilizzo e delle performance delle risorse, aiutando a identificare centri di lavoro sovraccarichi o linee inefficienti. Dove trovare Queste informazioni si trovano spesso nel campo 'WrkCtrId' nelle transazioni del percorso di produzione (tabelle 'ProdRoute' o 'ProdRouteTrans'). Esempi LINE-01LINE-02CNC-A | |||
| Numero di Revisione ProductionOrderRevisionNumber | Un conteggio di quante volte un piano di produzione è stato modificato dopo la sua creazione iniziale. | ||
| Descrizione Questo Perché è importante Ciò misura direttamente la stabilità della pianificazione e supporta il KPI 'Tasso di Revisione del Piano di Produzione', evidenziando i processi con modifiche e rilavorazioni eccessive. Dove trovare Questo è un Esempi 012 | |||
| Numero Ordine di Qualità QualityOrderNumber | L'identificatore per un ordine di controllo qualità collegato all'ordine di produzione. | ||
| Descrizione Quando è richiesta un'ispezione qualità, un Ordine di Qualità viene spesso generato in Dynamics 365. Questo attributo collega il processo di produzione al processo di garanzia qualità, catturando l'ID dell'ordine di qualità associato. Questo collegamento consente una visione di processo end-to-end più completa che include le fasi di gestione della qualità. Aiuta ad analizzare come le ispezioni qualità influiscono sui tempi di consegna della produzione, a identificare i ritardi nel processo qualità e a comprendere la frequenza dei controlli qualità per diversi prodotti o linee di produzione. Perché è importante Collega il processo di produzione al processo di garanzia qualità, consentendo l'analisi di come le ispezioni di qualità influenzano i Dove trovare Queste informazioni sono archiviate in tabelle di gestione della qualità (ad esempio, 'InventQualityOrderTable') e devono essere ricollegate all'ordine di produzione. Esempi QO-00123QO-00124QO-00125 | |||
| Ora di Fine EndTime | Il `timestamp` preciso che indica quando l'`attività` è stata completata. | ||
| Descrizione L'Ora di Fine segna il completamento di un' Perché è importante Permette il calcolo del tempo di elaborazione dell'attività, distinguendolo dal tempo di attesa, il che consente un'analisi dei Dove trovare Questo è spesso derivato. Ad esempio, l'ora di fine di 'Produzione Avviata' potrebbe essere l'ora di inizio di 'Operazione Completata'. In alcuni Esempi 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Quantità Pianificata PlannedQuantity | La quantità dell'articolo che è previsto produrre. | ||
| Descrizione La Quantità Pianificata è il numero obiettivo di unità da fabbricare per un dato ordine di produzione. Questa quantità è tipicamente guidata dalla domanda derivante dagli ordini di vendita, dai requisiti di scorta di sicurezza o dalla pianificazione principale.\n\nQuesto Perché è importante Questa è la quantità di riferimento utilizzata per misurare la resa di produzione e i tassi di scarto confrontandola con la quantità effettiva prodotta. Dove trovare Questo è il campo 'QtySched' nella tabella 'ProdTable'. Esempi 1005000250 | |||
| Ritardo nell'Avvio della Produzione ProductionStartDelay | Il tempo trascorso tra il rilascio dell'ordine e l'effettivo inizio della produzione. | ||
| Descrizione Questa durata calcolata misura il tempo di attesa o il tempo in coda in officina. È la differenza di tempo tra l' Perché è importante Misura con precisione il ritardo 'pronto per l'avvio', aiutando a individuare i Dove trovare Questa è una metrica calcolata: Esempi 0g 4h 15m1g 2h 0m0g 1h 30m | |||
| Tempo di Ciclo di Produzione ProductionCycleTime | La durata totale dell'ordine di produzione dalla creazione al suo completamento finale. | ||
| Descrizione Questa metrica misura il tempo di ciclo Perché è importante Questo è un KPI critico per misurare l'efficienza complessiva del processo e identificare tendenze o Dove trovare Questa è una metrica calcolata, ottenuta sottraendo il Esempi 7g 4h 30m10g 2h 15m5g 8h 0m | |||
Attività di Pianificazione della Produzione
| Activity | Descrizione | ||
|---|---|---|---|
| Ordine di Produzione Creato | Questa `attività` segna la creazione di un ordine di produzione, che formalizza la domanda per una quantità specifica di un prodotto. Ciò viene tipicamente acquisito quando un ordine di produzione pianificato viene confermato, creando un record ufficiale nel sistema con un ID univoco. | ||
| Perché è importante Questo è l' Dove trovare Questo Acquisisci Acquisire il Tipo di evento inferred | |||
| Ordine di Produzione Pianificato | Questa `attività` segna la programmazione dell'ordine di produzione, che alloca risorse, `date` e orari specifici per le sue operazioni. Questo passaggio può comportare la programmazione delle operazioni o una programmazione dei lavori più dettagliata. | ||
| Perché è importante La programmazione è cruciale per la pianificazione della capacità e la gestione delle risorse. L'analisi del tempo impiegato per programmare gli ordini e del divario prima del rilascio rivela vincoli di pianificazione e capacità. Dove trovare Catturato quando lo stato dell'ordine di produzione nella ProdTable cambia a 'Scheduled'. Questo viene attivato da un utente che esegue una funzione di pianificazione. Acquisisci Rilevare il Tipo di evento inferred | |||
| Ordine di Produzione Rilasciato | Questa `attività` significa che l'ordine di produzione è stato approvato e autorizzato per l'esecuzione in officina. Questo è un traguardo chiave che rilascia documenti come schede di lavoro e schede di processo. | ||
| Perché è importante Questo è il passaggio di consegne ufficiale dalla pianificazione all'esecuzione. Il tempo tra 'Pianificato' e 'Rilasciato' può indicare ritardi di approvazione o controlli finali, mentre il tempo da 'Rilasciato' a 'Avviato' misura la prontezza dell'officina. Dove trovare Questo viene acquisito quando lo stato dell'ordine di produzione nella ProdTable cambia a 'Rilasciato'. Questa è un'azione utente manuale o automatizzata. Acquisisci Rilevare il Tipo di evento inferred | |||
| Ordine di Produzione Terminato | Questa è l'`attività` finale, che rappresenta la chiusura finanziaria dell'ordine di produzione. Tutti i costi sono stati calcolati e registrati, e non possono essere effettuate ulteriori transazioni contro l'ordine. | ||
| Perché è importante Ciò segna il vero completamento dell'ordine sia da una prospettiva fisica che finanziaria. I ritardi tra 'Dichiarato come Finito' e 'Terminato' possono indicare problemi nella contabilità dei costi o nei processi di chiusura finanziaria. Dove trovare Questo è il cambiamento di stato finale acquisito quando il campo 'ProdStatus' nella 'ProdTable' è impostato su 'Terminato'. Ciò è attivato dall'esecuzione del calcolo dei costi e dalla chiusura dell'ordine. Acquisisci Rilevare il Tipo di evento inferred | |||
| Produzione Avviata | Segna l'inizio del lavoro di produzione fisica per l'ordine in officina. Questo viene spesso registrato quando la prima operazione o il primo `job` viene avviato tramite un terminale di officina o la registrazione di un giornale. | ||
| Perché è importante Questa Dove trovare Catturato quando lo stato dell'ordine di produzione nella ProdTable cambia a 'Started'. Questo è spesso attivato dalla registrazione di una scheda di lavoro o di una scheda di percorso per la prima operazione. Acquisisci Rilevare il Tipo di evento inferred | |||
| Produzione Dichiarata Come Finita | Indica che il processo di fabbricazione per la quantità specificata del prodotto è fisicamente completo e che i prodotti finiti sono ora in inventario. Questo è un aggiornamento di stato critico che attiva le transazioni di inventario. | ||
| Perché è importante Ciò segna la fine della produzione fisica. È essenziale per calcolare i tassi di completamento puntuale, la durata effettiva della produzione e il Dove trovare Catturato quando lo stato dell'ordine di produzione nella ProdTable cambia a 'Reported as finished'. Questo viene attivato dalla registrazione di un giornale Report as Finished. Acquisisci Rilevare il Tipo di evento inferred | |||
| Ispezione Qualità Superata | Rappresenta il completamento e la convalida con successo di un ordine di qualità associato al ciclo di produzione. Ciò conferma che gli articoli prodotti soddisfano gli standard di qualità richiesti. | ||
| Perché è importante Questo è un traguardo chiave nel processo di qualità. La durata tra la generazione dell'ordine di qualità e il superamento dell'ispezione evidenzia l'efficienza del Dove trovare Dedotto da un cambio di stato sul record InventQualityOrderTable a uno stato 'Pass'. Il valore di stato specifico può variare. Acquisisci Rilevare il Tipo di evento inferred | |||
| Materiali Prelievi Per la Produzione | Indica che le materie prime richieste per l'ordine di produzione sono state prelevate dal magazzino e sono pronte per il consumo. Questo `evento` viene registrato al completamento di un lavoro di prelievo materie prime o alla registrazione di un giornale di prelievo. | ||
| Perché è importante Questa Dove trovare Questo è tipicamente un Acquisisci Acquisire il Tipo di evento explicit | |||
| Operazione Completata | Questa `attività` significa il completamento di una singola operazione di produzione o passaggio nel percorso di produzione. Un ordine di produzione avrà tipicamente più di questi `event`. | ||
| Perché è importante Analizzare il tempo tra le operazioni aiuta a identificare i Dove trovare Questo è un Acquisisci Acquisire il Tipo di evento explicit | |||
| Ordine di Produzione Annullato | Rappresenta l'annullamento di un ordine di produzione prima che fosse completato. Questa è una fine alternativa e non riuscita del processo. | ||
| Perché è importante Il monitoraggio delle cancellazioni aiuta a identificare le cause di interruzione o inefficienza del processo, come variazioni della domanda o errori di pianificazione. Tassi elevati di cancellazione possono indicare problemi sistemici. Dove trovare Questo è uno stato finale alternativo dedotto da un cambiamento di stato. Lo stato esatto può variare, ma spesso comporta il ripristino dello stato dell'ordine a uno stato precedente e la sua marcatura come annullato. Acquisisci Rilevare un cambio di stato che indica la cancellazione. Ciò potrebbe richiedere un'analisi di sistema specifica per l'identificazione. Tipo di evento inferred | |||
| Ordine di Produzione Modificato | Rappresenta una modifica significativa apportata all'ordine di produzione dopo il suo rilascio, come un cambio di quantità o una modifica della `data`. Questo `event` è dedotto confrontando i campi chiave prima e dopo una modifica. | ||
| Perché è importante Regolazioni frequenti indicano instabilità nella pianificazione o domanda volatile, portando a inefficienze e rilavorazioni. Questo aiuta a quantificare il tasso e l'impatto di tali cambiamenti. Dove trovare Dedotto analizzando i Acquisisci Identificare le modifiche ai campi chiave (ad es. quantità, date) sulla ProdTable dopo il Tipo di evento calculated | |||
| Ordine di Produzione Stimato | Rappresenta il calcolo stimato del consumo di materiali e costi per l'ordine di produzione. Questo è un passaggio di pianificazione critico per assicurare che i requisiti finanziari e materiali siano compresi prima di procedere. | ||
| Perché è importante I ritardi nella stima possono essere un Dove trovare Questo viene acquisito quando lo stato dell'ordine di produzione nella ProdTable cambia a 'Stimato'. Ciò è attivato da un utente che esegue la funzione 'Stima' sull'ordine. Acquisisci Rilevare il Tipo di evento inferred | |||
| Ordine di Qualità Generato | È stato creato un ordine di qualità per ispezionare l'output dell'ordine di produzione. Questo `evento` indica l'inizio del processo di garanzia qualità per i beni prodotti. | ||
| Perché è importante Il monitoraggio del processo di controllo qualità è fondamentale per comprendere il lead time complessivo. Ritardi nell'ispezione qualità possono impedire la spedizione della merce o il suo utilizzo nei processi successivi. Dove trovare Questo è un Acquisisci Acquisire il Tipo di evento explicit | |||
Guide all'Estrazione
Fasi
- Navigare all'Area di Lavoro Gestione Dati: Acceda a Microsoft Dynamics 365 Finance and Operations. Utilizzi la barra di ricerca per trovare e navigare all'area di lavoro
Data management. - Creare un Nuovo Progetto di Esportazione: All'interno dell'area di lavoro, selezioni il riquadro
Exportper creare un nuovo progetto di esportazionedati. Fornisca un nome descrittivo per il progetto, comeProcessMind_Production_Orders. - Selezionare il Formato del File di Esportazione: Nella configurazione del progetto, scelga il formato
datidesiderato per l'esportazione, come CSV o Excel. Imposti l'opzioneEntitye specifichi i dettagli del formato. CSV è raccomandato per prestazioni e compatibilità. - Aggiungere le Entità Dati Richieste: Aggiunga le entità
datinecessarie al progetto per acquisire tutti glieventidell'ordine di produzione. Dovrà aggiungere ciascuna delle seguenti entità:Ordini di produzione,Transazioni di percorso ordine di produzione,Ordini di qualità inventarioeLinee del giornale del picking di produzione. Per ogni entità, si assicuri di selezionare tutti i campi rilevanti come delineato nella sezione della query. - Applicare Filtri Dati: Per ogni entità, utilizzi l'opzione
Filterper definire l'ambito dell'esportazione deidati. Al minimo, filtri perAziendaper selezionare l'entità legale corretta. È altamente raccomandato applicare un filtro per intervallo di date su un campo data chiave, comeData di creazionesull'entitàOrdini di produzione, per limitare il volume deidatia un periodo gestibile, ad esempio, gli ultimi 6 mesi. - Configurare Esportazioni Incrementali (Opzionale): Per l'analisi continua, configuri il progetto per le esportazioni incrementali. Ciò può essere fatto tracciando le modifiche sulle entità di origine, il che consente di estrarre solo i record nuovi o modificati dall'ultima esportazione, riducendo significativamente il tempo di esportazione.
- Eseguire il Job di Esportazione: Una volta configurato il progetto, avvii l'esportazione cliccando su
Exportnel riquadro azioni. Può eseguirlo immediatamente o programmarlo come unbatch jobricorrente. - Scaricare i File Esportati: Dopo che il
jobdi esportazione è stato completato con successo, navighi alla cronologia deijob. Scarichi il pacchetto, che sarà un file ZIP contenente file didatiseparati per ogni entità inclusa. - Trasformare i Dati in un
Event Log: I file esportati rappresentanodatidi tabella grezzi, non unevent logformattato. Deve utilizzare uno strumento esterno (come uno script Python, Power Query in Excel/Power BI, o uno strumento ETL) per elaborare e combinare idatida questi file. La logica di trasformazione delineata nella sezione della query deve essere applicata per ruotare i campi di data e stato dalle varie entità in un singolo file dievent logcon una riga per attività. - Strutturare l'
Event LogFinale: Si assicuri che il file CSV trasformato finale contenga le colonne richieste:ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate, insieme a qualsiasiattributoraccomandato. Il file dovrebbe essere formattato con una riga di intestazione ed essere pronto per l'uploadin ProcessMind.
Configurazione
- Entità Dati Chiave: Il nucleo di questa estrazione si basa sull'esportazione di diverse entità e sulla loro unione successiva. Le entità primarie sono
Ordini di produzione(ProdTable),Transazioni di percorso ordine di produzione(ProdRouteTrans) eOrdini di qualità inventario(InventQualityOrderTable). - Filtro per Intervallo di Date: Per gestire il volume dei dati, applichi sempre un filtro per data. Una buona pratica è filtrare l'entità
Ordini di produzionesullaData di creazione(CREATEDDATETIME) per gli ultimi 3-6 mesi. Questo assicura l'acquisizione di processi completi e recenti senza sovraccaricare il sistema. - Filtro Aziendale: È fondamentale impostare un filtro per l'azienda o l'entità legale specifica che desidera analizzare. Questo si fa tramite l'opzione
Filtrosu ogni entità all'interno del progetto di esportazione. - Push Completo vs. Incrementale: Per l'estrazione iniziale, è necessario un push completo. Per gli aggiornamenti successivi, è altamente raccomandato configurare il tracciamento delle modifiche sulle entità ed eseguire esportazioni incrementali per migliorare le prestazioni e ridurre il carico di dati.
- Prerequisiti: L'utente che esegue l'esportazione deve avere ruoli di sicurezza appropriati, tipicamente inclusi
Amministratore della gestione datio un ruolo con permessi per accedere alle entità dati richieste.
a Query di Esempio config
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Fasi
- Configurare BYOD in Dynamics 365: Si assicuri che la funzionalità 'Bring your own database' sia configurata nel Suo ambiente Dynamics 365 for Finance and Operations. Ciò comporta la configurazione di un database Azure SQL e la configurazione dell'esportazione dei
datida Dynamics 365. - Pubblicare le Entità Richieste: Dall'area di lavoro 'Data management', navighi a 'Data entities'. Cerchi e pubblichi le seguenti entità chiave nel Suo database BYOD: ProdTable, ProdRouteTrans, InventPickingListJour e InventQualityOrderTable. Si assicuri che siano configurate per l'esportazione ricorrente.
- Verificare la Sincronizzazione dei Dati: Confermi che i
datidalle entità pubblicate si stiano sincronizzando con successo e regolarmente nel Suo database Azure SQL di destinazione. Controlli la cronologia deijobdi esportazione per eventuali errori. - Connettersi al Database BYOD: Utilizzi un client SQL, come SQL Server Management Studio (SSMS) o Azure Data Studio, per connettersi al database Azure SQL dove risiedono i Suoi
datiDynamics 365. - Preparare la Query SQL: Apra una nuova finestra di query. Copi la query SQL completa fornita in questo documento.
- Impostare i Parametri della Query: Nella query, individui le variabili placeholder. Sostituisca '{StartDate}', '{EndDate}' e '{CompanyCode}' con l'intervallo di date desiderato e il DataAreaId dell'azienda specifica che desidera analizzare.
- Eseguire la Query: Esegua la query SQL modificata sul database BYOD. Il tempo di esecuzione varierà a seconda del volume dei
datie dell'intervallo di date specificato. - Rivedere i Risultati: Una volta completata la query, riveda l'output per assicurarsi che contenga le colonne e i
datiattesi per tutte le attività estratte. Ilsetdi risultati è l'event log. - Esportare l'Event Log: Esporti i risultati della query in un file CSV. La maggior parte dei client SQL ha una funzione integrata per salvare i risultati direttamente in un file.
- Formattare per ProcessMind: Si assicuri che il file CSV esportato abbia codifica UTF-8 e che le intestazioni delle colonne corrispondano ai nomi degli
attributirichiesti 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 dell'ordine di produzione e lo stato.PRODROUTETRANS: Fornisce dettagli sulle singole operazioni di produzione e il loro completamento.INVENTPICKINGLISTJOUR: Registra il prelievo dei materiali per gli ordini di produzione.INVENTQUALITYORDERTABLE: Traccia gli ordini di garanzia qualità collegati alla produzione.
- Intervallo di Date: Si raccomanda di iniziare con un intervallo di date limitato, ad esempio, 3-6 mesi di
dati, per garantire prestazioni gestibili della query. La query utilizza la data di creazione dell'ordine di produzione (CREATEDDATETIMEdaPRODTABLE) per il filtraggio. - Filtro Codice Azienda: Il campo
DATAREAIDviene utilizzato per filtrare idatiper una specifica entità legale o azienda. Deve sostituire il placeholder'{CompanyCode}'con l'ID rilevante, ad esempio, 'usmf'. - Prerequisiti: Questo metodo richiede l'accesso come amministratore di sistema sia a Dynamics 365 Finance and Operations per configurare BYOD, sia le autorizzazioni di Collaboratore sul database Azure SQL per eseguire le query.
- Prestazioni: Per
datasetmolto grandi che coprono diversi anni o aziende, consideri di eseguire la query durante le ore non di punta. Può anche suddividere l'estrazione in periodi di tempo più piccoli e combinare i risultati in seguito.
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}'; Fasi
- Navigare all'Area di Lavoro Gestione Dati: Acceda a Microsoft Dynamics 365 Finance and Operations. Utilizzi la barra di ricerca per trovare e navigare all'area di lavoro
Data management. - Creare un Nuovo Progetto di Esportazione: All'interno dell'area di lavoro, selezioni il riquadro
Exportper creare un nuovo progetto di esportazionedati. Fornisca un nome descrittivo per il progetto, comeProcessMind_Production_Orders. - Selezionare il Formato del File di Esportazione: Nella configurazione del progetto, scelga il formato
datidesiderato per l'esportazione, come CSV o Excel. Imposti l'opzioneEntitye specifichi i dettagli del formato. CSV è raccomandato per prestazioni e compatibilità. - Aggiungere le Entità Dati Richieste: Aggiunga le entità
datinecessarie al progetto per acquisire tutti glieventidell'ordine di produzione. Dovrà aggiungere ciascuna delle seguenti entità:Ordini di produzione,Transazioni di percorso ordine di produzione,Ordini di qualità inventarioeLinee del giornale del picking di produzione. Per ogni entità, si assicuri di selezionare tutti i campi rilevanti come delineato nella sezione della query. - Applicare Filtri Dati: Per ogni entità, utilizzi l'opzione
Filterper definire l'ambito dell'esportazione deidati. Al minimo, filtri perAziendaper selezionare l'entità legale corretta. È altamente raccomandato applicare un filtro per intervallo di date su un campo data chiave, comeData di creazionesull'entitàOrdini di produzione, per limitare il volume deidatia un periodo gestibile, ad esempio, gli ultimi 6 mesi. - Configurare Esportazioni Incrementali (Opzionale): Per l'analisi continua, configuri il progetto per le esportazioni incrementali. Ciò può essere fatto tracciando le modifiche sulle entità di origine, il che consente di estrarre solo i record nuovi o modificati dall'ultima esportazione, riducendo significativamente il tempo di esportazione.
- Eseguire il Job di Esportazione: Una volta configurato il progetto, avvii l'esportazione cliccando su
Exportnel riquadro azioni. Può eseguirlo immediatamente o programmarlo come unbatch jobricorrente. - Scaricare i File Esportati: Dopo che il
jobdi esportazione è stato completato con successo, navighi alla cronologia deijob. Scarichi il pacchetto, che sarà un file ZIP contenente file didatiseparati per ogni entità inclusa. - Trasformare i Dati in un
Event Log: I file esportati rappresentanodatidi tabella grezzi, non unevent logformattato. Deve utilizzare uno strumento esterno (come uno script Python, Power Query in Excel/Power BI, o uno strumento ETL) per elaborare e combinare idatida questi file. La logica di trasformazione delineata nella sezione della query deve essere applicata per ruotare i campi di data e stato dalle varie entità in un singolo file dievent logcon una riga per attività. - Strutturare l'
Event LogFinale: Si assicuri che il file CSV trasformato finale contenga le colonne richieste:ProductionOrderNumber,ActivityName,EventTime,SourceSystemeLastDataUpdate, insieme a qualsiasiattributoraccomandato. Il file dovrebbe essere formattato con una riga di intestazione ed essere pronto per l'uploadin ProcessMind.
Configurazione
- Entità Dati Chiave: Il nucleo di questa estrazione si basa sull'esportazione di diverse entità e sulla loro unione successiva. Le entità primarie sono
Ordini di produzione(ProdTable),Transazioni di percorso ordine di produzione(ProdRouteTrans) eOrdini di qualità inventario(InventQualityOrderTable). - Filtro per Intervallo di Date: Per gestire il volume dei dati, applichi sempre un filtro per data. Una buona pratica è filtrare l'entità
Ordini di produzionesullaData di creazione(CREATEDDATETIME) per gli ultimi 3-6 mesi. Questo assicura l'acquisizione di processi completi e recenti senza sovraccaricare il sistema. - Filtro Aziendale: È fondamentale impostare un filtro per l'azienda o l'entità legale specifica che desidera analizzare. Questo si fa tramite l'opzione
Filtrosu ogni entità all'interno del progetto di esportazione. - Push Completo vs. Incrementale: Per l'estrazione iniziale, è necessario un push completo. Per gli aggiornamenti successivi, è altamente raccomandato configurare il tracciamento delle modifiche sulle entità ed eseguire esportazioni incrementali per migliorare le prestazioni e ridurre il carico di dati.
- Prerequisiti: L'utente che esegue l'esportazione deve avere ruoli di sicurezza appropriati, tipicamente inclusi
Amministratore della gestione datio un ruolo con permessi per accedere alle entità dati richieste.
a Query di Esempio config
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system