Il Suo Template dei dati per Record to Report, chiusura del periodo e riconciliazione
Il Suo Template dei dati per Record to Report, chiusura del periodo e riconciliazione
- Attributi consigliati da raccogliere
- Attività chiave da monitorare
- Indicazioni per l’estrazione
Record to Report - Attributi della chiusura del periodo e della riconciliazione
| Nome | Descrizione | ||
|---|---|---|---|
| Periodo contabile FinancialPeriod | Identificativo univoco del ciclo di reporting finanziario, generalmente composto dall'anno fiscale e dal periodo di registrazione. | ||
| Descrizione Il periodo contabile funge da identificativo principale del caso e raggruppa tutte le attività relative alla chiusura e alla riconciliazione dei conti per quello specifico ciclo di reporting, ad esempio "2023-12" per dicembre 2023. Ciò consente di analizzare in modo completo l'intero processo di chiusura del periodo, dall'inizio alla fine, per ciascun periodo distinto. Nell'analisi, consente di monitorare il tempo di ciclo end-to-end di ogni chiusura, confrontare le prestazioni 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 che definisce il perimetro dell'analisi e consente di confrontare tra periodi diversi i tempi di ciclo della chiusura, i carichi di lavoro e la conformità del processo. Dove reperirlo Questo Attributo viene generalmente ricavato concatenando l'anno fiscale (GJAHR) e il periodo di registrazione (MONAT) dalle testate dei documenti finanziari, ad esempio dalla tabella BKPF. Esempi 2023-122024-032023-Q4 | |||
| Attività ActivityName | Il nome dello specifico evento aziendale o Task eseguito durante il processo di chiusura del periodo. | ||
| Descrizione Questo Attributo registra i singoli passaggi eseguiti nel ciclo Record to Report, come "Adjusting Journal Entry Posted" o "Financial Statements Generated". Costituisce la struttura portante della mappa del processo e mostra la sequenza degli eventi che compongono la chiusura del periodo. L'analisi delle attività è fondamentale nel Process Mining. Aiuta a visualizzare il flusso del processo, identificare la sequenza dei Task, individuare le variazioni del processo e misurare la frequenza e la durata di ogni passaggio. È essenziale per localizzare colli di bottiglia, percorsi di processo non standard e opportunità di standardizzazione o automazione. Perché è importante Questo Attributo è obbligatorio per costruire la mappa del processo e consente di visualizzare e analizzare la sequenza dei Task nella chiusura del periodo. Dove reperirlo Deriva dalla combinazione di codici transazione SAP (TCODE), tipi di documento (BLART) o esecuzioni di programmi specifici, ad esempio FAGL_FCV per la valutazione in valuta estera. Esempi Scrittura contabile di rettifica registrataRiconciliazione dei conti avviataPeriodo chiuso alle registrazioni | |||
| Ora dell'evento EventTime | Il timestamp che indica quando si è verificata un'attività o un evento. | ||
| Descrizione L'Event Time fornisce la data e l'ora precise di ogni attività del processo e costituisce la base cronologica dell'analisi. Generalmente è composto 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, inclusi i tempi di ciclo tra le attività, i tempi di attesa e la durata complessiva della chiusura del periodo. L'analisi dei timestamp aiuta a individuare i ritardi e a comprendere la distribuzione temporale del lavoro. Perché è importante In quanto Attributo obbligatorio, fornisce l'ordine cronologico degli eventi, necessario per calcolare i tempi di ciclo e individuare i colli di bottiglia del processo. Dove reperirlo Generalmente proviene dalla data di inserimento del documento (CPUDT) e dall'ora di inserimento (CPUTM) nella tabella BKPF per i documenti finanziari. Esempi 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Sistema di origine SourceSystem | L'identificativo del sistema di origine dal quale 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, questo campo è 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, l'audit e la risoluzione dei problemi. Conferma la provenienza dei dati, elemento essenziale per creare fiducia nell'analisi e garantire la chiarezza della data lineage. Perché è importante Fornisce una data lineage essenziale, conferma l'origine dei dati ai fini della governance ed è fondamentale negli ambienti con più sistemi per distinguere i processi. Dove reperirlo Generalmente è un valore statico aggiunto durante l'estrazione dei dati, che identifica lo specifico client SAP e l'ID del sistema, ad esempio dalla tabella T000. Esempi ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Il timestamp dell'ultimo aggiornamento o dell'ultima estrazione dei dati dal sistema di origine. | ||
| Descrizione Questo Attributo indica l'aggiornamento dei dati analizzati. Mostra la data e l'ora dell'ultima esecuzione della pipeline dati e fornisce il contesto sulla recenza degli insight di processo. Per i Dashboard, soprattutto quelli che monitorano l'avanzamento in tempo reale, questo timestamp è fondamentale per capire se si stanno visualizzando informazioni aggiornate all'ultimo minuto o dati del giorno precedente. Aiuta a gestire le aspettative degli utenti ed è essenziale per interpretare correttamente l'analisi. Perché è importante Informa gli utenti sull'aggiornamento dei dati, un elemento fondamentale per garantire che analisi e Dashboard siano tempestivi e pertinenti. Dove reperirlo Questo timestamp viene generato e aggiunto dallo strumento di estrazione dei dati o ETL al termine di ogni processo di caricamento. Esempi 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Codice società BUKRS | L'unità organizzativa che rappresenta un'entità giuridica per la quale vengono generati i bilanci finanziari. | ||
| Descrizione Il codice società è un'unità organizzativa fondamentale in SAP Financials. Rappresenta una società indipendente con una propria contabilità bilanciata. 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 diverse entità giuridiche all'interno di un gruppo. Ciò consente di individuare le best practice nelle entità con le migliori prestazioni e di identificare quelle che presentano ritardi, volumi elevati di rettifiche o deviazioni dal processo. È una dimensione fondamentale per segmentare l'analisi. Perché è importante Consente di confrontare le prestazioni e la conformità della chiusura del periodo tra diverse entità giuridiche, un elemento fondamentale per l'analisi finanziaria a livello di gruppo. Dove reperirlo Questo campo è disponibile in quasi tutte le tabelle dei documenti finanziari SAP, principalmente BKPF (testata) e BSEG (partita). Esempi 10002000US01DE01 | |||
| Conto GL HKONT | Il numero del conto di contabilità generale al quale viene registrata una partita. | ||
| Descrizione Il conto di contabilità generale (GL) è un elemento fondamentale dei dati master finanziari e classifica le transazioni. Ogni registrazione finanziaria viene assegnata a uno o più conti GL. Nel contesto della chiusura del periodo, analizzare le attività per conto GL è essenziale per i Dashboard "Account Reconciliation Bottlenecks" e "Adjusting Entries Volume Analysis". Aiuta a individuare i conti più difficili da riconciliare, quelli che richiedono il maggior numero di rettifiche e le aree in cui il rischio di errori materiali potrebbe essere più elevato. Questo approccio consente ai team di dare priorità ai conti problematici. Perché è importante Consente un'analisi mirata delle riconciliazioni e delle scritture di rettifica, aiutando a individuare i conti problematici che causano ritardi o richiedono correzioni frequenti. Dove reperirlo Disponibile nella tabella delle partite dei documenti finanziari, BSEG (HKONT). Esempi 113100400500750000 | |||
| Importo in valuta locale DMBTR | Il 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 principale misura quantitativa dell'impatto di una transazione sulla contabilità generale. Analizzare l'importo è fondamentale per stabilire le priorità e comprendere il rischio finanziario. Ad esempio, il Dashboard "Adjusting Entries Volume Analysis" è molto più efficace quando distingue tra un volume elevato di rettifiche di basso valore e un volume ridotto di rettifiche di valore elevato. Aiuta a concentrare l'attenzione sulle transazioni finanziariamente rilevanti. Perché è importante Quantifica l'impatto finanziario delle transazioni e consente un'analisi basata sulla rilevanza, ad esempio per individuare scritture di rettifica di importo elevato. Dove reperirlo Disponibile nella tabella delle partite dei documenti, BSEG (DMBTR). Esempi 1500.75-25000.00123456.00 | |||
| Numero documento BELNR | L'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 generalmente utilizzato per l'analisi di processo ad alto livello, il numero documento è prezioso per le funzionalità di drill-down. Da un Dashboard di Process Mining, gli analisti possono utilizzare il numero documento per tornare direttamente alla transazione specifica in SAP e analizzare in dettaglio le anomalie, come una scrittura di rettifica di importo elevato o una partita di riconciliazione in ritardo. Fornisce un collegamento diretto tra l'insight e la transazione di origine. Perché è importante Fornisce un collegamento diretto alla transazione di origine in SAP e consente un'analisi dettagliata in drill-down dalla vista del processo alle singole scritture contabili. Dove reperirlo Si trova nella tabella BKPF (BELNR), come chiave primaria. Esempi 100000456719000001233000008901 | |||
| Tipo di documento BLART | Un codice che classifica i diversi tipi di documenti contabili. | ||
| Descrizione In SAP, il tipo di documento distingue diverse transazioni aziendali, come le fatture fornitore (KR), i pagamenti cliente (DZ) e le registrazioni nella contabilità generale (SA). Controlla inoltre proprietà quali l'intervallo di numerazione dei documenti. Per l'analisi della chiusura di fine periodo, il tipo di documento è un filtro efficace. Può essere utilizzato per isolare specifici tipi di attività, come ratei, accantonamenti o scritture di storno. Ciò aiuta ad analizzare il volume e l'impatto finanziario delle diverse transazioni legate alla chiusura e può essere utilizzato per 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 reperirlo Si trova nella tabella delle testate dei documenti, BKPF (BLART). Esempi SAABKR | |||
| Tipo di scrittura contabile JournalEntryType | Una classificazione delle scritture contabili, come "Standard", "Adjusting", "Accrual" o "Reversal". | ||
| Descrizione È un Attributo derivato che categorizza i documenti finanziari 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 specifici conti GL utilizzati. Questa classificazione è fondamentale per il Dashboard "Adjusting Entries Volume Analysis" e per i KPI correlati. Identificando esplicitamente le scritture di rettifica o di rateo, gli analisti possono misurarne volume e valore, monitorarne l'andamento nel tempo e analizzare le cause alla base della loro necessità. Aiuta a distinguere le registrazioni operative ordinarie dalle rettifiche di fine periodo. Perché è importante Classifica le registrazioni per un'analisi mirata e consente di monitorare e misurare i principali tipi di scrittura, come rettifiche e ratei, che sono indicatori dello stato di salute del processo. Dove reperirlo È un campo derivato. La logica deve essere definita sulla base delle regole aziendali, generalmente utilizzando campi come il tipo di documento (BLART) di BKPF. Esempi RettificaRateoStornoStandard | |||
| Utente responsabile USNAM | L'ID utente SAP della persona che ha creato o eseguito la transazione. | ||
| Descrizione Questo campo registra l'utente che ha registrato un documento, eseguito un report o avviato un programma correlato 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 formative e analizzare le deviazioni dal processo. I Dashboard che mostrano le attività per utente possono evidenziare membri del team sovraccarichi o persone che seguono procedure non standard. Aiuta inoltre la gestione delle prestazioni e l'allocazione delle risorse all'interno del team Finance. Perché è importante Consente di analizzare la distribuzione del carico di lavoro e le prestazioni del team, nonché di individuare deviazioni dal processo associate a singole persone. Dove reperirlo Disponibile nella tabella BKPF (USNAM) per la creazione dei documenti. Per i batch job, si trova in TBTCO (SDLUNAME). Esempi JSMITHRDOEFIN_ADMIN | |||
| Anno fiscale GJAHR | L’anno fiscale in cui è stata registrata la transazione. | ||
| Descrizione L’anno fiscale è un elemento fondamentale per organizzare i dati finanziari. Costituisce una componente chiave dell’ID del caso Financial Period e fornisce il contesto essenziale per tutte le transazioni. Sebbene faccia spesso parte dell’ID del caso, disporre dell’anno fiscale come attributo separato è utile per analizzare le tendenze nel lungo periodo. Consente di confrontare anno su anno i tempi del ciclo di chiusura, i volumi delle rettifiche e altri KPI, aiutando a individuare miglioramenti o peggioramenti delle prestazioni nell’arco di più anni. Perché è importante Fornisce il contesto temporale essenziale e consente di confrontare anno su anno le prestazioni del processo di chiusura. Dove reperirlo Disponibile nella tabella dell’intestazione del documento BKPF (GJAHR). Esempi 202320242022 | |||
| Data obiettivo di completamento TargetCompletionDate | La scadenza pianificata o la data entro cui deve essere completata un'attività o l'intero processo di chiusura del periodo. | ||
| Descrizione La Data di completamento prevista rappresenta il riferimento temporale rispetto al quale viene misurato il processo di chiusura del periodo. È la scadenza entro la quale devono essere completate specifiche milestone o la chiusura finale. Questo attributo è essenziale per qualsiasi analisi delle prestazioni o della conformità. Viene utilizzato per calcolare il KPI «Tasso di chiusura del periodo nei tempi previsti» e per alimentare la Dashboard «Conformità della chiusura e attività scadute». Confrontando l’orario effettivo dell’evento con questa data obiettivo, il sistema può determinare se le attività sono in linea con il piano, in ritardo o a rischio di ritardo, consentendo una gestione proattiva del processo di chiusura. Perché è importante Consente di monitorare la conformità e le prestazioni, fornendo una base di riferimento per misurare se le attività di chiusura vengono completate nei tempi previsti e supportando i KPI relativi al rispetto delle scadenze. Dove reperirlo Si tratta generalmente di dati anagrafici gestiti in un calendario separato, in uno strumento di gestione della chiusura, 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 segnala se un’attività è stata eseguita da un utente umano o da un sistema automatizzato. | ||
| Descrizione Questo attributo booleano distingue tra le attività manuali e quelle eseguite automaticamente dal sistema, come un batch job pianificato per la valutazione delle valute estere o un bot che registra scritture ricorrenti. Spesso viene determinato analizzando il nome utente associato alla transazione, ad esempio «BATCHUSER». Comprendere il livello di automazione è fondamentale per individuare opportunità di efficientamento. L’analisi di questo attributo aiuta a visualizzare quali parti del processo sono manuali e potrebbero essere automatizzate. Consente inoltre di valutare con maggiore precisione il carico di lavoro umano, escludendo le attività generate dal sistema. Perché è importante Distingue tra attività manuali e attività gestite dal sistema, un elemento fondamentale per individuare opportunità di automazione e misurare con precisione i carichi di lavoro manuali. Dove reperirlo Si tratta di un attributo derivato. La logica si basa generalmente sul campo User Name (USNAM): un elenco di ID utente di sistema o batch noti indica che l’attività è automatizzata. Esempi truefalse | |||
| È scaduta IsOverdue | Indicatore calcolato che segnala se un’attività è stata completata dopo la data obiettivo pianificata. | ||
| Descrizione Questo attributo booleano confronta l’orario effettivo di completamento di un’attività (EventTime) con la relativa scadenza pianificata (TargetCompletionDate). Se l’orario dell’evento è successivo alla data obiettivo, l’indicatore viene impostato su true. Questo attributo supporta direttamente la Dashboard «Conformità della chiusura e attività scadute» e il KPI «Tasso di chiusura del periodo nei tempi previsti». Fornisce un segnale chiaro e immediato delle deviazioni dal piano, consentendo ai responsabili di individuare rapidamente le attività in ritardo, comprenderne l’impatto sulla tempistica complessiva e responsabilizzare i team rispetto al rispetto delle scadenze. Perché è importante Fornisce un indicatore chiaro del mancato rispetto delle scadenze, consentendo di individuare rapidamente le attività in ritardo e misurare le prestazioni relative al rispetto dei tempi. Dove reperirlo Si tratta di un attributo calcolato nello strumento di Process Mining confrontando EventTime con TargetCompletionDate. Esempi truefalse | |||
| È una rilavorazione IsRework | Indicatore calcolato che identifica le attività che rappresentano una rilavorazione, come uno storno o una riconciliazione rifiutata. | ||
| Descrizione Questo attributo booleano segnala eventi o sequenze di eventi che indicano cicli inefficienti o correzioni nel processo. Ad esempio, un’attività «Riconciliazione verificata» seguita da un’altra «Scrittura contabile di rettifica registrata» sullo stesso conto potrebbe essere classificata come rilavorazione. Questo attributo è essenziale per quantificare gli sprechi di processo e supporta la Dashboard «Istanze di rilavorazione della riconciliazione» e il KPI «Tasso di rilavorazione della riconciliazione». Isolando le rilavorazioni, i team possono analizzarne le cause principali, misurare l’impatto sul tempo di ciclo e monitorare l’efficacia delle iniziative di miglioramento volte a eseguire correttamente l’attività fin dal primo tentativo. Perché è importante Quantifica l’inefficienza del processo segnalando le attività che costituiscono correzioni o ripetizioni, contribuendo a misurare e ridurre le attività senza valore. Dove reperirlo Si tratta di un attributo calcolato. La logica viene definita nello strumento di Process Mining sulla base di specifiche sequenze di attività, ad esempio cicli, o di determinati attributi, come ReversalReason non nullo. Esempi truefalse | |||
| Motivo dello storno ReversalReason | Un codice che indica il motivo per cui un documento finanziario è stato stornato. | ||
| Descrizione Quando un documento viene stornato in SAP, è possibile assegnare un codice motivo per spiegare la finalità dello storno, ad esempio "Storno nel periodo corrente" o "Registrazione errata". Questo Attributo fornisce un contesto fondamentale per comprendere perché si verifica una rilavorazione. Analizzare i motivi degli storni aiuta a individuare schemi ricorrenti negli errori, come dati inseriti in modo errato o date non corrette. Queste informazioni possono essere utilizzate per introdurre misure preventive, migliorare la formazione o potenziare i controlli di sistema, riducendo il numero di errori e dei successivi storni e rendendo più efficiente la chiusura. Perché è importante Fornisce una visione diretta delle cause principali di errori e rilavorazioni, aiutando a individuare opportunità di miglioramento del processo e di prevenzione degli errori. Dove reperirlo Si trova nella tabella delle testate dei documenti, BKPF (STGRD). Esempi 010205 | |||
| Partner commerciale VBUND | L'identificativo della società del gruppo collegata coinvolta in una transazione intercompany. | ||
| Descrizione L'ID del partner commerciale identifica l'altro codice società che partecipa a una transazione intercompany. È essenziale per la riconciliazione dei conti tra entità giuridiche collegate. Questo Attributo supporta direttamente il Dashboard "Intercompany Reconciliation Flow" e il KPI "Intercompany Recon. Cycle Time". Filtrando le transazioni in cui è presente un partner commerciale, l'analisi può concentrarsi sull'efficienza e sulla tempestività del processo di riconciliazione intercompany, spesso uno dei principali punti critici durante la chiusura del periodo. Perché è importante Identifica in modo specifico le transazioni intercompany e consente un'analisi mirata del processo di riconciliazione intercompany, spesso complesso e dispendioso in termini di tempo. Dove reperirlo Si trova nella tabella delle partite dei documenti, BSEG (VBUND). Esempi 1000US013000 | |||
| Reparto Department | Il reparto funzionale o il centro di costo responsabile dell'attività o della transazione. | ||
| Descrizione Questo Attributo identifica il reparto aziendale, come "Finance", "Sales" o "Logistics", associato a una transazione. Spesso viene ricavato dai dati master del centro di costo collegato a una registrazione o dai dati master dell'utente. Analizzare i dati per reparto supporta il Dashboard "Close Team Workload Distribution". Aiuta a comprendere il contributo delle diverse funzioni aziendali al carico di lavoro di fine periodo, soprattutto in relazione alle transazioni iniziali che potrebbero richiedere successive rettifiche o riconciliazioni. Può evidenziare le aree esterne al team Finance che incidono sul processo di chiusura. Perché è importante Aiuta ad analizzare il carico di lavoro e il rispetto del processo tra diverse funzioni aziendali, mostrando in che modo i vari reparti incidono sull'efficienza della chiusura finanziaria. Dove reperirlo Spesso viene ricavato dal centro di costo (KOSTL) in BSEG o dai dati master HR dell'utente responsabile. Potrebbe essere necessario unire più tabelle. Esempi Finanza aziendaleDebiti verso fornitoriFP&A | |||
| Stato della riconciliazione ReconciliationStatus | Lo stato corrente di una riconciliazione contabile, ad esempio "Aperta", "In revisione" o "Approvata". | ||
| Descrizione Questo Attributo monitora lo stato di una riconciliazione contabile mentre attraversa il relativo Workflow. Indica se la riconciliazione è stata avviata, inviata per la revisione, approvata o rifiutata. È un Attributo fondamentale per monitorare in tempo reale l'avanzamento delle attività di riconciliazione. Aiuta a individuare quali riconciliazioni sono bloccate e da quanto tempo, supportando KPI come "Account Reconciliation Cycle Time". Offre visibilità sul processo di approvazione ed è essenziale per i Dashboard che monitorano i colli di bottiglia della riconciliazione e il carico di lavoro del team. Perché è importante Offre visibilità sul Workflow di riconciliazione e consente di monitorare l'avanzamento, individuare i colli di bottiglia e misurare i tempi di revisione e approvazione. Dove reperirlo Queste informazioni risiedono spesso in uno strumento separato di riconciliazione, ad esempio SAP Account Substantiation and Automation by BlackLine, o in un campo di stato personalizzato. In genere non sono disponibili come campo standard in BKPF/BSEG. Esempi Non iniziatoIn corsoApprovatoRifiutato | |||
Record to Report - Attività di chiusura del periodo e riconciliazione
| Attività | Descrizione | ||
|---|---|---|---|
| Bilanci ufficiali generati | Rappresenta il momento in cui vengono generati i bilanci ufficiali, come il conto economico e lo stato patrimoniale. L'attività viene generalmente acquisita monitorando l'esecuzione di uno specifico programma di reporting. | ||
| Perché è importante È una milestone 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 reperirlo Deducibile dai log di audit del sistema, come STAD, che registrano l'esecuzione del programma di generazione dei bilanci, generalmente tramite la transazione F.01. Acquisizione Dai log di sistema (STAD) che monitorano l'esecuzione della transazione F.01 per la generazione dei bilanci. Tipo di evento inferred | |||
| Esecuzione della valutazione in valuta estera | Rappresenta l'esecuzione di un programma per rivalutare le partite aperte e i saldi registrati in valute estere, utilizzando i tassi di cambio di fine periodo. In genere viene eseguito come batch job nell'ambito delle attività di chiusura di fine periodo. | ||
| Perché è importante Si tratta di un passaggio fondamentale per garantire l'accuratezza del reporting finanziario nelle organizzazioni multinazionali. Analizzarne tempistiche e durata aiuta a individuare opportunità di automazione e ottimizzazione delle prestazioni. Dove reperirlo Acquisita dai log di esecuzione del programma di valutazione in valuta estera, come FAGL_FCV o F.05. I dettagli dei batch job nelle tabelle TBTCO e TBTCP forniscono i timestamp di esecuzione. Acquisizione Dai log dei batch job (tabella TBTCO) per il programma FAGL_FC_VALUATION o SAPF100. Tipo di evento explicit | |||
| Periodo aperto per la registrazione | Indica l'inizio ufficiale di un periodo contabile e consente di registrare le transazioni nella contabilità generale. Si tratta di una modifica di configurazione esplicita, eseguita da un utente autorizzato per aprire un periodo specifico alle registrazioni in uno o più codici società. | ||
| Perché è importante Questa attività rappresenta l'evento iniziale definitivo del caso relativo al processo di chiusura del periodo. Analizzare il tempo a partire da questo momento aiuta a comprendere l'intero ciclo di vita del periodo contabile. Dove reperirlo Le modifiche ai periodi di registrazione effettuate tramite la transazione OB52 vengono registrate. È possibile estrarre queste modifiche analizzando i documenti di modifica della tabella di configurazione sottostante T001B, in genere utilizzando le tabelle CDHDR e CDPOS. Acquisizione Estrazione dai documenti di modifica (CDHDR/CDPOS) per la 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. Garantisce l'integrità dei dati finanziari del periodo chiuso e costituisce una modifica di configurazione esplicita. | ||
| Perché è importante È l'evento finale definitivo del processo di chiusura del periodo. È essenziale per calcolare con precisione il Period Close Cycle Time complessivo e misurare il rispetto delle scadenze. Dove reperirlo La chiusura dei periodi tramite la transazione OB52 viene registrata. Queste modifiche possono essere individuate analizzando i documenti di modifica, nelle tabelle CDHDR e CDPOS, relativi alla tabella di configurazione T001B. Acquisizione Estrazione dai documenti di modifica (CDHDR/CDPOS) per la tabella T001B. Tipo di evento explicit | |||
| Riconciliazione dei conti avviata | Rappresenta l'inizio del processo di riconciliazione per un insieme di conti GL nel periodo. In SAP ECC standard non è un evento discreto e viene generalmente dedotto da attività correlate, come la prima esecuzione di un report chiave. | ||
| Perché è importante Questa attività stabilisce una milestone fondamentale per misurare la durata dell'intera fase di riconciliazione. Comprendere quando inizia la riconciliazione è essenziale per il KPI Account Reconciliation Cycle Time. Dove reperirlo L'evento non viene registrato esplicitamente. Deve essere dedotto da altre fonti di dati, come il log di audit del sistema (transazione STAD), considerando la prima esecuzione di un report di visualizzazione dei saldi, ad esempio FAGLB03 o FS10N. Acquisizione Deducibile dalla prima esecuzione delle transazioni dei report pertinenti, ad esempio FAGLB03, nei log di sistema. 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. L'evento viene acquisito come una normale registrazione di un documento finanziario in SAP. | ||
| Perché è importante È essenziale per l'analisi Adjusting Entries Volume Analysis. Un volume elevato di rettifiche suggerisce problemi nell'accuratezza dei processi a monte e rappresenta un obiettivo prioritario per le iniziative di miglioramento dei processi. Dove reperirlo Si trova nelle tabelle BKPF e BSEG. Queste scritture vengono generalmente identificate tramite uno specifico tipo di documento (BKPF-BLART) riservato alle rettifiche oppure perché registrate in periodi speciali di chiusura, ad esempio dal 13 al 16. Acquisizione Filtrare BKPF per i documenti registrati in periodi speciali o con tipi di documento di rettifica. Tipo di evento explicit | |||
| Accrual o provision registrata | Rappresenta la registrazione di una scrittura contabile relativa a un rateo, un risconto o un accantonamento, generalmente effettuata verso la fine del periodo. In SAP non costituisce 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 o frequenti rettifiche dei ratei possono indicare aree in cui migliorare il processo. Dove reperirlo Deducibile dalle tabelle dei documenti finanziari BKPF e BSEG. Le scritture possono essere individuate filtrando per uno specifico tipo di documento (BKPF-BLART), per un conto GL univoco (BSEG-HKONT) o per parole chiave nel testo di testata (BKPF-BKTXT). Acquisizione Filtrare le tabelle BKPF/BSEG per tipo di documento, conti GL specifici o campi di testo. Tipo di evento inferred | |||
| Documento intercompany compensato | Questa attività indica la compensazione di una partita aperta tra due codici società diversi e segnala che una transazione intercompany è stata regolata o riconciliata. In SAP viene registrata come una registrazione finanziaria esplicita, generalmente sotto forma di documento di compensazione. | ||
| Perché è importante I ritardi nella compensazione delle partite intercompany rappresentano 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 reperirlo Individuata nei documenti finanziari di BKPF e BSEG. Un documento di compensazione collega e chiude le partite aperte, mentre la relativa data di compensazione (BSEG-AUGDT) funge da timestamp dell'evento. Le transazioni intercompany vengono identificate tramite i campi del partner commerciale. Acquisizione Individuare in BKPF/BSEG i documenti di compensazione che coinvolgono partite con partner commerciali. Tipo di evento explicit | |||
| Esecuzione del run di compensazione GR/IR | Esecuzione del programma automatico di compensazione per il conto Goods Receipt/Invoice Receipt. Il programma abbina le entrate merci alle relative entrate fattura e compensa le partite tra loro. | ||
| Perché è importante Il conto GR/IR è una fonte frequente di problemi di riconciliazione. Monitorare questa attività consente di verificare che il passaggio automatico venga eseguito correttamente e di quantificare il volume delle eccezioni che richiedono un intervento manuale. Dove reperirlo L'esecuzione viene acquisita nei log dei batch job (transazione SM37). Il programma è generalmente SAPF124, eseguito tramite la transazione F.13. Le tabelle dei log dei job, come TBTCO, forniscono i timestamp necessari. Acquisizione Dai log dei batch job (tabella TBTCO) per il programma di compensazione SAPF124. Tipo di evento explicit | |||
| Report del bilancio di verifica generato | Indica l'esecuzione di un report per generare il bilancio di verifica. È un passaggio fondamentale per verificare che il totale degli addebiti corrisponda al totale degli accrediti prima di redigere il bilancio ufficiale. | ||
| Perché è importante Si tratta di un controllo qualità fondamentale prima del reporting finale. Esecuzioni ripetute del report possono indicare che vengono individuati e corretti problemi nei dati sottostanti, con possibili ritardi. Dove reperirlo Deducibile dai log di audit del sistema, come la transazione STAD, che può registrare l'esecuzione di transazioni di reporting del bilancio di verifica, quali S_ALR_87012277 o F.01. Acquisizione Dai log di sistema (STAD) che monitorano l'esecuzione dei codici transazione di reporting. Tipo di evento inferred | |||
| Riconciliazione verificata | Indica che la riconciliazione di un conto specifico o di un gruppo di conti è stata esaminata e confermata. In SAP ECC standard non è un evento registrato esplicitamente e viene spesso gestita tramite controlli offline o soluzioni personalizzate. | ||
| Perché è importante Monitorare le tempistiche delle verifiche è importante per comprendere i colli di bottiglia nelle fasi di controllo e supervisione del processo di chiusura. Può evidenziare ritardi dovuti alla disponibilità del management o a rilavorazioni. Dove reperirlo Queste informazioni non sono disponibili nelle tabelle ECC standard. Sarebbe necessaria una soluzione personalizzata, come un campo di stato in una tabella Z personalizzata, un Workflow semplice o un'integrazione con uno strumento specializzato di riconciliazione di terze parti. Acquisizione Acquisire la modifica dello stato da un Workflow personalizzato o da una tabella Z, se implementati. Tipo di evento inferred | |||
| Scrittura di storno registrata | Questa attività acquisisce la registrazione di un documento che annulla una scrittura contabile precedentemente registrata, spesso per correggere un errore. SAP crea un collegamento esplicito tra il documento di storno e il documento originale. | ||
| Perché è importante Un numero elevato di storni indica possibili problemi nell'accuratezza dell'inserimento dei dati o nei controlli di processo. Monitorare questi eventi aiuta a misurare il tasso di esecuzione corretta al primo tentativo e a individuare le aree da migliorare. Dove reperirlo I documenti di storno si trovano nella tabella BKPF. Vengono spesso creati con la transazione FB08 e contengono un riferimento al numero del documento stornato nel campo BKPF-STBLG. Acquisizione Individuare i documenti in cui BKPF-STBLG è valorizzato o creati tramite codici T di storno. Tipo di evento explicit | |||
Guide all’estrazione
Passaggi
- Acceda allo strumento SAP Query: acceda al Suo sistema SAP ECC. Apra il codice transazione
SQVI(QuickViewer). 2. Crei una nuova query: inserisca un nome per la query, ad esempioZ_R2R_PERIOD_CLOSE, e faccia clic su «Create». Nella finestra a comparsa, inserisca un titolo descrittivo come «Estrazione della chiusura del periodo Record to Report». Per «Data source», selezioni «Table join». 3. Definisca le join tra le tabelle: aggiunga la tabella principaleBKPF(intestazione 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 accettare. Per le attività di apertura e chiusura del periodo sarà necessaria una query separata che colleghiCDHDReCDPOS. 4. Selezioni i campi di output (List Fields): apra la scheda «List fld. select.». Selezioni dalle tabelle disponibili i campi necessari per l’Event Log. Tra questi rientranoBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRe altri, secondo necessità. 5. Definisca i parametri di input (Selection Fields): apra la scheda «Selection fields». Scelga i campi da utilizzare per filtrare i dati durante l’esecuzione. I più importanti sonoBKPF-BUKRS(codice società) eBKPF-GJAHR(anno fiscale). Può aggiungere ancheBKPF-MONAT(periodo di registrazione) eBKPF-BLART(tipo documento). 6. Crei varianti per ogni attività: poiché SQVI non può combinare selezioni di dati diverse, come una SQL UNION, dovrà eseguire la query più volte. Per ogni attività, ad esempio «Accantonamento o fondo registrato», esegua la query e inserisca nella schermata di selezione i valori filtro specifici, come l’elenco dei tipi documento pertinenti agli accantonamenti. Salvi questo insieme di criteri di selezione come variante. Ripeta la procedura per ogni attività estraibile. 7. Esegua la query ed estragga i dati: esegua la query per ogni variante creata. La query verrà eseguita con i filtri specifici dell’attività. 8. Esporti i risultati: nella schermata dei risultati, esporti i dati in un file locale. Il formato più comune è «Spreadsheet». Ripeta l’esportazione per ogni variante. 9. Combini e trasformi i dati: apra i file esportati in un programma per fogli di calcolo oppure utilizzi uno script. Combini manualmente i dati di tutti i file in un unico file principale. 10. Aggiunga colonne costanti e calcolate: nel file combinato, aggiunga le colonne che non vengono estratte direttamente dalle tabelle SAP. Tra queste rientranoActivityName, da impostare manualmente in base alla variante da cui provengono i dati,FinancialPeriod, ottenuto concatenando anno fiscale e periodo,EventTime, ottenuto combinando i campi data e ora,SourceSystemeLastDataUpdate. 11. Formattti il file per il caricamento: salvi il file finale in formato CSV o Excel, utilizzando le intestazioni di colonna corrette richieste dallo strumento di Process Mining. Verifichi i tipi di dati e la formattazione prima del caricamento.
Configurazione
- Origine dei dati: Table Join in SAP Query (SQVI). Le tabelle principali sono BKPF, BSEG, CDHDR e CDPOS. * Intervallo di date: è consigliabile estrarre i dati relativi ad almeno 3-6 periodi finanziari completi per individuare gli schemi ricorrenti. Imposti il filtro su
BKPF-GJAHR(anno fiscale) eBKPF-MONAT(periodo). * Filtro per codice società: applichi sempre il filtro aBKPF-BUKRS(codice società) per limitare il volume dei dati e concentrare l’analisi su specifiche entità giuridiche. Non è consigliabile estrarre contemporaneamente i dati di tutti i codici società. * Filtro per tipo documento: utilizzi i filtri suBKPF-BLART(tipo documento) per isolare attività specifiche, come accantonamenti, rettifiche o storni. Dovrà individuare i tipi 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: la join tra BKPF e BSEG può richiedere molte risorse. Esegua l’estrazione in orari di minore utilizzo. Eviti intervalli di date molto ampi o di lasciare aperto il filtro Codice società, poiché ciò può causare problemi di memoria o timeout.
a 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
- Definisca l’ambito e il design del programma: definisca la logica specifica per identificare ciascuna delle 12 attività richieste. Si confronti con i responsabili del processo e con gli analisti funzionali SAP per confermare i tipi documento, i conti Co.Ge. e i nomi dei programmi associati alle attività di chiusura di fine periodo nel Suo ambiente SAP ECC.
- Crei il programma ABAP: utilizzando la transazione
SE38(ABAP Editor), crei un nuovo programma eseguibile, ad esempioZ_PM_R2R_EXTRACTION. Inserisca un titolo descrittivo e imposti il tipo di programma su «Executable Program». - Definisca la schermata di selezione: nel programma, definisca una schermata di selezione utilizzando
PARAMETERSeSELECT-OPTIONS. Questa schermata consentirà agli utenti di specificare l’ambito dell’estrazione, inclusi Codice società (BUKRS), Anno fiscale (GJAHR) e Periodo di registrazione (MONAT). Questo passaggio è fondamentale per controllare il volume dei dati. - Dichiari le strutture dati: definisca una struttura di tabella interna che conterrà i dati finali dell’Event Log. La struttura deve includere tutti gli attributi richiesti e consigliati:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTReJournalEntryType. - Implementi 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 Template la logica fornita nella sezione dedicata alla query ABAP.
- Identifichi le attività dedotte: per le attività non registrate esplicitamente in SAP standard, come «Riconciliazione avviata» 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.
- Consolidi i dati degli eventi: dopo aver estratto i dati relativi a tutte le singole attività, aggiunga i record di ciascuna tabella intermedia alla tabella interna consolidata finale. Verifichi che il campo
EventTimesia valorizzato correttamente utilizzando il campo di origine pertinente, come la data e l’ora di registrazione del documento oppure la data e l’ora di avvio del job. - Standardizzi e formatti i dati: prima dell’output, standardizzi i campi chiave. Combini anno fiscale e periodo nell’identificativo
FinancialPeriod. Imposti valori statici perSourceSystemeLastDataUpdate. Verifichi che i timestamp utilizzino un formato coerente. - Sviluppi la funzionalità di output: aggiunga al programma la funzionalità per esportare la tabella interna finale. Il metodo più comune consiste nello scrivere i dati in un file CSV o delimitato da tabulazioni sul SAP Application Server, utilizzando
OPEN DATASET, oppure nel consentire all’utente di scaricarli direttamente sul computer locale, utilizzando il function moduleGUI_DOWNLOAD. - Esegua test e convalida: testi accuratamente il programma con un set di dati rappresentativo che includa più codici società e periodi. Utilizzi i passaggi di convalida per verificare accuratezza e completezza dei dati. Affini la logica di selezione sulla base del feedback degli esperti funzionali.
- Pianifichi l’esecuzione, facoltativo: una volta convalidato, il programma può essere pianificato come background job tramite la transazione
SM36. In questo modo sarà possibile estrarre periodicamente l’Event Log senza interventi manuali.
Configurazione
- Criteri di selezione: il programma deve disporre di una schermata di selezione per filtrare i dati. I filtri principali includono:
Company Code (BUKRS): obbligatorio per limitare l’ambito alle entità giuridiche pertinenti.Fiscal Year (GJAHR): obbligatorio per definire l’anno principale dell’estrazione.Posting Period (MONAT): obbligatorio per selezionare i periodi finanziari specifici.
- Configurazione specifica per attività: molte selezioni dipendono dalla configurazione SAP specifica. Devono quindi essere configurabili come parametri o costanti all’interno del programma:
Accrual/Provision Document Types: elenco dei tipi documento (BLART) utilizzati per identificare le registrazioni di accantonamenti e fondi.Adjusting Entry Document Types: elenco dei tipi documento utilizzati per identificare le scritture contabili di rettifica.Background Job/Program Names: nomi tecnici dei programmi utilizzati per la valutazione delle valute estere, ad esempioFAGL_FCV, per la compensazione GR/IR, ad esempioSAPF124, per i report del bilancio di verifica e per la generazione del bilancio, ad esempioRFBILA00.
- Intervallo di date: sebbene la selezione principale avvenga per anno fiscale e periodo, la logica sottostante deve considerare la data e l’ora complete degli eventi. Per un’analisi iniziale, è consigliabile estrarre i dati relativi agli ultimi 3-6 periodi finanziari completati.
- Prestazioni: negli ambienti SAP di grandi dimensioni, le prestazioni del programma sono fondamentali. Verifichi che le selezioni sul database utilizzino i campi indicizzati, soprattutto nelle tabelle come
BKPFeBSEG. Eviti di selezionare tutti i campi (SELECT *) ed elabori i dati in pacchetti gestibili, se necessario. - 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 comeSE38per lo sviluppo eSM37/SM36per la pianificazione e il monitoraggio.
a 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
- Raccolga i prerequisiti: ottenga credenziali di accesso in sola lettura al database SAP ECC sottostante. Identifichi lo schema corretto del database, generalmente
SAPSR3o un nome analogo fornito dall’amministratore del database. - Identifichi la configurazione del sistema: si consulti con il team SAP Finance per determinare i Codici società (
BUKRS) e i periodi finanziari da analizzare. È fondamentale identificare i Tipi documento (BLART) specifici utilizzati nel Suo sistema per le transazioni «Accantonamento o fondo registrato», «Scrittura contabile di rettifica registrata» e «Intercompany». - Verifichi i nomi di programmi e job: confermi i nomi dei programmi relativi ai principali batch job, come la valutazione delle valute estere, ad esempio
FAGL_FCV, la compensazione GR/IR, ad esempioSAPF124, i report del bilancio di verifica, ad esempioRFBILA00, e la generazione del bilancio, ad esempioRFBILA00. Può reperirli verificando i job pianificati nella transazioneSM37. - Personalizzi 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 documento e dei nomi dei programmi sulla base delle informazioni raccolte nei passaggi precedenti. - Si connetta al database: utilizzi uno strumento client SQL standard, come DBeaver, SQL Server Management Studio o Oracle SQL Developer, per connettersi al database SAP con le credenziali ottenute.
- Esegua la query: esegua la query SQL personalizzata sul database. In base all’intervallo di date e alle dimensioni delle tabelle finanziarie, il completamento potrebbe richiedere molto tempo.
- Esamini i risultati iniziali: al termine della query, esegua una rapida verifica dell’output. Controlli che il numero di righe sia plausibile, che tutte le colonne siano presenti e che nei risultati siano inclusi valori diversi di
ActivityName. - Esporti i dati: esporti l’intero set 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.
- Prepari il caricamento: prima di caricare i dati in uno strumento di Process Mining, verifichi che le intestazioni delle colonne corrispondano esattamente ai nomi degli attributi richiesti (
FinancialPeriod,ActivityName,EventTimee così via). Verifichi inoltre che la colonnaEventTimeutilizzi un formato timestamp coerente, comeYYYY-MM-DD HH:MI:SS.
Configurazione
- Credenziali del database: è necessario disporre di un utente database in sola lettura con accesso alle tabelle finanziarie e di sistema SAP principali, incluse tabelle come
BKPF,BSEG,TBTCO,CDHDReCDPOS. - Intervallo di date: consigliamo di estrarre i dati relativi ad almeno 3-6 periodi finanziari completi per acquisire variazioni di processo significative. Tenga presente che intervalli di date più ampi aumenteranno sensibilmente il tempo di esecuzione della query.
- Codici società (
BUKRS): applichi sempre il filtro a un elenco specifico di codici società. Eseguire la query per tutti i codici società in un sistema di grandi dimensioni non è praticabile e probabilmente causerà problemi di prestazioni. - Tipi documento (
BLART): l’identificazione dei tipi di scrittura contabile, come accantonamenti e rettifiche, dipende interamente dalla configurazione SAP specifica della Sua organizzazione. Deve inserire nei predicatiWHEREdella query i codici corretti dei tipi documento per classificare accuratamente le attività. - Nomi di programmi e job: la query utilizza nomi comuni di programmi per le fasi automatizzate della chiusura. Il Suo 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 molto grandi, in particolare
BSEGeCDPOS. È fortemente consigliato eseguire l’estrazione al di fuori dell’orario lavorativo per evitare di compromettere le prestazioni del sistema. L’applicazione di filtri ristretti su date e codici società è il modo più efficace per gestire i tempi di esecuzione.
a 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 per iniziare?
Utilizzi questo Template dei dati per avviare il Suo percorso di Process Mining e ottenere informazioni di grande valore sulle operazioni di chiusura finanziaria. Inizi oggi stesso 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 ciclo di chiusura Record to Report.
Non è richiesta alcuna carta di credito. Inizi la Sua prova gratuita di 14 giorni.