Il suo template dati per Record to Report - Chiusura di periodo e riconciliazione
Il suo template dati per Record to Report - Chiusura di periodo e riconciliazione
- Attributi consigliati da raccogliere
- Attività chiave da monitorare per l'analisi del processo
- Guida all'estrazione dei dati passo dopo passo
Attributi Record to Report - Chiusura di periodo e riconciliazioni
| Nome | Descrizione | ||
|---|---|---|---|
| Periodo finanziario FinancialPeriod | Un identificatore univoco per il ciclo di reporting finanziario, come '2023-12' per dicembre 2023, che funge da 'case' 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 libri per un arco temporale specifico, solitamente un mese solare o un periodo fiscale. Ogni periodo finanziario rappresenta un'esecuzione completa del processo di chiusura. Nell'analisi di process mining, questo attributo consente di tracciare l'intero ciclo di vita di una chiusura, dall'avvio al reporting finale. Viene utilizzato per confrontare i tempi di ciclo tra diversi periodi, identificare percorsi di processo comuni e analizzare le variazioni tra le procedure di chiusura mensili, trimestrali e annuali. Trattando ogni periodo come un caso, gli analisti possono misurare le performance nel tempo e individuare i colli di bottiglia sistemici. Perché è importante Questo è l'identificativo del caso essenziale che inquadra l'analisi, consentendo il confronto delle performance di chiusura nel tempo e l'identificazione di trend o problemi ricorrenti. Dove trovare Derivato combinando i campi Anno Fiscale (GJAHR) e Periodo di Registrazione (MONAT) dalle testate dei documenti finanziari, tipicamente da tabelle come BKPF. Esempi 2023-122024-032024-Q1 | |||
| Activity ActivityName | Il nome di una fase o un compito aziendale specifico eseguito all'interno del processo di chiusura, come "Scrittura di rettifica registrata" o "Periodo chiuso per la registrazione". | ||
| Descrizione Questo attributo rappresenta un singolo evento o task nel processo end-to-end di chiusura e riconciliazione. Le attività sono i mattoni della mappa di processo e mostrano la sequenza del lavoro svolto. Sono spesso derivate da una combinazione di codici transazione, tipi documento o cambi di stato in SAP S/4HANA. Analizzare le attività è fondamentale per il process mining. Aiuta a visualizzare il flusso del processo, identificare deviazioni dalla procedura standard, scoprire colli di bottiglia dove le attività richiedono troppo tempo e comprendere la frequenza e l'ordine dei compiti. Questo è cruciale per dashboard come l'Analisi delle varianti di chiusura e lo Stato della chiusura del periodo corrente. Perché è importante Definisce le fasi del processo, costituendo la base della mappa del processo e consentendo l'analisi dei flussi, delle deviazioni e dei colli di bottiglia. Dove trovare Derivato da varie fonti, come i codici transazione (TCODE), i tipi di documento (BLART) o i campi di stato nelle tabelle relative ai task di chiusura finanziaria (es. SAP Financial Closing cockpit). Esempi Periodo aperto per le registrazioniRiconciliazione conto avviataRendiconti finanziari 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 cattura la data e l'ora precise in cui si è verificata un'attività. Per le registrazioni contabili, spesso è l'ora di creazione (CPUTM) o la data di registrazione (BUDAT) di un documento. Per i cambiamenti di stato o i task, è il timestamp in cui la modifica è stata registrata. Questo attributo è fondamentale per l'ordinamento cronologico delle attività e costituisce la base di ogni analisi temporale. Viene utilizzato per calcolare i tempi di ciclo tra le attività, la durata di task specifici e la durata complessiva del processo end-to-end. Supporta direttamente KPI come il Tempo Medio del Ciclo di Chiusura Periodo e il Tempo Medio di Approvazione della Riconciliazione. Perché è importante Questo timestamp obbligatorio consente l'ordinamento cronologico degli eventi ed è la base per tutti i calcoli di durata e performance. Dove trovare Derivato dai campi timestamp come Data di creazione (CPUDT) e Ora di creazione (CPUTM) in tabelle come BKPF, o dai campi della data di modifica in varie tabelle di stato (es. CDHDR, CDPOS). Esempi 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Codice Società CompanyCode | Un identificatore univoco per un'entità legale o una società all'interno dell'organizzazione SAP. | ||
| Descrizione Il Codice Società 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 Codice Società. Questa è una dimensione organizzativa fondamentale per l'analisi finanziaria. Nel process mining, permette di confrontare il processo di chiusura tra diverse entità legali. La dashboard "Analisi delle varianti di chiusura di periodo" utilizza il Codice Società per identificare incoerenze e promuovere la standardizzazione delle procedure di chiusura. Perché è importante Fornisce un contesto organizzativo fondamentale, consentendo il confronto dei processi tra diverse entità legali per identificare variazioni e best practice. Dove trovare Reperibile in quasi tutte le tabelle finanziarie in SAP, in particolare nella tabella di testata BKPF (campo BUKRS). Esempi 10001710US01DE01 | |||
| Data di Completamento Prevista TargetCompletionDate | La data pianificata o il termine ultimo per il completamento di un'attività chiave, come la generazione del bilancio. | ||
| Descrizione La Data di completamento prevista rappresenta la scadenza interna o esterna per una milestone specifica del processo di chiusura. È la data entro la quale si prevede che un task sia terminato. Questo attributo è essenziale per misurare l'aderenza al programma e le performance rispetto alle scadenze. È alla base della dashboard "Rispetto delle scadenze di reporting" e del KPI "Percentuale puntualità bilancio", che confrontano questa data target con la Perché è importante Consente l'analisi delle performance rispetto alle scadenze, aiutando a misurare e migliorare i tassi di completamento puntuale delle attività critiche di chiusura. Dove trovare Questi dati risiedono spesso in un sistema di gestione dei task o di pianificazione, come il SAP Financial Closing cockpit, dove le liste dei compiti di chiusura sono definite con date di fine pianificate. Esempi 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Numero conto Co.Ge. GlAccountNumber | L'identificativo per un conto specifico nella Contabilità Generale. | ||
| Descrizione Il Numero di Conto della Contabilità Generale (CoGe) identifica i singoli conti utilizzati per registrare le transazioni finanziarie (es. cassa, debiti vs fornitori, ricavi). Molte attività di fine periodo, come le riconciliazioni e le scritture di rettifica, sono direttamente correlate a specifici conti CoGe. Questo attributo è essenziale per un'analisi dettagliata dei processi finanziari. La dashboard "Analisi delle scritture contabili di rettifica" lo utilizza per mostrare il volume delle rettifiche per conto, aiutando a identificare le aree problematiche. Anche il KPI "Tempo medio di riconciliazione conto CoGe" si basa su questo dato per individuare ritardi legati a conti specifici. Perché è importante Collega le attività del processo a specifici conti finanziari, consentendo un'analisi dettagliata delle riconciliazioni e delle scritture contabili per trovare le cause radice dei problemi. Dove trovare Reperibile nelle tabelle delle singole voci del documento finanziario, principalmente BSEG (campo HKONT) o nella tabella dello universal journal di S/4HANA ACDOCA. Esempi 113100004000000073000000 | |||
| Numero Documento DocumentNumber | L'identificativo univoco per un documento finanziario, come una scrittura contabile. | ||
| Descrizione Il Numero Documento è una chiave univoca assegnata da SAP a ogni registrazione finanziaria. Funge da riferimento primario per il tracciamento e l'audit delle singole transazioni che compongono le attività nel processo di chiusura. Pur non essendo un ID caso di per sé, fornisce un collegamento cruciale con il sistema sorgente. Gli analisti possono utilizzare il Numero Documento per passare dalla visualizzazione di process mining ai dettagli della transazione specifica in SAP S/4HANA per l'analisi delle cause radice. È particolarmente utile per indagare su specifiche scritture contabili di rettifica o registrazioni di riconciliazione. Perché è importante Fornisce un riferimento diretto alla transazione sottostante in SAP, consentendo un facile drill-down e verificabilità dal modello di processo. Dove trovare Situato nella tabella di testata del documento finanziario BKPF (campo BELNR) e nelle tabelle delle singole voci come BSEG o ACDOCA. Esempi 100000045190000001300000023 | |||
| Ora di Fine EndTime | Il timestamp che indica quando un'attività è stata completata. | ||
| Descrizione L'Ora di fine segna il completamento di un task. In alcuni casi, può coincidere con l'Ora di inizio per eventi istantanei registrati nel sistema. Per le attività con una durata misurabile, rappresenta il timestamp di finalizzazione. Combinato con l'Ora di inizio, questo attributo è essenziale per calcolare il Perché è importante Consente il calcolo della durata delle attività (Processing Time), fondamentale per identificare i colli di bottiglia nelle prestazioni e analizzare l'efficienza. Dove trovare Come per l'ora di inizio, può provenire da vari campi timestamp. Per alcune attività potrebbe coincidere con lo Start Time. Per altre, potrebbe essere una data separata di 'completamento' o 'modifica' nelle tabelle applicative o nei log di modifica (CDHDR, CDPOS). Esempi 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Stato riconciliazione ReconciliationStatus | Lo stato di un'attività di riconciliazione del conto, come "Aperto", "In corso" o "Approvato". | ||
| Descrizione Questo attributo traccia lo stato di un processo di riconciliazione per un determinato conto o task. Indica se una riconciliazione è stata avviata, inviata per revisione, approvata o rifiutata. I cambi di stato sono eventi chiave del processo. Questo dato è fondamentale per la dashboard "Analisi del rework delle riconciliazioni". Analizzando la sequenza degli stati, è possibile identificare quando uno stato "Approvato" è seguito da ulteriori rettifiche, indicando un rework. Supporta anche il KPI "Tasso di riconciliazione al primo colpo" mostrando quali riconciliazioni vengono approvate senza rifiuti o riaperture precedenti. Perché è importante Traccia il progresso e l'esito dei compiti di riconciliazione, rendendo possibile identificare il rework, misurare i tassi di approvazione e analizzare i colli di bottiglia. Dove trovare Queste informazioni sono solitamente memorizzate in tabelle relative allo specifico strumento di riconciliazione utilizzato, come il SAP Financial Closing cockpit o SAP Account Substantiation and Automation di BlackLine. Esempi Non avviatoIn preparazioneApprovatoRifiutato | |||
| Tempo di Elaborazione ProcessingTime | La durata di una singola attività, calcolata come differenza tra l'ora di fine e l'ora di inizio. | ||
| Descrizione Il Processing Time, noto anche come durata dell'attività, misura il tempo impiegato per un singolo task. Viene calcolato sottraendo lo Questa metrica calcolata è fondamentale per l'analisi delle performance. Aiuta a individuare i colli di bottiglia a livello di attività ed è la misura principale utilizzata nelle dashboard 'Resource Allocation Efficiency' e 'Reconciliation Approval Throughput'. La somma dei tempi di elaborazione può anche fornire insight sul tempo di contatto (touch time) totale all'interno del processo. Perché è importante Misura la durata dei singoli task, evidenziando direttamente i colli di bottiglia e costituendo la base per l'analisi dell'efficienza. Dove trovare Campo calcolato: Esempi PT1M30SPT8HP2D | |||
| Utente Responsabile ResponsibleUser | L'ID utente della persona che ha eseguito l'attività o è responsabile del task. | ||
| Descrizione Questo attributo identifica il dipendente che ha eseguito un determinato task, come la registrazione di una scrittura contabile o l'approvazione di una riconciliazione. Viene solitamente 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 performance individuali e le esigenze di formazione. La dashboard sull'efficienza dell'allocazione delle risorse utilizza questo attributo per visualizzare i tempi di elaborazione delle attività per utente. Può anche aiutare a identificare candidati per l'automazione evidenziando task altamente ripetitivi eseguiti da molti utenti. Perché è importante Collega le attività del processo alle persone che le hanno eseguite, consentendo l'analisi del carico di lavoro, l'ottimizzazione delle risorse e la gestione delle performance. Dove trovare Comunemente reperibile nelle tabelle di testata del documento come BKPF (campo USNAM - Nome utente) 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 (T-code) è una scorciatoia per avviare una funzione o un programma specifico in SAP. Ad esempio, FB01 viene utilizzato per la registrazione di un documento e FAGLB03 per visualizzare i saldi dei conti Co.Ge. Il T-code fornisce spesso un indicatore tecnico chiaro dell'attività eseguita. Questo attributo aiuta a creare le definizioni delle attività per il modello di processo. È un modo affidabile per differenziare tra attività automatizzate e manuali e per capire esattamente come un task è stato eseguito 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 di come un'attività è stata eseguita, utile per identificare passaggi manuali rispetto ad automatizzati e procedure non standard. Dove trovare Reperibile nella tabella di testata del documento finanziario BKPF (campo TCODE) o nei log dei documenti di modifica. Esempi FB01FAGL_FCVF.13 | |||
| Data di completamento effettiva ActualCompletionDate | La data effettiva in cui un'attività chiave o l'intera chiusura di periodo è stata completata. | ||
| Descrizione Questo attributo acquisisce la data di completamento reale di una milestone significativa. È il timestamp dell'approvazione finale del bilancio o della chiusura del periodo di registrazione. È la controparte di Perché è importante Fornisce la tempistica effettiva delle milestone, necessaria per misurare le performance rispetto alle scadenze pianificate e analizzare i ritardi. Dove trovare Derivato dall'EventTime dell'attività finale di una sequenza, come "Bilancio approvato" o "Periodo chiuso per la registrazione". Esempi 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| È Automatizzato IsAutomated | Un flag booleano che indica se l'attività è stata eseguita da un utente di sistema o da un processo automatizzato. | ||
| Descrizione Questo flag differenzia tra i task eseguiti manualmente da un utente e quelli eseguiti automaticamente dal sistema, come un job batch pianificato per la valutazione valutaria o run di compensazione automatica. Viene solitamente derivato in base all'ID Questo attributo è fondamentale per comprendere il livello di automazione nel processo di chiusura. Aiuta a identificare opportunità di ulteriore automazione evidenziando i task manuali ad alto volume. Viene utilizzato anche nell'analisi delle cause radice per vedere se i colli di bottiglia si verificano in fasi manuali o automatizzate. Perché è importante Distingue tra attività umane e di sistema, il che è fondamentale per identificare opportunità di automazione e analizzare l'efficienza di entrambe. Dove trovare Si tratta di un attributo derivato, spesso basato su una regola applicata al campo "ResponsibleUser" (es. verifica di ID utente di sistema o batch come "BATCHUSER") o al Codice Transazione. Esempi truefalse | |||
| È In Tempo IsOnTime | Un flag booleano che risulta vero se una milestone è stata completata entro la data obiettivo prevista. | ||
| Descrizione Questo attributo fornisce un semplice risultato binario per l'aderenza al programma. Viene calcolato confrontando la Questo è il calcolo alla base del KPI "Percentuale puntualità bilancio". Semplifica il monitoraggio delle performance convertendo i confronti di date in uno stato chiaro di "puntuale" o "in ritardo", facilmente visualizzabile in dashboard e report. Aiuta a misurare l'efficacia delle iniziative mirate ad accelerare la chiusura. Perché è importante Semplifica l'analisi del rispetto delle scadenze in un risultato chiaro di successo o fallimento, rendendo facile monitorare e riportare la puntualità delle prestazioni. Dove trovare Campo calcolato: Esempi truefalse | |||
| È rifacimento riconciliazione IsReconciliationRework | Un flag booleano che risulta vero se un'attività di riconciliazione è seguita da un rifiuto o da ulteriori rettifiche. | ||
| Descrizione Questo attributo calcolato identifica i casi di rework all'interno del sottoprocesso di riconciliazione. La logica contrassegna le attività o i casi in cui una riconciliazione viene rifiutata, riaperta dopo l'invio, o dove vengono registrate scritture di rettifica dopo che una riconciliazione era stata data per completata per un conto CoGe. Questo flag è progettato specificamente per alimentare la dashboard "Analisi del rework delle riconciliazioni" e il relativo KPI. Trasforma sequenze di processo complesse in un attributo semplice e misurabile che quantifica l'entità del rework, aiutando i team a concentrarsi sul miglioramento della qualità al primo colpo. Perché è importante Quantifica direttamente il rifacimento (rework), una forma chiave di inefficienza del processo, consentendo analisi mirate e sforzi di miglioramento della qualità della riconciliazione. Dove trovare Calcolato in base alla sequenza delle attività. Ad esempio, un flag viene impostato su vero se la sequenza 'Reconciliatonia approvata' è seguita da 'Scrittura di rettifica registrata' per lo stesso conto Co.Ge. entro lo 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, potrebbe essere l'importo del rateo o della correzione registrata. Analizzare l'importo è utile per le valutazioni di materialità. Permette agli analisti di dare priorità all'indagine sulle scritture di rettifica di alto valore, che possono rappresentare un rischio finanziario maggiore. Può essere utilizzato per filtrare la mappa di processo e concentrarsi solo sulle transazioni sopra una certa soglia, semplificando la visualizzazione delle attività più significative. Perché è importante Aggiunge una dimensione finanziaria all'analisi, permettendo di dare priorità ai problemi in base all'impatto monetario e alla materialità. Dove trovare Questo valore deve solitamente essere aggregato dalle tabelle delle singole partite come BSEG o ACDOCA (campo WRBTR - Importo nella valuta del documento). Esempi 15000.00250.75-500.00 | |||
| Sistema di Origine SourceSystemId | Identificatore per la specifica istanza o client SAP S/4HANA da cui sono stati estratti i dati. | ||
| Descrizione Questo attributo specifica il sistema di origine dei dati. In ambienti con più istanze SAP (ad esempio per diverse regioni o business unit), questo campo è fondamentale per distinguere le fonti dei dati. Viene utilizzato principalmente per la data governance, l'audit e per garantire l'integrità dei dati. Nell'analisi, può essere usato come filtro per confrontare i processi tra diversi sistemi sorgente se questi sono combinati in un unico modello di process mining. Perché è importante Fornisce la data lineage e il contesto essenziali, garantendo chiarezza sull'origine dei dati, specialmente in architetture multi-sistema. Dove trovare Si tratta solitamente di metadati aggiunti durante il processo di estrazione dei dati, spesso derivati dall'ID di sistema (SY-SYSID) o dal mandante (SY-MANDT) in SAP. Esempi S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tempo del ciclo di chiusura periodo 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 per un singolo caso (Periodo Finanziario). Viene calcolata come differenza tra il timestamp dell'ultimissima attività e quello della prima attività di quel periodo. Si tratta di un indicatore chiave di prestazione (KPI) primario, che alimenta direttamente la dashboard "Panoramica dei tempi di ciclo di chiusura" e il relativo KPI medio. Fornisce una misura ad alto livello dell'efficienza e della velocità complessiva della chiusura, consentendo confronti nel tempo e benchmarking tra diversi codici società. Perché è importante Rappresenta il KPI principale per la durata complessiva del processo, consentendo il monitoraggio ad alto livello dei miglioramenti di efficienza nel tempo. Dove trovare Calcolato a livello di case: Esempi P5D10H30MP7D2HP6D | |||
| Tipo registrazione contabile JournalEntryType | Il tipo di documento finanziario registrato, distinguendo tra registrazioni standard, ratei/risconti e rettifiche. | ||
| Descrizione Il Tipo di scrittura contabile, o Tipo Documento nella terminologia SAP, è una chiave che classifica i documenti contabili. Controlla su quali tipi di conto può essere registrato un documento e serve a distinguere diverse transazioni aziendali, come una fattura fornitore (KR), una registrazione CoGe (SA) o un pagamento cliente (DZ). Nel contesto della chiusura di periodo, questo attributo è fondamentale per isolare tipi specifici di attività. Ad esempio, permette agli analisti di concentrarsi sulle scritture contabili di rettifica per popolare la dashboard "Analisi delle scritture contabili di rettifica" e il KPI relativo. Aiuta inoltre nel calcolo del "Rapporto registrazioni manuali". Perché è importante Categorizza le transazioni finanziarie, permettendo all'analisi di concentrarsi su tipi specifici di registrazioni, come le rettifiche manuali, fondamentali per una chiusura fluida. Dove trovare Questo è un campo standard nella tabella di testata dei documenti finanziari BKPF (campo BLART). Esempi SAKRAB | |||
| Ultimo `Data Update` LastDataUpdate | Il `timestamp` che indica quando i `data` sono stati aggiornati o estratti per l'ultima volta dal sistema sorgente. | ||
| Descrizione Questo attributo registra la data e l'ora dell'estrazione dati più recente. Fornisce il contesto sull'aggiornamento dei dati analizzati nello strumento di process mining. Il suo scopo primario è la data governance e la consapevolezza dell'utente. Chi visualizza la dashboard può vedere quanto è recente l'analisi, cosa particolarmente importante per le dashboard di monitoraggio quasi in tempo reale come lo "Stato della chiusura del periodo corrente". Aiuta gli utenti a capire se stanno guardando dati di oggi, ieri o della settimana scorsa. Perché è importante Informa gli utenti sulla tempestività dei dati, assicurando che comprendano quanto siano aggiornati i process insights. Dove trovare Si tratta di metadati generati e impressi sul dataset dallo strumento di estrazione dati o ETL al momento dell'esecuzione. Esempi 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Valuta del Documento DocumentCurrency | Il codice valuta per gli importi nel documento finanziario. | ||
| Descrizione Questo attributo specifica la valuta in cui è stata registrata la transazione (es. USD, EUR o JPY). Fornisce il contesto essenziale per l'attributo Nelle organizzazioni multinazionali, l'analisi per valuta è importante. Garantisce che i valori monetari siano interpretati correttamente ed è necessaria per qualsiasi conversione in un'unica valuta di reporting per l'analisi aggregata. Senza questo contesto, i valori di Perché è importante Fornisce il contesto necessario per i valori monetari, garantendo che gli importi siano interpretati correttamente, specialmente in un ambiente multi-valuta. Dove trovare Situato nella tabella di testata del documento finanziario BKPF (campo WAERS). Esempi USDEURJPY | |||
Attività Record to Report - Chiusura di periodo e riconciliazioni
| Activity | Descrizione | ||
|---|---|---|---|
| Periodo aperto per le registrazioni | Questo segna l'inizio del periodo finanziario, in cui i periodi di registrazione vengono aperti. Si tratta di una modifica di configurazione esplicita e registrata, eseguita da un amministratore finance in SAP, che permette le scritture contabili per il nuovo periodo. | ||
| Perché è importante Questa attività funge da evento di inizio primario per il processo di chiusura di fine periodo. Consente la misurazione accurata del tempo di ciclo totale e fornisce un inizio chiaro per l'analisi del processo. Dove trovare Questo evento viene estratto dai documenti di modifica (tabelle CDHDR e CDPOS) che registrano le modifiche alla tabella di controllo dei periodi di registrazione T001B, solitamente eseguite tramite la transazione OB52. Acquisisci Filtrare i log di modifica per la tabella T001B relativi all'anno fiscale e al periodo specifici. Tipo di evento explicit | |||
| Periodo chiuso per le registrazioni | Questa è l'attività finale del ciclo, in cui il periodo di registrazione viene formalmente chiuso per impedire ulteriori transazioni. Questa azione garantisce l'integrità dei dati per i report finanziari finalizzati. | ||
| Perché è importante Questa attività funge da evento di fine definitivo per il processo. È essenziale per calcolare il tempo di ciclo totale della chiusura e analizzare i trend di completamento del processo. Dove trovare Similmente all'apertura di un periodo, questo evento viene estratto dai documenti di modifica (tabelle CDHDR e CDPOS) che registrano gli aggiornamenti alla tabella di controllo dei periodi di registrazione T001B tramite la transazione OB52. Acquisisci Filtrare i log di modifica per la tabella T001B per identificare la chiusura dell'anno fiscale e del periodo pertinenti. Tipo di evento explicit | |||
| Rendiconti finanziari generati | Questa attività segna la creazione dei rendiconti finanziari ufficiali, come lo Stato Patrimoniale e il Conto Economico. Rappresenta il culmine dei processi di contabilità e consolidamento di fine periodo. | ||
| Perché è importante Questa è una milestone fondamentale nel ciclo Record to Report. La sua tempistica è critica per rispettare le scadenze di reporting e fornire informazioni tempestive agli stakeholder. Dove trovare Si cattura al meglio tramite uno strumento di gestione della chiusura finanziaria come SAP Financial Closing Cockpit, dove rappresenta un task esplicito. In caso contrario, deve essere dedotto dai log di generazione dei report o dai timestamp di creazione dei file. Acquisisci Monitorare lo stato di completamento del task "Generazione bilancio" in uno strumento di chiusura o analizzare i log di esecuzione dei report. Tipo di evento inferred | |||
| Riconciliazione conto approvata | Questa attività indica l'approvazione finale di una riconciliazione del conto CoGe, confermando che il saldo è comprovato e che ogni problema è stato risolto. Questo viene dedotto da un cambio di stato in "Approvato" in uno strumento di riconciliazione. | ||
| Perché è importante Questa milestone segna il completamento di un'attività di controllo critica. Tracciare i tempi di approvazione aiuta a identificare i colli di bottiglia nel processo di revisione ed è essenziale per misurare il rework e la resa al primo colpo. Dove trovare Catturato da un sistema di gestione delle riconciliazioni, come SAP Account Substantiation and Automation, tracciando il timestamp dello stato finale di approvazione. Acquisisci Identificare il timestamp in cui il campo di stato di una riconciliazione viene aggiornato allo stato terminale 'Approvato'. Tipo di evento inferred | |||
| Riconciliazione conto avviata | Segna l'inizio del processo manuale o semi-automatizzato di sostanziazione dei saldi dei conti Co.Ge. Questo viene dedotto quando lo stato di una riconciliazione passa da 'Nuovo' a 'In corso' o quando viene registrata la prima azione del preparatore. | ||
| Perché è importante Questa è una milestone chiave per comprendere la durata e lo sforzo necessari per la comprova dello stato patrimoniale. Aiuta a identificare quali conti o dipartimenti iniziano le riconciliazioni in ritardo. Dove trovare Questo evento viene solitamente acquisito da uno strumento di riconciliazione dedicato come SAP Account Substantiation and Automation di BlackLine o altri sistemi di terze parti. Viene dedotto dai timestamp dei cambi di stato. Acquisisci Tracciare il timestamp del primo cambio di stato da "Non iniziato" per una data riconciliazione del conto CoGe. Tipo di evento inferred | |||
| Riconciliazione intercompany avviata | Questa attività indica l'inizio del processo di abbinamento e riconciliazione delle transazioni tra diversi codici società dello 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 lunga. Analizzarne la durata e il flusso è fondamentale per snellire la chiusura di gruppo e garantire l'accuratezza del bilancio consolidato. Dove trovare Dedotto dai cambiamenti di stato all'interno del modulo SAP Intercompany Matching and Reconciliation (ICMR) o dalla creazione dei primi documenti di riconciliazione per il periodo. Acquisisci Tracciare la data di creazione o il timestamp del cambio di stato per le unità di riconciliazione all'interno dello strumento ICMR per il periodo dato. Tipo di evento inferred | |||
| Scrittura contabile di rettifica registrata | Rappresenta una registrazione contabile correttiva effettuata dopo le riconciliazioni iniziali, solitamente per sanare discrepanze emerse durante la 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 colpo" (first-time quality) nei processi a monte o nelle riconciliazioni. Analizzare queste voci è fondamentale per identificare le cause radice degli errori e ridurre i rifacimenti. Dove trovare Registrati come documenti espliciti nelle tabelle ACDOCA e BKPF. Possono essere identificati da specifici tipi di documento, date di registrazione tardive nel ciclo di chiusura o descrizioni testuali specifiche. Acquisisci Filtrare le scritture contabili in BKPF in base a una combinazione di tipo documento e data di registrazione relativa alle attività di riconciliazione. Tipo di evento explicit | |||
| Bilancio di verifica preparato | Indica che un bilancio di verifica è stato generato e salvato per la revisione, fungendo da checkpoint fondamentale prima della creazione dei rendiconti finanziari finali. La cattura di questo evento spesso dipende da procedure in cui l'output del report viene salvato. | ||
| Perché è importante La preparazione del bilancio di verifica è un controllo di qualità fondamentale. Analizzare le tempistiche aiuta a capire la prontezza per il reporting finale e può evidenziare ritardi nelle attività precedenti. Dove trovare Spesso non è un evento esplicito. Può essere dedotto dall'esecuzione di una specifica transazione di reporting se le varianti sono salvate con timestamp dell'utente e della data, o se il processo è gestito in uno strumento come il SAP Financial Closing Cockpit. Acquisisci Richiede un'analisi del sistema per determinare se esiste un meccanismo di logging affidabile, come i log di esecuzione dei report o le liste di attività del closing cockpit. Tipo di evento inferred | |||
| Esecuzione compensazione automatica effettuata | Rappresenta l'esecuzione di programmi di pareggio automatico in SAP, come il run di compensazione GR/IR (Entrata Merci/Entrata Fattura). Questi job abbinano e chiudono le partite aperte su specifici conti CoGe, riducendo lo sforzo di riconciliazione manuale. | ||
| Perché è importante Questa attività evidenzia il livello di automazione nel processo di riconciliazione. Fallimenti o eccezioni in questi run possono causare un notevole carico di lavoro manuale e ritardi. Dove trovare Catturato dai log di esecuzione di specifici job batch, come F.13 o F.13E per la compensazione automatica. Le tabelle dei log dei job TBTCO e TBTCP contengono i dettagli dell'esecuzione. Acquisisci Monitorare i timestamp di inizio e fine dei job associati a transazioni come F.13 nei log dei job SAP. Tipo di evento explicit | |||
| Esecuzione valutazione valuta estera | Questa è una procedura standard di fine mese per rivalutare le partite aperte e i saldi in valuta estera in base ai tassi di cambio di fine periodo. L'esecuzione di questo 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 garantire che tutte le valutazioni valutarie siano eseguite tempestivamente. Dove trovare Catturato dai log di esecuzione del programma di valutazione della valuta estera (es. FAGL_FCV). I dettagli dei job sono memorizzati nelle tabelle TBTCO e TBTCP. Acquisisci Monitorare i log di esecuzione per i job relativi alla transazione FAGL_FCV o al suo programma sottostante. Tipo di evento explicit | |||
| Ratei e accantonamenti registrati | Questo evento acquisisce la creazione di scritture contabili manuali per ratei, risconti e altri accantonamenti necessari per un reporting finanziario accurato secondo il principio di competenza. Si tratta di transazioni esplicite registrate nella Contabilità Generale. | ||
| Perché è importante Tracciare queste registrazioni aiuta ad analizzare il volume e la tempistica delle rettifiche manuali. Un volume elevato può indicare opportunità di automazione o miglioramento dei processi a monte. Dove trovare Registrate come scritture contabili esplicite nella tabella del giornale universale ACDOCA e nella tabella di testata BKPF. Queste voci possono essere identificate tramite tipi di documento specifici configurati per i ratei e risconti. Acquisisci Filtrare i documenti nella tabella BKPF per tipo di documento (es. 'SA' o tipi personalizzati) e data di registrazione entro il periodo. Tipo di evento explicit | |||
| Rendiconti finanziari approvati | Rappresenta l'approvazione finale del bilancio da parte della direzione autorizzata prima della pubblicazione. Spesso è un processo offline, ma può essere tracciato se esiste una fase formale di approvazione digitale. | ||
| Perché è importante Questo è l'ultimo gate di controllo qualità. Tracciare le sue tempistiche è essenziale per comprendere l'aderenza alle scadenze di reporting e l'efficienza complessiva del ciclo di revisione del management. Dove trovare Questo evento viene acquisito se esiste un workflow o un campo di stato per l'approvazione del bilancio, ad esempio all'interno del SAP Financial Closing Cockpit o di un sistema di gestione documentale. Acquisisci Identificare un campo dati e un timestamp che indichino l'approvazione finale del pacchetto di bilancio. Tipo di evento inferred | |||
| Task di consolidamento eseguiti | Rappresenta l'esecuzione delle attività di consolidamento all'interno di SAP Group Reporting, come la conversione valutaria, la riclassificazione e l'eliminazione degli utili infragruppo. Questi compiti sono solitamente gestiti e registrati nel monitor di consolidamento. | ||
| Perché è importante Per le organizzazioni con più entità legali, il processo di consolidamento è un elemento del percorso critico. Il monitoraggio di questi task aiuta a snellire la chiusura di gruppo e a garantire un reporting consolidato tempestivo. Dove trovare Catturato dai log di stato all'interno del Data Monitor o Consolidation Monitor in SAP S/4HANA for Group Reporting. Ogni task ha tipicamente un utente, un timestamp e uno stato. Acquisisci Estragga i log di esecuzione dei task dalle tabelle sottostanti del monitor di consolidamento Group Reporting. Tipo di evento explicit | |||
| Trasferimento dati libri ausiliari completato | Rappresenta il completamento dei job batch che trasferiscono i dati riepilogativi dai libri ausiliari (Contabilità Clienti, Fornitori, Cespiti) alla Contabilità Generale. Ciò garantisce che tutte le transazioni operative sottostanti siano riflesse nel libro giornale prima dell'inizio delle procedure di chiusura. | ||
| Perché è importante I ritardi nella chiusura della contabilità ausiliaria possono essere un grave collo di bottiglia. Monitorare questa attività aiuta a identificare le inefficienze nella raccolta e integrazione dei dati dai sistemi sorgente. Dove trovare Dedotto dallo stato di completamento riuscito di specifici job batch responsabili della liquidazione del ledger e del trasferimento dei dati. I log dei job si trovano nelle tabelle TBTCO e TBTCP. Acquisisci Identificare e monitorare i timestamp di completamento dei job batch pertinenti nella panoramica dei job di SAP (transazione SM37). Tipo di evento explicit | |||
Guide all'Estrazione
Fasi
- Identificare e verificare le viste CDS: Acceda al sistema SAP S/4HANA utilizzando SAP HANA Studio o Eclipse con ADT. Utilizzi gli ABAP Development Tools per cercare e verificare l'esistenza delle viste CDS standard menzionate 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 catturare i cambiamenti di stato.
- Esporre le viste CDS tramite OData: Nel backend SAP, utilizzi la transazione
SEGW(Gateway Service Builder) per creare un nuovo progetto. Fare clic con il pulsante destro del mouse sulla cartella Data Model e selezioni 'Reference -> Data Source'. Aggiunga le viste CDS richieste. Generi gli oggetti runtime per creare un servizio OData che esponga queste viste per l'utilizzo esterno. - Attivare il servizio OData: Acceda alla transazione
/IWFND/MAINT_SERVICEsull'hub SAP Gateway. Fare clic su 'Aggiungi servizio', trovi il servizio generato nel passaggio precedente e lo aggiunga. Questo rende il servizio attivo e disponibile per le interrogazioni. - Stabilire la connessione dati: Dal Suo strumento di estrazione dati preferito (come Python, Power BI o una piattaforma ETL dedicata), stabilisca una connessione al servizio OData appena creato. Avrà bisogno dell'URL del servizio e delle credenziali appropriate con l'autorizzazione per accedere alle viste CDS.
- Adattare ed eseguire la query: Copi la query SQL fornita. Modifichi i valori segnaposto per intervalli di date, codici società e nomi di eventuali viste CDS personalizzate o job batch per farli corrispondere al Suo ambiente SAP specifico. Esegua la query sull'endpoint del servizio OData. Si noti che 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 direttamente in una singola chiamata, eseguirà una richiesta separata per ogni blocco di attività nella query. Consolidi i risultati di tutte le richieste in un unico dataset o tabella all'interno del Suo strumento client.
- Trasformare e pulire i dati: Esamini i dati consolidati. Si assicuri che le colonne
EventTimeeEndTimesiano in un formato timestamp coerente. Verifichi cheFinancialPeriodsia formattato correttamente come 'YYYY-MM'. Gestisca eventuali valori NULL nelle colonne comeResponsibleUseroDocumentNumbersecondo necessità. - Esportare come Event Log: Esporti il dataset finale consolidato in un file CSV. Si assicuri che le intestazioni delle colonne corrispondano agli attributi richiesti:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, ecc. Questo file è ora pronto per essere caricato su ProcessMind.
Configurazione
- CDS Views: La query si basa su una combinazione di viste CDS standard e personalizzate. Le viste standard come
I_JournalEntryItem(per le registrazioni a giornale) eI_BatchJob(per le esecuzioni automatiche) sono essenziali. Le viste personalizzate, comeZ_I_ACCOUNTRECONCILIATION, sono spesso necessarie per catturare lo stato di processi interni non coperti dalle viste standard. - Intervallo di date: Definisca un intervallo di date specifico per l'estrazione per gestire il volume dei dati. La query utilizza i segnaposto
[Start Date]e[End Date]che dovrebbero tipicamente coprire un periodo da 3 a 6 periodi fiscali completi per un'analisi significativa. - Filtri principali: Il filtraggio è fondamentale per le prestazioni e la pertinenza. Filtri sempre per
CompanyCode. Altri filtri importanti includonoLedger(ad esempio, '0L' per il leading ledger),FiscalYeare valori specifici diDocumentTypeper differenziare tra registrazioni regolari, ratei e rettifiche. - Prerequisiti: L'utente che esegue l'estrazione richiede le autorizzazioni in SAP per accedere alle viste CDS specificate ed eseguire i servizi OData (ad es. oggetti di autorizzazione
S_SERVICE,S_RFC). I servizi SAP Gateway devono essere configurati e attivati. - Prestazioni: L'interrogazione di
I_JournalEntryItempuò richiedere molte risorse. Applichi sempre filtri selettivi, specialmente su date, codici società e ledger. Valuti la possibilità di eseguire l'estrazione durante le ore non di punta o di utilizzare una strategia di caricamento incrementale per un 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]'; Fasi
- Identificare e verificare le viste CDS: Acceda al sistema SAP S/4HANA utilizzando SAP HANA Studio o Eclipse con ADT. Utilizzi gli ABAP Development Tools per cercare e verificare l'esistenza delle viste CDS standard menzionate 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 catturare i cambiamenti di stato.
- Esporre le viste CDS tramite OData: Nel backend SAP, utilizzi la transazione
SEGW(Gateway Service Builder) per creare un nuovo progetto. Fare clic con il pulsante destro del mouse sulla cartella Data Model e selezioni 'Reference -> Data Source'. Aggiunga le viste CDS richieste. Generi gli oggetti runtime per creare un servizio OData che esponga queste viste per l'utilizzo esterno. - Attivare il servizio OData: Acceda alla transazione
/IWFND/MAINT_SERVICEsull'hub SAP Gateway. Fare clic su 'Aggiungi servizio', trovi il servizio generato nel passaggio precedente e lo aggiunga. Questo rende il servizio attivo e disponibile per le interrogazioni. - Stabilire la connessione dati: Dal Suo strumento di estrazione dati preferito (come Python, Power BI o una piattaforma ETL dedicata), stabilisca una connessione al servizio OData appena creato. Avrà bisogno dell'URL del servizio e delle credenziali appropriate con l'autorizzazione per accedere alle viste CDS.
- Adattare ed eseguire la query: Copi la query SQL fornita. Modifichi i valori segnaposto per intervalli di date, codici società e nomi di eventuali viste CDS personalizzate o job batch per farli corrispondere al Suo ambiente SAP specifico. Esegua la query sull'endpoint del servizio OData. Si noti che 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 direttamente in una singola chiamata, eseguirà una richiesta separata per ogni blocco di attività nella query. Consolidi i risultati di tutte le richieste in un unico dataset o tabella all'interno del Suo strumento client.
- Trasformare e pulire i dati: Esamini i dati consolidati. Si assicuri che le colonne
EventTimeeEndTimesiano in un formato timestamp coerente. Verifichi cheFinancialPeriodsia formattato correttamente come 'YYYY-MM'. Gestisca eventuali valori NULL nelle colonne comeResponsibleUseroDocumentNumbersecondo necessità. - Esportare come Event Log: Esporti il dataset finale consolidato in un file CSV. Si assicuri che le intestazioni delle colonne corrispondano agli attributi richiesti:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser, ecc. Questo file è ora pronto per essere caricato su ProcessMind.
Configurazione
- CDS Views: La query si basa su una combinazione di viste CDS standard e personalizzate. Le viste standard come
I_JournalEntryItem(per le registrazioni a giornale) eI_BatchJob(per le esecuzioni automatiche) sono essenziali. Le viste personalizzate, comeZ_I_ACCOUNTRECONCILIATION, sono spesso necessarie per catturare lo stato di processi interni non coperti dalle viste standard. - Intervallo di date: Definisca un intervallo di date specifico per l'estrazione per gestire il volume dei dati. La query utilizza i segnaposto
[Start Date]e[End Date]che dovrebbero tipicamente coprire un periodo da 3 a 6 periodi fiscali completi per un'analisi significativa. - Filtri principali: Il filtraggio è fondamentale per le prestazioni e la pertinenza. Filtri sempre per
CompanyCode. Altri filtri importanti includonoLedger(ad esempio, '0L' per il leading ledger),FiscalYeare valori specifici diDocumentTypeper differenziare tra registrazioni regolari, ratei e rettifiche. - Prerequisiti: L'utente che esegue l'estrazione richiede le autorizzazioni in SAP per accedere alle viste CDS specificate ed eseguire i servizi OData (ad es. oggetti di autorizzazione
S_SERVICE,S_RFC). I servizi SAP Gateway devono essere configurati e attivati. - Prestazioni: L'interrogazione di
I_JournalEntryItempuò richiedere molte risorse. Applichi sempre filtri selettivi, specialmente su date, codici società e ledger. Valuti la possibilità di eseguire l'estrazione durante le ore non di punta o di utilizzare una strategia di caricamento incrementale per un 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]';