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à principali da monitorare per l'analisi del processo
- Guida passo dopo passo all'estrazione dei dati
Record to Report - Attributi della chiusura del periodo e della riconciliazione
| Nome | Descrizione | ||
|---|---|---|---|
| Periodo finanziario FinancialPeriod | Un identificativo univoco del ciclo di reporting finanziario, ad esempio '2023-12' per dicembre 2023, che funge da caso per il processo di chiusura di fine periodo. | ||
| Descrizione Il periodo finanziario è l'identificativo principale del caso che raggruppa tutte le attività relative alla chiusura dei libri contabili per un determinato intervallo temporale, generalmente un mese di calendario o un periodo fiscale. Ogni periodo finanziario rappresenta un'esecuzione completa del processo di fine periodo. Nell'analisi di Process Mining, questo attributo consente di monitorare l'intero ciclo di vita di una chiusura periodica, dall'avvio al reporting finale. Viene utilizzato per confrontare i tempi di ciclo tra periodi diversi, individuare i percorsi di processo ricorrenti e analizzare le variazioni tra le procedure di chiusura mensili, trimestrali e annuali. Considerando ogni periodo come un caso, gli analisti possono misurare le performance nel tempo e individuare i colli di bottiglia sistemici. Perché è importante È l'identificativo essenziale del caso su cui si basa l'analisi e consente di confrontare nel tempo le performance della chiusura periodica e di individuare tendenze o problemi ricorrenti. Dove reperirlo Derivato dalla combinazione dei campi Anno fiscale (GJAHR) e Periodo di registrazione (MONAT) nelle testate dei documenti finanziari, generalmente da tabelle come BKPF. Esempi 2023-122024-032024-Q1 | |||
| Attività ActivityName | Il nome di una specifica fase o attività aziendale eseguita nell'ambito del processo di chiusura periodica, come 'Scrittura di rettifica registrata' o 'Periodo chiuso per le registrazioni'. | ||
| Descrizione Questo attributo rappresenta un singolo evento o un'attività nel processo end-to-end di chiusura periodica e riconciliazione. Le attività sono gli elementi costitutivi della mappa del processo e mostrano la sequenza delle operazioni eseguite. Spesso derivano da una combinazione di codici transazione, tipi di documento o modifiche di stato in SAP S/4HANA. L'analisi delle attività è fondamentale nel Process Mining. Aiuta a visualizzare il flusso del processo, individuare le deviazioni dalla procedura standard, scoprire i colli di bottiglia in cui le attività richiedono troppo tempo e comprendere la frequenza e l'ordine delle operazioni. È essenziale per Dashboard come Period Close Variant Analysis e Current Period Close Status. 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 reperirlo Derivato da diverse fonti, come i Transaction Code (TCODE), i Document Type (BLART) o i campi di stato nelle tabelle relative alle attività di chiusura finanziaria, ad esempio da SAP Financial Closing Cockpit. Esempi Periodo aperto per le registrazioniRiconciliazione del conto avviataBilanci d'esercizio generatiRiconciliazione intercompany avviata | |||
| Ora di inizio EventTime | Il timestamp che indica quando una specifica attività è iniziata o è stata registrata nel sistema. | ||
| Descrizione L'Event Time registra la data e l'ora precise 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 modifiche di stato o le attività, corrisponde al timestamp in cui la modifica è stata registrata. Questo attributo è fondamentale per ordinare cronologicamente le attività e costituisce la base di tutte le analisi basate sul tempo. Viene utilizzato per calcolare i tempi di ciclo tra le attività, la durata delle singole operazioni e la durata complessiva end-to-end del processo. Supporta direttamente KPI come Average Period Close Cycle Time e Avg Reconciliation Approval Time. Perché è importante Questo timestamp obbligatorio consente di ordinare cronologicamente gli eventi e costituisce la base per tutti i calcoli di durata e performance. Dove reperirlo Proviene da campi timestamp 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, come CDHDR e CDPOS. Esempi 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Codice società CompanyCode | Un identificativo univoco di un'entità giuridica o di una società all'interno dell'organizzazione SAP. | ||
| Descrizione Il Company Code rappresenta un'unità contabile indipendente all'interno di un'azienda, per la quale è possibile creare un insieme completo e autonomo di conti. Tutte le attività di chiusura di fine periodo vengono eseguite a livello di Company Code. Si tratta di una dimensione organizzativa fondamentale per l'analisi finanziaria. Nel Process Mining, consente di confrontare il processo di chiusura tra diverse entità giuridiche. La Dashboard «Period Close Variant Analysis» utilizza il Company Code per individuare le incoerenze e promuovere 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 best practice. Dove reperirlo È presente praticamente in tutte le tabelle finanziarie di SAP, in particolare nella tabella di testata BKPF (campo BUKRS). Esempi 10001710US01DE01 | |||
| Data obiettivo di completamento TargetCompletionDate | La data pianificata o la scadenza entro cui completare un'attività chiave, ad esempio la generazione del bilancio. | ||
| Descrizione La data obiettivo di completamento rappresenta la scadenza interna o esterna di una specifica milestone nel processo di chiusura di fine periodo. È la data entro la quale si prevede che un task venga completato. Questo attributo è essenziale per misurare il rispetto della pianificazione e le prestazioni rispetto alle scadenze. Costituisce la base della Dashboard «Reporting Deadline Adherence» e del KPI «Financial Statement On-Time Rate», che confrontano questa data obiettivo con Perché è importante Consente di analizzare le prestazioni rispetto alle scadenze, contribuendo a misurare e migliorare i tassi di completamento puntuale delle attività di chiusura critiche. Dove reperirlo Questi dati risiedono spesso in un sistema di gestione dei task o di pianificazione, come SAP Financial Closing cockpit, nel quale gli elenchi dei task di chiusura sono definiti con date di fine pianificate. Esempi 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Numero di conto di contabilità generale GlAccountNumber | L'identificativo di uno specifico conto della contabilità generale. | ||
| Descrizione Il numero di conto della contabilità generale (GL) identifica i singoli conti utilizzati per registrare le transazioni finanziarie, ad esempio disponibilità liquide, debiti verso fornitori o ricavi. Molte attività di chiusura di fine periodo, come le riconciliazioni e le registrazioni di rettifica, sono direttamente collegate a specifici conti GL. Questo attributo è essenziale per un'analisi dettagliata dei processi finanziari. La Dashboard «Adjusting Journal Entry Analysis» lo utilizza per mostrare il volume delle rettifiche per conto e contribuire a individuare le aree problematiche. Anche il KPI «Avg GL Account Reconciliation Time» si basa su questo attributo per identificare i ritardi associati a conti specifici. Perché è importante Collega le attività di processo a specifici conti finanziari, consentendo un'analisi dettagliata delle riconciliazioni e delle registrazioni contabili per individuare le cause alla radice dei problemi. Dove reperirlo È presente nelle tabelle delle posizioni dei documenti finanziari, principalmente BSEG (campo HKONT) o nella tabella del giornale universale di S/4HANA ACDOCA. Esempi 113100004000000073000000 | |||
| Numero documento DocumentNumber | L'identificativo univoco di un documento finanziario, ad esempio una registrazione contabile. | ||
| Descrizione Il numero documento è una chiave univoca assegnata da SAP a ogni registrazione finanziaria. Costituisce 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 Case ID, fornisce un collegamento essenziale al sistema di origine. Gli analisti possono utilizzare il numero documento per passare dalla vista di Process Mining ai dettagli della specifica transazione in SAP S/4HANA e svolgere un'analisi delle cause alla radice. È particolarmente utile quando si esaminano specifiche registrazioni contabili di rettifica o registrazioni di riconciliazione. Perché è importante Fornisce un riferimento diretto alla transazione sottostante in SAP, consentendo di accedere facilmente ai dettagli e garantendo la tracciabilità dal modello di processo. Dove reperirlo Si trova nella tabella di testata dei documenti finanziari BKPF (campo BELNR) e in tabelle delle posizioni come BSEG o ACDOCA. Esempi 100000045190000001300000023 | |||
| Ora di fine EndTime | Il timestamp che indica 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à con una durata misurabile, rappresenta il timestamp di finalizzazione. Insieme all'ora di inizio, questo attributo è essenziale per calcolare il Perché è importante Consente di calcolare la durata delle attività (Processing Time), un dato fondamentale per individuare i colli di bottiglia nelle performance e analizzare l'efficienza. Dove reperirlo Come l'ora di inizio, può provenire da diversi campi timestamp. Per alcune attività può coincidere con l'ora di inizio; per altre può corrispondere a una data separata di completamento o modifica nelle tabelle applicative o nei log delle modifiche, come CDHDR e CDPOS. Esempi 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Stato della riconciliazione ReconciliationStatus | Lo stato di un'attività di riconciliazione di un conto, ad esempio «Aperta», «In corso» o «Approvata». | ||
| Descrizione Questo attributo tiene traccia dello stato del processo di riconciliazione per un determinato conto o task. Indica se una riconciliazione è stata avviata, inviata per la revisione, approvata o rifiutata. I cambiamenti di stato costituiscono eventi chiave del processo. È fondamentale per la Dashboard «Reconciliation Rework Analysis». Analizzando la sequenza degli stati, è possibile individuare i casi in cui lo stato «Approvata» è seguito da ulteriori rettifiche, segnalando una rilavorazione. Supporta inoltre il KPI «First-Pass Reconciliation Rate», mostrando quali riconciliazioni vengono approvate senza una precedente rifiutazione o riapertura. Perché è importante Tiene traccia dell'avanzamento e dell'esito delle attività di riconciliazione, rendendo possibile individuare le rilavorazioni, misurare i tassi di approvazione e analizzare i colli di bottiglia. Dove reperirlo Queste informazioni sono generalmente archiviate nelle tabelle associate allo specifico strumento di riconciliazione utilizzato, come SAP Financial Closing cockpit o SAP Account Substantiation and Automation by BlackLine. Esempi Non iniziatoIn preparazioneApprovatoRifiutato | |||
| Utente responsabile ResponsibleUser | L'ID utente della persona che ha eseguito l'attività o che è responsabile dell'operazione. | ||
| Descrizione Questo attributo identifica il dipendente che ha eseguito una determinata attività, come la registrazione di una scrittura contabile o l'approvazione di una riconciliazione. Generalmente viene acquisito come ID utente nei log di sistema e nelle testate dei documenti. L'analisi del processo per utente è fondamentale per comprendere la distribuzione del carico di lavoro, le performance individuali e le esigenze formative. La Dashboard Resource Allocation Efficiency utilizza direttamente questo attributo per visualizzare i tempi di elaborazione delle attività per utente. Può inoltre aiutare a individuare i candidati all'automazione, mettendo in evidenza le attività altamente ripetitive eseguite da numerosi utenti. Perché è importante Collega le attività di processo alle persone che le hanno eseguite, consentendo di analizzare il carico di lavoro, ottimizzare le risorse e gestire le performance. Dove reperirlo Si trova comunemente nelle tabelle di testata dei documenti, come BKPF (campo USNAM, User Name), o nelle tabelle dei documenti di modifica, come CDHDR (campo USERNAME). Esempi ABROWNCSMITHDJOHNSON | |||
| Codice transazione TransactionCode | Il codice transazione SAP (T-code) utilizzato per eseguire l'attività. | ||
| Descrizione Un codice transazione è una scorciatoia per avviare una specifica funzione o un programma in SAP. Ad esempio, FB01 viene utilizzato per registrare un documento, mentre FAGLB03 serve a visualizzare i saldi dei conti GL. Il T-code fornisce spesso un indicatore tecnico chiaro dell'attività eseguita. Questo attributo contribuisce alla definizione delle attività del modello di processo. È un metodo affidabile per distinguere le attività automatizzate da quelle manuali e comprendere 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 visione tecnica, a livello di sistema, delle modalità di esecuzione di un'attività, utile per individuare i passaggi manuali rispetto a quelli automatizzati e le procedure non standard. Dove reperirlo È presente nella tabella di testata dei documenti finanziari BKPF (campo TCODE) o nei log dei documenti di modifica. Esempi FB01FAGL_FCVF.13 | |||
| Data effettiva di completamento ActualCompletionDate | La data effettiva in cui è stata completata un'attività chiave o l'intera chiusura di fine periodo. | ||
| Descrizione Questo attributo registra la data effettiva di completamento di una milestone significativa. Corrisponde al timestamp dell'approvazione finale del bilancio o della chiusura del periodo di registrazione. È il corrispondente di Perché è importante Fornisce la tempistica effettiva delle milestone, necessaria per misurare le prestazioni rispetto alle scadenze pianificate e analizzare i ritardi. Dove reperirlo Deriva da EventTime dell'ultima attività di una sequenza, come «Financial Statements Approved» o «Period Closed For Posting». Esempi 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| È automatizzata IsAutomated | Un flag booleano che indica se l'attività è stata eseguita da un utente di sistema o da un processo automatizzato. | ||
| Descrizione Questo flag distingue tra i task eseguiti manualmente da un utente e quelli eseguiti automaticamente dal sistema, come un job batch pianificato per la valutazione delle valute o le esecuzioni automatiche di compensazione. Viene generalmente derivato dall'ID Questo attributo è fondamentale per comprendere il livello di automazione del processo di chiusura. Aiuta a individuare opportunità di ulteriore automazione evidenziando le attività manuali ad alto volume. Viene inoltre utilizzato nell'analisi delle cause alla radice per verificare se i colli di bottiglia si verificano in passaggi manuali o automatizzati. Perché è importante Distingue tra attività umane e attività di sistema, aspetto fondamentale per individuare opportunità di automazione e analizzare l'efficienza di entrambe. Dove reperirlo È un attributo derivato, spesso basato su una regola applicata al campo «ResponsibleUser» (ad esempio, verificando la presenza di ID di utenti di sistema o batch come «BATCHUSER») o al Transaction Code. Esempi truefalse | |||
| È puntuale IsOnTime | Un flag booleano impostato su vero se una milestone è stata completata entro la data obiettivo o prima di tale data. | ||
| Descrizione Questo attributo fornisce un esito binario semplice del rispetto della pianificazione. Viene calcolato confrontando È alla base del calcolo del KPI «Financial Statement On-Time Rate». Semplifica il monitoraggio delle prestazioni trasformando i confronti tra date in uno stato chiaro, «puntuale» o «in ritardo», facilmente visualizzabile 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 trasformandola in un esito chiaro di successo o insuccesso, facilitando il monitoraggio e la reportistica delle prestazioni puntuali. Dove reperirlo Campo calcolato: Esempi truefalse | |||
| È una rilavorazione della riconciliazione IsReconciliationRework | Un flag booleano impostato su vero se un'attività di riconciliazione è seguita da un rifiuto o da ulteriori rettifiche. | ||
| Descrizione Questo attributo calcolato individua i casi di rilavorazione all'interno del sottoprocesso di riconciliazione. La logica segnala le attività o i casi in cui una riconciliazione viene rifiutata, riaperta dopo l'invio oppure in cui vengono registrate scritture di rettifica dopo che una riconciliazione per un conto GL era stata considerata completata. Questo flag è progettato specificamente per alimentare la Dashboard «Reconciliation Rework Analysis» e il KPI «Reconciliation Rework Rate». Trasforma sequenze di processo complesse in un attributo semplice e misurabile, quantificando l'entità della rilavorazione e aiutando i team a migliorare la qualità al primo passaggio. Perché è importante Quantifica direttamente la rilavorazione, una forma fondamentale di inefficienza del processo, consentendo analisi mirate e iniziative di miglioramento della qualità delle riconciliazioni. Dove reperirlo Calcolato in base alla sequenza delle attività. Ad esempio, il flag viene impostato su vero se la sequenza «Reconciliation Approved» è seguita da «Adjusting Journal Entry Posted» per lo stesso conto GL e nello stesso periodo. Esempi truefalse | |||
| Importo documento DocumentAmount | Il 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ò corrispondere all'importo dell'accantonamento o della correzione registrata. L'analisi dell'importo è utile per le valutazioni di rilevanza. Consente agli analisti di dare priorità all'esame delle registrazioni di rettifica di importo elevato, che possono comportare un rischio finanziario maggiore. Può essere utilizzato per filtrare la mappa di processo e concentrarsi solo sulle transazioni al di sopra di una determinata soglia, semplificando la visualizzazione alle attività più significative. Perché è importante Aggiunge una dimensione finanziaria all'analisi, consentendo di stabilire la priorità dei problemi in base all'impatto monetario e alla rilevanza. Dove reperirlo Questo valore deve generalmente essere aggregato dalle tabelle delle posizioni, come BSEG o ACDOCA (campo WRBTR, importo nella valuta del documento). Esempi 15000.00250.75-500.00 | |||
| Sistema sorgente 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, questo campo è fondamentale per distinguere le fonti dei dati. Viene utilizzato principalmente per la governance dei dati, l'audit e la verifica dell'integrità dei dati. Nell'analisi può essere usato come filtro per confrontare i processi tra diversi sistemi sorgente, se questi vengono combinati in un unico modello di Process Mining. Perché è importante Fornisce informazioni essenziali sulla provenienza dei dati e il relativo contesto, garantendo chiarezza sull'origine dei dati, soprattutto nei paesaggi multi-sistema. Dove reperirlo Si tratta generalmente di metadati aggiunti durante il processo di 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 attraversamento del ciclo di chiusura PeriodCloseCycleTime | Il tempo totale impiegato per un periodo finanziario, dalla prima all'ultima attività. | ||
| Descrizione Questa metrica rappresenta la durata end-to-end del processo di chiusura di fine periodo per un singolo caso (Financial Period). Viene calcolata come differenza tra il timestamp dell'ultima attività e quello della prima attività all'interno del periodo. È un indicatore chiave di performance primario, che supporta direttamente la Dashboard «Period Close Cycle Time Overview» e il KPI «Average Period Close Cycle Time». Fornisce una misura di alto livello dell'efficienza e della velocità complessive del processo di chiusura, consentendo confronti nel tempo e attività di benchmarking tra diversi Company Code. Perché è importante Rappresenta il KPI principale della durata complessiva del processo e consente di monitorare ad alto livello i miglioramenti dell'efficienza nel tempo. Dove reperirlo Calcolato a livello di caso: Esempi P5D10H30MP7D2HP6D | |||
| Tipo di registrazione contabile JournalEntryType | Il tipo di documento finanziario registrato, che distingue le registrazioni standard, gli accantonamenti e le rettifiche. | ||
| Descrizione Il tipo di registrazione contabile, o tipo documento nella terminologia SAP, è una chiave che classifica i documenti contabili. Determina i tipi di conto sui quali è possibile registrare un documento e viene utilizzato per distinguere diverse transazioni aziendali, come una fattura fornitore (KR), una registrazione nella contabilità generale (SA) o un pagamento cliente (DZ). Nel contesto della chiusura di fine periodo, questo attributo è fondamentale per isolare specifici tipi di attività. Ad esempio, consente agli analisti di concentrarsi sulle registrazioni contabili di rettifica, supportando la Dashboard «Adjusting Journal Entry Analysis» e il KPI «Adjusting Journal Entries Count». Contribuisce inoltre al calcolo del «Manual Postings Ratio». Perché è importante Classifica le transazioni finanziarie, consentendo di concentrare l'analisi su specifici tipi di registrazione, come le rettifiche manuali, fondamentali per una chiusura di fine periodo fluida. Dove reperirlo È un campo standard della tabella di testata dei documenti finanziari BKPF (campo BLART). Esempi SAKRAB | |||
| Ultimo aggiornamento dei dati LastDataUpdate | Il timestamp che indica quando i dati sono stati aggiornati o estratti per l'ultima volta dal sistema sorgente. | ||
| Descrizione Questo attributo registra la data e l'ora dell'estrazione dati più recente. Fornisce il contesto relativo all'aggiornamento dei dati analizzati nello strumento di Process Mining. Il suo scopo principale riguarda la governance dei dati e la consapevolezza degli utenti. Chi consulta la Dashboard può verificare quanto sia aggiornata l'analisi, un aspetto particolarmente importante per Dashboard di monitoraggio quasi in tempo reale come 'Current Period Close Status'. Aiuta a comprendere se i dati visualizzati risalgono a oggi, a ieri o alla settimana scorsa. Perché è importante Informa gli utenti sulla tempestività dei dati e garantisce che comprendano quanto siano aggiornati gli insight sul processo. Dove reperirlo Si tratta di metadati generati e associati al dataset dallo strumento di estrazione dei dati o di ETL al momento dell'esecuzione. Esempi 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Valuta documento DocumentCurrency | Il codice valuta degli importi contenuti nel documento finanziario. | ||
| Descrizione Questo attributo specifica la valuta nella quale è stata registrata la transazione, ad esempio USD, EUR o JPY. Fornisce il contesto essenziale per l'attributo Nelle organizzazioni multinazionali, l'analisi per valuta può essere importante. Garantisce che i valori monetari siano interpretati correttamente ed è necessaria per qualsiasi conversione in un'unica valuta di reporting ai fini dell'analisi aggregata. Senza questo contesto, i valori di Perché è importante Fornisce il contesto necessario per interpretare correttamente qualsiasi valore monetario, soprattutto in un ambiente caratterizzato da più valute. Dove reperirlo Si trova nella tabella di testata dei documenti finanziari BKPF (campo WAERS). Esempi USDEURJPY | |||
Record to Report - Attività di chiusura del periodo e riconciliazione
| Attività | Descrizione | ||
|---|---|---|---|
| Bilanci d'esercizio generati | Questa attività indica la creazione dei bilanci d'esercizio ufficiali, come lo Stato patrimoniale e il Conto economico. Rappresenta il completamento dei processi contabili e di consolidamento di fine periodo. | ||
| Perché è importante Si tratta di una tappa fondamentale del ciclo Record to Report. La sua tempistica è determinante per rispettare le scadenze di reporting e fornire tempestivamente informazioni agli stakeholder. Dove reperirlo La soluzione migliore consiste nell'acquisire questo evento tramite uno strumento di gestione della chiusura finanziaria, come SAP Financial Closing Cockpit, dove è rappresentato da un'attività esplicita. In alternativa, deve essere dedotto dai log di generazione dei report o dai timestamp di creazione dei file. Acquisizione Monitori lo stato di completamento dell'attività 'Generate Financial Statements' in uno strumento di chiusura oppure analizzi i log di esecuzione dei report. Tipo di evento inferred | |||
| Periodo aperto per le registrazioni | Indica l'inizio del periodo finanziario, quando i periodi di registrazione vengono aperti per consentire la contabilizzazione delle transazioni. Si tratta di una modifica di configurazione esplicita e registrata, eseguita da un amministratore finanziario in SAP, che consente di inserire scritture contabili nel nuovo periodo. | ||
| Perché è importante Questa attività costituisce l'evento iniziale principale del processo di chiusura di fine periodo. Consente di misurare con precisione la durata complessiva del ciclo e fornisce un punto di inizio chiaro per l'analisi del processo. Dove reperirlo Questo evento viene acquisito dai documenti di modifica, nelle tabelle CDHDR e CDPOS, che registrano le modifiche alla tabella di controllo dei periodi di registrazione T001B, generalmente eseguite tramite la transazione OB52. Acquisizione Filtri i log delle modifiche per la tabella T001B, limitandoli all'anno fiscale e al periodo specifici. Tipo di evento explicit | |||
| Periodo chiuso per le registrazioni | Questa è l'attività finale del ciclo: il periodo di registrazione viene formalmente chiuso per impedire ulteriori transazioni. L'azione garantisce l'integrità dei dati utilizzati per i report finanziari finali. | ||
| Perché è importante Questa attività costituisce l'evento finale definitivo del processo. È essenziale per calcolare la durata complessiva del ciclo di chiusura periodica e analizzare le tendenze relative al completamento del processo. Dove reperirlo Come per l'apertura del periodo, questo evento viene acquisito dai documenti di modifica, nelle tabelle CDHDR e CDPOS, che registrano gli aggiornamenti alla tabella di controllo dei periodi di registrazione T001B tramite la transazione OB52. Acquisizione Filtri i log delle modifiche per la tabella T001B per identificare la chiusura dell'anno fiscale e del periodo pertinenti. Tipo di evento explicit | |||
| Riconciliazione del conto approvata | Questa attività indica l'approvazione finale della riconciliazione di un conto della Contabilità generale e conferma che il saldo è stato giustificato e che ogni problema è stato risolto. Viene dedotta da una modifica dello stato ad 'Approvato' in uno strumento di riconciliazione. | ||
| Perché è importante Questa tappa segna il completamento di un'attività di controllo critica. Il monitoraggio dei tempi di approvazione aiuta a individuare i colli di bottiglia nel processo di revisione ed è essenziale per misurare le rilavorazioni e la percentuale di completamento corretto al primo passaggio. Dove reperirlo Viene acquisita da un sistema di gestione delle riconciliazioni, come SAP Account Substantiation and Automation, monitorando il timestamp dello stato di approvazione finale. Acquisizione Individui il timestamp in cui il campo di stato di una riconciliazione viene aggiornato allo stato terminale 'Approvato'. Tipo di evento inferred | |||
| Riconciliazione del conto avviata | Indica l'inizio del processo manuale o semiautomatico di giustificazione dei saldi dei conti della Contabilità generale. Viene dedotto quando lo stato di una riconciliazione passa da 'Nuovo' a 'In corso' oppure quando viene registrata la prima azione del preparatore. | ||
| Perché è importante Si tratta di una tappa fondamentale per comprendere la durata e l'impegno richiesti dalla giustificazione dei saldi patrimoniali. Aiuta a individuare i conti o i reparti che avviano le riconciliazioni in ritardo. Dove reperirlo Questo evento viene generalmente acquisito da uno strumento dedicato alla riconciliazione, come SAP Account Substantiation and Automation di BlackLine, o da altri sistemi di terze parti. Viene dedotto dai timestamp delle modifiche di stato. Acquisizione Monitori il timestamp della prima modifica di stato da 'Non avviato' per la riconciliazione di un determinato conto della Contabilità generale. Tipo di evento inferred | |||
| Riconciliazione intercompany avviata | Questa attività indica l'inizio del processo di abbinamento e riconciliazione delle transazioni tra diversi codici società appartenenti allo stesso gruppo. Spesso viene avviata eseguendo un job 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 del bilancio consolidato. Dove reperirlo Viene dedotta dalle modifiche di stato nel modulo SAP Intercompany Matching and Reconciliation (ICMR) oppure dalla creazione dei primi documenti di riconciliazione del periodo. Acquisizione Monitori la data di creazione o il timestamp della modifica di stato delle unità di riconciliazione nello strumento ICMR per il periodo indicato. Tipo di evento inferred | |||
| Scrittura di rettifica registrata | Rappresenta una scrittura contabile correttiva effettuata dopo le riconciliazioni iniziali, generalmente per correggere discrepanze rilevate durante il processo di revisione. Si tratta di una transazione esplicita registrata nella Contabilità generale. | ||
| Perché è importante Un'elevata frequenza di scritture di rettifica indica una scarsa qualità al primo passaggio nei processi o nelle riconciliazioni a monte. L'analisi di queste scritture è fondamentale per individuare le cause alla radice degli errori e ridurre le rilavorazioni. Dove reperirlo Viene registrata come documento esplicito nelle tabelle ACDOCA e BKPF. Può essere identificata tramite specifici tipi di documento, date di registrazione prossime alla fine del ciclo di chiusura o descrizioni testuali specifiche. Acquisizione Filtri le scritture contabili in BKPF sulla base di una combinazione di tipo di documento e data di registrazione rispetto alle attività di riconciliazione. Tipo di evento explicit | |||
| Attività di consolidamento eseguite | Rappresenta l'esecuzione delle attività di consolidamento in SAP Group Reporting, come la conversione valutaria, la riclassificazione e l'eliminazione degli utili intercompany. Queste attività vengono generalmente gestite e registrate nel monitor di consolidamento. | ||
| Perché è importante Per le organizzazioni con più entità giuridiche, il consolidamento è un'attività critica del percorso. Il monitoraggio di queste attività contribuisce a semplificare la chiusura di gruppo e a garantire una reportistica consolidata tempestiva. Dove reperirlo Viene acquisita dai log di stato nel Data Monitor o nel Consolidation Monitor di SAP S/4HANA per Group Reporting. Ogni attività dispone generalmente di un utente, un timestamp e uno stato. Acquisizione Estragga i log di esecuzione delle attività dalle tabelle sottostanti del monitor di consolidamento di Group Reporting. Tipo di evento explicit | |||
| Bilanci d'esercizio approvati | Rappresenta l'approvazione finale dei bilanci d'esercizio da parte del management autorizzato prima della pubblicazione. Spesso si tratta di un processo offline, ma può essere acquisito se esiste una fase di approvazione digitale formale. | ||
| Perché è importante Si tratta dell'ultimo controllo qualità e controllo interno. Monitorarne la tempistica è essenziale per comprendere il rispetto delle scadenze di reporting e l'efficienza complessiva del ciclo di revisione manageriale. Dove reperirlo Questo evento viene acquisito se esiste un Workflow o un campo di stato per l'approvazione dei bilanci, ad esempio in SAP Financial Closing Cockpit o in un sistema di gestione documentale. Acquisizione Individui un campo dati e un timestamp che indichino l'approvazione finale del pacchetto di bilancio. Tipo di evento inferred | |||
| Bilancio di verifica preparato | Indica che è stato generato e salvato un bilancio di verifica per la revisione e rappresenta un checkpoint fondamentale prima della creazione del bilancio d'esercizio finale. L'acquisizione di questo evento si basa spesso su procedure in cui viene salvato l'output del report. | ||
| Perché è importante La preparazione del bilancio di verifica è un controllo qualità fondamentale. Analizzarne la tempistica aiuta a comprendere il livello di preparazione per la reportistica finale e può evidenziare ritardi nelle attività precedenti. Dove reperirlo 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 utente e data, oppure se il processo è gestito in uno strumento come SAP Financial Closing Cockpit. Acquisizione È necessaria un'analisi del sistema per determinare se esiste un meccanismo di registrazione affidabile, come i log di esecuzione dei report o gli elenchi delle attività nel closing cockpit. Tipo di evento inferred | |||
| Esecuzione del run di compensazione automatica | Rappresenta l'esecuzione dei programmi di compensazione automatica in SAP, come il run di compensazione GR/IR (Goods Receipt/Invoice Receipt). Questi job abbinano e compensano le partite aperte su specifici conti della Contabilità generale, riducendo il lavoro manuale di riconciliazione. | ||
| Perché è importante Questa attività evidenzia il livello di automazione del processo di riconciliazione. Errori o eccezioni durante questi run possono generare un volume significativo di lavoro manuale e ritardi. Dove reperirlo Viene acquisito dai log di esecuzione di specifici batch job, come F.13 o F.13E per la compensazione automatica. Le tabelle dei log dei job TBTCO e TBTCP contengono i dettagli dell'esecuzione. Acquisizione Monitori i timestamp di inizio e fine dei job associati a transazioni come F.13 nei log dei job SAP. Tipo di evento explicit | |||
| Ratei e accantonamenti registrati | Questo evento registra la creazione di scritture contabili manuali per ratei, risconti e altri accantonamenti necessari per una corretta informativa finanziaria secondo il principio della competenza. Si tratta di transazioni esplicite registrate nella Contabilità generale. | ||
| Perché è importante Il monitoraggio di queste registrazioni aiuta ad analizzare il volume e la tempistica delle rettifiche manuali. Un volume elevato può indicare opportunità di automazione o di miglioramento nei processi a monte. Dove reperirlo Viene registrato come scrittura contabile esplicita nella tabella del giornale universale ACDOCA e nella tabella di testata BKPF. Queste registrazioni possono essere identificate tramite specifici tipi di documento configurati per i ratei. Acquisizione Filtri i documenti nella tabella BKPF in base al tipo di documento, ad esempio 'SA' o tipi personalizzati, e alla data di registrazione all'interno del periodo. Tipo di evento explicit | |||
| Run di valutazione delle valute estere | Si tratta di una procedura standard di fine mese per rivalutare 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à agli standard contabili e fornisce una rappresentazione finanziaria accurata. Il monitoraggio di questa attività aiuta ad assicurare che tutte le valutazioni valutarie vengano eseguite tempestivamente. Dove reperirlo Viene acquisito dai log di esecuzione del programma di valutazione delle valute estere, ad esempio FAGL_FCV. I dettagli dei job sono memorizzati nelle tabelle TBTCO e TBTCP. Acquisizione Monitori i log di esecuzione dei job relativi alla transazione FAGL_FCV o al programma sottostante. Tipo di evento explicit | |||
| Trasferimento dei dati dei sottolibri completato | Rappresenta il completamento dei batch job che trasferiscono i dati riepilogati dai sottolibri, come Contabilità clienti, Contabilità fornitori e Contabilità cespiti, alla Contabilità generale. In questo modo tutte le transazioni operative sottostanti risultano riflesse nella Contabilità generale prima dell'avvio delle procedure di chiusura. | ||
| Perché è importante I ritardi nella chiusura dei sottolibri possono costituire un importante collo di bottiglia per l'intero processo. Il monitoraggio di questa attività aiuta a individuare le inefficienze nella raccolta e nell'integrazione dei dati provenienti dai sistemi sorgente. Dove reperirlo Viene dedotto dallo stato di completamento corretto di specifici batch job responsabili del regolamento dei libri contabili e del trasferimento dei dati. I log dei job sono disponibili nelle tabelle TBTCO e TBTCP. Acquisizione Individui e monitori i timestamp di completamento dei batch job pertinenti nella panoramica dei job SAP, tramite la transazione SM37. Tipo di evento explicit | |||
Guide all'estrazione
Passaggi
- Identifichi e verifichi le CDS View: acceda al Suo sistema SAP S/4HANA utilizzando SAP HANA Studio o Eclipse con ADT. Utilizzi gli ABAP Development Tools per cercare e verificare l'esistenza delle CDS View standard menzionate nella query, come I_JournalEntryItem, I_BatchJob e I_ConsolidationTaskLog. Per processi come la riconciliazione dei conti, potrebbe essere necessario creare CDS View personalizzate, ad esempio Z_I_ACCOUNTRECONCILIATION, per acquisire le variazioni di stato.
- Esponga le CDS View 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 CDS View necessarie. Generi gli oggetti di runtime per creare un servizio OData che esponga queste view per l'utilizzo esterno. - Attivi il servizio OData: acceda alla transazione
/IWFND/MAINT_SERVICEsull'hub SAP Gateway. Faccia clic su 'Add Service', individui il servizio generato nel passaggio precedente e lo aggiunga. In questo modo il servizio sarà attivo e disponibile per le interrogazioni. - Stabilisca la connessione ai dati: dallo strumento di estrazione 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 appropriate, autorizzate ad accedere alle CDS View.
- Adatti ed esegua la query: copi la query SQL fornita. Modifichi i valori segnaposto relativi agli intervalli di date, ai codici società e ai nomi delle CDS View personalizzate o dei batch job in modo che corrispondano al Suo ambiente SAP. Esegua la query sull'endpoint del servizio OData. Tenga presente che OData utilizza una sintassi diversa ($filter, $select), pertanto potrebbe essere necessario tradurre la logica della query UNION ALL in una serie di chiamate API separate, una per ogni attività.
- Consolidi i dati delle attività: poiché OData normalmente non supporta query UNION ALL complesse in un'unica chiamata, esegua una richiesta separata per ogni blocco di attività della query. Consolidi i risultati di tutte le richieste in un unico dataset o in un'unica tabella nello strumento client.
- Trasformi e pulisca i dati: esamini il dataset consolidato. Verifichi che le colonne
EventTimeeEndTimeutilizzino un formato timestamp coerente. Controlli cheFinancialPeriodsia formattato correttamente come 'YYYY-MM'. Gestisca secondo necessità i valori NULL nelle colonne comeResponsibleUseroDocumentNumber. - Esporti come Event Log: esporti il dataset finale consolidato in un file CSV. Verifichi che le intestazioni delle colonne corrispondano agli attributi richiesti:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, ecc. Il file è ora pronto per essere caricato in ProcessMind.
Configurazione
- CDS View: la query si basa su una combinazione di CDS View standard e personalizzate. Le view standard come
I_JournalEntryItem(per le registrazioni contabili) eI_BatchJob(per le esecuzioni automatizzate) sono essenziali. Le view personalizzate, comeZ_I_ACCOUNTRECONCILIATION, sono spesso necessarie per acquisire lo stato dei processi interni non coperti dalle view standard. - Intervallo di date: definisca un intervallo specifico per l'estrazione, così da gestire il volume dei dati. La query utilizza i segnaposto
[Start Date]e[End Date], che dovrebbero normalmente coprire da 3 a 6 periodi fiscali completi per consentire un'analisi significativa. - Filtri principali: il filtraggio è fondamentale per le prestazioni e la rilevanza dei risultati. Applichi sempre un filtro per
CompanyCode. Altri filtri importanti includonoLedger(ad esempio '0L' per il ledger principale),FiscalYeare specifici valori diDocumentTypeper distinguere tra registrazioni ordinarie, ratei e rettifiche. - Prerequisiti: l'utente che esegue l'estrazione deve disporre in SAP delle autorizzazioni per accedere alle CDS View specificate ed eseguire i servizi OData, ad esempio gli oggetti di autorizzazione
S_SERVICEeS_RFC. I servizi SAP Gateway devono essere configurati e attivati. - Prestazioni: l'interrogazione di
I_JournalEntryItempuò richiedere molte risorse. Applichi sempre filtri selettivi, soprattutto su date, codici società e ledger. Valuti l'esecuzione dell'estrazione negli orari di minore attività oppure utilizzi una strategia di caricamento incrementale per il monitoraggio continuo.
a 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 identifichi il proprietario dello schema per ACDOCA, TBTCO, CDHDR e CDPOS. Sostituisca il segnaposto dello schema nella query con il nome dello schema approvato.
- Confermi l'ambito relativo ad anno fiscale, periodo fiscale, codice società e 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 di data con valori appropriati per il Suo sistema.
- Convalidi le mappature locali dei campi per le modifiche alla configurazione del periodo di registrazione, il completamento dei batch job, le variazioni dello stato di riconciliazione, l'esecuzione del consolidamento, la generazione dei report e i record di approvazione. La query utilizza segnaposto descrittivi per gli oggetti sorgente che non sono garantiti in ogni implementazione SAP S/4HANA. Prima dell'esecuzione, sostituisca tali segnaposto con view o tabelle approvate del Suo sistema.
- Esegua la query con credenziali di database in sola lettura. La query crea esplicitamente una riga di evento per ogni attività richiesta e non deduce eventi aggiuntivi dall'ordine degli eventi.
- Esamini le colonne restituite. FinancialPeriod è l'identificativo del caso, ActivityName è l'attività dell'evento ed EventTime è il timestamp richiesto dell'evento. EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus e TargetCompletionDate vengono inclusi quando il record sorgente li fornisce.
- Verifichi che nel risultato siano presenti tutte le attività richieste, comprese quelle che potrebbero non avere record sorgente in un determinato periodo. Per i tipi di attività mancanti, la query restituisce una riga di convalida con ActivityName impostato su Activity Coverage Validation; rimuova tale riga o la gestisca separatamente prima del caricamento in ProcessMind se l'importazione di destinazione richiede esclusivamente eventi di business.
- Riconcili gli eventi rappresentativi con i record applicativi e i log dei job SAP. Confermi che gli eventi delle registrazioni contabili corrispondano ai record ACDOCA, che gli eventi dei job corrispondano ai record TBTCO e che gli eventi di modifica corrispondano ai record CDHDR e CDPOS o alle fonti configurate per riconciliazioni e approvazioni.
- Esporti il risultato come CSV UTF-8 o in un altro formato tabellare supportato da ProcessMind. Mantenga i nomi esatti delle colonne FinancialPeriod, ActivityName ed EventTime. Ordini 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 timestamp di inizio. Mappi EndTime come timestamp di fine, quando disponibile, e mappi le colonne rimanenti come attributi dell'evento o del caso.
Nota importante sulla mappatura delle fonti: SAP S/4HANA non fornisce una struttura di tabelle universale per ogni strumento di riconciliazione, monitor di consolidamento, archivio di report, Workflow di approvazione o configurazione del periodo di registrazione. Sostituisca ogni segnaposto [Your table name] e [Your column name] nella query con un oggetto e una colonna verificati del Suo sistema. Non consideri un segnaposto come SQL eseguibile.
Configurazione
- Accesso al database: utilizzi un utente del database SAP HANA in sola lettura, con autorizzazione SELECT su ACDOCA, TBTCO, CDHDR, CDPOS e sugli oggetti sorgente configurati per il controllo del periodo di registrazione, la riconciliazione, il consolidamento, il reporting e le approvazioni.
- Configurazione dello schema: sostituisca [Your SAP schema] con lo schema effettivo contenente gli oggetti applicativi. Confermi se gli oggetti sono tabelle, calculation view o view di reporting 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 il filtro per l'anno e il periodo fiscale utilizzati dal codice società. Non presuma che i periodi seguano l'anno solare se la variante dell'anno fiscale è diversa.
- Company Code: applichi un filtro per codice società quando il processo riguarda entità giuridiche selezionate. Utilizzi [Configure based on your system] quando l'ambito è gestito 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. Confermi la configurazione locale dei tipi di documento prima di attivare questi filtri.
- Stato dei job: includa esclusivamente i job completati o terminati correttamente per le attività di completamento. Convalidi i valori di stato locali di TBTCO prima di applicare un predicato di stato.
- Documenti di modifica: filtri CDHDR e CDPOS in base alla classe oggetto pertinente e agli indicatori di modifica, dopo aver confermato la configurazione locale. I soli documenti di modifica potrebbero non identificare ogni attività di business.
- Fonti di riconciliazione e approvazione: configuri oggetti sorgente 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 implementate.
- Prestazioni: limiti i predicati su anno fiscale, periodo fiscale, codice società, data di registrazione e timestamp dell'evento. Applichi i filtri in ogni ramo UNION ALL, eviti scansioni senza restrizioni di ACDOCA ed esegua l'estrazione durante una finestra di reporting approvata.
- Tipi di dati: normalizzi i timestamp in un fuso orario e un tipo di dati comuni. Converta le stringhe vuote in NULL e conservi gli zeri iniziali nei codici società, nei numeri di conto e nei numeri documento.
- Prerequisiti: confermi la disponibilità dei componenti SAP necessari, degli strumenti di riconciliazione, delle funzionalità di consolidamento, della registrazione dei job, dell'attivazione dei documenti di modifica e di eventuali log di audit per report o Workflow.
- Sicurezza e conformità: applichi il principio del privilegio minimo, protegga i dati finanziari e degli utenti, documenti lo scopo dell'estrazione e segua i requisiti di audit SAP e del database dell'organizzazione.
a 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 per iniziare?
Offra alla Sua organizzazione gli strumenti per raggiungere maggiore efficienza e conformità utilizzando questo Template dei dati. Inizi oggi stesso a trasformare il Suo processo Record to Report.
Ottimizzi oggi il Suo processo Record to Report, chiusura e riconciliazione
Individui le inefficienze e riduca fino al 30% il tempo del ciclo di chiusura.
Non è richiesta alcuna carta di credito. Inizi in pochi minuti.