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à chiave da monitorare per l’analisi del processo
- Istruzioni dettagliate per l’estrazione dei dati
Attributi di Record to Report - Chiusura del periodo e riconciliazione
| Nome | Descrizione | ||
|---|---|---|---|
| Periodo finanziario FinancialPeriod | Identificativo univoco del ciclo di reporting finanziario, ad esempio '2023-12' per dicembre 2023, utilizzato come caso per il processo di chiusura di fine periodo. | ||
| Descrizione Il periodo finanziario è l’identificativo del caso principale che raggruppa tutte le attività relative alla chiusura dei conti per un intervallo di tempo specifico, in genere un mese di calendario o un periodo fiscale. Ogni periodo finanziario rappresenta un’esecuzione completa del processo di chiusura di fine periodo. Nell’analisi di Process Mining, questo attributo consente di monitorare l’intero ciclo di vita della chiusura periodica, dall’avvio alla rendicontazione finale. Serve a confrontare i tempi di ciclo tra periodi diversi, individuare i percorsi ricorrenti del processo e analizzare le variazioni tra le procedure di chiusura mensili, trimestrali e annuali. Considerando ogni periodo come un caso, gli analisti possono misurare l’andamento nel tempo e individuare i colli di bottiglia sistemici. Perché è importante È l’identificativo essenziale del caso che definisce l’ambito dell’analisi e consente di confrontare nel tempo i risultati della chiusura periodica, individuando tendenze e problemi ricorrenti. Dove reperirli Si ricava combinando i campi Esercizio (GJAHR) e Periodo contabile (MONAT) delle testate dei documenti finanziari, in genere da tabelle come BKPF. Esempi 2023-122024-032024-Q1 | |||
| Attività ActivityName | Nome di una specifica fase o attività aziendale svolta durante il processo di chiusura periodica, ad esempio 'Scrittura contabile di rettifica registrata' o 'Periodo chiuso alle registrazioni'. | ||
| Descrizione Questo attributo rappresenta un singolo evento o un’attività del processo end-to-end di chiusura periodica e riconciliazione. Le attività costituiscono gli elementi fondamentali della mappa del processo e mostrano la sequenza delle operazioni svolte. Spesso si ricavano combinando codici di transazione, tipi di documento o variazioni di stato in SAP S/4HANA. L’analisi delle attività è fondamentale per il Process Mining: consente di visualizzare il flusso del processo, individuare deviazioni dalla procedura standard e colli di bottiglia dovuti ad attività troppo lunghe, oltre a comprendere la frequenza e l’ordine delle operazioni. È essenziale per Dashboard come Analisi delle varianti di chiusura periodica e Stato attuale della chiusura periodica. Perché è importante Definisce le fasi del processo, costituisce la base della mappa del processo e consente di analizzare il flusso, le deviazioni e i colli di bottiglia. Dove reperirli Si ricava da diverse fonti, come i codici di transazione (TCODE), i tipi di documento (BLART) o i campi di stato nelle tabelle relative alle attività di chiusura finanziaria (ad esempio, da SAP Financial Closing Cockpit). Esempi Periodo aperto alle registrazioniAvvio della riconciliazione dei contiGenerazione dei prospetti finanziariAvvio della riconciliazione intercompany | |||
| Ora di inizio EventTime | Data e ora che indicano quando una specifica attività è iniziata o è stata registrata nel sistema. | ||
| Descrizione L’ora dell’evento indica la data e l’ora esatte in cui si è verificata un’attività. Per le registrazioni finanziarie, spesso corrisponde all’ora di creazione (CPUTM) o alla data di registrazione (BUDAT) di un documento. Per le variazioni di stato o le attività, è la data e l’ora in cui la modifica è stata registrata. Questo attributo è fondamentale per ordinare cronologicamente le attività e costituisce la base di tutte le analisi temporali. Serve a calcolare i tempi di ciclo tra le attività, la durata delle singole operazioni e la durata complessiva del processo end-to-end. Supporta direttamente KPI come Tempo medio del ciclo di chiusura periodica e Tempo medio di approvazione delle riconciliazioni. Perché è importante Questa data e ora obbligatoria consente di ordinare cronologicamente gli eventi e costituisce la base per tutti i calcoli di durata e prestazioni. Dove reperirli Si ricava da campi data e ora come Data di creazione (CPUDT) e Ora di creazione (CPUTM) in tabelle come BKPF, oppure dai campi relativi alla data di modifica in diverse tabelle di stato (ad esempio, CDHDR e CDPOS). Esempi 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Codice società CompanyCode | Identificativo univoco di un’entità giuridica o di una società all’interno dell’organizzazione SAP. | ||
| Descrizione La società rappresenta un’unità contabile indipendente all’interno di un’impresa, per la quale è possibile creare un insieme completo e autonomo di conti. Tutte le attività di chiusura di fine periodo vengono svolte a livello di società. Si tratta di una dimensione organizzativa fondamentale per l’analisi finanziaria. Nel Process Mining consente di confrontare il processo di chiusura di fine periodo tra diverse entità giuridiche. La Dashboard «Analisi delle varianti di chiusura di fine periodo» utilizza la società per individuare incoerenze e favorire la standardizzazione delle procedure di chiusura. Perché è importante Fornisce un contesto organizzativo essenziale, consentendo di confrontare i processi tra diverse entità giuridiche per individuare variazioni e buone pratiche. Dove reperirli È presente praticamente in tutte le tabelle finanziarie di SAP, in particolare nella tabella di testata BKPF (campo BUKRS). Esempi 10001710US01DE01 | |||
| Data prevista di completamento TargetCompletionDate | Data pianificata o scadenza entro cui completare un’attività chiave, ad esempio la produzione dei rendiconti finanziari. | ||
| Descrizione La data prevista di completamento indica la scadenza interna o esterna di una specifica tappa del processo di chiusura di fine periodo. È la data entro cui si prevede di terminare un task. Questo attributo è essenziale per misurare il rispetto della pianificazione e delle scadenze. Costituisce la base della Dashboard «Rispetto delle scadenze di rendicontazione» e del KPI «Tasso di rendiconti finanziari completati nei tempi previsti», che confrontano la data prevista con Perché è importante Consente di analizzare i risultati rispetto alle scadenze e di misurare e migliorare il tasso di completamento puntuale delle attività di chiusura più importanti. Dove reperirli Questi dati si trovano spesso in un sistema di gestione dei task o di pianificazione, come SAP Financial Closing cockpit, dove gli elenchi dei task di chiusura riportano le date di fine pianificate. Esempi 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Numero di conto Co.Ge. GlAccountNumber | Identificativo di uno specifico conto del libro mastro. | ||
| Descrizione Il numero di conto del libro mastro (Co.Ge.) identifica i singoli conti utilizzati per registrare le transazioni finanziarie, come la cassa, i debiti verso fornitori o i ricavi. Molte attività di fine periodo, tra cui le riconciliazioni e le registrazioni di rettifica, sono direttamente collegate a specifici conti Co.Ge. Questo attributo è essenziale per un’analisi dettagliata dei processi finanziari. La Dashboard «Analisi delle registrazioni di rettifica» lo utilizza per mostrare il volume delle rettifiche per conto e aiutare a individuare le aree problematiche. Anche il KPI «Tempo medio di riconciliazione dei conti Co.Ge.» si basa su questo attributo per individuare i ritardi legati a conti specifici. Perché è importante Collega le attività del processo a specifici conti finanziari, consentendo di analizzare nel dettaglio le riconciliazioni e le registrazioni contabili per individuare le cause profonde dei problemi. Dove reperirli È presente nelle tabelle delle righe dei documenti finanziari, principalmente in BSEG (campo HKONT) o nella tabella del libro mastro universale di S/4HANA, ACDOCA. Esempi 113100004000000073000000 | |||
| Numero documento DocumentNumber | Identificativo univoco di un documento finanziario, ad esempio una registrazione contabile. | ||
| Descrizione SAP assegna un numero univoco a ogni registrazione finanziaria. Il numero documento è il riferimento principale per tracciare e sottoporre ad audit le singole transazioni che compongono le attività del processo di chiusura. Pur non essendo di per sé un ID del caso, consente di risalire direttamente al sistema di origine. Gli analisti possono utilizzarlo per passare dalla vista di Process Mining ai dettagli della singola transazione in SAP S/4HANA e analizzarne le cause profonde. È particolarmente utile per esaminare specifiche registrazioni di rettifica o registrazioni di riconciliazione. Perché è importante Fornisce un riferimento diretto alla transazione sottostante in SAP, consentendo di passare facilmente dal modello di processo ai dettagli e di verificarne la tracciabilità ai fini dell’audit. Dove reperirli Si trova nella tabella di testata dei documenti finanziari BKPF (campo BELNR) e nelle tabelle delle righe, come BSEG o ACDOCA. Esempi 100000045190000001300000023 | |||
| Ora di fine EndTime | Data e ora che indicano quando un’attività è stata completata. | ||
| Descrizione L’ora di fine indica il completamento di un’attività. In alcuni casi può coincidere con l’ora di inizio, per gli eventi istantanei registrati nel sistema. Per le attività di cui è possibile misurare la durata, indica il momento in cui sono state completate. Insieme all’ora di inizio, questo attributo è essenziale per calcolare il Perché è importante Consente di calcolare la durata delle attività (tempo di elaborazione), un dato essenziale per individuare i colli di bottiglia e analizzare l’efficienza. Dove reperirli Come l’ora di inizio, può essere ricavata da diversi campi data e ora. Per alcune attività può coincidere con l’ora di inizio; per altre può corrispondere a un campo separato, come 'completato il' o 'modificato il', nelle tabelle applicative o nei log delle modifiche (CDHDR, CDPOS). Esempi 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Stato della riconciliazione ReconciliationStatus | Stato di un’attività di riconciliazione di un conto, ad esempio «Aperta», «In corso» o «Approvato». | ||
| Descrizione Questo attributo registra lo stato del processo di riconciliazione di un determinato conto o task. Indica se la riconciliazione è stata avviata, inviata per la revisione, approvata o respinta. I cambiamenti di stato costituiscono eventi chiave del processo. È fondamentale per la Dashboard «Analisi delle rilavorazioni nelle riconciliazioni». Analizzando la sequenza degli stati, è possibile individuare i casi in cui a uno stato «Approvato» seguono ulteriori rettifiche, segno di una rilavorazione. L’attributo supporta anche il KPI «Tasso di riconciliazioni approvate al primo tentativo», mostrando quali riconciliazioni vengono approvate senza essere state prima respinte o riaperte. Perché è importante Tiene traccia dell’avanzamento e dell’esito dei task di riconciliazione, consentendo di individuare le rilavorazioni, misurare i tassi di approvazione e analizzare i colli di bottiglia. Dove reperirli Queste informazioni sono in genere archiviate nelle tabelle dello strumento di riconciliazione utilizzato, ad esempio SAP Financial Closing cockpit o SAP Account Substantiation and Automation di BlackLine. Esempi Non avviatoIn preparazioneApprovatoRespinto | |||
| Utente responsabile ResponsibleUser | ID utente della persona che ha eseguito l’attività o ne è responsabile. | ||
| Descrizione Questo attributo identifica la persona che ha svolto una determinata attività, ad esempio registrare una scrittura contabile o approvare una riconciliazione. In genere, viene acquisito come ID utente nei log di sistema e nelle testate dei documenti. Analizzare il processo per utente è fondamentale per comprendere la distribuzione del carico di lavoro, le prestazioni individuali e le esigenze di formazione. La Dashboard Efficienza dell’allocazione delle risorse utilizza direttamente questo attributo per visualizzare i tempi di elaborazione delle attività per utente. Può inoltre aiutare a individuare le attività da automatizzare, mettendo in evidenza quelle altamente ripetitive svolte da molti utenti. Perché è importante Collega le attività del processo alle persone che le hanno svolte e consente di analizzare il carico di lavoro, ottimizzare le risorse e gestire le prestazioni. Dove reperirli Si trova comunemente nelle tabelle di testata dei documenti, come BKPF (campo USNAM, nome utente), o nelle tabelle dei documenti delle modifiche, come CDHDR (campo USERNAME). Esempi ABROWNCSMITHDJOHNSON | |||
| Codice transazione TransactionCode | Codice della transazione SAP (T-code) utilizzato per eseguire l’attività. | ||
| Descrizione In SAP, un codice transazione è una scorciatoia per avviare una funzione o un programma specifico. Ad esempio, FB01 serve per registrare un documento, mentre FAGLB03 consente di visualizzare i saldi dei conti Co.Ge. Il T-code fornisce spesso un’indicazione tecnica chiara dell’attività svolta. Questo attributo aiuta a definire le attività nel modello di processo. È un modo affidabile per distinguere le attività automatizzate da quelle manuali e capire esattamente come è stato eseguito un task nel sistema. L’analisi dei T-code può rivelare metodi non standard o inefficienti utilizzati dai dipendenti. Perché è importante Fornisce una prospettiva tecnica, a livello di sistema, sulle modalità di esecuzione di un’attività ed è utile per individuare i passaggi manuali e automatizzati e le procedure non standard. Dove reperirli È presente nella tabella di testata dei documenti finanziari BKPF (campo TCODE) o nei registri delle modifiche ai documenti. Esempi FB01FAGL_FCVF.13 | |||
| Data effettiva di completamento ActualCompletionDate | Data effettiva di completamento di un’attività chiave o dell’intero processo di chiusura di fine periodo. | ||
| Descrizione Questo attributo registra la data effettiva di completamento di una tappa significativa. Corrisponde alla data e ora dell’approvazione finale dei rendiconti finanziari o della chiusura del periodo contabile. È il corrispettivo di Perché è importante Indica quando sono state completate effettivamente le tappe e permette di misurare i risultati rispetto alle scadenze pianificate e di analizzare i ritardi. Dove reperirli Ricavata da Esempi 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| È automatizzato IsAutomated | Indicatore booleano che specifica se l’attività è stata svolta da un utente di sistema o da un processo automatizzato. | ||
| Descrizione Questo indicatore distingue i task svolti manualmente da un utente da quelli eseguiti automaticamente dal sistema, come un processo batch pianificato per la valutazione delle valute o le compensazioni automatiche. In genere viene ricavato dall’ID di Questo attributo è fondamentale per comprendere il livello di automazione del processo di chiusura. Aiuta a individuare opportunità di ulteriore automazione mettendo in evidenza i task manuali ad alto volume. Viene inoltre utilizzato nell’analisi delle cause profonde per capire se i colli di bottiglia si verificano nelle fasi manuali o in quelle automatizzate. Perché è importante Distingue le attività svolte da persone da quelle eseguite dal sistema, un aspetto essenziale per individuare opportunità di automazione e analizzare l’efficienza di entrambe. Dove reperirli È un attributo derivato, spesso calcolato applicando una regola al campo «ResponsibleUser» (ad esempio, verificando la presenza di ID di utenti di sistema o batch come «BATCHUSER») o al codice transazione. Esempi truefalse | |||
| È stato completato nei tempi previsti IsOnTime | Indicatore booleano che assume valore vero se una tappa è stata completata entro la data prevista. | ||
| Descrizione Questo attributo fornisce un esito binario semplice sul rispetto della pianificazione. Si calcola confrontando È il calcolo alla base del KPI «Tasso di rendiconti finanziari completati nei tempi previsti». Semplifica il monitoraggio dei risultati trasformando il confronto tra date in uno stato chiaro, «nei tempi previsti» o «in ritardo», facilmente rappresentabile nelle Dashboard e nei report. Aiuta a misurare l’efficacia delle iniziative volte ad accelerare la chiusura. Perché è importante Semplifica l’analisi del rispetto delle scadenze, traducendola in un esito chiaro, positivo o negativo, e facilita il monitoraggio e la rendicontazione dei completamenti puntuali. Dove reperirli Campo calcolato: Esempi truefalse | |||
| È una rilavorazione della riconciliazione IsReconciliationRework | Indicatore booleano che assume valore vero se a un’attività di riconciliazione segue un rifiuto o un’ulteriore rettifica. | ||
| Descrizione Questo attributo calcolato individua i casi di rilavorazione nel sottoprocesso di riconciliazione. La logica segnala le attività o i casi in cui una riconciliazione viene respinta, riaperta dopo l’invio o seguita dalla registrazione di rettifiche per un conto Co.Ge. che si riteneva già riconciliato. L’indicatore è stato progettato appositamente per alimentare la Dashboard «Analisi delle rilavorazioni nelle riconciliazioni» e il KPI «Tasso di rilavorazione delle riconciliazioni». Trasforma sequenze di processo complesse in un attributo semplice e misurabile, che quantifica l’entità delle rilavorazioni e aiuta i team a migliorare la qualità al primo tentativo. Perché è importante Quantifica direttamente le rilavorazioni, una delle principali forme di inefficienza dei processi, e consente di intervenire in modo mirato per migliorare la qualità delle riconciliazioni. Dove reperirli Calcolato in base alla sequenza delle attività. Ad esempio, l’indicatore assume valore vero se, nello stesso periodo e per lo stesso conto Co.Ge., all’attività «Riconciliazione approvata» segue «Registrazione di rettifica». Esempi truefalse | |||
| Importo del documento DocumentAmount | Valore totale della registrazione finanziaria nella valuta del documento. | ||
| Descrizione Questo attributo rappresenta il valore monetario associato a un documento finanziario. Per le rettifiche di fine periodo, può indicare l’importo dell’accantonamento o della correzione registrata. L’analisi dell’importo è utile per valutare la rilevanza finanziaria. Consente agli analisti di dare priorità all’esame delle registrazioni di rettifica di importo elevato, che possono comportare un rischio finanziario maggiore. È possibile filtrare la mappa del processo per concentrarsi sulle transazioni che superano una determinata soglia, mettendo in evidenza le attività più rilevanti. Perché è importante Aggiunge una dimensione finanziaria all’analisi e consente di dare priorità ai problemi in base all’impatto monetario e alla rilevanza. Dove reperirli In genere, questo valore deve essere aggregato a partire da tabelle delle righe come BSEG o ACDOCA (campo WRBTR, importo nella valuta del documento). Esempi 15000.00250.75-500.00 | |||
| Sistema di origine SourceSystemId | Identificativo della specifica istanza o del client SAP S/4HANA da cui sono stati estratti i dati. | ||
| Descrizione Questo attributo specifica il sistema di origine dei dati. Negli ambienti con più istanze SAP, ad esempio per regioni o unità aziendali diverse, il campo è fondamentale per distinguere le fonti dei dati. Viene utilizzato principalmente per la governance dei dati, gli audit e la verifica della loro integrità. Nell’analisi può fungere da filtro per confrontare i processi tra diversi sistemi di origine, se i dati sono riuniti in un unico modello di Process Mining. Perché è importante Fornisce informazioni essenziali sulla provenienza dei dati e sul relativo contesto, chiarendone l’origine soprattutto negli ambienti con più sistemi. Dove reperirli In genere, si tratta di metadati aggiunti durante l’estrazione dei dati, spesso ricavati dall’ID di sistema (SY-SYSID) o dal client (SY-MANDT) in SAP. Esempi S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tempo di ciclo della chiusura di fine periodo PeriodCloseCycleTime | Tempo totale impiegato per chiudere un periodo finanziario, dalla prima all’ultima attività. | ||
| Descrizione Questa metrica rappresenta la durata complessiva del processo di chiusura di fine periodo per un singolo caso (periodo finanziario). Si calcola sottraendo la data e ora della prima attività da quelle dell’ultima attività del periodo. È un indicatore chiave di prestazione e supporta direttamente la Dashboard «Panoramica del tempo di ciclo della chiusura di fine periodo» e il KPI «Tempo medio di ciclo della chiusura di fine periodo». Fornisce una misura complessiva dell’efficienza e della rapidità del processo di chiusura, consentendo confronti nel tempo e tra diverse società. Perché è importante Rappresenta il KPI principale per la durata complessiva del processo e consente di monitorare nel tempo, a livello generale, i miglioramenti dell’efficienza. Dove reperirli Calcolato a livello di caso: Esempi P5D10H30MP7D2HP6D | |||
| Tipo di registrazione contabile JournalEntryType | Tipo di documento finanziario registrato, che distingue le registrazioni standard dagli accantonamenti e dalle rettifiche. | ||
| Descrizione Il tipo di registrazione contabile, denominato in SAP tipo documento, è una chiave che classifica i documenti contabili. Determina i tipi di conto su cui è possibile registrare un documento e permette di distinguere diverse transazioni aziendali, ad esempio una fattura fornitore (KR), una registrazione nel libro mastro (SA) o un pagamento cliente (DZ). Nel processo di chiusura di fine periodo, questo attributo è fondamentale per isolare specifiche tipologie di attività. Ad esempio, consente agli analisti di concentrarsi sulle registrazioni di rettifica a supporto della Dashboard «Analisi delle registrazioni di rettifica» e del KPI «Numero di registrazioni di rettifica». Aiuta inoltre a calcolare il «Rapporto delle registrazioni manuali». Perché è importante Classifica le transazioni finanziarie e consente di concentrarsi su specifici tipi di registrazione, come le rettifiche manuali, importanti per una chiusura di fine periodo senza intoppi. Dove reperirli È un campo standard della tabella di testata dei documenti finanziari BKPF (campo BLART). Esempi SAKRAB | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Data e ora dell’ultimo aggiornamento o dell’ultima estrazione dei dati dal sistema di origine. | ||
| Descrizione Questo attributo registra la data e l’ora dell’estrazione più recente dei dati e fornisce informazioni sulla loro attualità nello strumento di Process Mining. Serve principalmente per la governance dei dati e per informare gli utenti. Chi consulta le Dashboard può verificare quanto siano aggiornate le analisi, un aspetto particolarmente importante per Dashboard di monitoraggio quasi in tempo reale come Stato attuale della chiusura periodica. Aiuta a capire se i dati visualizzati risalgono a oggi, a ieri o alla settimana scorsa. Perché è importante Informa gli utenti sull’aggiornamento dei dati, aiutandoli a capire quanto siano attuali le informazioni sul processo. Dove reperirli Si tratta di metadati generati e associati al set di dati dallo strumento di estrazione o ETL al momento dell’esecuzione. Esempi 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Valuta del documento DocumentCurrency | Codice della valuta degli importi riportati nel documento finanziario. | ||
| Descrizione Questo attributo specifica la valuta in cui è stata registrata la transazione, ad esempio USD, EUR o JPY. Fornisce il contesto necessario per interpretare l’attributo Nelle organizzazioni multinazionali, l’analisi per valuta può essere importante: permette di interpretare correttamente i valori monetari ed è necessaria per convertire gli importi in un’unica valuta di rendicontazione ai fini dell’analisi aggregata. Senza questo contesto, i valori di Perché è importante Fornisce il contesto necessario per interpretare correttamente gli importi, soprattutto in un ambiente con più valute. Dove reperirli Si trova nella tabella di testata dei documenti finanziari BKPF (campo WAERS). Esempi USDEURJPY | |||
Attività di Record to Report - Chiusura del periodo e riconciliazione
| Attività | Descrizione | ||
|---|---|---|---|
| Approvazione della riconciliazione dei conti | Questa attività indica l’approvazione finale di una riconciliazione di un conto di contabilità generale e conferma che il saldo è stato verificato e che gli eventuali problemi sono stati risolti. L’evento si deduce dal passaggio allo stato 'Approvato' in uno strumento di riconciliazione. | ||
| Perché è importante Questa tappa segna il completamento di un’attività di controllo fondamentale. Monitorare i tempi di approvazione aiuta a individuare i colli di bottiglia nel processo di revisione ed è essenziale per misurare le rilavorazioni e la percentuale di attività completate correttamente al primo tentativo. Dove reperirli L’evento viene acquisito da un sistema di gestione delle riconciliazioni, come SAP Account Substantiation and Automation, monitorando la data e l’ora dello stato di approvazione finale. Acquisizione Individuare la data e l’ora in cui il campo di stato della riconciliazione viene aggiornato allo stato finale 'Approvato'. Tipo di evento inferred | |||
| Avvio della riconciliazione dei conti | Segna l’inizio del processo, manuale o semiautomatico, di verifica dei saldi dei conti di contabilità generale. L’evento si deduce quando lo stato di una riconciliazione passa da 'Nuovo' a 'In corso' o quando viene registrata la prima attività del preparatore. | ||
| Perché è importante È una tappa fondamentale per comprendere la durata e l’impegno richiesti dalla verifica dei saldi patrimoniali. Aiuta a individuare i conti o i reparti che avviano in ritardo le riconciliazioni. Dove reperirli In genere, l’evento viene acquisito da uno strumento dedicato alla riconciliazione, come SAP Account Substantiation and Automation di BlackLine o altri sistemi di terze parti. Si deduce dalle date e dagli orari delle variazioni di stato. Acquisizione Monitorare la data e l’ora della prima variazione di stato da 'Non avviato' per una determinata riconciliazione di un conto di contabilità generale. Tipo di evento inferred | |||
| Avvio della riconciliazione intercompany | Questa attività segna l’inizio del processo di abbinamento e riconciliazione delle transazioni tra diversi codici società appartenenti allo stesso gruppo. Spesso viene avviata eseguendo un processo di riconciliazione o creando un nuovo caso di riconciliazione nello strumento ICMR di SAP. | ||
| Perché è importante La riconciliazione intercompany è spesso complessa e richiede molto tempo. Analizzarne la durata e il flusso è fondamentale per semplificare la chiusura di gruppo e garantire l’accuratezza dei dati finanziari consolidati. Dove reperirli L’evento si deduce dalle variazioni di stato nel modulo SAP Intercompany Matching and Reconciliation (ICMR) o dalla creazione dei primi documenti di riconciliazione del periodo. Acquisizione Monitorare la data di creazione o la data e l’ora della variazione di stato delle unità di riconciliazione nello strumento ICMR per il periodo in questione. Tipo di evento inferred | |||
| Generazione dei prospetti finanziari | Questa attività segna la creazione dei prospetti finanziari ufficiali, come lo stato patrimoniale e il conto economico. Rappresenta il completamento dei processi contabili e di consolidamento di fine periodo. | ||
| Perché è importante È una tappa fondamentale del ciclo Record to Report. La sua tempistica è determinante per rispettare le scadenze di reporting e fornire tempestivamente le informazioni alle parti interessate. Dove reperirli L’evento si acquisisce al meglio con uno strumento di gestione della chiusura finanziaria come SAP Financial Closing Cockpit, in cui è registrato come attività esplicita. In alternativa, va dedotto dai log di generazione dei report o dalle date e dagli orari di creazione dei file. Acquisizione Monitorare lo stato di completamento dell’attività 'Genera prospetti finanziari' in uno strumento di chiusura oppure analizzare i log di esecuzione dei report. Tipo di evento inferred | |||
| Periodo aperto alle registrazioni | Segna l’inizio del periodo finanziario, quando i periodi contabili vengono aperti per registrare le transazioni. Si tratta di una modifica esplicita della configurazione, registrata nel sistema ed eseguita da un amministratore finanziario in SAP, che consente di inserire scritture contabili per il nuovo periodo. | ||
| Perché è importante Questa attività costituisce l’evento di inizio principale del processo di chiusura di fine periodo. Consente di misurare con precisione la durata totale del ciclo e definisce un punto di partenza chiaro per l’analisi del processo. Dove reperirli L’evento viene acquisito dai documenti delle modifiche (tabelle CDHDR e CDPOS), che registrano gli aggiornamenti alla tabella di controllo dei periodi contabili T001B, in genere effettuati tramite la transazione OB52. Acquisizione Filtrare i log delle modifiche della tabella T001B in base all’esercizio e al periodo specifici. Tipo di evento explicit | |||
| Periodo chiuso alle registrazioni | È l’ultima attività del ciclo: il periodo contabile viene chiuso formalmente per impedire ulteriori transazioni. In questo modo si garantisce l’integrità dei dati utilizzati nei report finanziari definitivi. | ||
| Perché è importante Questa attività costituisce l’evento finale del processo. È essenziale per calcolare la durata totale del ciclo di chiusura periodica e analizzare le tendenze relative al completamento del processo. Dove reperirli Come per l’apertura del periodo, l’evento viene acquisito dai documenti delle modifiche (tabelle CDHDR e CDPOS), che registrano gli aggiornamenti alla tabella di controllo dei periodi contabili T001B tramite la transazione OB52. Acquisizione Filtrare i log delle modifiche della tabella T001B per individuare la chiusura dell’esercizio e del periodo pertinenti. Tipo di evento explicit | |||
| Registrazione di una scrittura contabile di rettifica | Indica una scrittura contabile correttiva effettuata dopo le riconciliazioni iniziali, in genere per correggere discrepanze rilevate durante la revisione. Si tratta di una transazione esplicita registrata nella contabilità generale. | ||
| Perché è importante Un’elevata frequenza di scritture di rettifica indica una qualità insufficiente al primo tentativo nei processi a monte o nelle riconciliazioni. Analizzare queste scritture è fondamentale per individuare le cause profonde degli errori e ridurre le rilavorazioni. Dove reperirli Le scritture sono registrate esplicitamente nelle tabelle ACDOCA e BKPF. È possibile individuarle in base a specifici tipi di documento, a date di registrazione vicine alla fine del ciclo di chiusura o a determinate descrizioni. Acquisizione Filtrare le scritture contabili in BKPF combinando il tipo di documento e la data di registrazione rispetto alle attività di riconciliazione. Tipo di evento explicit | |||
| Approvazione dei prospetti finanziari | Indica l’approvazione finale dei prospetti finanziari da parte della direzione autorizzata prima della loro pubblicazione. Spesso il processo si svolge offline, ma può essere acquisito se è previsto un passaggio formale di approvazione digitale. | ||
| Perché è importante È l’ultimo controllo di qualità e conformità. Monitorarne la tempistica è essenziale per comprendere il rispetto delle scadenze di reporting e l’efficienza complessiva del ciclo di revisione della direzione. Dove reperirli L’evento viene acquisito se esiste un flusso di lavoro o un campo di stato per l’approvazione dei prospetti, ad esempio in SAP Financial Closing Cockpit o in un sistema di gestione documentale. Acquisizione Individuare un campo dati e una data e ora che indichino l’approvazione finale del pacchetto di prospetti finanziari. Tipo di evento inferred | |||
| Esecuzione della compensazione automatica | Indica l’esecuzione dei programmi di compensazione automatica in SAP, come il processo di compensazione GR/IR (entrata merci/ricezione fattura). Questi processi abbinano e compensano le partite aperte su specifici conti di contabilità generale, riducendo il lavoro manuale di riconciliazione. | ||
| Perché è importante Questa attività evidenzia il livello di automazione del processo di riconciliazione. Eventuali errori o eccezioni durante l’esecuzione possono comportare molto lavoro manuale e ritardi. Dove reperirli L’evento viene acquisito dai log di esecuzione di specifici processi batch, come F.13 o F.13E per la compensazione automatica. Le tabelle dei log TBTCO e TBTCP contengono i dettagli dell’esecuzione. Acquisizione Monitorare le date e gli orari di inizio e fine dei processi associati a transazioni come F.13 nei log dei processi SAP. Tipo di evento explicit | |||
| Esecuzione della valutazione in valuta estera | È una procedura standard di fine mese che rivaluta le partite aperte e i saldi in valuta estera sulla base dei tassi di cambio di fine periodo. L’esecuzione del programma registra le differenze di valutazione risultanti. | ||
| Perché è importante Garantisce la conformità ai principi contabili e fornisce un quadro finanziario accurato. Monitorare questa attività aiuta a verificare che tutte le valutazioni valutarie vengano eseguite nei tempi previsti. Dove reperirli L’evento viene acquisito dai log di esecuzione del programma di valutazione in valuta estera (ad esempio, FAGL_FCV). I dettagli dei processi sono archiviati nelle tabelle TBTCO e TBTCP. Acquisizione Monitorare i log di esecuzione dei processi relativi alla transazione FAGL_FCV o al programma sottostante. Tipo di evento explicit | |||
| Esecuzione delle attività di consolidamento | Indica l’esecuzione delle attività di consolidamento in SAP Group Reporting, come la conversione valutaria, la riclassificazione e l’eliminazione degli utili intercompany. Queste attività sono in genere gestite e registrate nel monitor di consolidamento. | ||
| Perché è importante Per le organizzazioni con più entità giuridiche, il consolidamento è una fase critica del processo. Monitorare queste attività aiuta a semplificare la chiusura di gruppo e a garantire la pubblicazione tempestiva dei dati consolidati. Dove reperirli L’evento viene acquisito dai log di stato nel Data Monitor o nel Consolidation Monitor di SAP S/4HANA for Group Reporting. In genere, ogni attività riporta un utente, una data e un’ora e uno stato. Acquisizione Estrarre i log di esecuzione delle attività dalle tabelle sottostanti del monitor di consolidamento di Group Reporting. Tipo di evento explicit | |||
| Preparazione del bilancio di verifica | Indica che è stato generato e salvato un bilancio di verifica per la revisione, un passaggio fondamentale prima della preparazione dei prospetti finanziari finali. Per acquisire questo evento, spesso è necessario che l’output del report venga salvato. | ||
| Perché è importante La preparazione del bilancio di verifica è un controllo di qualità fondamentale. Analizzarne la tempistica aiuta a valutare la preparazione della rendicontazione finale e può mettere in luce ritardi nelle attività precedenti. Dove reperirli Spesso non si tratta di un evento esplicito. Può essere dedotto dall’esecuzione di una specifica transazione di reporting, se le varianti vengono salvate con l’utente e la data, oppure se il processo è gestito con uno strumento come SAP Financial Closing Cockpit. Acquisizione È necessaria un’analisi del sistema per verificare la presenza di un meccanismo di registrazione affidabile, come i log di esecuzione dei report o gli elenchi di attività del closing cockpit. Tipo di evento inferred | |||
| Registrazione di ratei e accantonamenti | Questo evento registra la creazione di scritture contabili manuali per ratei, risconti e altri accantonamenti necessari per una corretta rendicontazione finanziaria secondo il principio di competenza. Si tratta di transazioni esplicite registrate nella contabilità generale. | ||
| Perché è importante Monitorare queste registrazioni aiuta ad analizzare il volume e la tempistica delle rettifiche manuali. Un volume elevato può indicare opportunità di automazione o di miglioramento dei processi a monte. Dove reperirli Le registrazioni sono documentate esplicitamente nella tabella del giornale universale ACDOCA e nella tabella di testata BKPF. È possibile individuarle tramite specifici tipi di documento configurati per i ratei. Acquisizione Filtrare i documenti nella tabella BKPF in base al tipo di documento (ad esempio, 'SA' o tipi personalizzati) e alla data di registrazione nel periodo. Tipo di evento explicit | |||
| Trasferimento dei dati dei sottosistemi completato | Indica il completamento dei processi batch che trasferiscono dati riepilogativi dai registri ausiliari, come Contabilità clienti, Contabilità fornitori e Contabilità cespiti, alla contabilità generale. In questo modo, tutte le transazioni operative sottostanti vengono riportate nella contabilità generale prima dell’avvio delle procedure di chiusura. | ||
| Perché è importante I ritardi nella chiusura dei registri ausiliari possono rappresentare un importante collo di bottiglia per l’intero processo. Monitorare questa attività aiuta a individuare inefficienze nella raccolta e nell’integrazione dei dati provenienti dai sistemi di origine. Dove reperirli L’evento si deduce dallo stato di completamento corretto di specifici processi batch responsabili della liquidazione dei conti e del trasferimento dei dati. I log dei processi sono disponibili nelle tabelle TBTCO e TBTCP. Acquisizione Individuare e monitorare le date e gli orari di completamento dei processi batch pertinenti nella panoramica dei processi SAP (transazione SM37). Tipo di evento explicit | |||
Guide all’estrazione
Passaggi
- Individuare e verificare le viste CDS: Acceda al sistema SAP S/4HANA tramite SAP HANA Studio o Eclipse con ADT. Utilizzi gli ABAP Development Tools per cercare e verificare la presenza delle viste CDS standard indicate nella query, come I_JournalEntryItem, I_BatchJob e I_ConsolidationTaskLog. Per processi come la riconciliazione dei conti, potrebbe essere necessario creare viste CDS personalizzate, ad esempio Z_I_ACCOUNTRECONCILIATION, per acquisire le modifiche di stato.
- Esporre le viste CDS tramite OData: Nel backend SAP, utilizzi la transazione
SEGW(Gateway Service Builder) per creare un nuovo progetto. Faccia clic con il pulsante destro del mouse sulla cartella Data Model e selezioni 'Reference -> Data Source'. Aggiunga le viste CDS necessarie. Generi gli oggetti di runtime per creare un servizio OData che renda disponibili queste viste per l’accesso esterno. - Attivare il servizio OData: Acceda alla transazione
/IWFND/MAINT_SERVICEnell’hub SAP Gateway. Faccia clic su 'Add Service', individui il servizio generato nel passaggio precedente e lo aggiunga. Il servizio sarà così attivo e disponibile per le query. - Stabilire la connessione ai dati: Utilizzando lo strumento di estrazione dati scelto, ad esempio Python, Power BI o una piattaforma ETL dedicata, stabilisca una connessione al servizio OData appena creato. Le serviranno l’URL del servizio e credenziali con le autorizzazioni necessarie per accedere alle viste CDS.
- Adattare ed eseguire la query: Copi la query SQL fornita. Modifichi i valori segnaposto relativi agli intervalli di date, ai codici società e ai nomi delle viste CDS personalizzate o dei job batch in base alla configurazione SAP in uso. Esegua la query sull’endpoint del servizio OData. OData utilizza una sintassi diversa (
$filter,$select), quindi potrebbe essere necessario tradurre la logica della query UNION ALL in una serie di chiamate API separate, una per ogni attività. - Consolidare i dati delle attività: Poiché OData in genere non supporta query UNION ALL complesse in una singola chiamata, dovrà eseguire una richiesta separata per ogni blocco di attività della query. Consolidi i risultati di tutte le richieste in un unico insieme di dati o in una tabella nello strumento client.
- Trasformare e pulire i dati: Riveda i dati consolidati. Verifichi che le colonne
EventTimeeEndTimeutilizzino un formato di data e ora coerente. Controlli cheFinancialPeriodsia formattato correttamente come 'YYYY-MM'. Gestisca, se necessario, i valori NULL in colonne comeResponsibleUseroDocumentNumber. - Esportare come Event Log: Esporti l’insieme di dati finale e consolidato in un file CSV. Verifichi che le intestazioni delle colonne corrispondano agli attributi richiesti:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUsere così via. Il file è ora pronto per essere caricato in ProcessMind.
Configurazione
- Viste CDS: La query si basa su una combinazione di viste CDS standard e personalizzate. Sono essenziali viste standard come
I_JournalEntryItem(per le registrazioni contabili) eI_BatchJob(per le esecuzioni automatizzate). Spesso sono necessarie viste personalizzate, comeZ_I_ACCOUNTRECONCILIATION, per acquisire lo stato dei processi interni non coperti dalle viste standard. - Intervallo di date: Definisca un intervallo di date specifico per l’estrazione, così da gestire il volume dei dati. La query utilizza i segnaposto
[Start Date]e[End Date], che in genere dovrebbero coprire da 3 a 6 periodi fiscali completi per consentire un’analisi significativa. - Filtri chiave: I filtri sono fondamentali per le prestazioni e la pertinenza dei risultati. Applichi sempre un filtro per
CompanyCode. Altri filtri importanti includonoLedger(ad esempio, '0L' per il ledger principale),FiscalYeare valori specifici diDocumentTypeper distinguere le registrazioni ordinarie da ratei e rettifiche. - Prerequisiti: L’utente che esegue l’estrazione deve disporre in SAP delle autorizzazioni per accedere alle viste CDS specificate e utilizzare i servizi OData, ad esempio gli oggetti di autorizzazione
S_SERVICEeS_RFC. I servizi SAP Gateway devono essere configurati e attivati. - Prestazioni: Le query su
I_JournalEntryItempossono richiedere molte risorse. Applichi sempre filtri selettivi, soprattutto per date, codici società e ledger. Valuti di eseguire l’estrazione nelle fasce orarie di minore attività o di utilizzare una strategia di caricamento incrementale per il monitoraggio continuo.
Query di esempio sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; Passaggi
- Verifichi che sia disponibile l’accesso diretto in lettura allo schema SAP HANA contenente le tabelle applicative necessarie e individui il proprietario dello schema per ACDOCA, TBTCO, CDHDR e CDPOS. Sostituisca il segnaposto dello schema nella query con il nome dello schema approvato.
- Verifichi l’anno fiscale, il periodo fiscale, l’ambito dei codici società e l’intervallo di date per l’estrazione. Utilizzi un intervallo che copra l’intero ciclo di chiusura, in genere da tre a sei mesi, e sostituisca i parametri delle date con valori adatti al sistema in uso.
- Convalidi le mappature locali dei campi per le modifiche alla configurazione dei periodi contabili, il completamento dei job batch, le modifiche dello stato di riconciliazione, l’esecuzione del consolidamento, la generazione dei rendiconti e le registrazioni delle approvazioni. La query utilizza segnaposto descrittivi per gli oggetti di origine che non sono garantiti in tutte le installazioni di SAP S/4HANA. Prima di eseguirla, sostituisca tali segnaposto con viste o tabelle approvate nel sistema in uso.
- Esegua la query con credenziali di database di sola lettura. La query crea esplicitamente una riga evento per ogni attività richiesta e non deduce eventi aggiuntivi dall’ordine degli eventi.
- Riveda le colonne restituite. FinancialPeriod è l’identificativo del caso, ActivityName indica l’attività dell’evento ed EventTime è la marca temporale richiesta. EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus e TargetCompletionDate sono inclusi quando presenti nel record di origine.
- Verifichi che il risultato includa tutte le attività richieste, comprese quelle per cui potrebbe non esserci alcun record di origine in un determinato periodo. Per i tipi di attività mancanti, la query restituisce una riga di convalida con ActivityName impostato su Activity Coverage Validation. Se l’importazione in ProcessMind richiede esclusivamente eventi aziendali, rimuova o gestisca separatamente questa riga prima del caricamento.
- Riconcili gli eventi rappresentativi con i record applicativi SAP e i log dei job. Verifichi che gli eventi delle registrazioni contabili corrispondano ai record ACDOCA, gli eventi dei job ai record TBTCO e gli eventi di modifica ai record CDHDR e CDPOS o alle fonti configurate per la riconciliazione e le approvazioni.
- Esporti il risultato in un file CSV UTF-8 o in un altro formato tabellare supportato da ProcessMind. Mantenga esattamente i nomi delle colonne FinancialPeriod, ActivityName ed EventTime. Ordini i dati per FinancialPeriod ed EventTime e conservi una riga per ogni evento estratto esplicitamente.
- Carichi l’Event Log in ProcessMind e configuri FinancialPeriod come identificativo del caso, ActivityName come attività ed EventTime come marca temporale di inizio. Mappi EndTime come marca temporale di fine, se disponibile, e le colonne rimanenti come attributi dell’evento o del caso.
Nota importante sulla mappatura delle fonti: SAP S/4HANA non prevede una struttura di tabelle universale per ogni strumento di riconciliazione, monitor di consolidamento, archivio dei rendiconti, flusso di approvazione o configurazione dei periodi contabili. Sostituisca ogni segnaposto [Your table name] e [Your column name] nella query con un oggetto e una colonna verificati nel sistema in uso. Non consideri un segnaposto come SQL eseguibile.
Configurazione
- Accesso al database: Utilizzi un utente del database SAP HANA con autorizzazioni di sola lettura e autorizzazione SELECT su ACDOCA, TBTCO, CDHDR, CDPOS e sugli oggetti di origine configurati per il controllo dei periodi contabili, la riconciliazione, il consolidamento, la rendicontazione e le approvazioni.
- Configurazione dello schema: Sostituisca [Your SAP schema] con lo schema effettivo che contiene gli oggetti applicativi. Verifichi se si tratta di tabelle, viste di calcolo o viste di rendicontazione approvate.
- Intervallo di date: Estragga l’intero ciclo di chiusura, in genere da tre a sei mesi. Includa le attività di apertura e chiusura, le registrazioni tardive, gli storni, le approvazioni e le rettifiche successive alla chiusura.
- Periodo fiscale: Applichi un filtro per l’anno e il periodo fiscale utilizzati dal codice società. Non presuma che i periodi coincidano con l’anno solare se la variante dell’anno fiscale è diversa.
- Codice società: Applichi un filtro per codice società quando il processo riguarda solo alcune entità giuridiche. Utilizzi [Configure based on your system] se l’ambito è definito in una mappatura organizzativa separata.
- Tipi di documento: Limiti l’estrazione delle registrazioni contabili ai tipi di documento utilizzati per ratei, accantonamenti, rettifiche, valutazioni, compensazioni e altre registrazioni di chiusura. Prima di attivare questi filtri, verifichi la configurazione locale dei tipi di documento.
- Stato dei job: Per le attività di completamento, includa solo i job completati o terminati correttamente. Verifichi i valori di stato locali di TBTCO prima di applicare un criterio di stato.
- Documenti di modifica: Applichi filtri a CDHDR e CDPOS in base alla classe di oggetto e agli indicatori di modifica pertinenti, dopo aver verificato la configurazione locale. I soli documenti di modifica potrebbero non identificare tutte le attività aziendali.
- Fonti di riconciliazione e approvazione: Configuri oggetti di origine verificati per le transizioni di stato della riconciliazione, le azioni dei preparatori, le approvazioni, le date obiettivo e la firma digitale. Queste fonti variano in base ai componenti SAP e alle estensioni installati.
- Prestazioni: Limiti i criteri di filtro per anno fiscale, periodo fiscale, codice società, data di registrazione e marca temporale dell’evento. Applichi i filtri in ogni ramo UNION ALL, eviti scansioni senza restrizioni di ACDOCA ed esegua l’estrazione durante una finestra di rendicontazione approvata.
- Tipi di dati: Normalizzi le marche temporali usando un fuso orario e un tipo di dato comuni. Converta le stringhe vuote in NULL e mantenga gli zeri iniziali nei codici società, nei numeri di conto e nei numeri di documento.
- Prerequisiti: Verifichi che siano disponibili e popolati i componenti SAP necessari, gli strumenti di riconciliazione, le funzionalità di consolidamento, la registrazione dei job, l’attivazione dei documenti di modifica e gli eventuali log di audit dei rendiconti o dei flussi di lavoro.
- Sicurezza e conformità: Applichi il principio del privilegio minimo, protegga i dati finanziari e degli utenti, documenti lo scopo dell’estrazione e rispetti i requisiti di audit SAP e del database dell’organizzazione.
Query di esempio sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName È pronto a iniziare?
Aiuti la Sua organizzazione a migliorare efficienza e conformità utilizzando questo template dei dati. Inizi oggi a trasformare il processo Record to Report.
Ottimizzi oggi la chiusura e la riconciliazione del processo Record to Report
Individui le inefficienze e riduca fino al 30% il tempo di ciclo della chiusura.
Non è richiesta alcuna carta di credito. Può iniziare in pochi minuti.