Il Template dei dati per Record to Report, chiusura del periodo e riconciliazione
Il Template dei dati per Record to Report, chiusura del periodo e riconciliazione
- Attributi consigliati da raccogliere
- Attività principali da monitorare
- Indicazioni per l’estrazione
Attributi di Record to Report, chiusura del periodo e riconciliazione
| Nome | Descrizione | ||
|---|---|---|---|
| Periodo contabile FinancialPeriod | Identificativo univoco del ciclo di rendicontazione finanziaria, in genere composto dall’anno fiscale e dal periodo di registrazione. | ||
| Descrizione Il periodo contabile è l’identificativo principale del caso e raggruppa tutte le attività di chiusura e riconciliazione dei conti relative a uno specifico ciclo di rendicontazione, ad esempio «2023-12» per dicembre 2023. Consente di analizzare nel dettaglio l’intero processo di chiusura, dall’inizio alla fine, per ciascun periodo. Nell’analisi, permette di monitorare il tempo di ciclo completo di ogni chiusura, confrontare i risultati tra periodi diversi e individuare tendenze o anomalie. Definendo ogni periodo contabile come un caso univoco, è possibile visualizzare e misurare nel tempo l’efficienza, i colli di bottiglia e le variazioni del processo di chiusura. Perché è importante È l’identificativo essenziale del caso su cui si basa l’analisi e consente di confrontare tra periodi i tempi di ciclo della chiusura, i carichi di lavoro e la conformità del processo. Dove reperirli Questo attributo viene in genere ricavato concatenando l’anno fiscale (GJAHR) e il periodo di registrazione (MONAT) presenti nelle testate dei documenti contabili, ad esempio nella tabella BKPF. Esempi 2023-122024-032023-T4 | |||
| Attività ActivityName | Nome dello specifico evento aziendale o dell’attività svolta durante il processo di chiusura del periodo. | ||
| Descrizione Questo attributo registra le singole fasi del ciclo Record to Report, ad esempio «Scrittura contabile di rettifica registrata» o «Rendiconti finanziari generati». Costituisce la struttura portante della mappa del processo e mostra la sequenza degli eventi che compongono la chiusura del periodo. Analizzare le attività è fondamentale per il Process Mining: consente di visualizzare il flusso del processo, individuare la sequenza delle attività, rilevare le varianti del processo e misurare la frequenza e la durata di ogni fase. È essenziale per individuare colli di bottiglia, percorsi non standard e opportunità di standardizzazione o automazione. Perché è importante Questo attributo è obbligatorio per costruire la mappa del processo e visualizzare e analizzare la sequenza delle attività nella chiusura del periodo. Dove reperirli È ricavato combinando i codici transazione SAP (TCODE), i tipi di documento (BLART) o l’esecuzione di programmi specifici (ad es. FAGL_FCV per la valutazione in valuta estera). Esempi Scrittura contabile di rettifica registrataAvvio della riconciliazione dei contiPeriodo chiuso alle registrazioni | |||
| Ora dell’evento EventTime | Timestamp che indica quando si è verificata un’attività o un evento. | ||
| Descrizione L’ora dell’evento fornisce la data e l’ora precise di ogni attività del processo e costituisce la base cronologica dell’analisi. In genere è composta dalla data e dall’ora di creazione del documento. Questo timestamp è essenziale per ordinare correttamente gli eventi e ricostruire il flusso del processo. Viene utilizzato per calcolare tutte le metriche basate sulla durata, compresi i tempi di ciclo tra le attività, i tempi di attesa e la durata complessiva della chiusura del periodo. Analizzare i timestamp aiuta a individuare i ritardi e a comprendere la distribuzione temporale del lavoro. Perché è importante In quanto attributo obbligatorio, definisce l’ordine cronologico degli eventi, necessario per calcolare i tempi di ciclo e individuare i colli di bottiglia del processo. Dove reperirli In genere proviene dalla data di inserimento del documento (CPUDT) e dall’ora di inserimento (CPUTM) nella tabella BKPF dei documenti contabili. Esempi 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Sistema di origine SourceSystem | Identificativo del sistema di origine da cui sono stati estratti i dati. | ||
| Descrizione Questo attributo specifica l’origine dei dati degli eventi, ad esempio il nome o l’ID della specifica istanza SAP ECC. Nelle organizzazioni che utilizzano più ERP o sistemi finanziari, è fondamentale per distinguere i dati provenienti da fonti diverse. Anche in un ambiente con un solo sistema, costituisce un metadato importante per la governance dei dati, gli audit e la risoluzione dei problemi. Conferma la provenienza dei dati, elemento essenziale per dare affidabilità all’analisi e garantire la tracciabilità dei dati. Perché è importante Fornisce informazioni essenziali sulla tracciabilità dei dati, ne conferma l’origine ai fini della governance ed è fondamentale negli ambienti con più sistemi per distinguere i processi. Dove reperirli In genere è un valore statico aggiunto durante l’estrazione dei dati, che identifica il client SAP specifico e l’ID di sistema (ad es. dalla tabella T000). Esempi ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Timestamp dell’ultimo aggiornamento o dell’ultima estrazione dei dati dal sistema di origine. | ||
| Descrizione Questo attributo indica quanto sono aggiornati i dati analizzati. Mostra la data e l’ora dell’ultima esecuzione della pipeline dei dati e fornisce un riferimento sulla recenza delle informazioni sul processo. Nelle Dashboard, soprattutto in quelle che monitorano l’avanzamento in tempo reale, questo timestamp è fondamentale per capire se le informazioni visualizzate sono aggiornate al momento o risalgono al giorno precedente. Aiuta a definire le aspettative degli utenti ed è importante per interpretare correttamente l’analisi. Perché è importante Indica agli utenti quanto sono aggiornati i dati, un’informazione fondamentale per garantire che analisi e Dashboard siano tempestive e pertinenti. Dove reperirli Questo timestamp viene generato e aggiunto dallo strumento di estrazione dei dati o ETL al termine di ogni caricamento. Esempi 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Codice società BUKRS | Unità organizzativa che rappresenta una persona giuridica per la quale vengono redatti i rendiconti finanziari. | ||
| Descrizione Il codice società è un’unità organizzativa fondamentale in SAP Financials. Rappresenta una società indipendente con una propria contabilità in partita doppia. Tutte le transazioni finanziarie vengono registrate a livello di codice società. Nel Process Mining, filtrare per codice società è essenziale per confrontare il processo di chiusura del periodo tra le diverse persone giuridiche di un gruppo. Consente di individuare le prassi efficaci nelle società con i risultati migliori e di identificare quelle che registrano ritardi, numerose rettifiche o deviazioni del processo. È una dimensione fondamentale per segmentare l’analisi. Perché è importante Consente di confrontare i risultati della chiusura del periodo e la conformità tra diverse persone giuridiche, un aspetto fondamentale per l’analisi finanziaria a livello di gruppo. Dove reperirli Questo campo è disponibile in quasi tutte le tabelle dei documenti contabili SAP, principalmente BKPF (testata) e BSEG (partita singola). Esempi 10002000US01DE01 | |||
| Conto Co.Ge. HKONT | Numero del conto di contabilità generale a cui viene registrata una partita. | ||
| Descrizione Il conto di contabilità generale (Co.Ge.) è un elemento fondamentale dei dati anagrafici finanziari e serve a classificare le transazioni. Ogni registrazione finanziaria viene assegnata a uno o più conti Co.Ge. Nell’ambito della chiusura del periodo, analizzare le attività per conto Co.Ge. è essenziale per le Dashboard «Colli di bottiglia nella riconciliazione dei conti» e «Analisi dei volumi delle scritture di rettifica». Aiuta a individuare i conti più difficili da riconciliare, quelli che richiedono più rettifiche e quelli con il rischio più elevato di errori significativi. In questo modo, i team possono concentrare gli sforzi sui conti problematici. Perché è importante Consente di analizzare in modo mirato le riconciliazioni e le scritture di rettifica, aiutando a individuare i conti problematici che causano ritardi o richiedono correzioni frequenti. Dove reperirli Disponibile nella tabella delle partite singole dei documenti contabili, BSEG (HKONT). Esempi 113100400500750000 | |||
| Importo in valuta locale DMBTR | Valore finanziario di una partita, espresso nella valuta locale del codice società. | ||
| Descrizione Questo attributo rappresenta il valore monetario associato a una registrazione finanziaria. È la misura quantitativa fondamentale dell’impatto di una transazione sul libro mastro. Analizzare l’importo è essenziale per stabilire le priorità e comprendere il rischio finanziario. Ad esempio, la Dashboard «Analisi dei volumi delle scritture di rettifica» è molto più utile quando consente di distinguere tra un numero elevato di rettifiche di importo ridotto e poche rettifiche di importo elevato. Aiuta a concentrare l’attenzione sulle transazioni di rilevanza finanziaria. Perché è importante Quantifica l’impatto finanziario delle transazioni e consente di analizzarle in base alla rilevanza, ad esempio individuando le scritture di rettifica di importo elevato. Dove reperirli Disponibile nella tabella delle partite singole dei documenti, BSEG (DMBTR). Esempi 1500.75-25000.00123456.00 | |||
| Numero documento BELNR | Identificativo univoco di un documento contabile all’interno di un anno fiscale e di un codice società. | ||
| Descrizione Il numero del documento contabile è la chiave primaria delle registrazioni finanziarie in SAP. A ogni scrittura contabile, fattura o documento di pagamento viene assegnato un numero univoco. Sebbene non venga usato di norma per le analisi di processo di alto livello, il numero del documento è prezioso per approfondire i dati. Da una Dashboard di Process Mining, gli analisti possono usarlo per risalire direttamente alla transazione specifica in SAP e indagare nel dettaglio eventuali anomalie, come una rettifica di importo elevato o una partita di riconciliazione in ritardo. Collega direttamente l’informazione emersa dall’analisi alla transazione di origine. Perché è importante Fornisce un collegamento diretto alla transazione di origine in SAP e consente di approfondire l’analisi, passando dalla vista del processo alle singole scritture contabili. Dove reperirli Si trova nella tabella BKPF (BELNR), dove costituisce la chiave primaria. Esempi 100000456719000001233000008901 | |||
| Tipo di documento BLART | Codice che classifica i diversi tipi di documenti contabili. | ||
| Descrizione In SAP, il tipo di documento distingue le diverse transazioni aziendali, come le fatture fornitori (KR), i pagamenti dei clienti (DZ) e le registrazioni di contabilità generale (SA). Determina inoltre proprietà quali l’intervallo di numerazione dei documenti. Nell’analisi della chiusura di fine periodo, il tipo di documento è un filtro efficace. Può essere usato per isolare attività specifiche, come ratei, fondi o scritture di storno. Aiuta ad analizzare il volume e l’impatto finanziario delle diverse transazioni legate alla chiusura e a definire attività specifiche nel modello di processo. Perché è importante Aiuta a classificare e filtrare le transazioni, consentendo di isolare e analizzare attività specifiche come ratei, storni o registrazioni intercompany. Dove reperirli Si trova nella tabella delle testate dei documenti, BKPF (BLART). Esempi SAABKR | |||
| Tipo di scrittura contabile JournalEntryType | Classificazione delle scritture contabili, ad esempio «Standard», «Rettifica», «Rateo» o «Storno». | ||
| Descrizione È un attributo derivato che classifica i documenti contabili in base alla loro finalità aziendale nel processo di chiusura. Viene spesso determinato combinando il tipo di documento (BLART), il motivo dello storno (STGRD) o gli specifici conti Co.Ge. utilizzati. Questa classificazione è fondamentale per la Dashboard «Analisi dei volumi delle scritture di rettifica» e per i KPI correlati. Identificando esplicitamente le scritture di rettifica o di rateo, gli analisti possono misurarne il volume e il valore, monitorarne l’andamento nel tempo e indagare le cause profonde che le rendono necessarie. Consente di distinguere le registrazioni operative ordinarie dalle rettifiche di fine periodo. Perché è importante Classifica le registrazioni per consentire analisi mirate e monitorare e misurare i principali tipi di scrittura, come rettifiche e ratei, che forniscono indicazioni sulla salute del processo. Dove reperirli È un campo derivato. La logica deve essere definita in base alle regole aziendali, utilizzando in genere campi come il tipo di documento (BLART) della tabella BKPF. Esempi RettificaRateoStornoStandard | |||
| Utente responsabile USNAM | ID utente SAP della persona che ha creato o eseguito la transazione. | ||
| Descrizione Questo campo registra l’utente che ha contabilizzato un documento, eseguito un report o avviato un programma relativo alla chiusura. Identifica la persona responsabile di una determinata attività. Analizzare i dati per utente è fondamentale per comprendere la distribuzione del carico di lavoro, individuare esigenze di formazione e verificare le deviazioni del processo. Le Dashboard che mostrano le attività per utente possono evidenziare i membri del team sovraccarichi o chi potrebbe seguire procedure non standard. Aiutano inoltre a gestire le prestazioni e ad assegnare le risorse all’interno del team finanziario. Perché è importante Consente di analizzare la distribuzione del carico di lavoro e i risultati del team, nonché di individuare le deviazioni del processo associate a singole persone. Dove reperirli Disponibile nella tabella BKPF (USNAM) per la creazione dei documenti. Per i processi batch, si trova in TBTCO (SDLUNAME). Esempi JSMITHRDOEFIN_ADMIN | |||
| Data di completamento prevista TargetCompletionDate | La scadenza pianificata per un’attività o per l’intera chiusura del periodo. | ||
| Descrizione La data di completamento prevista definisce la scadenza di riferimento per misurare il processo di chiusura del periodo. Entro tale data devono essere completate specifiche tappe o la chiusura finale. Questo attributo è essenziale per qualsiasi analisi delle prestazioni o della conformità. Serve a calcolare il KPI «Tasso di chiusura del periodo nei tempi previsti» e alimenta la Dashboard «Conformità della chiusura e attività in ritardo». Confrontando l’ora effettiva dell’evento con la data prevista, il sistema può determinare se le attività procedono secondo i tempi stabiliti, sono in ritardo o rischiano di esserlo, consentendo una gestione proattiva del processo di chiusura. Perché è importante Consente di monitorare la conformità e le prestazioni, fornendo una base di riferimento per verificare che le attività di chiusura siano completate nei tempi previsti e supportando i KPI relativi al rispetto delle scadenze. Dove reperirli Si tratta in genere di dati anagrafici gestiti in un calendario separato, in uno strumento per la gestione delle chiusure, come SAP Financial Closing cockpit, oppure in un foglio di calcolo. Non fanno parte dei dati transazionali. Esempi 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
| È automatizzata IsAutomated | Indicatore che specifica se un’attività è stata svolta da una persona o da un sistema automatizzato. | ||
| Descrizione Questo attributo booleano distingue le attività manuali da quelle eseguite automaticamente dal sistema, come un processo batch pianificato per la valutazione delle valute estere o un bot che registra scritture ricorrenti. Spesso lo si determina analizzando il nome utente associato alla transazione, ad esempio «BATCHUSER». Conoscere il livello di automazione è fondamentale per individuare opportunità di maggiore efficienza. L’analisi di questo attributo permette di visualizzare quali parti del processo sono manuali e potrebbero essere automatizzate. Aiuta inoltre a valutare con precisione il carico di lavoro delle persone, escludendo le attività generate dal sistema. Perché è importante Distingue le attività manuali da quelle eseguite dal sistema, un aspetto essenziale per individuare opportunità di automazione e misurare con precisione il carico di lavoro manuale. Dove reperirli È un attributo derivato. La logica si basa in genere sul nome utente (USNAM): un elenco di ID utente di sistema o batch noti consente di identificare le attività automatizzate. Esempi truefalse | |||
| È in ritardo IsOverdue | Indicatore calcolato che segnala se un’attività è stata completata dopo la data prevista. | ||
| Descrizione Questo attributo booleano confronta l’ora effettiva di completamento di un’attività (EventTime) con la scadenza pianificata (TargetCompletionDate). Se l’ora dell’evento è successiva alla data prevista, l’indicatore viene impostato su true. L’attributo alimenta direttamente la Dashboard «Conformità della chiusura e attività in ritardo» e il KPI «Tasso di chiusura del periodo nei tempi previsti». Segnala in modo chiaro e immediato gli scostamenti dal programma, consentendo ai responsabili di individuare rapidamente le attività in ritardo, comprenderne l’impatto sulla tempistica complessiva e assicurare che i team rispettino le scadenze. Perché è importante Segnala chiaramente il mancato rispetto delle scadenze, consentendo di individuare rapidamente le attività in ritardo e misurare il rispetto dei tempi previsti. Dove reperirli È un attributo calcolato nello strumento di Process Mining confrontando EventTime con TargetCompletionDate. Esempi truefalse | |||
| È una rilavorazione IsRework | Indicatore calcolato che identifica le attività di rilavorazione, come uno storno o una riconciliazione rifiutata. | ||
| Descrizione Questo attributo booleano segnala gli eventi o le sequenze di eventi che indicano cicli inefficienti o correzioni nel processo. Ad esempio, l’attività «Riconciliazione verificata», seguita da un’altra «Registrazione di scrittura di rettifica» sullo stesso conto, potrebbe essere classificata come rilavorazione. Questo attributo è essenziale per quantificare gli sprechi nel processo e alimenta la Dashboard «Casi di rilavorazione della riconciliazione» e il KPI «Tasso di rilavorazione della riconciliazione». Isolando le rilavorazioni, i team possono indagarne le cause profonde, misurare l’impatto sul tempo di ciclo e monitorare l’efficacia delle iniziative di miglioramento volte a ottenere risultati corretti fin dal primo tentativo. Perché è importante Quantifica le inefficienze del processo segnalando le attività che consistono in correzioni o ripetizioni, così da misurare e ridurre il lavoro sprecato. Dove reperirli È un attributo calcolato. La logica viene definita nello strumento di Process Mining sulla base di specifiche sequenze di attività, ad esempio cicli, o di attributi, come ReversalReason diverso da null. Esempi truefalse | |||
| Esercizio fiscale GJAHR | L’esercizio fiscale in cui è stata registrata la transazione. | ||
| Descrizione L’esercizio fiscale è un elemento fondamentale per organizzare i dati finanziari. È una componente essenziale dell’ID caso del periodo finanziario e fornisce un contesto importante per tutte le transazioni. Anche se spesso fa parte dell’ID caso, disporre dell’esercizio fiscale come attributo separato è utile per analizzare le tendenze nel lungo periodo. Consente di confrontare anno su anno i tempi di chiusura, il volume delle rettifiche e altri KPI, aiutando a individuare miglioramenti o peggioramenti delle prestazioni nel corso degli anni. Perché è importante Fornisce un contesto temporale essenziale e consente di confrontare anno su anno le prestazioni del processo di chiusura. Dove reperirli Disponibile nella tabella di testata dei documenti BKPF (GJAHR). Esempi 202320242022 | |||
| Motivo dello storno ReversalReason | Codice che indica il motivo per cui un documento contabile è stato stornato. | ||
| Descrizione Quando un documento viene stornato in SAP, è possibile assegnare un codice motivo per spiegare lo storno, ad esempio «Storno nel periodo corrente» o «Registrazione errata». Questo attributo fornisce informazioni fondamentali sulle cause delle rilavorazioni. Analizzare i motivi degli storni aiuta a individuare schemi ricorrenti negli errori, come l’inserimento di dati errati o date sbagliate. Queste informazioni possono servire a introdurre misure preventive, migliorare la formazione o rafforzare i controlli di sistema, riducendo gli errori e i successivi storni e rendendo più efficiente la chiusura. Perché è importante Fornisce indicazioni dirette sulle cause profonde degli errori e delle rilavorazioni, aiutando a individuare opportunità per migliorare il processo e prevenire gli errori. Dove reperirli Si trova nella tabella delle testate dei documenti, BKPF (STGRD). Esempi 010205 | |||
| Partner commerciale VBUND | Identificativo della società del gruppo affiliata coinvolta in una transazione intercompany. | ||
| Descrizione L’ID del partner commerciale identifica l’altro codice società che partecipa a una transazione intercompany. È essenziale per riconciliare i conti tra persone giuridiche collegate. Questo attributo supporta direttamente la Dashboard «Flusso di riconciliazione intercompany» e il KPI «Tempo di ciclo della riconciliazione intercompany». Filtrando le transazioni per cui è presente un partner commerciale, l’analisi può concentrarsi sull’efficienza e sulla tempestività del processo di riconciliazione intercompany, spesso particolarmente critico durante la chiusura del periodo. Perché è importante Individua in modo specifico le transazioni intercompany e consente di concentrarsi sul processo di riconciliazione intercompany, spesso complesso e dispendioso in termini di tempo. Dove reperirli Si trova nella tabella delle partite singole dei documenti, BSEG (VBUND). Esempi 1000US013000 | |||
| Reparto Department | Reparto funzionale o centro di costo responsabile dell’attività o della transazione. | ||
| Descrizione Questo attributo identifica il reparto aziendale associato a una transazione, ad esempio «Finanza», «Vendite» o «Logistica». Spesso viene ricavato dai dati anagrafici del centro di costo collegato a una registrazione o dai dati anagrafici dell’utente. L’analisi per reparto supporta la Dashboard «Distribuzione del carico di lavoro del team di chiusura». Aiuta a comprendere il contributo delle diverse funzioni aziendali al carico di lavoro di fine periodo, in particolare per quanto riguarda l’avvio di transazioni che potrebbero richiedere successive rettifiche o riconciliazioni. Può mettere in evidenza l’impatto sul processo di chiusura delle aree esterne al team finanziario. Perché è importante Aiuta ad analizzare il carico di lavoro e il rispetto delle procedure nelle diverse funzioni aziendali, mostrando in che modo i vari reparti incidono sull’efficienza della chiusura finanziaria. Dove reperirli Spesso viene ricavato dal centro di costo (KOSTL) in BSEG o dai dati anagrafici HR dell’utente responsabile. Potrebbe essere necessario unire più tabelle. Esempi Finanza aziendaleContabilità fornitoriFP&A | |||
| Stato della riconciliazione ReconciliationStatus | Stato corrente della riconciliazione di un conto, ad esempio «Aperta», «In revisione» o «Approvata». | ||
| Descrizione Questo attributo monitora lo stato della riconciliazione di un conto durante il flusso di lavoro. Indica se la riconciliazione è stata avviata, inviata per la revisione, approvata o respinta. È un attributo fondamentale per monitorare in tempo reale l’avanzamento delle attività di riconciliazione. Aiuta a individuare le riconciliazioni bloccate e a capire da quanto tempo, supportando KPI come il tempo di ciclo della riconciliazione dei conti. Offre visibilità sul processo di approvazione ed è essenziale per le Dashboard che monitorano i colli di bottiglia nella riconciliazione e il carico di lavoro del team. Perché è importante Offre visibilità sul flusso di lavoro della riconciliazione, consentendo di monitorare l’avanzamento, individuare i colli di bottiglia e misurare i tempi di revisione e approvazione. Dove reperirli Queste informazioni si trovano spesso in uno strumento di riconciliazione separato, ad esempio SAP Account Substantiation and Automation di BlackLine, oppure in un campo di stato personalizzato. In genere non sono disponibili come campo standard nelle tabelle BKPF/BSEG. Esempi Non avviatoIn corsoApprovatoRifiutato | |||
Attività di Record to Report, chiusura del periodo e riconciliazione
| Attività | Descrizione | ||
|---|---|---|---|
| Avvio della riconciliazione dei conti | Rappresenta l’inizio del processo di riconciliazione di un insieme di conti Co.Ge. per il periodo. In SAP ECC standard non è un evento distinto e viene in genere dedotto da attività correlate, come la prima esecuzione di un report chiave. | ||
| Perché è importante Questa attività definisce una tappa fondamentale per misurare la durata dell’intera fase di riconciliazione. Sapere quando inizia la riconciliazione è essenziale per il KPI relativo al tempo di ciclo della riconciliazione dei conti. Dove reperirli L’evento non viene registrato esplicitamente. Deve essere dedotto da altre fonti di dati, ad esempio dal log di sistema (transazione STAD), individuando la prima esecuzione di un report di visualizzazione dei saldi come FAGLB03 o FS10N. Acquisizione Dedurre l’inizio dalla prima esecuzione delle transazioni di report pertinenti (ad es. FAGLB03) nei log di sistema. Tipo di evento inferred | |||
| Esecuzione della valutazione in valuta estera | Rappresenta l’esecuzione di un programma che rivaluta le partite aperte e i saldi registrati in valuta estera, applicando i tassi di cambio di fine periodo. In genere viene eseguito come processo batch nell’ambito delle attività di chiusura. | ||
| Perché è importante È un passaggio fondamentale per garantire l’accuratezza della rendicontazione finanziaria nelle organizzazioni multinazionali. Analizzarne tempi e durata aiuta a individuare opportunità di automazione e ottimizzazione delle prestazioni. Dove reperirli Rilevato dai log di esecuzione del programma di valutazione in valuta estera, ad esempio FAGL_FCV o F.05. I dettagli dei processi batch, disponibili in tabelle come TBTCO e TBTCP, forniscono i timestamp di esecuzione. Acquisizione Dai log dei processi batch (tabella TBTCO) per il programma FAGL_FC_VALUATION o SAPF100. Tipo di evento explicit | |||
| Periodo aperto per la registrazione | Segna l’inizio ufficiale di un periodo contabile, consentendo la registrazione delle transazioni nel libro mastro. Si tratta di una modifica esplicita della configurazione, eseguita da un utente autorizzato per aprire un periodo specifico alle registrazioni in uno o più codici società. | ||
| Perché è importante Questa attività costituisce l’evento di inizio definitivo del caso relativo alla chiusura del periodo. Analizzare il tempo trascorso da questo momento consente di comprendere l’intero ciclo di vita del periodo contabile. Dove reperirli Le modifiche ai periodi di registrazione effettuate tramite la transazione OB52 vengono registrate. È possibile estrarle analizzando i documenti di modifica della tabella di configurazione sottostante T001B, in genere tramite le tabelle CDHDR e CDPOS. Acquisizione Estrazione dai documenti di modifica (CDHDR/CDPOS) della tabella T001B. Tipo di evento explicit | |||
| Periodo chiuso alle registrazioni | Rappresenta la chiusura formale di un periodo di registrazione, che impedisce ulteriori scritture contabili operative. In questo modo si garantisce l’integrità dei dati finanziari del periodo chiuso; si tratta di una modifica esplicita della configurazione. | ||
| Perché è importante È l’evento finale definitivo del processo di chiusura del periodo. È essenziale per calcolare con precisione il tempo di ciclo complessivo della chiusura e misurare il rispetto delle scadenze. Dove reperirli La chiusura dei periodi tramite la transazione OB52 viene registrata. È possibile individuare queste modifiche analizzando i documenti di modifica (tabelle CDHDR e CDPOS) della tabella di configurazione T001B. Acquisizione Estrazione dai documenti di modifica (CDHDR/CDPOS) della tabella T001B. Tipo di evento explicit | |||
| Rendiconti finanziari generati | Indica il momento in cui vengono generati i rendiconti finanziari ufficiali, come il conto economico e lo stato patrimoniale. L’attività viene in genere rilevata monitorando l’esecuzione di uno specifico programma di rendicontazione. | ||
| Perché è importante È una tappa importante, che segna la fine dell’elaborazione dei dati e l’inizio della fase finale di revisione e approvazione. Il tempo che intercorre tra questo evento e l’approvazione è un KPI fondamentale. Dove reperirli Dedotto dai log di sistema, ad esempio STAD, che registrano l’esecuzione del programma di generazione dei rendiconti finanziari, più comunemente tramite la transazione F.01. Acquisizione Dai log di sistema (STAD), che registrano l’esecuzione della transazione F.01 per i rendiconti finanziari. Tipo di evento inferred | |||
| Scrittura contabile di rettifica registrata | Una scrittura contabile di rettifica viene registrata per correggere i saldi dei conti dopo il completamento dell’elaborazione iniziale delle transazioni del periodo. In SAP l’evento viene acquisito come una normale registrazione di un documento contabile. | ||
| Perché è importante È un dato essenziale per l’analisi dei volumi delle scritture di rettifica. Un numero elevato di rettifiche può indicare problemi di accuratezza nei processi a monte ed è un ambito prioritario per le iniziative di miglioramento dei processi. Dove reperirli Disponibile nelle tabelle BKPF e BSEG. Queste scritture vengono in genere individuate tramite un tipo di documento specifico (BKPF-BLART), riservato alle rettifiche, oppure perché registrate in periodi di chiusura speciali, ad esempio dal 13 al 16. Acquisizione Filtrare BKPF per individuare i documenti registrati in periodi speciali o con tipi di documento di rettifica. Tipo di evento explicit | |||
| Accantonamento o fondo registrato | Rappresenta la registrazione di una scrittura contabile relativa a un rateo, un risconto o un fondo, operazioni che vengono in genere effettuate verso la fine del periodo. In SAP non corrisponde a un tipo di evento distinto, ma viene dedotta individuando specifiche scritture contabili in base alle loro caratteristiche. | ||
| Perché è importante Isolare queste scritture consente di analizzare il sottoprocesso di gestione delle stime. Un volume elevato di accantonamenti o frequenti rettifiche possono indicare opportunità di miglioramento del processo. Dove reperirli Dedotto dalle tabelle dei documenti contabili BKPF e BSEG. Le scritture possono essere individuate filtrando per tipo di documento specifico (BKPF-BLART), conto Co.Ge. univoco (BSEG-HKONT) o parole chiave nel testo di testata (BKPF-BKTXT). Acquisizione Filtrare le tabelle BKPF/BSEG per tipo di documento, conti Co.Ge. specifici o campi di testo. Tipo di evento inferred | |||
| Documento intercompany compensato | Questa attività segna la compensazione di una partita aperta tra due codici società diversi e indica che una transazione intercompany è stata saldata o riconciliata. In SAP viene registrata come una scrittura contabile esplicita, in genere un documento di compensazione. | ||
| Perché è importante I ritardi nella compensazione delle partite intercompany sono un collo di bottiglia frequente nel processo di chiusura. Monitorare questa attività è fondamentale per misurare e migliorare il tempo di ciclo della riconciliazione intercompany. Dove reperirli Individuato nei documenti contabili delle tabelle BKPF e BSEG. Un documento di compensazione collega e chiude le partite aperte; la data di compensazione (BSEG-AUGDT) viene utilizzata come timestamp dell’evento. Le transazioni intercompany sono individuate tramite i campi relativi al partner commerciale. Acquisizione Individuare nelle tabelle BKPF/BSEG i documenti di compensazione che includono partite con partner commerciali. Tipo di evento explicit | |||
| Esecuzione della compensazione GR/IR | Esecuzione del programma di compensazione automatica per il conto Entrata merci/Fattura ricevuta (GR/IR). Il programma abbina le entrate merci alle relative fatture ricevute e compensa le partite corrispondenti. | ||
| Perché è importante Il conto GR/IR è spesso all’origine di problemi di riconciliazione. Monitorare questa attività consente di verificare che il passaggio automatico venga eseguito correttamente e di quantificare le eccezioni che richiedono un intervento manuale. Dove reperirli L’esecuzione viene registrata nei log dei processi batch (transazione SM37). Il programma è in genere SAPF124 e viene eseguito tramite la transazione F.13. Le tabelle dei log dei processi, come TBTCO, forniscono i timestamp necessari. Acquisizione Dai log dei processi batch (tabella TBTCO) per il programma di compensazione SAPF124. Tipo di evento explicit | |||
| Report della situazione contabile generato | Segna l’esecuzione di un report per generare la situazione contabile. È un passaggio fondamentale per verificare che il totale degli addebiti corrisponda a quello degli accrediti prima di redigere i rendiconti finanziari ufficiali. | ||
| Perché è importante È un controllo di qualità fondamentale prima della rendicontazione finale. Eseguire più volte il report può indicare che vengono individuati e corretti problemi nei dati sottostanti, con possibili ritardi. Dove reperirli Dedotto dai log di sistema, ad esempio dalla transazione STAD, che può registrare l’esecuzione di transazioni per la generazione della situazione contabile, come S_ALR_87012277 o F.01. Acquisizione Dai log di sistema (STAD), che registrano l’esecuzione dei codici transazione di rendicontazione. Tipo di evento inferred | |||
| Riconciliazione revisionata | Indica che la riconciliazione di un conto specifico o di un gruppo di conti è stata revisionata e confermata. In SAP ECC standard questo evento non viene registrato esplicitamente e viene spesso gestito tramite controlli offline o soluzioni personalizzate. | ||
| Perché è importante Monitorare i tempi delle revisioni è importante per comprendere i colli di bottiglia nelle fasi di controllo e supervisione del processo di chiusura. Può mettere in evidenza ritardi dovuti alla disponibilità dei responsabili o alla necessità di rifare il lavoro. Dove reperirli Queste informazioni non sono disponibili nelle tabelle ECC standard. Per acquisirle occorre una soluzione personalizzata, ad esempio un campo di stato in una tabella Z personalizzata, un flusso di lavoro semplice o l’integrazione con uno strumento specializzato di terze parti per la riconciliazione. Acquisizione Acquisire la modifica dello stato da un flusso di lavoro personalizzato o da una tabella Z, se implementati. Tipo di evento inferred | |||
| Scrittura di storno registrata | Questa attività registra la contabilizzazione di un documento che storna una scrittura contabile precedente, spesso per correggere un errore. SAP crea un collegamento esplicito tra il documento di storno e quello originale. | ||
| Perché è importante Un numero elevato di storni può indicare problemi nell’accuratezza dell’inserimento dei dati o nei controlli di processo. Monitorare questi eventi aiuta a misurare la percentuale di operazioni corrette al primo tentativo e a individuare gli ambiti da migliorare. Dove reperirli I documenti di storno si trovano nella tabella BKPF. Spesso vengono creati con la transazione FB08 e contengono il riferimento al numero del documento stornato nel campo BKPF-STBLG. Acquisizione Individuare i documenti per cui BKPF-STBLG è valorizzato o che sono stati creati tramite codici transazione di storno. Tipo di evento explicit | |||
Guide all’estrazione
Passaggi
- Accedere allo strumento SAP Query: acceda al sistema SAP ECC. Apra il codice transazione
SQVI(QuickViewer). 2. Creare una nuova query: inserisca un nome per la query, ad esempioZ_R2R_PERIOD_CLOSE, e selezioni «Crea». Nella finestra a comparsa, inserisca un titolo descrittivo, ad esempio «Estrazione della chiusura del periodo Record to Report». Per «Origine dei dati», selezioni «Join di tabelle». 3. Definire i join tra le tabelle: aggiunga la tabella principaleBKPF(testata del documento contabile), quindi aggiunga la tabellaBSEG(segmento del documento contabile). SAP proporrà automaticamente le condizioni di join (MANDT, BUKRS, BELNR, GJAHR), che dovrà verificare e confermare. Per le attività di apertura e chiusura del periodo, sarà necessaria una query separata con join traCDHDReCDPOS. 4. Selezionare i campi di output (campi elenco): apra la scheda «Selezione campi elenco». Selezioni, tra le tabelle disponibili, i campi necessari per l’Event Log. Tra questi:BKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRe altri, se necessario. 5. Definire i parametri di input (campi di selezione): apra la scheda «Campi di selezione» e scelga i campi da usare per filtrare i dati durante l’esecuzione. I più importanti sonoBKPF-BUKRS(codice società) eBKPF-GJAHR(esercizio fiscale). Può aggiungere ancheBKPF-MONAT(periodo di registrazione) eBKPF-BLART(tipo di documento). 6. Creare varianti per ogni attività: poiché SQVI non può combinare selezioni di dati diverse, come farebbe una UNION SQL, dovrà eseguire la query più volte. Per ciascuna attività, ad esempio «Registrazione di rateo o accantonamento», esegua la query e inserisca nella schermata di selezione i valori di filtro specifici, come l’elenco dei tipi di documento relativi ai ratei. Salvi questi criteri di selezione come variante e ripeta l’operazione per ogni attività estraibile. 7. Eseguire la query ed estrarre i dati: esegua la query per ogni variante creata. La query verrà eseguita applicando i filtri specifici per l’attività corrispondente. 8. Esportare i risultati: nella schermata dei risultati, esporti i dati in un file locale. Il formato più comune è «Foglio di calcolo». Ripeta l’esportazione per ogni variante. 9. Unire e trasformare i dati: apra i file esportati in un programma per fogli di calcolo oppure utilizzi uno strumento di scripting. Unisca manualmente i dati di tutti i file in un unico file principale. 10. Aggiungere colonne costanti e calcolate: nel file unificato, aggiunga le colonne non estratte direttamente dalle tabelle SAP. Tra queste:ActivityName(da impostare manualmente in base alla variante da cui provengono i dati),FinancialPeriod(ottenuto concatenando l’esercizio fiscale e il periodo),EventTime(ottenuto combinando i campi di data e ora),SourceSystemeLastDataUpdate. 11. Formattare il file per il caricamento: salvi il file finale in formato CSV o Excel, utilizzando le intestazioni di colonna richieste dallo strumento di Process Mining. Prima del caricamento, verifichi i tipi di dati e la formattazione.
Configurazione
- Origine dei dati: join di tabelle in SAP Query (SQVI). Le tabelle principali sono BKPF, BSEG, CDHDR e CDPOS. * Intervallo di date: si consiglia di estrarre i dati relativi ad almeno 3-6 periodi finanziari completi per individuare eventuali schemi ricorrenti. Imposti i filtri su
BKPF-GJAHR(esercizio fiscale) eBKPF-MONAT(periodo). * Filtro per codice società: applichi sempre un filtro suBKPF-BUKRS(codice società) per limitare il volume dei dati e concentrare l’analisi su specifiche entità giuridiche. Si sconsiglia di estrarre contemporaneamente i dati di tutti i codici società. * Filtro per tipo di documento: utilizzi i filtri suBKPF-BLART(tipo di documento) per isolare attività specifiche, come ratei, rettifiche o storni. Dovrà individuare i tipi di documento pertinenti alla Sua organizzazione. * Prerequisiti: l’utente che esegue l’estrazione deve essere autorizzato a utilizzare la transazioneSQVIe disporre dell’accesso in visualizzazione alle tabelle finanziarie pertinenti, ad esempio tramite l’oggetto di autorizzazione S_TABU_DIS. * Considerazioni sulle prestazioni: il join tra BKPF e BSEG può richiedere molte risorse. Esegua l’estrazione nelle fasce orarie di minore attività. Eviti intervalli di date molto ampi o di lasciare aperto il filtro per codice società, poiché potrebbero verificarsi problemi di memoria o timeout.
Query di esempio sql
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Passaggi
- Definire l’ambito e la progettazione del programma: stabilisca la logica specifica per identificare ciascuna delle 12 attività richieste. Si confronti con i responsabili dei processi aziendali e gli analisti funzionali SAP per confermare i tipi di documento, i conti di contabilità generale e i nomi dei programmi associati alle attività di chiusura di fine periodo nel Suo ambiente SAP ECC.
- Creare un programma ABAP: utilizzi la transazione
SE38(ABAP Editor) per creare un nuovo programma eseguibile, ad esempioZ_PM_R2R_EXTRACTION. Inserisca un titolo descrittivo e imposti il tipo di programma su «Programma eseguibile». - Definire la schermata di selezione: nel programma, definisca una schermata di selezione utilizzando
PARAMETERSeSELECT-OPTIONS. La schermata consentirà agli utenti di specificare l’ambito dell’estrazione, compresi il codice società (BUKRS), l’esercizio fiscale (GJAHR) e il periodo di registrazione (MONAT). È un passaggio essenziale per controllare il volume dei dati. - Dichiarare le strutture dei dati: definisca una struttura di tabella interna che conterrà i dati finali dell’Event Log. Dovrà includere tutti gli attributi obbligatori e consigliati:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTReJournalEntryType. - Implementare la logica di estrazione dei dati: scriva la logica ABAP principale per selezionare i dati relativi a ciascuna delle 12 attività. Per ogni attività, interroghi le tabelle SAP pertinenti, ad esempio BKPF, BSEG, TBTCO e CDHDR, e popoli una tabella interna intermedia. Utilizzi come modello la logica descritta nella sezione dedicata alla query ABAP.
- Individuare le attività dedotte: per le attività non registrate esplicitamente in SAP standard, come «Avvio della riconciliazione del conto» o «Riconciliazione verificata», implementi la logica di deduzione concordata. Potrebbe essere necessario verificare la prima esecuzione di un report specifico o interrogare tabelle personalizzate «Z», se presenti.
- Consolidare i dati degli eventi: dopo aver estratto i dati di tutte le singole attività, aggiunga i record di ogni tabella intermedia alla tabella interna consolidata finale. Verifichi che il campo
EventTimesia compilato correttamente utilizzando il campo di origine pertinente, ad esempio la data e l’ora di registrazione del documento o di avvio del job. - Uniformare e formattare i dati: prima di generare l’output, uniformi i campi chiave. Combini l’esercizio fiscale e il periodo nell’identificativo
FinancialPeriod. Imposti valori statici perSourceSystemeLastDataUpdatee verifichi che i timestamp utilizzino un formato uniforme. - Sviluppare la funzionalità di output: aggiunga al programma la funzione per esportare la tabella interna finale. Il metodo più comune consiste nello scrivere i dati in un file CSV o delimitato da tabulazioni sul server applicativo SAP, utilizzando
OPEN DATASET, oppure nel consentire all’utente di scaricarli direttamente sul computer locale tramite il modulo funzioneGUI_DOWNLOAD. - Testare e convalidare: testi accuratamente il programma con un insieme di dati rappresentativo, che includa più codici società e periodi. Segua i passaggi di convalida per verificare l’accuratezza e la completezza dei dati. In base al riscontro degli esperti funzionali, perfezioni la logica di selezione.
- Pianificare l’esecuzione (facoltativo): una volta convalidato, il programma può essere pianificato come job in background tramite la transazione
SM36. In questo modo l’Event Log viene estratto periodicamente in modo automatico, senza interventi manuali.
Configurazione
- Criteri di selezione: il programma deve disporre di una schermata di selezione per filtrare i dati. I filtri principali sono:
Codice società (BUKRS): obbligatorio per limitare l’ambito alle entità giuridiche pertinenti.Esercizio fiscale (GJAHR): obbligatorio per definire l’esercizio di riferimento dell’estrazione.Periodo di registrazione (MONAT): obbligatorio per selezionare i periodi finanziari specifici.
- Configurazione specifica per attività: molte selezioni dipendono dalla configurazione SAP in uso. È opportuno renderle configurabili come parametri o costanti nel programma:
Tipi di documento per ratei e accantonamenti: elenco dei tipi di documento (BLART) utilizzati per identificare le registrazioni di ratei e accantonamenti.Tipi di documento per le registrazioni di rettifica: elenco dei tipi di documento utilizzati per identificare le scritture contabili di rettifica.Nomi di programmi e job in background: nomi tecnici dei programmi utilizzati per la valutazione delle valute estere, ad esempioFAGL_FCV, la compensazione GR/IR, ad esempioSAPF124, i report di bilancio di verifica e la generazione dei rendiconti finanziari, ad esempioRFBILA00.
- Intervallo di date: anche se la selezione principale avviene per esercizio fiscale e periodo, la logica sottostante deve considerare la data e l’ora complete degli eventi. Per un’analisi iniziale, si consiglia di estrarre i dati degli ultimi 3-6 periodi finanziari completati.
- Prestazioni: negli ambienti SAP di grandi dimensioni, le prestazioni del programma sono fondamentali. Verifichi che le selezioni dal database utilizzino i campi indicizzati, soprattutto nelle tabelle come
BKPFeBSEG. Eviti di selezionare tutti i campi (SELECT *) e, se necessario, elabori i dati in pacchetti di dimensioni gestibili. - Autorizzazioni: l’utente o l’account di servizio che esegue il programma deve essere autorizzato ad accedere a tutte le tabelle interrogate (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) e a eseguire transazioni comeSE38(per lo sviluppo) eSM37/SM36(per la pianificazione e il monitoraggio).
Query di esempio abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Passaggi
- Raccogliere i prerequisiti: ottenga credenziali di accesso in sola lettura al database SAP ECC sottostante. Individui lo schema corretto del database, in genere
SAPSR3o un nome simile indicato dall’amministratore del database. - Individuare la configurazione del sistema: si rivolga al team SAP Finance per determinare i
codici società(BUKRS) e i periodi finanziari da analizzare. È essenziale individuare itipi di documento(BLART) specifici utilizzati nel sistema per le transazioni «Registrazione di rateo o accantonamento», «Registrazione di scrittura di rettifica» e «Intercompany». - Verificare i nomi di programmi e job: confermi i nomi dei programmi per i principali job batch, come la valutazione delle valute estere, ad esempio
FAGL_FCV, la compensazione GR/IR, ad esempioSAPF124, i report di bilancio di verifica, ad esempioRFBILA00, e la generazione dei rendiconti finanziari, ad esempioRFBILA00. Può trovare queste informazioni controllando i job pianificati nella transazioneSM37. - Personalizzare la query SQL: copi la query SQL fornita in un editor di testo o in un client SQL. Sostituisca le variabili segnaposto
{{start_date}},{{end_date}}e{{company_codes}}con i valori effettivi dell’analisi. Aggiorni gli elenchi dei tipi di documento e dei nomi dei programmi in base alle informazioni raccolte nei passaggi precedenti. - Connettersi al database: utilizzi un client SQL standard, come DBeaver, SQL Server Management Studio o Oracle SQL Developer, per connettersi al database SAP con le credenziali ottenute.
- Eseguire la query: esegua la query SQL personalizzata sul database. A seconda dell’intervallo di date e delle dimensioni delle tabelle finanziarie, l’operazione potrebbe richiedere molto tempo.
- Verificare i risultati iniziali: al termine della query, controlli rapidamente l’output. Verifichi che il numero di righe sia ragionevole, che siano presenti tutte le colonne e che i risultati includano diversi valori di
ActivityName. - Esportare i dati: esporti l’intero insieme di risultati dal client SQL in un file CSV. Verifichi che il file sia salvato con codifica UTF-8 per evitare problemi con i caratteri.
- Preparare il caricamento: prima di caricare i dati in uno strumento di Process Mining, verifichi che le intestazioni delle colonne nel file CSV corrispondano esattamente ai nomi degli attributi richiesti (
FinancialPeriod,ActivityName,EventTimee così via). Controlli inoltre che la colonnaEventTimeutilizzi un formato timestamp uniforme, ad esempioYYYY-MM-DD HH:MI:SS.
Configurazione
- Credenziali del database: è necessario un utente del database in sola lettura, autorizzato ad accedere alle principali tabelle finanziarie e di sistema di SAP, tra cui
BKPF,BSEG,TBTCO,CDHDReCDPOS. - Intervallo di date: si consiglia di estrarre i dati relativi ad almeno 3-6 periodi finanziari completi per rilevare variazioni significative nel processo. Tenga presente che intervalli di date più ampi aumentano notevolmente i tempi di esecuzione della query.
- Codici società (
BUKRS): applichi sempre un filtro basato su un elenco specifico di codici società. In un sistema di grandi dimensioni, eseguire la query per tutti i codici società non è praticabile e probabilmente causerà problemi di prestazioni. - Tipi di documento (
BLART): l’identificazione dei tipi di registrazione contabile, come ratei e rettifiche, dipende interamente dalla configurazione SAP specifica della Sua organizzazione. Per classificare correttamente le attività, dovrà inserire nelle clausoleWHEREdella query i codici dei tipi di documento corretti. - Nomi di programmi e job: la query utilizza nomi di programmi comuni per le fasi automatizzate della chiusura. Il sistema potrebbe utilizzare programmi wrapper personalizzati o nomi di job diversi. Li verifichi nella transazione
SM37e aggiorni di conseguenza la query. - Considerazioni sulle prestazioni: questa query accede a tabelle di grandi dimensioni, in particolare
BSEGeCDPOS. Si consiglia vivamente di eseguire l’estrazione fuori dall’orario lavorativo per evitare ripercussioni sulle prestazioni del sistema. Applicare filtri ristretti per data e codice società è il modo più efficace per contenere i tempi di esecuzione.
Query di esempio sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
; È pronto a iniziare?
Utilizzi questo template di dati per avviare il percorso di Process Mining e ottenere informazioni preziose sulle operazioni di chiusura finanziaria. Inizi oggi a ottimizzare il processo Record to Report.
Ottimizzi la chiusura Record to Report e riduca subito i tempi di ciclo
Elimini i colli di bottiglia e riduca del 30% il tempo di ciclo della chiusura Record to Report.
Non è richiesta la carta di credito. Inizi la prova gratuita di 14 giorni.