Il Suo Template di Dati per la Pianificazione della Produzione
Il Suo Template di Dati per la Pianificazione della Produzione
- Attributi raccomandati per l'analisi della pianificazione della produzione
- Attività chiave di pianificazione della produzione da monitorare
- Guida dettagliata all'estrazione dei `dati` per SAP S/4HANA
Attributi della Pianificazione della Produzione
| Nome | Descrizione | ||
|---|---|---|---|
| Activity Activity | Il nome dell'evento o dell'attività specifica che si è verificata in un determinato momento all'interno del processo di pianificazione della produzione. | ||
| Descrizione Questo attributo registra le fasi e le pietre miliari distinte nel ciclo di vita dell'ordine di produzione. Gli esempi includono 'Ordine di Produzione Creato', 'Disponibilità Materiali Verificata', 'Produzione Avviata' e 'Ordine Chiuso Finanziariamente'. Ogni attività rappresenta un'azione specifica o un cambiamento di stato documentato nel sistema. L'analisi della sequenza e della frequenza di queste attività è il cuore del Process Mining. Aiuta a visualizzare il flusso del processo, a identificare le deviazioni dalla procedura standard e a individuare le attività che causano ritardi o richiedono frequenti rilavorazioni, come 'Piano di Produzione Modificato'. Perché è importante Definisce i passaggi del processo, consentendo la scoperta e la visualizzazione del Dove trovare Derivato dai cambiamenti di stato in tabelle come JEST e JCDS, codici di transazione utilizzati (es. CO01 per creare), o specifici record di conferma in AFRU. Esempi Ordine di produzione creatoOrdine di produzione rilasciatoProduzione avviataConferma Finale InseritaRicevimento merce registrato | |||
| Ora di Inizio StartTime | Il timestamp che indica quando una specifica attività o un evento ha avuto inizio. | ||
| Descrizione Questo attributo fornisce la data e l'ora per ogni L'Ora di Inizio è cruciale per calcolare le durate tra le attività, misurare il tempo di ciclo totale di un ordine di produzione e comprendere la tempistica degli Perché è importante Fornisce il contesto cronologico per tutti gli Dove trovare Queste informazioni si trovano tipicamente nelle tabelle dei documenti di modifica (CDHDR/CDPOS) per i cambiamenti di stato, nelle tabelle di conferma (AFRU) per le fasi di esecuzione e nelle tabelle di intestazione (AFKO) per le date di creazione. Esempi 2023-10-26T09:00:00Z2023-10-26T14:30:00Z2023-10-27T08:15:00Z | |||
| Ordine di produzione ProductionOrder | L'identificatore unico per un ordine di produzione, che funge da identificatore `case` primario per il processo di pianificazione della produzione. | ||
| Descrizione Il numero dell'Ordine di Produzione è una chiave unica generata da SAP S/4HANA per gestire e tracciare tutte le attività relative alla fabbricazione di una specifica quantità di prodotto. Collega tutti gli Nel Process Mining, questo attributo è essenziale per raggruppare tutti gli Perché è importante È l' Dove trovare Questo è il numero dell'Ordine di Produzione, tipicamente trovato in tabelle SAP come AFKO (campo AUFNR) e AFPO. Esempi 100056710008341001299 | |||
| Sistema di Origine SourceSystem | Il sistema da cui sono stati estratti i dati di pianificazione della produzione. | ||
| Descrizione Questo attributo identifica l'origine dei dati, il che è essenziale in ambienti con più sistemi integrati. Per questo processo, sarà tipicamente l'istanza specifica di SAP S/4HANA. In un contesto più ampio di analisi dei dati, conoscere il sistema di origine aiuta a garantire l'integrità dei dati e consente un contesto appropriato quando si uniscono dati da fonti diverse. È un pezzo fondamentale di Perché è importante Fornisce Dove trovare Questo è tipicamente un valore statico aggiunto durante il processo di estrazione dati per identificare il Esempi S4P_100S4H_PRD_200S4Q_300 | |||
| Ultimo `Data Update` LastDataUpdate | Il `timestamp` che indica quando i `data` sono stati aggiornati o estratti per l'ultima volta dal sistema sorgente. | ||
| Descrizione Questo attributo registra la data e l'ora dell'estrazione dati più recente. È un pezzo critico di Conoscere l'ora dell'ultimo aggiornamento è essenziale per interpretare correttamente l'analisi. Aiuta gli utenti a capire se stanno visualizzando informazioni in tempo reale o un'istantanea da un punto specifico nel tempo, il che influisce sulla rilevanza di eventuali risultati e decisioni prese in base ai dati. Perché è importante Assicura che gli utenti siano consapevoli dell'attualità dei Dove trovare Questo timestamp viene generato e aggiunto durante il processo di estrazione, trasformazione e caricamento (ETL). Esempi 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| Centro di Lavoro WorkCenter | La macchina specifica, il gruppo di macchine o l'area di assemblaggio responsabile di un'operazione. | ||
| Descrizione Un Centro di Lavoro rappresenta un'unità operativa specifica all'interno di uno stabilimento dove viene eseguita una fase di produzione. Può essere una singola macchina, una linea di produzione o un gruppo di dipendenti. L'analisi dei Perché è importante Aiuta a individuare macchine specifiche o linee di produzione che rappresentano Dove trovare Trovato nei Esempi WC-ASSEMBLY-01WC-MILLING-05WC-PACKING | |||
| Data di Fine Pianificata PlannedEndDate | La data di completamento programmata per l'ordine di produzione secondo il piano iniziale. | ||
| Descrizione La Data di Fine Pianificata è la data target entro la quale si prevede che tutte le attività di produzione per un ordine siano terminate. Questa data è determinata durante la fase di programmazione della pianificazione della produzione. Questo attributo è essenziale per misurare l'aderenza al programma. Confrontando la Data di Fine Pianificata con il Perché è importante Serve come Dove trovare Trovato nella tabella di intestazione dell'Ordine di Produzione AFKO (campo GLTRP). Esempi 2023-11-152023-12-012024-01-20 | |||
| Numero materiale MaterialNumber | L'identificatore unico per il prodotto in fase di fabbricazione nell'ordine di produzione. | ||
| Descrizione Il Numero Materiale specifica l'articolo che l'ordine di produzione mira a produrre. Collega il processo di produzione ai dati anagrafici del materiale, inclusa la sua distinta base (BOM) e le informazioni di routing. L'analisi del processo per Numero Materiale aiuta a identificare se alcuni prodotti sono più soggetti a ritardi, rilavorazioni o carenze di materiale. Ciò consente un'ottimizzazione del processo specifica per prodotto, come l'aggiustamento dei parametri di pianificazione o il miglioramento della catena di fornitura per componenti specifici. Perché è importante Consente il filtraggio e l'analisi basati sul prodotto in lavorazione, rivelando inefficienze o Dove trovare Trovato nella tabella degli articoli dell'Ordine di Produzione AFPO (campo MATNR). Esempi RM-1001FG-2050SA-3100-B | |||
| Stabilimento Plant | L'impianto di produzione o la località in cui viene eseguito l'ordine di produzione. | ||
| Descrizione Lo Stabilimento è un'unità organizzativa in SAP che rappresenta un sito o impianto di produzione. Ogni ordine di produzione è assegnato a uno stabilimento specifico dove avranno luogo le attività di fabbricazione. Questo attributo è fondamentale per l'analisi comparativa tra diverse sedi di produzione. Segmentando i dati di processo per Stabilimento, le organizzazioni possono confrontare le prestazioni, identificare problemi specifici del sito o migliori pratiche e comprendere le variazioni regionali in termini di efficienza, capacità o aderenza agli standard. Perché è importante Permette il confronto delle prestazioni tra diversi siti di produzione, aiutando a identificare e condividere le migliori pratiche o ad affrontare problemi specifici della località. Dove trovare Trovato nella tabella di intestazione dell'Ordine di Produzione AFKO (campo DWERK). Esempi 100017102000 | |||
| Stato dell’ordine OrderStatus | Lo stato di elaborazione attuale dell'ordine di produzione, come Creato, Rilasciato o Completato Tecnicamente. | ||
| Descrizione Lo Stato dell'Ordine indica la fase complessiva dell'ordine di produzione nel suo ciclo di vita. È un riepilogo dei vari stati di sistema e utente applicati all'ordine. Gli stati comuni includono CRTD (Creato), REL (Rilasciato), CNF (Confermato), TECO (Completato Tecnicamente) e CLSD (Chiuso). L'analisi dello stato attuale degli ordini è utile per comprendere il panorama del lavoro in corso. Nel Process Mining, il tracciamento delle transizioni tra questi stati nel tempo è ciò che genera l' Perché è importante Fornisce una visione di alto livello della fase del ciclo di vita di un ordine ed è fondamentale per derivare la sequenza di attività per il Dove trovare Derivato dallo stato del sistema memorizzato nella tabella JEST, collegato tramite il numero oggetto in AFKO (campo OBJNR). Esempi CRTDRELTECOCLSD | |||
| Data di inizio pianificata PlannedStartDate | La data di inizio programmata per l'ordine di produzione secondo il piano iniziale. | ||
| Descrizione La Data di Inizio Pianificata è la data target entro la quale si prevede che inizino le attività di produzione per un ordine. Questo è un risultato chiave del processo di programmazione. Questo attributo fornisce la linea di base di partenza per l'analisi dell'aderenza al programma. Confrontare la Data di Inizio Pianificata con l'ora di inizio effettiva aiuta a comprendere i ritardi iniziali, come i ritardi nella messa a disposizione del materiale o nel rilascio dell'ordine, che possono avere un effetto a cascata sull'intera cronologia di produzione. Perché è importante Fornisce una Dove trovare Trovato nella tabella di intestazione dell'Ordine di Produzione AFKO (campo GSTRP). Esempi 2023-11-102023-11-252024-01-15 | |||
| È In Tempo IsOnTime | Un indicatore che segnala se l'ordine di produzione è stato completato alla data di fine pianificata o prima. | ||
| Descrizione Questo attributo booleano calcolato misura direttamente l'aderenza al programma confrontando la data di completamento effettiva con la data di fine pianificata. Fornisce un risultato chiaro e binario per la puntualità di ogni ordine di produzione. Questo attributo è la base per il KPI del Tasso di Aderenza al Programma di Produzione. Semplifica l'analisi consentendo una facile segmentazione degli ordini puntuali rispetto a quelli in ritardo, aiutando a identificare caratteristiche comuni o percorsi di processo associati ai ritardi. Perché è importante Fornisce una misura chiara e semplice dell'aderenza al programma per ogni ordine, facilitando l'analisi delle cause profonde dei ritardi. Dove trovare Campo calcolato. Impostato su Esempi truefalse | |||
| È una Rilavorazione IsRework | Un indicatore che segnala se un ordine di produzione ha comportato rilavorazioni o significative modifiche al piano dopo l'inizio. | ||
| Descrizione Questo attributo booleano è derivato per identificare gli ordini di produzione che hanno subito azioni correttive o modifiche al piano dopo che la produzione era già iniziata. Ciò potrebbe essere innescato da un'attività di rilavorazione esplicita o da un Questo Perché è importante Isola i Dove trovare Campo calcolato. Impostato su Esempi truefalse | |||
| Ora di Fine EndTime | Il timestamp che indica quando una specifica attività o un evento è stato completato. | ||
| Descrizione Questo attributo fornisce la data e l'ora di completamento per ogni L'Ora di Fine è cruciale per calcolare il tempo di elaborazione preciso delle singole attività, che è un input chiave per l'analisi dell'utilizzo della capacità e delle risorse. Aiuta a differenziare tra tempo di lavoro attivo e tempo di inattività o attesa, portando a una più accurata identificazione dei Perché è importante Permette il calcolo di durate precise delle attività, essenziale per analizzare l'efficienza delle risorse e identificare i Dove trovare Trovato nelle tabelle di conferma (AFRU) per i passaggi di esecuzione. Per altri Esempi 2023-10-26T09:45:00Z2023-10-26T15:00:00Z2023-10-27T10:30:00Z | |||
| Priorità di produzione ProductionPriority | Un codice o valore assegnato a un ordine di produzione per indicarne l'urgenza o l'importanza. | ||
| Descrizione La Priorità di Produzione è utilizzata dai pianificatori e dagli schedulatori per sequenziare e dare priorità agli ordini, specialmente quando le risorse sono limitate. Un ordine con priorità più alta dovrebbe idealmente essere elaborato prima di uno con priorità più bassa. L'analisi di questo attributo aiuta a valutare se le priorità assegnate vengono seguite in produzione. La dashboard di Coerenza della Prioritizzazione della Produzione confronta la sequenza di elaborazione con la priorità assegnata per identificare le incongruenze, il che può portare a una migliore disciplina di pianificazione e a un migliore allineamento tra pianificazione ed esecuzione. Perché è importante Aiuta a determinare se la pianificazione della produzione segue le priorità aziendali, assicurando che gli ordini critici siano accelerati come previsto. Dove trovare Questo è spesso un campo personalizzato o basato su altri parametri dell'ordine. Una posizione specifica dipende dalla configurazione. Esempi ElevatoMedioBasso15 | |||
| Quantità Confermata TotalConfirmedQuantity | La quantità totale di materiale che è stata confermata come prodotta per l'ordine. | ||
| Descrizione Questo attributo rappresenta la quantità cumulativa di beni finiti o semilavorati che sono stati riportati tramite le conferme di produzione. Traccia l'avanzamento dell'ordine verso il suo obiettivo di completamento. Confrontare la quantità confermata con la quantità pianificata aiuta a monitorare l'avanzamento della produzione e a identificare problemi di resa o discrepanze. È una misura fondamentale della produzione e viene utilizzata in vari calcoli di performance, inclusi i tassi di scarto e l'efficienza. Perché è importante Traccia l'output effettivo dell'ordine di produzione, essenziale per monitorare l'avanzamento, calcolare la resa e identificare le discrepanze. Dove trovare Aggregato dai record di conferma in AFRU (campo LMNGA per la quantità di resa). Esempi 9801000501200 | |||
| Stato Disponibilità Materiali MaterialAvailabilityStatus | Indica se tutti i materiali richiesti per l'ordine di produzione sono disponibili. | ||
| Descrizione Questo stato riflette il risultato della verifica della disponibilità del materiale eseguita per un ordine di produzione. Può indicare che tutti i materiali sono disponibili, alcuni sono mancanti o che la verifica non è stata eseguita. Uno stato di 'carenza' è un fattore scatenante chiave per potenziali ritardi. Questo attributo è critico per la Perché è importante Spiega direttamente i ritardi tra il rilascio dell'ordine e l'inizio della produzione, aiutando a quantificare l'impatto dei problemi della Dove trovare Questo è uno stato, spesso derivato dallo stato collettivo dei componenti materiali. Può essere trovato nello stato di sistema (JEST) con stati come 'MSPT' (Carenza di materiale). Esempi DisponibileCarenzaNon verificato | |||
| Tempo di ciclo di produzione ProductionCycleTime | Il tempo totale trascorso dal rilascio di un ordine di produzione al suo completamento tecnico. | ||
| Descrizione Questa metrica calcolata misura la durata Questo attributo è la misura primaria per la Perché è importante Questo è un KPI critico per misurare l'efficienza complessiva della produzione e identificare opportunità per accelerare l'evasione degli ordini. Dove trovare Calcolato trovando la durata tra l'attività 'Ordine di Produzione Rilasciato' e l'attività 'Ordine Tecnicamente Completato' per ogni Ordine di Produzione. Esempi P5DT12H30MP10DT2HP3D | |||
| Tipo Ordine OrderType | Una classificazione dell'ordine di produzione che ne definisce lo scopo e ne controlla l'elaborazione. | ||
| Descrizione Il Tipo di Ordine è un elemento di configurazione chiave in SAP PP che determina come un ordine di produzione viene gestito dal sistema. Controlla gli intervalli di numerazione, la selezione dei dati anagrafici, i parametri di costo e le regole di liquidazione. Gli esempi includono ordini di produzione standard, ordini di rilavorazione o ordini prototipo. L'analisi del processo per Tipo di Ordine consente di confrontare le prestazioni e il flusso di diversi tipi di processi di produzione. Questo può rivelare se gli ordini di rilavorazione richiedono tempi significativamente più lunghi o se certi tipi di ordine sono più inclini a modifiche di pianificazione, fornendo preziosi Perché è importante Permette la segmentazione dell'analisi in base allo scopo commerciale dell'ordine, consentendo il confronto tra produzione standard, rilavorazione e altri processi. Dove trovare Trovato nella tabella di intestazione dell'Ordine di Produzione AFKO (campo AUART). Esempi PP01PP03ZP01 | |||
| Utente User | L'ID del sistema dell'utente che ha creato, modificato o confermato un `evento` dell'ordine di produzione. | ||
| Descrizione Questo attributo cattura l'ID utente SAP associato a una specifica transazione o modifica di stato, come il rilascio di un ordine o l'inserimento di una conferma. Fornisce tracciabilità per le azioni intraprese all'interno del sistema. L'analisi delle attività per Utente aiuta a comprendere la distribuzione del carico di lavoro, a identificare le esigenze di formazione e a garantire la conformità alle procedure. Ad esempio, può evidenziare se certi utenti sono frequentemente coinvolti in modifiche di piano o se i ritardi sono associati a team specifici. Perché è importante Fornisce responsabilità e consente l'analisi del carico di lavoro, del comportamento specifico dell'utente e delle potenziali opportunità di formazione. Dove trovare Tipicamente trovato nelle intestazioni dei documenti di modifica (CDHDR, campo UNAME) o nei record di conferma (AFRU, campo PERNR per il numero di personale). Esempi CB9980000021JSMITHPLANNER01 | |||
Attività di Pianificazione della Produzione
| Activity | Descrizione | ||
|---|---|---|---|
| Conferma Finale Inserita | Questa attività segna la conferma dell'ultima operazione nel routing dell'ordine di produzione. Significa che tutte le fasi di fabbricazione pianificate sono state completate in produzione. | ||
| Perché è importante La conferma finale è una pietra miliare chiave che indica la fine del lavoro di produzione fisico. Viene spesso utilizzata come punto finale più preciso per misurare il tempo di ciclo della produzione prima dell'entrata merci finale. Dove trovare Deducibile dai Acquisisci Trovare l'ultima conferma di operazione in AFRU con l' Tipo di evento inferred | |||
| Ordine completato tecnicamente | Questo è un passaggio di chiusura amministrativo che impedisce ulteriori modifiche logistiche all'ordine, come movimenti merci o conferme. L'ordine è considerato completo dal punto di vista logistico. | ||
| Perché è importante TECO è un punto finale definitivo per il processo di produzione, cruciale per il calcolo del tempo di ciclo totale dell'ordine di produzione. Segnala che tutte le attività logistiche sono terminate e l'ordine è pronto per la liquidazione finanziaria. Dove trovare Questo è attivato da un utente che imposta lo stato su TECO (Completato Tecnicamente). L' Acquisisci
Tipo di evento inferred | |||
| Ordine di produzione creato | Questa è la creazione iniziale dell'ordine di produzione nel sistema, che serve come richiesta formale per produrre una quantità specificata di un prodotto. Questo `evento` viene catturato esplicitamente quando un utente salva un nuovo ordine, impostandone lo stato iniziale su CRTD (Creato). | ||
| Perché è importante Segna l'inizio del ciclo di vita dell'ordine di produzione. L'analisi del tempo dalla creazione al rilascio aiuta a identificare ritardi amministrativi o di pianificazione prima che la produzione sia formalmente programmata. Dove trovare Questo Acquisisci
Tipo di evento explicit | |||
| Ordine di produzione rilasciato | Questa è una pietra miliare chiave in cui l'ordine di produzione viene approvato e reso disponibile per l'esecuzione in produzione. Il rilascio consente l'inizio delle uscite merci, delle conferme e di altre fasi di esecuzione. | ||
| Perché è importante Questo Dove trovare Il rilascio è attivato esplicitamente da un utente o da un Acquisisci
Tipo di evento inferred | |||
| Piano di produzione modificato | Rappresenta una modifica significativa apportata all'ordine di produzione dopo il suo rilascio, come un cambiamento di quantità, date o distinta base. Questo viene acquisito analizzando i documenti di modifica. | ||
| Perché è importante Aggiustamenti frequenti possono indicare instabilità nella pianificazione o domanda volatile. Questa attività è la base per il Dove trovare Deducibile dai Acquisisci Identificare i cambiamenti in CDHDR/CDPOS per i campi chiave (es. quantità, date) dopo l' Tipo di evento inferred | |||
| Produzione avviata | Indica l'inizio delle attività di produzione fisica per l'ordine. Questo è tipicamente dedotto dalla prima conferma di produzione o dalla prima emissione merci di componenti contro l'ordine. | ||
| Perché è importante Questa attività segna la transizione dalla pianificazione all'esecuzione. È essenziale per il monitoraggio dell'aderenza al programma confrontando la data di inizio effettiva con la data di inizio pianificata. Dove trovare Questo è un Acquisisci Il Tipo di evento inferred | |||
| Ricevimento merce registrato | Questo `evento` registra il ricevimento del prodotto finito dalla linea di produzione nel magazzino. Aumenta formalmente il livello delle scorte del materiale prodotto. | ||
| Perché è importante Questa è una pietra miliare critica che rappresenta il completamento della produzione. È spesso considerata la fine del ciclo di produzione per misurare la consegna puntuale e il tempo di consegna complessivo. Dove trovare Questa è una registrazione finanziaria esplicita registrata nelle tabelle dei documenti materiale MSEG (livello articolo) e MKPF (livello intestazione), tipicamente con tipo di movimento 101. Questi documenti sono collegati all'ordine di produzione. Acquisisci Trovare il documento materiale in MSEG collegato all'ordine con tipo di movimento 101. Tipo di evento explicit | |||
| Conferma di produzione inserita | Rappresenta la registrazione dell'avanzamento per una specifica operazione all'interno dell'ordine di produzione. Ciò include la registrazione delle quantità prodotte, degli scarti e del tempo trascorso in un centro di lavoro. | ||
| Perché è importante Le conferme offrono visibilità in tempo reale sull'avanzamento in officina e sono vitali per il tracciamento dello stato della produzione. L'analisi della frequenza e della tempistica delle conferme aiuta a monitorare il flusso e a identificare i ritardi tra le operazioni. Dove trovare Ogni conferma è registrata esplicitamente come voce nella tabella AFRU (Conferme di Completamento Ordine) con un Acquisisci Registrato come documento nella tabella AFRU. Tipo di evento explicit | |||
| Disponibilità Materiali Controllata | Rappresenta l'azione del sistema o dell'utente di verificare se tutti i componenti richiesti per l'ordine di produzione sono disponibili nelle quantità necessarie e in tempo. Questo è tipicamente un controllo automatizzato alla creazione o al rilascio dell'ordine, o un controllo manuale, che aggiorna lo stato dell'ordine. | ||
| Perché è importante L'identificazione precoce delle carenze di materiali è cruciale per una pianificazione proattiva. Tracciare questa attività aiuta a capire come la disponibilità dei materiali influenzi la capacità di rilasciare ordini e avviare la produzione in tempo. Dove trovare Deducibile dallo stato dell'ordine. Uno stato come MACM (Materiale impegnato) o una modifica nella data di disponibilità del materiale (AFKO-MSERF) indica che un controllo è stato eseguito. L'assenza di uno stato di carenza materiale (MSPT) può anche inferire la disponibilità. Acquisisci Deducibile dai cambiamenti di stato relativi all'impegno materiale o all'esecuzione della transazione COMAC. Tipo di evento inferred | |||
| Ordine chiuso finanziariamente | La fase di chiusura finale in cui l'ordine viene saldato e non sono più possibili ulteriori registrazioni finanziarie. Ciò significa la fine del ciclo di vita dell'ordine da una prospettiva di controllo e contabilità. | ||
| Perché è importante Sebbene spesso al di fuori dell'ambito di una pura analisi della produzione, questa attività fornisce una visione Dove trovare Questo è attivato da un utente che imposta lo stato su CLSD (Chiuso). L' Acquisisci
Tipo di evento inferred | |||
| Ordine di produzione annullato | Rappresenta l'annullamento di un ordine di produzione prima del suo completamento. Questo è uno stato finale alternativo e non riuscito per il processo. | ||
| Perché è importante L'analisi degli ordini annullati può rivelare problemi nella pianificazione della domanda, nei Dove trovare Questo è inferito dall'impostazione dello stato di sistema CACL (Annullamento) nella tabella JCDS. In alternativa, un Acquisisci
Tipo di evento inferred | |||
| Requisiti di Capacità Pianificati | Questa attività comporta la programmazione delle operazioni dell'ordine di produzione e la verifica della disponibilità di capacità presso i centri di lavoro richiesti. Il sistema valuta i carichi di capacità del centro di lavoro e li livella se configurato, determinando le date di produzione. | ||
| Perché è importante Questa fase è critica per garantire un programma di produzione fattibile. L'analisi della sua durata e dei suoi risultati aiuta a identificare i Dove trovare Questo è generalmente inferito dallo stato del sistema che indica che l'ordine è stato programmato, come SETC (Programmazione eseguita). Anche il popolamento delle date di inizio e fine programmate (AUFK-GSTRP, AUFK-GLTRP) segnala il completamento di questa attività. Acquisisci Deducibile dalla popolazione delle date pianificate in AUFK/AFKO o da uno stato relativo alla pianificazione in JEST. Tipo di evento inferred | |||
| Si è verificata una carenza di materiale | Questo `evento` indica che il processo di produzione è stato influenzato o interrotto a causa dell'indisponibilità di uno o più componenti richiesti. Il sistema imposta uno stato specifico sull'ordine per riflettere ciò. | ||
| Perché è importante Il tracciamento delle carenze di materiale è critico per l'Analisi dell'Impatto della Carenza di Materiali. Aiuta a quantificare i ritardi causati da problemi della catena di fornitura e a migliorare la pianificazione del materiale. Dove trovare Questo è inferito dall'attivazione dello stato 'MSPT' (Carenza di materiale) per l'ordine di produzione. Il Acquisisci
Tipo di evento inferred | |||
| Si è verificato un arresto non pianificato | Questo `evento` calcolato rappresenta un significativo periodo di inattività durante la fase di esecuzione della produzione. Non è un `evento` di sistema esplicito ma è derivato identificando lunghi intervalli di tempo tra conferme di produzione consecutive. | ||
| Perché è importante Aiuta a monitorare le interruzioni non pianificate come guasti alle macchine o problemi di qualità. L'identificazione di interruzioni frequenti o lunghe è fondamentale per migliorare la stabilità e la produttività dell'officina. Dove trovare Questo viene calcolato analizzando i Acquisisci Calcolare la differenza di tempo tra i Tipo di evento calculated | |||
Guide all'Estrazione
Fasi
- Verifica Prerequisiti: Si assicuri di avere un utente in SAP S/4HANA con le autorizzazioni appropriate per accedere alle viste Core Data Services (CDS) richieste. Le viste necessarie includono
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. È richiesto anche l'accesso a un ambiente di esecuzione SQL connesso aldatabaseSAP HANA, come SAP HANA Studio, DBeaver o uno strumento ETL esterno. - Identificazione Dettagli Sistema: Annoti l'identificatore del sistema sorgente che utilizzerà per l'
attributeSourceSystem. Questo è un nome logico che definisce per identificare l'origine deidati, ad esempio,S4H_PROD. - Impostazione Parametri di Estrazione: Prima di eseguire la
query, definisca i parametri chiave. Questo include le date di inizio e fine per il periodo di estrazione e qualsiasi filtro specifico comePlantoProductionOrderTypeper limitare l'ambito deidati. - Preparazione della
QuerySQL: Copi laquerySQL completa fornita nella sezionequerynel SuoclientSQL o strumento di estrazionedatiscelto. - Configurazione
Placeholder: Sostituisca i valori deiplaceholdernellaquerycon i Suoi parametri specifici. Questo include_StartDate,_EndDatee l'identificatore del sistema sorgente. Regoli la soglia per l'eventoUnplanned Halt Occurred(ad esempio,'24:00:00') per corrispondere al Suo contesto aziendale. - Esecuzione della
Querydi Estrazione: Esegua lo script SQL configurato suldatabasedel sistema SAP S/4HANA. Perdatasetdi grandi dimensioni che coprono un lungo periodo, consideri di eseguire l'estrazione in blocchi più piccoli, ad esempio, mese per mese, per evitare problemi di prestazioni. - Revisione Iniziale dei
Dati: Una volta completata l'esecuzione dellaquery, esegua una rapida revisione dell'output. Controlli il numero di righe, si assicuri che tutte le colonne siano presenti e verifichi che la colonnaActivitycontenga una varietà deglieventiattesi. - Validazione
Dati: Segua i passaggi descritti nella sezionevalidationStepsper eseguire una validazione più approfondita. Faccia uncross-referencedi alcuni ordini di produzione con i loro dettagli nel sistema SAP utilizzando la transazioneCO03per confermare l'accuratezza dell'event logestratto. - Esportazione in CSV: Esporti il
setdi risultati finale in unfileCSV. Si assicuri che la codifica delfilesia UTF-8 per prevenire problemi di caratteri. - Preparazione per l'
Upload: Confermi che le intestazioni delle colonne CSV corrispondano ai nomi degliattributirichiesti:ProductionOrder,Activity,StartTime,SourceSystemeLastDataUpdate. Si assicuri che la colonnaStartTimesia in un formatotimestampstandard, come ISO 8601 (YYYY-MM-DDTHH:MM:SS), prima di caricare nello strumento diProcess Mining.
Configurazione
- Core CDS Views: L'estrazione si basa principalmente su un set di viste CDS standard che offrono una prospettiva strutturata e orientata al business delle tabelle SAP sottostanti. Le viste principali includono:
I_ProductionOrder: Per i dati a livello di intestazione e glieventidi creazione.I_ProdOrdConfirmation: Per tutte le conferme di operazione.I_MaterialDocumentItem: Per i movimenti di merci come emissioni e ricezioni.I_ObjectStatus: Per leggere i cambiamenti di stato dell'ordine di produzione.I_ChangeDocumente viste associate: Per acquisire le modifiche ai campi chiave dell'ordine.
- Filtro per Intervallo di Date: È fondamentale applicare un filtro per intervallo di date per gestire il volume dei
dati. Laqueryfornita utilizza laCreationDatedell'ordine di produzione. Un intervallo tipico per un'analisi iniziale è di 3-6 mesi didati. - Filtri Business Chiave: Per affinare ulteriormente il
dataset, applicare filtri basati suattributichiave organizzativi odatianagrafici. I filtri comuni includono:Plant: Per analizzare una specifica sede produttiva.ProductionOrderType: Per concentrarsi sulla produzione standard, rilavorazioni o altri tipi di ordine.CompanyCode: Per limitare idatia una specifica entità legale.
- Soglia Interruzione Imprevista: La
queryinclude una logica per derivareeventidiUnplanned Halt Occurred. Questa logica richiede una soglia temporale per definire cosa costituisce un intervallo significativo tra le operazioni. Questo valore dovrebbe essere configurato in base ai tempi di ciclo di produzione tipici e alle regole aziendali. - Prerequisiti di Autorizzazione: L'utente SAP che esegue la
querydeve avere l'autorizzazione di visualizzazione per tutte le viste CDS e le loro tabelle sottostanti.Autorizzazionimancanti comporteranno un set di risultati vuoto o incompleto.
a Query di Esempio sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate Fasi
- Verifica Prerequisiti: Si assicuri di avere un utente in SAP S/4HANA con le autorizzazioni appropriate per accedere alle viste Core Data Services (CDS) richieste. Le viste necessarie includono
I_ProductionOrder,I_ProdOrdConfirmation,I_MaterialDocumentItem,I_ObjectStatuseI_ChangeDocument. È richiesto anche l'accesso a un ambiente di esecuzione SQL connesso aldatabaseSAP HANA, come SAP HANA Studio, DBeaver o uno strumento ETL esterno. - Identificazione Dettagli Sistema: Annoti l'identificatore del sistema sorgente che utilizzerà per l'
attributeSourceSystem. Questo è un nome logico che definisce per identificare l'origine deidati, ad esempio,S4H_PROD. - Impostazione Parametri di Estrazione: Prima di eseguire la
query, definisca i parametri chiave. Questo include le date di inizio e fine per il periodo di estrazione e qualsiasi filtro specifico comePlantoProductionOrderTypeper limitare l'ambito deidati. - Preparazione della
QuerySQL: Copi laquerySQL completa fornita nella sezionequerynel SuoclientSQL o strumento di estrazionedatiscelto. - Configurazione
Placeholder: Sostituisca i valori deiplaceholdernellaquerycon i Suoi parametri specifici. Questo include_StartDate,_EndDatee l'identificatore del sistema sorgente. Regoli la soglia per l'eventoUnplanned Halt Occurred(ad esempio,'24:00:00') per corrispondere al Suo contesto aziendale. - Esecuzione della
Querydi Estrazione: Esegua lo script SQL configurato suldatabasedel sistema SAP S/4HANA. Perdatasetdi grandi dimensioni che coprono un lungo periodo, consideri di eseguire l'estrazione in blocchi più piccoli, ad esempio, mese per mese, per evitare problemi di prestazioni. - Revisione Iniziale dei
Dati: Una volta completata l'esecuzione dellaquery, esegua una rapida revisione dell'output. Controlli il numero di righe, si assicuri che tutte le colonne siano presenti e verifichi che la colonnaActivitycontenga una varietà deglieventiattesi. - Validazione
Dati: Segua i passaggi descritti nella sezionevalidationStepsper eseguire una validazione più approfondita. Faccia uncross-referencedi alcuni ordini di produzione con i loro dettagli nel sistema SAP utilizzando la transazioneCO03per confermare l'accuratezza dell'event logestratto. - Esportazione in CSV: Esporti il
setdi risultati finale in unfileCSV. Si assicuri che la codifica delfilesia UTF-8 per prevenire problemi di caratteri. - Preparazione per l'
Upload: Confermi che le intestazioni delle colonne CSV corrispondano ai nomi degliattributirichiesti:ProductionOrder,Activity,StartTime,SourceSystemeLastDataUpdate. Si assicuri che la colonnaStartTimesia in un formatotimestampstandard, come ISO 8601 (YYYY-MM-DDTHH:MM:SS), prima di caricare nello strumento diProcess Mining.
Configurazione
- Core CDS Views: L'estrazione si basa principalmente su un set di viste CDS standard che offrono una prospettiva strutturata e orientata al business delle tabelle SAP sottostanti. Le viste principali includono:
I_ProductionOrder: Per i dati a livello di intestazione e glieventidi creazione.I_ProdOrdConfirmation: Per tutte le conferme di operazione.I_MaterialDocumentItem: Per i movimenti di merci come emissioni e ricezioni.I_ObjectStatus: Per leggere i cambiamenti di stato dell'ordine di produzione.I_ChangeDocumente viste associate: Per acquisire le modifiche ai campi chiave dell'ordine.
- Filtro per Intervallo di Date: È fondamentale applicare un filtro per intervallo di date per gestire il volume dei
dati. Laqueryfornita utilizza laCreationDatedell'ordine di produzione. Un intervallo tipico per un'analisi iniziale è di 3-6 mesi didati. - Filtri Business Chiave: Per affinare ulteriormente il
dataset, applicare filtri basati suattributichiave organizzativi odatianagrafici. I filtri comuni includono:Plant: Per analizzare una specifica sede produttiva.ProductionOrderType: Per concentrarsi sulla produzione standard, rilavorazioni o altri tipi di ordine.CompanyCode: Per limitare idatia una specifica entità legale.
- Soglia Interruzione Imprevista: La
queryinclude una logica per derivareeventidiUnplanned Halt Occurred. Questa logica richiede una soglia temporale per definire cosa costituisce un intervallo significativo tra le operazioni. Questo valore dovrebbe essere configurato in base ai tempi di ciclo di produzione tipici e alle regole aziendali. - Prerequisiti di Autorizzazione: L'utente SAP che esegue la
querydeve avere l'autorizzazione di visualizzazione per tutte le viste CDS e le loro tabelle sottostanti.Autorizzazionimancanti comporteranno un set di risultati vuoto o incompleto.
a Query di Esempio sql
WITH BaseOrders AS (
SELECT
ProductionOrder,
Material AS MaterialNumber,
ProductionPlant AS Plant,
CreationDate,
CreationTime,
BasicEndDate AS PlannedEndDate,
TechnicalCompletionDate,
LastChangeDateTime
FROM I_ProductionOrder
-- P_CreationDateFrom and P_CreationDateTo are placeholders for your date range
WHERE CreationDate BETWEEN '[_StartDate]' AND '[_EndDate]'
-- Add other filters as needed, for example:
-- AND ProductionPlant IN ('[Your_Plant_1]', '[Your_Plant_2]')
-- AND ProductionOrderType = '[Your_Order_Type]'
)
SELECT
bo.ProductionOrder,
'Production Order Created' AS Activity,
TO_TIMESTAMP(bo.CreationDate || ' ' || LPAD(bo.CreationTime, 6, '0'), 'YYYYMMDD HH24MISS') AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
'CRTD' AS OrderStatus
FROM BaseOrders bo
UNION ALL
-- System status changes like Released, Technically Completed, Closed, Cancelled, Material Shortage
SELECT
os.ObjectInternalID AS ProductionOrder,
CASE os.SystemStatus
WHEN 'I0002' THEN 'Production Order Released'
WHEN 'I0043' THEN 'Material Availability Checked' -- Status: MACM (Material committed)
WHEN 'I0045' THEN 'Order Technically Completed'
WHEN 'I0046' THEN 'Order Financially Closed'
WHEN 'I0047' THEN 'Production Order Cancelled'
WHEN 'I0010' THEN 'Material Shortage Occurred' -- Status: MSPT (Material shortage)
END AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus IN ('I0002', 'I0043', 'I0045', 'I0046', 'I0047', 'I0010') AND os.StatusIsInactive = ''
UNION ALL
-- Production Started, inferred from the first goods issue or first confirmation
SELECT
s.ProductionOrder,
'Production Started' AS Activity,
s.StartEventTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
s.MaterialNumber,
s.Plant,
NULL AS WorkCenter,
s.PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
bo.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime)) AS StartEventTime,
ROW_NUMBER() OVER(PARTITION BY bo.ProductionOrder ORDER BY MIN(COALESCE(gm.PostingTime, cf.ConfirmationDateTime))) as rn
FROM BaseOrders bo
LEFT JOIN I_MaterialDocumentItem gm ON bo.ProductionOrder = gm.ProductionOrder AND gm.GoodsMovementType IN ('261', '262') -- Goods Issue
LEFT JOIN I_ProdOrdConfirmation cf ON bo.ProductionOrder = cf.ProductionOrder
WHERE gm.ProductionOrder IS NOT NULL OR cf.ProductionOrder IS NOT NULL
GROUP BY bo.ProductionOrder, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate
) s
WHERE s.rn = 1
UNION ALL
-- Production Confirmation Entered (for each confirmation)
SELECT
cf.ProductionOrder,
'Production Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
UNION ALL
-- Final Confirmation Entered
SELECT
cf.ProductionOrder,
'Final Confirmation Entered' AS Activity,
cf.ConfirmationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
cf.WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
WHERE cf.IsFinalConfirmation = 'X'
UNION ALL
-- Unplanned Halt Occurred (derived from gaps between confirmations)
SELECT
ProductionOrder,
'Unplanned Halt Occurred' AS Activity,
PreviousConfirmationTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
MaterialNumber,
Plant,
WorkCenter,
PlannedEndDate,
NULL AS OrderStatus
FROM (
SELECT
cf.ProductionOrder,
bo.MaterialNumber,
bo.Plant,
bo.PlannedEndDate,
cf.WorkCenter,
cf.ConfirmationDateTime,
LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime) AS PreviousConfirmationTime,
(SECONDS_BETWEEN(LAG(cf.ConfirmationDateTime, 1) OVER (PARTITION BY cf.ProductionOrder ORDER BY cf.ConfirmationDateTime), cf.ConfirmationDateTime) / 3600.0) as HoursDiff
FROM I_ProdOrdConfirmation cf
JOIN BaseOrders bo ON cf.ProductionOrder = bo.ProductionOrder
) AS gaps
WHERE gaps.HoursDiff > 24 -- Configurable threshold in hours, e.g. 24 hours
UNION ALL
-- Goods Receipt Posted
SELECT
gm.ProductionOrder,
'Goods Receipt Posted' AS Activity,
gm.PostingTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
NULL AS OrderStatus
FROM I_MaterialDocumentItem gm
JOIN BaseOrders bo ON gm.ProductionOrder = bo.ProductionOrder
WHERE gm.GoodsMovementType = '101'
UNION ALL
-- Capacity Requirements Planned (using Release event as a proxy)
SELECT
os.ObjectInternalID AS ProductionOrder,
'Capacity Requirements Planned' AS Activity,
os.StatusChangeDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL AS WorkCenter,
bo.PlannedEndDate,
os.SystemStatus AS OrderStatus
FROM I_ObjectStatus AS os
JOIN BaseOrders AS bo ON os.ObjectInternalID = bo.ProductionOrder
WHERE os.SystemStatus = 'I0002' AND os.StatusIsInactive = '' -- Status 'REL' (Released)
UNION ALL
-- Production Plan Adjusted
SELECT
ch.ObjectValue AS ProductionOrder,
'Production Plan Adjusted' AS Activity,
ch.CreationDateTime AS StartTime,
'[_SourceSystemName]' AS SourceSystem,
CURRENT_UTCTIMESTAMP AS LastDataUpdate,
bo.MaterialNumber,
bo.Plant,
NULL as WorkCenter,
bo.PlannedEndDate,
NULL as OrderStatus
FROM I_ChangeDocument AS ch
JOIN BaseOrders bo ON ch.ObjectValue = bo.ProductionOrder
WHERE ch.ChangeDocumentObject = 'PRODORDER'
-- Monitoring changes in key fields like Total Quantity (GAMNG) or Basic Finish Date (GLTRP)
AND ch.FieldName IN ('GAMNG', 'GLTRP')
GROUP BY ch.ObjectValue, ch.CreationDateTime, bo.MaterialNumber, bo.Plant, bo.PlannedEndDate