Ihre Record-to-Report-, Periodenabschluss- und Abstimmungs-Datentemplate
Ihre Record-to-Report-, Periodenabschluss- und Abstimmungs-Datentemplate
- Empfohlene Attribute zur Erfassung
- Wichtige Aktivitäten zur Verfolgung
- Extraktionsanleitung
Record to Report - Period Close & Reconciliation Attribute
| Name | Beschreibung | ||
|---|---|---|---|
| Finanzperiode FinancialPeriod | Ein eindeutiger Identifikator für den Finanzberichtszyklus, der typischerweise das Geschäftsjahr und die Buchungsperiode kombiniert. | ||
| Beschreibung Die Finanzperiode dient als primärer Case Identifier und gruppiert alle Aktivitäten im Zusammenhang mit dem Abschluss und der Abstimmung von Konten für diesen spezifischen Berichtszyklus, z. B. „2023-12“ für Dezember 2023. Dies ermöglicht eine umfassende Analyse des gesamten Periodenabschlussprozesses von Anfang bis Ende für jede einzelne Periode. In der Analyse ermöglicht dies die Verfolgung der End-to-End-Cycle Time für jeden Abschluss, den Vergleich der Leistung über verschiedene Perioden hinweg und die Identifizierung von Trends oder Anomalien. Durch die Definition jeder Finanzperiode als einzigartigen Case ist es möglich, die Effizienz, Bottlenecks und Variationen im Abschlussprozess im Zeitverlauf zu visualisieren und zu messen. Bedeutung Dies ist der essentielle Case Identifier, der die Analyse umrahmt und Vergleiche von Abschluss-Cycle-Zeiten, Workloads und Process Compliance zwischen Perioden ermöglicht. Datenquelle Dieses Attribut wird typischerweise durch die Verkettung des Geschäftsjahres (GJAHR) und der Buchungsperiode (MONAT) aus Finanzbelegköpfen abgeleitet, z.B. aus der Tabelle BKPF. Beispiele 2023-122024-032023-Q4 | |||
| Aktivität ActivityName | Der Name des spezifischen Geschäftsereignisses oder der Aufgabe, die während des Periodenabschlussprozesses ausgeführt wurde. | ||
| Beschreibung Dieses Attribut erfasst die einzelnen Schritte im Record-to-Report-Zyklus, wie z.B. „Anpassungsbuchung gebucht“ oder „Finanzberichte erstellt“. Es bildet das Rückgrat der Prozesslandkarte und zeigt die Abfolge der Events, die den Periodenabschluss ausmachen. Die Analyse von Aktivitäten ist grundlegend für Process Mining. Sie hilft, den Prozess-Flow zu visualisieren, die Abfolge der Aufgaben zu identifizieren, Prozessvariationen zu entdecken und die Häufigkeit und Dauer jedes Schritts zu messen. Dies ist entscheidend, um Bottlenecks, nicht-standardisierte Prozesspfade und Möglichkeiten zur Standardisierung oder Automatisierung zu lokalisieren. Bedeutung Dieses Attribut ist obligatorisch für die Erstellung der Prozesslandkarte, da es die Visualisierung und Analyse der Aufgabenabfolge im Periodenabschluss ermöglicht. Datenquelle Dies wird aus einer Kombination von SAP Transaktionscodes (TCODE), Belegarten (BLART) oder spezifischen Programmausführungen (z.B. FAGL_FCV für die Fremdwährungsbewertung) abgeleitet. Beispiele Korrekturbuchung gebuchtKontenabstimmung gestartetPeriode für Buchungen geschlossen | |||
| Ereigniszeit EventTime | Der timestamp, der angibt, wann eine Aktivität oder ein Event stattgefunden hat. | ||
| Beschreibung Die Event Time liefert das genaue Datum und die Uhrzeit für jede Aktivität im Prozess und dient als chronologische Grundlage für die Analyse. Es handelt sich typischerweise um eine Kombination aus Beleg-Erstellungsdatum und -Uhrzeit. Dieser Timestamp ist unerlässlich, um Events korrekt zu ordnen und den Prozessablauf zu rekonstruieren. Er wird verwendet, um alle dauernbasierten Metriken zu berechnen, einschließlich der Cycle Times zwischen Aktivitäten, Wartezeiten und der gesamten Period Close Dauer. Die Analyse von Timestamps hilft, Verzögerungen zu identifizieren und die zeitliche Verteilung der Arbeit zu verstehen. Bedeutung Als obligatorisches Attribut liefert es die chronologische Reihenfolge der Ereignisse, die für die Berechnung von Zykluszeiten und die Erkennung von Prozessengpässen notwendig ist. Datenquelle Diese Daten stammen typischerweise aus dem Belegbuchungsdatum (CPUDT) und der Buchungszeit (CPUTM) in der Tabelle BKPF für Finanzbelege. Beispiele 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, wann die Daten zuletzt aktualisiert oder aus dem Quellsystem extrahiert wurden. | ||
| Beschreibung Dieses Attribut gibt die Aktualität der analysierten Daten an. Es zeigt Datum und Uhrzeit des letzten Datenpipeline-Laufs und liefert Kontext für die Aktualität der Process Erkenntnisse. Für Dashboards, insbesondere solche, die den Fortschritt in Echtzeit verfolgen, ist dieser Timestamp entscheidend, damit Benutzer verstehen, ob sie aktuelle Informationen oder Daten vom Vortag betrachten. Er steuert die Erwartungen der Benutzer und ist entscheidend für die korrekte Interpretation der Analyse. Bedeutung Informiert die Nutzer über die Aktualität der Daten, was entscheidend ist, um sicherzustellen, dass Analysen und Dashboards zeitnah und relevant sind. Datenquelle Dieser Timestamp wird am Ende jedes Datenladeprozesses vom Datenextraktions- oder ETL-Tool erzeugt und hinzugefügt. Beispiele 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Quellsystem SourceSystem | Der Identifikator des Quellsystems, aus dem die Daten extrahiert wurden. | ||
| Beschreibung Dieses Attribut gibt den Ursprung der Event Daten an, z.B. den spezifischen SAP ECC Instanznamen oder die ID. In Organisationen mit mehreren ERPs oder Finanzsystemen ist dieses Feld entscheidend, um Daten aus verschiedenen Quellen zu unterscheiden. Selbst in einer Single-System-Landschaft dient es als wichtiges Metadatenstück für Data Governance, Auditing und Troubleshooting. Es bestätigt die Herkunft der Daten, was für den Aufbau von Vertrauen in die Analyse und die Gewährleistung einer klaren Data Lineage unerlässlich ist. Bedeutung Bietet essentielle Data Lineage, bestätigt die Herkunft der Daten für die Governance und ist in Multi-System-Landschaften entscheidend, um Prozesse zu differenzieren. Datenquelle Dies ist typischerweise ein statischer Wert, der während des Datenextraktionsprozesses hinzugefügt wird und den spezifischen SAP-Mandanten und die System-ID identifiziert (z.B. aus Tabelle T000). Beispiele ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Belegnummer BELNR | Der eindeutige Identifikator für einen Buchungsbeleg innerhalb eines Geschäftsjahres und Buchungskreises. | ||
| Beschreibung Die Buchungsbelegnummer ist der Primärschlüssel für Finanzbuchungen in SAP. Jeder Journaleintrag, jede Rechnung oder jede Zahlungsbeleg wird mit einer eindeutigen Nummer versehen. Obwohl nicht typischerweise für eine übergeordnete Prozessanalyse verwendet, ist die Belegnummer für Drill-Down-Funktionen von unschätzbarem Wert. Von einem Process Mining Dashboard aus können Analysten die Belegnummer verwenden, um direkt zur spezifischen Transaktion in SAP zurückzukehren und Anomalien, wie z. B. eine große Anpassungsbuchung oder einen verzögerten Abstimmungsposten, detailliert zu untersuchen. Sie bietet eine direkte Verbindung vom Einblick zur Quelltransaktion. Bedeutung Bietet einen direkten Link zur Quelltransaktion in SAP, der eine detaillierte Drill-Down-Analyse von der Prozessansicht in spezifische Buchungssätze ermöglicht. Datenquelle Befindet sich in der Tabelle BKPF (BELNR) als Primärschlüssel. Beispiele 100000456719000001233000008901 | |||
| Betrag in lokaler Währung DMBTR | Der finanzielle Wert eines Transaktionspostens, ausgedrückt in der Hauswährung des Buchungskreises. | ||
| Beschreibung Dieses Attribut repräsentiert den monetären Wert, der mit einer Finanzbuchung verbunden ist. Es ist das zentrale quantitative Maß für die Auswirkung einer Transaktion auf das Hauptbuch. Die Analyse des Betrags ist entscheidend, um Probleme zu priorisieren und finanzielle Risiken zu verstehen. Zum Beispiel wird das Dashboard „Adjusting Entries Volume Analysis“ viel leistungsfähiger, wenn es zwischen einem hohen Volumen an geringwertigen Anpassungen und einem geringen Volumen an hochwertigen Anpassungen unterscheiden kann. Es hilft, die Aufmerksamkeit auf finanziell wesentliche Transaktionen zu lenken. Bedeutung Quantifiziert die finanziellen Auswirkungen von Transaktionen und ermöglicht eine Analyse basierend auf der Wesentlichkeit, wie z. B. die Identifizierung von hochvolumigen Anpassungsbuchungen. Datenquelle Verfügbar in der Belegpositionstabelle BSEG (DMBTR). Beispiele 1500.75-25000.00123456.00 | |||
| Buchungskreis BUKRS | Die Organisationseinheit, die eine juristische Person repräsentiert, für die Finanzberichte erstellt werden. | ||
| Beschreibung Der Buchungskreis ist eine grundlegende Organisationseinheit in SAP Financials. Er repräsentiert ein eigenständiges Unternehmen mit eigener Bilanz. Alle Finanztransaktionen werden auf Buchungskreisebene gebucht. Im Process Mining ist die Filterung nach Buchungskreis unerlässlich, um den Periodenabschlussprozess über verschiedene rechtliche Einheiten innerhalb eines Konzerns hinweg zu vergleichen. Dies ermöglicht es, Best Practices in leistungsstarken Einheiten zu identifizieren und Einheiten zu lokalisieren, die mit Verzögerungen, hohem Anpassungsvolumen oder Prozessabweichungen zu kämpfen haben. Es ist eine Schlüsseldimension zur Segmentierung der Analyse. Bedeutung Ermöglicht den Vergleich der Periodenabschluss-Performance und Compliance über verschiedene juristische Einheiten hinweg, was für die Finanzanalyse auf Gruppenebene entscheidend ist. Datenquelle Dieses Feld ist in fast allen Finanzbelegtabellen in SAP verfügbar, hauptsächlich BKPF (Kopf) und BSEG (Einzelposten). Beispiele 10002000US01DE01 | |||
| Buchungssatztyp JournalEntryType | Eine Klassifizierung von Buchungen, wie 'Standard', 'Korrektur', 'Abgrenzung' oder 'Storno'. | ||
| Beschreibung Dies ist ein abgeleitetes Attribut, das Finanzdokumente basierend auf ihrem Geschäftszweck innerhalb des Abschlussprozesses kategorisiert. Es wird oft durch eine Kombination aus Belegart (BLART), Stornogrund (STGRD) oder verwendeten Sachkonten bestimmt. Diese Klassifizierung ist fundamental für das Dashboard „Adjusting Entries Volume Analysis“ und verwandte KPIs. Durch die explizite Identifizierung von Anpassungs- oder Abgrenzungsbuchungen können Analysten deren Volumen und Wert messen, Trends im Zeitverlauf verfolgen und die Ursachen für deren Notwendigkeit untersuchen. Es hilft, routinemäßige operative Buchungen von Periodenend-Anpassungen zu unterscheiden. Bedeutung Kategorisiert Buchungen für eine gezielte Analyse, wodurch die Verfolgung und Messung wichtiger Buchungsarten wie Korrekturen und Abgrenzungen ermöglicht wird, die Indikatoren für die Prozessgesundheit sind. Datenquelle Dies ist ein abgeleitetes Feld. Die Logik muss basierend auf Geschäftsregeln definiert werden, typischerweise unter Verwendung von Feldern wie Belegart (BLART) aus BKPF. Beispiele KorrekturAbgrenzungStornierungStandard | |||
| Dokumententyp BLART | Ein Code, der verschiedene Arten von Buchhaltungsbelegen klassifiziert. | ||
| Beschreibung Der Belegart wird in SAP verwendet, um zwischen verschiedenen Geschäftstransaktionen zu unterscheiden, wie z.B. Kreditorenrechnungen (KR), Kunden_Zahlungen (DZ) und Sachkontenbuchungen (SA). Sie steuert auch Eigenschaften wie den Belegnummernkreis. Für die Analyse des Periodenabschlusses ist der Belegart ein leistungsstarker Filter. Er kann verwendet werden, um spezifische Aktivitätstypen zu isolieren, wie z.B. Abgrenzungen, Rückstellungen oder Stornobuchungen. Dies hilft bei der Analyse des Volumens und der finanziellen Auswirkungen verschiedener abschlussrelevanter Transaktionen und kann zur Definition spezifischer Aktivitäten im Prozessmodell verwendet werden. Bedeutung Hilft bei der Klassifizierung und Filterung von Transaktionen, wodurch es möglich wird, spezifische Aktivitäten wie Abgrenzungen, Stornierungen oder Intercompany-Buchungen zu isolieren und zu analysieren. Datenquelle Befindet sich in der Belegkopftabelle BKPF (BLART). Beispiele SAABKR | |||
| Hauptbuchkonto HKONT | Die Sachkontonummer, auf die ein Einzelposten gebucht wird. | ||
| Beschreibung Das Sachkonto (GL-Konto) ist ein zentrales Stammdatenelement im Finanzwesen, das Transaktionen klassifiziert. Jede Finanzbuchung wird einem oder mehreren Sachkonten zugeordnet. Im Kontext des Periodenabschlusses ist die Analyse von Aktivitäten nach Sachkonto für die Dashboards „Account Reconciliation Bottlenecks“ und „Adjusting Entries Volume Analysis“ unerlässlich. Es hilft zu identifizieren, welche Konten am schwierigsten abzustimmen sind, welche die meisten Anpassungen erfordern und wo das Risiko einer wesentlichen Falschdarstellung am höchsten sein könnte. Dieser Fokus ermöglicht es Teams, ihre Anstrengungen auf problematische Konten zu konzentrieren. Bedeutung Ermöglicht eine gezielte Analyse von Abstimmungen und Korrekturbuchungen, um problematische Konten zu identifizieren, die Verzögerungen verursachen oder häufige Korrekturen erfordern. Datenquelle Verfügbar in der Finanzbelegpositionstabelle BSEG (HKONT). Beispiele 113100400500750000 | |||
| Verantwortlicher Benutzer USNAM | Die SAP Benutzer-ID der Person, die die Transaktion erstellt oder ausgeführt hat. | ||
| Beschreibung Dieses Feld erfasst den Benutzer, der ein Dokument gebucht, einen Bericht ausgeführt oder ein abschlussrelevantes Programm gestartet hat. Es identifiziert die für eine bestimmte Aktivität verantwortliche Person. Die Analyse nach Benutzer ist entscheidend, um die Workload-Verteilung zu verstehen, Schulungsbedarfe zu identifizieren und Prozessabweichungen zu untersuchen. Dashboards, die Aktivitäten pro Benutzer anzeigen, können überlastete Teammitglieder oder Personen hervorheben, die nicht-standardisierte Verfahren befolgen. Es hilft auch beim Performance Management und der Ressourcenallokation innerhalb des Finanzteams. Bedeutung Ermöglicht die Analyse der Arbeitslastverteilung, der Team-Performance und die Identifizierung von Prozessabweichungen, die an bestimmte Personen gebunden sind. Datenquelle Verfügbar in der BKPF-Tabelle (USNAM) für die Belegerstellung. Für Batch-Jobs ist es in TBTCO (SDLUNAME) zu finden. Beispiele JSMITHRDOEFIN_ADMIN | |||
| Abstimmungsstatus ReconciliationStatus | Der aktuelle Status einer Kontenabstimmung, z.B. „Offen“, „In Prüfung“ oder „Genehmigt“. | ||
| Beschreibung Dieses Attribut verfolgt den Status einer Kontenabstimmung während ihres Workflows. Es zeigt an, ob eine Abstimmung gestartet, zur Überprüfung eingereicht, genehmigt oder abgelehnt wurde. Dies ist ein Schlüsselattribut für die Echtzeitüberwachung des Fortschritts von Abstimmungsaktivitäten. Es hilft zu identifizieren, welche Abstimmungen feststecken und wie lange, und unterstützt KPIs wie die „Account Reconciliation Cycle Time“. Es bietet Transparenz über den Genehmigungsprozess und ist entscheidend für Dashboards, die Abstimmungs-Bottlenecks und die Team-Workload verfolgen. Bedeutung Bietet Transparenz über den Abstimmungs-Workflow und ermöglicht die Verfolgung des Fortschritts, die Identifizierung von Bottlenecks und die Messung von Überprüfungs- und Genehmigungszeiten. Datenquelle Diese Informationen befinden sich oft in einem separaten Abstimmungstool (z.B. SAP Account Substantiation and Automation by BlackLine) oder einem benutzerdefinierten Statusfeld. Es ist typischerweise kein Standardfeld in BKPF/BSEG. Beispiele Nicht gestartetIn BearbeitungGenehmigtAbgelehnt | |||
| Abteilung Department | Die funktionale Abteilung oder der Kostenplatz, die/der für die Aktivität oder Transaktion verantwortlich ist. | ||
| Beschreibung Dieses Attribut identifiziert die Geschäftsbereiche, wie z. B. „Finance“, „Sales“ oder „Logistics“, die mit einer Transaktion verbunden sind. Dies wird oft aus den Kostenstellen-Stammdaten, die mit einer Buchung verknüpft sind, oder aus den Stammdaten des Benutzers abgeleitet. Die Analyse nach Abteilungen unterstützt das Dashboard „Close Team Workload Distribution“. Sie hilft zu verstehen, wie verschiedene Geschäftsfunktionen zur Periodenend-Workload beitragen, insbesondere in Bezug auf die Initiierung von Transaktionen, die später Anpassungen oder Abstimmungen erfordern können. Es kann Bereiche außerhalb des Kernfinanzteams hervorheben, die den Abschlussprozess beeinflussen. Bedeutung Hilft bei der Analyse der Arbeitslast und Prozesskonformität über verschiedene Geschäftsfunktionen hinweg und zeigt auf, wie verschiedene Abteilungen die Effizienz des Finanzabschlusses beeinflussen. Datenquelle Oft abgeleitet vom Kostenplatz (KOSTL) in BSEG oder von den HR-Stammdaten des verantwortlichen Benutzers. Dies kann das Verknüpfen mehrerer Tabellen erfordern. Beispiele UnternehmensfinanzierungKreditorenbuchhaltungFP&A | |||
| Geschäftsjahr GJAHR | Das Geschäftsjahr, in dem die Transaktion gebucht wurde. | ||
| Beschreibung Das Geschäftsjahr ist ein fundamentales Element zur Organisation von Finanzdaten. Es ist eine Schlüsselkomponente der Finanzperiode als Case ID und bietet wesentlichen Kontext für alle Transaktionen. Obwohl oft Teil der Case ID, ist das Geschäftsjahr als separates Attribut nützlich für die langfristige Trendanalyse. Es ermöglicht jährliche Vergleiche von Abschluss-Cycle Times, Anpassungsvolumen oder anderen KPIs und hilft, Verbesserungen oder Leistungsabnahmen über mehrere Jahre hinweg zu identifizieren. Bedeutung Bietet wesentlichen zeitlichen Kontext und ermöglicht jährliche Leistungsvergleiche des Abschlussprozesses. Datenquelle Verfügbar in der Belegkopftabelle BKPF (GJAHR). Beispiele 202320242022 | |||
| Handelspartner VBUND | Der Identifikator des verbundenen Konzernunternehmens, das an einer Intercompany-Transaktion beteiligt ist. | ||
| Beschreibung Die Trading Partner ID wird verwendet, um den anderen Buchungskreis zu identifizieren, der an einer Intercompany-Transaktion beteiligt ist. Dies ist unerlässlich für die Abstimmung von Konten zwischen verbundenen rechtlichen Einheiten. Dieses Attribut unterstützt direkt das Dashboard „Intercompany Reconciliation Flow“ und den KPI „Intercompany Recon. Cycle Time“. Durch das Filtern nach Transaktionen, bei denen ein Trading Partner vorhanden ist, kann sich die Analyse speziell auf die Effizienz und Pünktlichkeit des Intercompany-Abstimmungsprozesses konzentrieren, der oft einen großen Schmerzpunkt während des Periodenabschlusses darstellt. Bedeutung Identifiziert spezifisch Intercompany-Transaktionen und ermöglicht eine fokussierte Analyse des oft komplexen und zeitaufwändigen Intercompany-Abstimmungsprozesses. Datenquelle Gefunden in der Belegpositionstabelle BSEG (VBUND). Beispiele 1000US013000 | |||
| Ist automatisiert IsAutomated | Ein Flag, das anzeigt, ob eine Aktivität von einem menschlichen Benutzer oder einem automatisierten System durchgeführt wurde. | ||
| Beschreibung Dieses boolesche Attribut unterscheidet zwischen manuellen Aufgaben und solchen, die automatisch vom System ausgeführt werden, z. B. ein geplanter Batch-Job für die Fremdwährungsbewertung oder ein Bot, der wiederkehrende Einträge bucht. Dies wird oft durch Analyse des mit der Transaktion verbundenen Benutzernamens (z. B. „BATCHUSER“) bestimmt. Das Verständnis des Automatisierungsgrads ist entscheidend, um Möglichkeiten für Effizienzsteigerungen zu identifizieren. Die Analyse dieses Attributs hilft zu visualisieren, welche Teile des Prozesses manuell sind und potenziell für die Automatisierung reif sind. Es hilft auch bei der genauen Bewertung der menschlichen Workload, indem systemgenerierte Aktivitäten ausgeschlossen werden. Bedeutung Unterscheidet zwischen manuellen und systemgesteuerten Aktivitäten, was entscheidend ist, um Automatisierungsmöglichkeiten zu identifizieren und den manuellen Arbeitsaufwand genau zu messen. Datenquelle Dies ist ein abgeleitetes Attribut. Die Logik basiert typischerweise auf dem Benutzernamen (USNAM), wobei eine Liste bekannter System- oder Batch-Benutzer-IDs auf eine automatisierte Aufgabe hinweist. Beispiele truefalsch | |||
| Ist Nacharbeit IsRework | Ein berechnetes Flag, das Aktivitäten identifiziert, die Nacharbeit darstellen, wie z.B. eine Stornierung oder eine abgelehnte Abstimmung. | ||
| Beschreibung Dieses boolesche Attribut kennzeichnet Events oder Eventsequenzen, die ineffiziente Schleifen oder Korrekturen im Prozess anzeigen. Zum Beispiel könnte eine „Reconciliation Reviewed“-Aktivität, gefolgt von einer weiteren „Adjusting Journal Entry Posted“ auf demselben Konto, als Nacharbeit gekennzeichnet werden. Dieses Attribut ist entscheidend für die Quantifizierung von Prozessverschwendung und unterstützt das Dashboard „Reconciliation Rework Instances“ und den KPI „Reconciliation Rework Rate“. Durch die Isolierung von Nacharbeit können Teams die Ursachen untersuchen, die Auswirkungen auf die Cycle Time messen und die Wirksamkeit von Prozessverbesserungsinitiativen verfolgen, die darauf abzielen, es beim ersten Mal richtig zu machen. Bedeutung Quantifiziert die Prozessineffizienz, indem Aktivitäten als Korrekturen oder Wiederholungen gekennzeichnet werden, was hilft, verschwendeten Aufwand zu messen und zu reduzieren. Datenquelle Dies ist ein berechnetes Attribut. Die Logik wird im Process Mining Tool basierend auf spezifischen Aktivitätssequenzen (z.B. Schleifen) oder Attributen (z.B. ReversalReason ist nicht null) definiert. Beispiele truefalsch | |||
| Ist überfällig IsOverdue | Ein berechnetes Flag, das anzeigt, ob eine Aktivität nach ihrem geplanten Zieldatum abgeschlossen wurde. | ||
| Beschreibung Dieses boolesche Attribut vergleicht die tatsächliche Abschlusszeit einer Aktivität (EventTime) mit ihrer geplanten Frist (TargetCompletionDate). Wenn die Event Time später als das Ziel ist, wird das Flag auf true gesetzt. Dieses Attribut unterstützt direkt das Dashboard „Close Compliance & Overdue Tasks“ und den KPI „On-Time Period Close Rate“. Es liefert ein klares und sofortiges Signal für Zeitplanabweichungen, wodurch Manager verspätete Aufgaben schnell identifizieren, die Auswirkungen auf den gesamten Zeitplan verstehen und Teams für die Einhaltung von Fristen verantwortlich machen können. Bedeutung Bietet einen klaren Indikator für die Nichteinhaltung von Zeitplänen, was eine schnelle Identifizierung verspäteter Aufgaben und die Messung der pünktlichen Leistung ermöglicht. Datenquelle Dies ist ein berechnetes Attribut, das im Process Mining Tool durch den Vergleich der EventTime mit dem TargetCompletionDate ermittelt wird. Beispiele truefalsch | |||
| Period Closing Cycle Time PeriodCloseCycleTime | Die gesamte vergangene Zeit vom Beginn bis zum Ende des Periodenabschlussprozesses für eine einzelne Finanzperiode. | ||
| Beschreibung Diese berechnete Metrik misst die End-to-End-Dauer des gesamten Periodenabschlusses für eine Finanzperiode. Sie wird typischerweise als Zeitdifferenz zwischen der ersten und letzten aufgezeichneten Aktivität innerhalb dieser Periode berechnet. Dies ist ein primärer Key Performance Indicator (KPI) für den Record-to-Report-Prozess. Er liefert ein hochrangiges Maß für die Gesamteffizienz des Abschlusses. Dashboards, die diese Metrik im Zeitverlauf visualisieren, sind unerlässlich, um den Fortschritt bei strategischen Zielen wie der Beschleunigung des Abschlusses zu verfolgen. Bedeutung Dies ist ein kritischer KPI, der die Gesamteffizienz und Geschwindigkeit des Finanzabschlusses misst und strategische Ziele zur Verkürzung der Abschlusszyklen direkt unterstützt. Datenquelle Dies ist eine berechnete Metrik, die im Process Mining Tool durch die Differenz zwischen der maximalen und minimalen EventTime für jede Finanzperiode (CaseId) berechnet wird. Beispiele 5 Tage 4 Stunden 30 Minuten6,2 Tage120,5 Stunden | |||
| Stornogrund ReversalReason | Ein Code, der den Grund angibt, warum ein Finanzbeleg storniert wurde. | ||
| Beschreibung Wird ein Beleg in SAP storniert, kann ein Stornierungsgrund hinterlegt werden, um den Zweck der Stornierung zu erläutern, z. B. „Stornierung in aktueller Periode“ oder „Falscheingabe“. Dieses Attribut liefert entscheidenden Kontext, warum Nacharbeit anfällt. Die Analyse von Stornierungsgründen hilft, Fehlermuster wie inkorrekte Dateneingaben oder falsche Daten zu identifizieren. Diese Erkenntnis kann genutzt werden, um präventive Maßnahmen zu implementieren, Schulungen zu verbessern oder Systemkontrollen zu erweitern, um die Anzahl der Fehler und nachfolgenden Stornierungen zu reduzieren, was zu einem effizienteren Abschluss führt. Bedeutung Bietet direkten Einblick in die Ursachen von Fehlern und Nacharbeit und hilft dabei, Möglichkeiten zur Prozessverbesserung und Fehlervermeidung zu identifizieren. Datenquelle Befindet sich in der Belegkopftabelle BKPF (STGRD). Beispiele 010205 | |||
| Ziel-Abschlussdatum TargetCompletionDate | Die geplante Frist oder der Fälligkeitstermin für eine Aktivität oder den gesamten Periodenabschluss. | ||
| Beschreibung Das Target Completion Date stellt den Zeitplan dar, nach dem der Periodenabschlussprozess gemessen wird. Es ist die Frist, bis zu der bestimmte Meilensteine oder der endgültige Abschluss abgeschlossen sein sollten. Dieses Attribut ist für jede Performance- oder Compliance-bezogene Analyse unerlässlich. Es wird verwendet, um den KPI „On-Time Period Close Rate“ zu berechnen und das Dashboard „Close Compliance & Overdue Tasks“ zu betreiben. Durch den Vergleich der tatsächlichen Event Time mit diesem Zieldatum kann das System feststellen, ob Aufgaben im Zeitplan liegen, verspätet sind oder Gefahr laufen, verspätet zu sein, was ein proaktives Management des Abschlussprozesses ermöglicht. Bedeutung Ermöglicht Compliance- und Performance-Überwachung durch Bereitstellung einer Basislinie, um zu messen, ob Abschlussaktivitäten pünktlich abgeschlossen werden, und unterstützt On-Time-Delivery KPIs. Datenquelle Hierbei handelt es sich typischerweise um Stammdaten, die in einem separaten Kalender, einem Abschlusscockpit-Tool (wie dem SAP Financial Closing Cockpit) oder einer Tabellenkalkulation gepflegt werden. Sie sind nicht Teil der Transaktionsdaten. Beispiele 2023-12-29T23:59:59Z2024-01-03T17:00:00Z2024-01-02T12:00:00Z | |||
Record to Report - Period Close & Reconciliation Aktivitäten
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Finanzberichte erstellt | Dies stellt den Zeitpunkt dar, zu dem offizielle Finanzberichte, wie die Gewinn- und Verlustrechnung und die Bilanz, erstellt werden. Diese Aktivität wird typischerweise durch die Nachverfolgung der Ausführung eines spezifischen Berichtsprogramms erfasst. | ||
| Bedeutung Dies ist ein wichtiger Meilenstein, der das Ende der Datenverarbeitung und den Beginn der finalen Überprüfungs- und Genehmigungsphase markiert. Die Zeit von diesem Event bis zur Genehmigung ist ein Schlüssel-KPI. Datenquelle Abgeleitet aus System-Audit-Protokollen, wie STAD, die die Ausführung des Programms zur Erstellung von Finanzberichten aufzeichnen, am häufigsten Transaktion F.01. Erfassen Aus Systemprotokollen (STAD), die die Ausführung der Finanzberichtstransaktion F.01 verfolgen. Ereignistyp inferred | |||
| Fremdwährungsbewertungslauf | Dies stellt die Ausführung eines Programms zur Neubewertung offener Posten und Salden dar, die in Fremdwährungen unter Verwendung von Stichtagskursen erfasst wurden. Dies wird typischerweise als Batch-Job im Rahmen der Abschlussschritte zum Periodenende ausgeführt. | ||
| Bedeutung Dies ist ein entscheidender Schritt zur Sicherstellung einer genauen Finanzberichterstattung in multinationalen Organisationen. Die Analyse des Zeitpunkts und der Dauer hilft, Möglichkeiten zur Automatisierung und Leistungsoptimierung zu identifizieren. Datenquelle Erfasst aus den Ausführungsprotokollen des Fremdwährungsbewertungsprogramms, wie FAGL_FCV oder F.05. Batch-Job-Details aus Tabellen wie TBTCO und TBTCP liefern Ausführungszeitstempel. Erfassen Aus Batch-Job-Protokollen (Tabelle TBTCO) für das Programm FAGL_FC_VALUATION oder SAPF100. Ereignistyp explicit | |||
| Kontenabstimmung gestartet | Stellt den Beginn des Abstimmungsprozesses für eine Reihe von Hauptbuchkonten für die Periode dar. Im Standard SAP ECC ist dies kein diskretes Event und wird typischerweise aus verwandten Aktivitäten abgeleitet, wie z.B. dem erstmaligen Ausführen eines Schlüsselberichts. | ||
| Bedeutung Diese Aktivität stellt einen wichtigen Meilenstein dar, um die Dauer der gesamten Abstimmungsphase zu messen. Das Verständnis, wann die Abstimmung beginnt, ist essenziell für den KPI Account Reconciliation Cycle Time. Datenquelle Dieses Event wird nicht explizit protokolliert. Es muss aus anderen Datenquellen abgeleitet werden, wie z.B. dem System-Audit Log (Transaktion STAD) für die erste Ausführung eines Saldendarstellungsberichts wie FAGLB03 oder FS10N. Erfassen Aus dem ersten Lauf relevanter Berichtstransaktionen (z.B. FAGLB03) in Systemprotokollen ableiten. Ereignistyp inferred | |||
| Korrekturbuchung gebucht | Eine Korrekturbuchung wird vorgenommen, um Kontensalden zu korrigieren, nachdem die initiale Transaktionsverarbeitung für die Periode abgeschlossen ist. Dieses Ereignis wird als standardmäßige Finanzbelegbuchung in SAP erfasst. | ||
| Bedeutung Dies ist unerlässlich für die Adjusting Entries Volume Analysis. Ein hohes Volumen an Anpassungen deutet auf Probleme mit der Genauigkeit des vorgelagerten Prozesses hin und ist ein wichtiges Ziel für Prozessverbesserungsinitiativen. Datenquelle Gefunden in den Tabellen BKPF und BSEG. Diese Einträge werden typischerweise durch eine spezifische Belegart (BKPF-BLART) identifiziert, die für Anpassungen reserviert ist, oder durch Buchungen in speziellen Abschlussperioden, wie 13 bis 16. Erfassen Filtern Sie BKPF nach Belegen, die in Sonderperioden oder mit Korrekturbelegarten gebucht wurden. Ereignistyp explicit | |||
| Periode für Buchungen geöffnet | Dies kennzeichnet den offiziellen Beginn einer Finanzperiode, wodurch Transaktionen im Hauptbuch gebucht werden können. Es handelt sich um eine explizite Konfigurationsänderung, die von einem autorisierten Benutzer vorgenommen wird, um eine spezifische Periode für Buchungen in einem oder mehreren Buchungskreisen zu öffnen. | ||
| Bedeutung Diese Aktivität dient als das definitive Start Event für den Period Close Prozess Case. Die Analyse der Zeit ab diesem Punkt hilft, den gesamten Lebenszyklus der Finanzperiode zu verstehen. Datenquelle Änderungen an Buchungsperioden über Transaktion OB52 werden protokolliert. Diese Änderungen können durch Analyse der Änderungsbelege für die zugrunde liegende Konfigurationstabelle T001B extrahiert werden, typischerweise unter Verwendung der Tabellen CDHDR und CDPOS. Erfassen Aus Änderungsbelegen (CDHDR/CDPOS) für Tabelle T001B extrahieren. Ereignistyp explicit | |||
| Periode für Buchungen geschlossen | Stellt den formellen Abschluss einer Buchungsperiode dar, der weitere operative Journaleinträge verhindert. Dies gewährleistet die Integrität der Finanzdaten für die abgeschlossene Periode und ist eine explizite Konfigurationsänderung. | ||
| Bedeutung Dies ist das endgültige Endereignis für den Periodenabschlussprozess. Es ist entscheidend für die genaue Berechnung der gesamten Zykluszeit des Periodenabschlusses und die Messung der Termintreue. Datenquelle Die Schließung von Perioden über die Transaktion OB52 wird protokolliert. Diese Änderungen können durch Analyse der Änderungsbelege (Tabellen CDHDR und CDPOS) für die Konfigurationstabelle T001B gefunden werden. Erfassen Aus Änderungsbelegen (CDHDR/CDPOS) für Tabelle T001B extrahieren. Ereignistyp explicit | |||
| Abgrenzung oder Rückstellung gebucht | Dies stellt die Buchung eines Journaleintrags für eine Abgrenzung, einen Rechnungsabgrenzungsposten oder eine Rückstellung dar, die typischerweise gegen Ende einer Periode erfolgen. Dies ist kein eindeutiger Ereignistyp in SAP, wird aber durch die Identifizierung spezifischer Journaleinträge auf Basis ihrer Merkmale abgeleitet. | ||
| Bedeutung Die Isolierung dieser Einträge hilft bei der Analyse des Teilprozesses zur Verwaltung von Schätzungen. Ein hohes Volumen oder häufige Anpassungen von Abgrenzungen können auf Bereiche zur Prozessverbesserung hinweisen. Datenquelle Abgeleitet aus den Finanzbelegtabellen BKPF und BSEG. Einträge können durch Filterung nach einer spezifischen Belegart (BKPF-BLART), einem eindeutigen Hauptbuchkonto (BSEG-HKONT) oder Stichwörtern im Kopftext (BKPF-BKTXT) identifiziert werden. Erfassen Filtern Sie BKPF/BSEG-Tabellen nach Belegart, spezifischen Hauptbuchkonten oder Textfeldern. Ereignistyp inferred | |||
| Abstimmung überprüft | Zeigt an, dass eine Abstimmung für ein spezifisches Konto oder eine Kontengruppe überprüft und bestätigt wurde. Im Standard-SAP ECC ist dies kein explizit protokolliertes Ereignis und wird oft über Offline-Kontrollen oder kundenspezifische Lösungen verwaltet. | ||
| Bedeutung Die Nachverfolgung des Zeitpunkts von Überprüfungen ist wichtig, um Engpässe in den Kontroll- und Überwachungsphasen des Abschlussprozesses zu verstehen. Sie kann Verzögerungen aufzeigen, die durch die Verfügbarkeit des Managements oder Nacharbeiten verursacht werden. Datenquelle Diese Informationen sind in Standard-ECC-Tabellen nicht verfügbar. Sie würden eine benutzerdefinierte Lösung erfordern, wie z.B. ein Statusfeld in einer benutzerdefinierten Z-Tabelle, einen einfachen Workflow oder die Integration mit einem spezialisierten Drittanbieter-Abstimmungstool. Erfassen Erfassen Sie Statusänderungen aus einem benutzerdefinierten Workflow oder einer Z-Tabelle, falls implementiert. Ereignistyp inferred | |||
| Intercompany-Beleg ausgeglichen | Diese Aktivität markiert den Ausgleich eines offenen Postens zwischen zwei verschiedenen Buchungskreisen und signalisiert, dass eine Intercompany-Transaktion verrechnet oder abgestimmt wurde. Dies wird als explizite Finanzbuchung in SAP erfasst, typischerweise als Ausgleichsbeleg. | ||
| Bedeutung Verzögerungen bei der Klärung von Intercompany-Positionen sind ein häufiger Engpass im Abschlussprozess. Die Verfolgung dieser Aktivität ist entscheidend für die Messung und Verbesserung der Intercompany-Abstimmungszykluszeit. Datenquelle Identifiziert aus Finanzbelegen in BKPF und BSEG. Ein Ausgleichsbeleg verknüpft und schließt offene Posten, und sein Ausgleichsdatum (BSEG-AUGDT) dient als Event-Zeitstempel. Intercompany-Transaktionen werden anhand von Handelspartnerfeldern identifiziert. Erfassen Ausgleichsbelege in BKPF/BSEG identifizieren, die Posten mit Handelspartnern betreffen. Ereignistyp explicit | |||
| Saldenlistenbericht erstellt | Markiert die Ausführung eines Berichts zur Erstellung der Saldenliste. Dies ist ein wichtiger Schritt, um zu überprüfen, ob die Summe der Sollbuchungen der Summe der Habenbuchungen entspricht, bevor die offiziellen Finanzberichte erstellt werden. | ||
| Bedeutung Dies ist eine kritische Qualitätskontrolle vor dem finalen Reporting. Wiederholte Ausführungen dieses Berichts können darauf hindeuten, dass zugrunde liegende Datenprobleme gefunden und korrigiert werden, was potenziell zu Verzögerungen führt. Datenquelle Abgeleitet aus System-Audit-Protokollen, wie Transaktion STAD, die die Ausführung von Saldenlisten-Berichtstransaktionen wie S_ALR_87012277 oder F.01 aufzeichnen kann. Erfassen Aus Systemprotokollen (STAD), die die Ausführung von Berichts-Transaktionscodes verfolgen. Ereignistyp inferred | |||
| Stornobuchung gebucht | Diese Aktivität erfasst die Buchung eines Belegs, der einen zuvor gebuchten Journaleintrag storniert, oft zur Korrektur eines Fehlers. SAP erstellt eine explizite Verknüpfung zwischen dem Stornobeleg und dem Originalbeleg. | ||
| Bedeutung Eine hohe Anzahl von Stornierungen deutet auf potenzielle Probleme bei der Datenerfassungsgenauigkeit oder den Prozesskontrollen hin. Die Verfolgung dieser Ereignisse hilft, die First-Time-Right-Raten zu messen und verbesserungsbedürftige Bereiche zu identifizieren. Datenquelle Stornobelege finden sich in der Tabelle BKPF. Sie werden oft mit der Transaktion FB08 erstellt und enthalten einen Verweis auf die stornierte Belegnummer im Feld BKPF-STBLG. Erfassen Belege identifizieren, bei denen BKPF-STBLG gefüllt ist oder die über Storno-Transaktionscodes erstellt wurden. Ereignistyp explicit | |||
| WE/RE-Verrechnungslauf ausgeführt | Die Ausführung des automatisierten Clearing-Programms für das Wareneingang/Rechnungseingang-Konto. Dieses Programm gleicht entsprechende Wareneingänge und Rechnungseingänge ab und verrechnet die Posten miteinander. | ||
| Bedeutung Das WE/RE-Konto ist eine häufige Quelle für Abstimmungsprobleme. Die Überwachung dieser Aktivität stellt sicher, dass der automatisierte Schritt korrekt ausgeführt wird und hilft, das Volumen der Ausnahmen zu quantifizieren, die eine manuelle Nachverfolgung erfordern. Datenquelle Die Ausführung wird in Batch-Job-Protokollen (Transaktion SM37) erfasst. Das Programm ist typischerweise SAPF124, ausgeführt über Transaktion F.13. Job-Log-Tabellen wie TBTCO liefern die notwendigen Zeitstempel. Erfassen Aus Batch-Job-Protokollen (Tabelle TBTCO) für das Clearing-Programm SAPF124. Ereignistyp explicit | |||
Extraktionsleitfäden
Schritte
- SAP Query-Tool aufrufen: Melden Sie sich an Ihrem SAP ECC-System an. Gehen Sie zum Transaktionscode
SQVI(QuickViewer). 2. Neue Query erstellen: Geben Sie einen Namen für Ihre Query ein, z.B.Z_R2R_PERIOD_CLOSE, und klicken Sie auf 'Anlegen'. Im Pop-up geben Sie einen aussagekräftigen Titel wie 'Record-to-Report Periodenabschluss-Extraktion' ein. Für die 'Datenquelle' wählen Sie 'Tabellenverknüpfung'. 3. Tabellenverknüpfungen definieren: Fügen Sie die PrimärtabelleBKPF(Belegkopf Finanzbuchhaltung) hinzu. Fügen Sie dann die TabelleBSEG(Belegposition Finanzbuchhaltung) hinzu. SAP schlägt die Join-Bedingungen automatisch vor (MANDT, BUKRS, BELNR, GJAHR), die Sie überprüfen und akzeptieren sollten. Für Periodenöffnungs- und -abschlusstätigkeiten benötigen Sie eine separate Query, dieCDHDRundCDPOSverknüpft. 4. Ausgabefelder auswählen (Listenfelder): Navigieren Sie zur Registerkarte 'Listenfelder wählen'. Wählen Sie die für den Event Log benötigten Felder aus den verfügbaren Tabellen aus. Dies umfasstBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRund andere nach Bedarf. 5. Eingabeparameter definieren (Selektionsfelder): Navigieren Sie zur Registerkarte 'Selektionsfelder'. Wählen Sie die Felder aus, die während der Ausführung zur Filterung der Daten verwendet werden. Die wichtigsten Felder sindBKPF-BUKRS(Buchungskreis) undBKPF-GJAHR(Geschäftsjahr). Sie können auchBKPF-MONAT(Buchungsperiode) undBKPF-BLART(Belegart) hinzufügen. 6. Varianten für jede Aktivität erstellen: Da SQVI verschiedene Datenselektionen (wie eine SQL UNION) nicht kombinieren kann, müssen Sie die Query mehrmals ausführen. Für jede Aktivität (z.B. 'Abgrenzung oder Rückstellung gebucht') führen Sie die Query aus und geben spezifische Filterwerte auf dem Auswahlbildschirm ein, wie z.B. eine Liste von für Abgrenzungen relevanten Belegarten. Speichern Sie diese Auswahlkriterien als Variante. Wiederholen Sie diesen Prozess für jede extrahierbare Aktivität. 7. Daten ausführen und extrahieren: Führen Sie die Query für jede von Ihnen erstellte Variante aus. Dadurch wird die Query mit den spezifischen Filtern für diese Aktivität ausgeführt. 8. Ergebnisse exportieren: Im Ergebnisbildschirm exportieren Sie die Daten in eine lokale Datei. Das gängigste Format ist 'Tabellenkalkulation'. Wiederholen Sie den Export für jede Variante. 9. Daten kombinieren und transformieren: Öffnen Sie die exportierten Dateien in einem Tabellenkalkulationsprogramm oder verwenden Sie ein Skript-Tool. Kombinieren Sie die Daten aus allen Dateien manuell zu einer einzigen Masterdatei. 10. Konstante und berechnete Spalten hinzufügen: Fügen Sie in der kombinierten Datei die Spalten hinzu, die nicht direkt aus SAP-Tabellen extrahiert wurden. Dies umfasstActivityName(manuell basierend auf der Herkunft der Daten festlegen),FinancialPeriod(durch Verketten von Geschäftsjahr und Periode),EventTime(durch Kombinieren von Datums- und Zeitfeldern),SourceSystem, undLastDataUpdate. 11. Für den Upload formatieren: Stellen Sie sicher, dass die endgültige Datei im CSV- oder Excel-Format mit den korrekten Spaltenüberschriften gespeichert wird, wie es für Ihr Process Mining-Tool erforderlich ist. Überprüfen Sie Datentypen und Formatierung vor dem Hochladen.
Konfiguration
- Datenquelle: Tabellenverknüpfung in SAP Query (SQVI). Schlüsseltabellen sind BKPF, BSEG, CDHDR und CDPOS. * Datumsbereich: Es wird empfohlen, Daten für einen Zeitraum von mindestens 3 bis 6 vollständigen Finanzperioden zu extrahieren, um Muster zu erkennen. Setzen Sie den Filter auf
BKPF-GJAHR(Geschäftsjahr) undBKPF-MONAT(Periode). * Buchungskreis-Filter: Filtern Sie immer nachBKPF-BUKRS(Buchungskreis), um das Datenvolumen zu begrenzen und die Analyse auf spezifische juristische Einheiten zu konzentrieren. Eine Extraktion für alle Buchungskreise gleichzeitig wird nicht empfohlen. * Belegart-Filter: Verwenden Sie Filter aufBKPF-BLART(Belegart), um spezifische Aktivitäten wie Abgrenzungen, Korrekturen oder Stornierungen zu isolieren. Sie müssen die relevanten Belegarten für Ihre Organisation ermitteln. * Voraussetzungen: Der Benutzer, der die Extraktion durchführt, benötigt die Berechtigung zur Nutzung der TransaktionSQVIund Anzeigezugriff auf die relevanten Finanztabellen (z.B. Berechtigungsobjekt S_TABU_DIS). * Leistungsüberlegungen: Das Verknüpfen von BKPF und BSEG kann ressourcenintensiv sein. Führen Sie die Extraktion außerhalb der Spitzenzeiten durch. Vermeiden Sie sehr weite Datumsbereiche oder das Offenlassen des Buchungskreis-Filters, da dies zu Speicherproblemen oder Timeouts führen kann.
a Beispielabfrage config
/*
LOGICAL REPRESENTATION FOR SAP QUERY (SQVI)
This is not a single executable script. Due to limitations in SQVI, you must create a base query joining BKPF and BSEG, then run it multiple times using different selection screen variants to extract each activity below. The results must be combined manually.
A separate query joining CDHDR and CDPOS is needed for period open/close activities.
*/
-- Activity 1: Period Opened For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW > CDPOS.VALUE_OLD;
UNION ALL
-- Activity 2: Accrual Or Provision Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Accrual' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('SA', '[Your Accrual Doc Type]'); -- Filter by document types used for accruals
UNION ALL
-- Activity 3: Intercompany Document Cleared
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.AUGBL AS BELNR, -- The clearing document number
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BSEG.AUGBL IS NOT NULL AND BSEG.VBUND IS NOT NULL; -- Identify cleared items with an intercompany trading partner
UNION ALL
-- Activity 4: Foreign Currency Valuation Run
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Valuation' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('FAGL_FCV', 'FBB1'); -- Filter by FCV transaction code
UNION ALL
-- Activity 5: GR/IR Clearing Run Executed
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Clearing' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.TCODE IN ('F.13', 'F13E'); -- Filter by automated clearing transaction codes
UNION ALL
-- Activity 6: Account Reconciliation Started (Proxy)
-- This is a proxy. It takes the earliest adjusting journal entry timestamp for the period.
SELECT
A.FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
MIN(A.EventTime) AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
A.BUKRS,
NULL AS BELNR,
NULL AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM (
SELECT CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
BKPF.BUKRS
FROM BKPF
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]')
) AS A
GROUP BY A.FinancialPeriod, A.BUKRS;
UNION ALL
-- Activity 7: Adjusting Journal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Adjusting' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.BLART IN ('AB', '[Your Adjusting Doc Type]'); -- Filter by document types for adjustments
UNION ALL
-- Activity 8: Reversal Entry Posted
SELECT
CONCAT(BKPF.GJAHR, BKPF.MONAT) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
BKPF.BUKRS AS BUKRS,
BKPF.BELNR AS BELNR,
BKPF.USNAM AS USNAM,
BSEG.HKONT AS HKONT,
BKPF.BLART AS BLART,
BSEG.DMBTR AS DMBTR,
'Reversal' AS JournalEntryType
FROM BKPF
JOIN BSEG ON BKPF.BUKRS = BSEG.BUKRS AND BKPF.BELNR = BSEG.BELNR AND BKPF.GJAHR = BSEG.GJAHR
WHERE BKPF.STBLG IS NOT NULL; -- STBLG (Reversed Document Number) is populated for reversals
UNION ALL
-- Activity 9: Period Closed For Posting
-- Required Query: Join CDHDR and CDPOS in SQVI.
SELECT
CONCAT(T001B.VONJ1, T001B.POPER) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS EventTime,
'[SAP ECC SID]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
T001B.BUKRS AS BUKRS,
NULL AS BELNR,
CDHDR.USERNAME AS USNAM,
NULL AS HKONT,
NULL AS BLART,
NULL AS DMBTR,
NULL AS JournalEntryType
FROM CDHDR
JOIN CDPOS ON CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN T001B ON SUBSTRING(CDPOS.TABKEY, 4, 4) = T001B.BUKRS
WHERE CDHDR.OBJECTCLAS = 'DEBI_BUKRS' AND CDPOS.TABNAME = 'T001B' AND CDPOS.FNAME = 'OFPER' AND CDPOS.VALUE_NEW < CDPOS.VALUE_OLD;
/*
-- Activities Not Extractable via this Method
-- The following activities are not data postings and cannot be reliably extracted by querying finance tables BKPF/BSEG.
-- Extraction would require analyzing application logs (SLG1), system logs (STAT), or custom-built logging solutions.
-- Activity: Trial Balance Report Generated
-- Activity: Financial Statements Generated
-- Activity: Reconciliation Reviewed
*/ Schritte
- Programmabgrenzung und -design: Definieren Sie die spezifische Logik zur Identifizierung jeder der 12 erforderlichen Aktivitäten. Konsultieren Sie die Geschäftsprozessverantwortlichen und SAP-Funktionsanalysten, um die Belegarten, Hauptbuchkonten und Programmnamen zu bestätigen, die mit den Periodenabschlussaktivitäten in Ihrer spezifischen SAP ECC-Umgebung verbunden sind.
- ABAP-Programm erstellen: Verwenden Sie die Transaktion
SE38(ABAP Editor), um ein neues ausführbares Programm zu erstellen, z.B.Z_PM_R2R_EXTRACTION. Geben Sie einen aussagekräftigen Titel an und setzen Sie den Programmtyp auf 'Ausführbares Programm'. - Auswahlbildschirm definieren: Definieren Sie im Programm einen Auswahlbildschirm mittels
PARAMETERSundSELECT-OPTIONS. Dieser Bildschirm ermöglicht es Benutzern, den Extraktionsumfang festzulegen, einschließlich Buchungskreis (BUKRS), Geschäftsjahr (GJAHR) und Buchungsperiode (MONAT). Dies ist entscheidend für die Steuerung des Datenvolumens. - Datenstrukturen deklarieren: Definieren Sie eine interne Tabellenstruktur, die die finalen Event Log Daten aufnehmen wird. Diese Struktur muss alle erforderlichen und empfohlenen Attribute enthalten:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRundJournalEntryType. - Datenextraktionslogik implementieren: Schreiben Sie die zentrale ABAP-Logik, um Daten für jede der 12 Aktivitäten auszuwählen. Für jede Aktivität fragen Sie die relevanten SAP-Tabellen (z.B. BKPF, BSEG, TBTCO, CDHDR) ab und füllen eine temporäre interne Tabelle. Verwenden Sie die im begleitenden ABAP-Query-Abschnitt bereitgestellte Logik als Vorlage.
- Abgeleitete Aktivitäten identifizieren: Für Aktivitäten, die nicht explizit im Standard-SAP protokolliert sind, wie 'Kontenabstimmung gestartet' oder 'Abstimmung überprüft', implementieren Sie die vereinbarte Inferenzlogik. Dies kann die Überprüfung des ersten Laufs eines spezifischen Berichts oder die Abfrage von benutzerdefinierten 'Z-Tabellen' umfassen, falls diese existieren.
- Event-Daten konsolidieren: Nach der Extraktion von Daten für alle einzelnen Aktivitäten hängen Sie die Datensätze aus jeder temporären Tabelle an die endgültige konsolidierte interne Tabelle an. Stellen Sie sicher, dass das Feld
EventTimekorrekt aus dem relevanten Quellfeld gefüllt wird, wie z.B. Belegbuchungsdatum/-zeit oder Job-Startdatum/-zeit. - Daten standardisieren und formatieren: Vor der Ausgabe standardisieren Sie Schlüsselfelder. Kombinieren Sie Geschäftsjahr und Periode zum
FinancialPeriod-Identifikator. Legen Sie statische Werte fürSourceSystemundLastDataUpdatefest. Stellen Sie sicher, dass Zeitstempel in einem konsistenten Format vorliegen. - Ausgabefunktionalität entwickeln: Fügen Sie dem Programm Funktionalität hinzu, um die finale interne Tabelle zu exportieren. Die gängigste Methode ist, die Daten in eine CSV- oder tabulatorgetrennte Datei auf dem SAP-Anwendungsserver zu schreiben (mittels
OPEN DATASET) oder dem Benutzer zu ermöglichen, sie direkt auf seinen lokalen Rechner herunterzuladen (mittels FunktionsbausteinGUI_DOWNLOAD). - Testen und Validieren: Testen Sie das Programm gründlich mit einem repräsentativen Datensatz, der mehrere Buchungskreise und Perioden abdeckt. Nutzen Sie die Validierungsschritte, um die Datenrichtigkeit und Vollständigkeit sicherzustellen. Verfeinern Sie die Selektionslogik basierend auf dem Feedback von Fachexperten.
- Ausführung planen (Optional): Nach der Validierung kann das Programm als Hintergrundjob über Transaktion
SM36eingeplant werden. Dies ermöglicht eine automatisierte, periodische Extraktion des Event Logs ohne manuellen Eingriff.
Konfiguration
- Auswahlkriterien: Das Programm sollte einen Auswahlbildschirm zur Filterung der Daten besitzen. Wichtige Filter umfassen:
Buchungskreis (BUKRS): Obligatorisch, um den Umfang auf relevante juristische Einheiten zu beschränken.Geschäftsjahr (GJAHR): Obligatorisch, um das primäre Jahr für die Extraktion festzulegen.Buchungsperiode (MONAT): Obligatorisch, um die spezifischen Finanzperioden auszuwählen.
- Aktivitätsspezifische Konfiguration: Viele Auswahlen hängen von Ihrer spezifischen SAP-Konfiguration ab. Diese sollten als Parameter oder Konstanten innerhalb des Programms konfigurierbar sein:
Abgrenzungs-/Rückstellungsbelegarten: Eine Liste von Belegarten (BLART), die zur Identifizierung von Abgrenzungs- und Rückstellungsbuchungen verwendet werden.Korrekturbelegarten: Eine Liste von Belegarten, die zur Identifizierung von Korrekturbuchungen verwendet werden.Namen von Hintergrundjobs/Programmen: Die technischen Namen der Programme, die für die Fremdwährungsbewertung (z.B.FAGL_FCV), die WE/RE-Verrechnung (z.B.SAPF124), Saldenlisten und die Erstellung von Jahresabschlüssen (z.B.RFBILA00) verwendet werden.
- Datumsbereich: Während die primäre Auswahl nach Geschäftsjahr und Periode erfolgt, sollte die zugrunde liegende Logik das vollständige Datum und die Uhrzeit der Ereignisse berücksichtigen. Für eine erste Analyse wird empfohlen, Daten der letzten 3 bis 6 abgeschlossenen Finanzperioden zu extrahieren.
- Performance: Für große SAP-Umgebungen ist die Performance des Programms entscheidend. Stellen Sie sicher, dass Datenbankselektionen Indexfelder verwenden, insbesondere bei Tabellen wie
BKPFundBSEG. Vermeiden Sie das Auswählen aller Felder (SELECT *) und verarbeiten Sie Daten bei Bedarf in überschaubaren Paketen. - Berechtigungen: Der Benutzer oder das Dienstkonto, das dieses Programm ausführt, benötigt Berechtigungen für den Zugriff auf alle abgefragten Tabellen (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) sowie zur Ausführung von Transaktionen wieSE38(für Entwicklung) undSM37/SM36(für Planung und Überwachung).
a Beispielabfrage abap
REPORT Z_PM_R2R_EXTRACTION.
" ====================================================================
" DATA DECLARATIONS
" ====================================================================
TYPES: BEGIN OF ty_event_log,
FinancialPeriod TYPE string,
ActivityName TYPE string,
EventTime TYPE timestamp,
SourceSystem TYPE string,
LastDataUpdate TYPE timestamp,
BUKRS TYPE bukrs,
BELNR TYPE belnr_d,
USNAM TYPE usnam,
HKONT TYPE hkont,
BLART TYPE blart,
DMBTR TYPE dmbtr,
JournalEntryType TYPE string,
END OF ty_event_log.
DATA: lt_final_log TYPE STANDARD TABLE OF ty_event_log,
ls_log_entry LIKE LINE OF lt_final_log.
DATA: lv_source_system TYPE string VALUE 'SAP ECC'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
" ====================================================================
" SELECTION SCREEN
" ====================================================================
SELECT-OPTIONS: s_bukrs FOR ls_log_entry-bukrs OBLIGATORY,
s_gjahr FOR bkpf-gjahr OBLIGATORY,
s_monat FOR bkpf-monat OBLIGATORY.
PARAMETERS: p_accrl TYPE blart DEFAULT 'SA', " Example Doc Type for Accruals
p_adjst TYPE blart DEFAULT 'AJ', " Example Doc Type for Adjustments
p_fcv TYPE btcjob DEFAULT 'FAGL_FCV*', " Program for FC Valuation
p_grir TYPE btcjob DEFAULT 'SAPF124*', " Program for GR/IR Clearing
p_fs TYPE btcjob DEFAULT 'RFBILA00'. " Program for Fin. Statements
" ====================================================================
" MAIN LOGIC
" ====================================================================
START-OF-SELECTION.
" --- 1. Period Opened For Posting ---
" Note: This is complex. This example queries change documents for posting period config (T001B).
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_open)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_open INTO DATA(ls_period_open).
" Further logic needed to parse OBJECTID and check CDPOS for opening a period.
" This is a simplified placeholder for a complex logic.
ls_log_entry-ActivityName = 'Period Opened For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" --- 2. Accrual Or Provision Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_accrual)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_accrl.
LOOP AT lt_accrual INTO DATA(ls_accrual).
CLEAR ls_log_entry.
CONVERT DATE ls_accrual-cpudt TIME ls_accrual-cputm INTO TIME STAMP ls_log_entry-EventTime TIME ZONE sy-zonlo.
CONCATENATE ls_accrual-gjahr ls_accrual-monat INTO ls_log_entry-FinancialPeriod.
ls_log_entry-ActivityName = 'Accrual Or Provision Posted'.
ls_log_entry-BUKRS = ls_accrual-bukrs.
ls_log_entry-BELNR = ls_accrual-belnr.
ls_log_entry-USNAM = ls_accrual-usnam.
ls_log_entry-HKONT = ls_accrual-hkont.
ls_log_entry-BLART = ls_accrual-blart.
ls_log_entry-DMBTR = ls_accrual-dmbtr.
ls_log_entry-JournalEntryType = 'Accrual'.
GET TIME STAMP FIELD ls_log_entry-LastDataUpdate.
ls_log_entry-SourceSystem = lv_source_system.
APPEND ls_log_entry TO lt_final_log.
ENDLOOP.
" --- 3. Intercompany Document Cleared ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_ic_clear)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat
AND h~blart = 'AB' AND i~vbund <> space.
LOOP AT lt_ic_clear INTO DATA(ls_ic_clear).
" Populate ls_log_entry and append to lt_final_log, setting ActivityName = 'Intercompany Document Cleared'
ENDLOOP.
" --- 4. Foreign Currency Valuation Run ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fcv_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fcv AND j~status = 'F'. " F = Finished
LOOP AT lt_fcv_jobs INTO DATA(ls_fcv_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Foreign Currency Valuation Run'
ENDLOOP.
" --- 5. GR/IR Clearing Run Executed ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_grir_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_grir AND j~status = 'F'.
LOOP AT lt_grir_jobs INTO DATA(ls_grir_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'GR/IR Clearing Run Executed'
ENDLOOP.
" --- 6. Account Reconciliation Started (Inferred) ---
" Note: Inferring this by first run of a report, e.g., FAGLB03. Requires custom logging or complex logic.
" Placeholder: Query a custom log table if available.
" SELECT ... FROM zreco_log ...
" --- 7. Adjusting Journal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_adjust)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~blart = @p_adjst.
LOOP AT lt_adjust INTO DATA(ls_adjust).
" Populate ls_log_entry and append, setting ActivityName = 'Adjusting Journal Entry Posted', JournalEntryType = 'Adjusting'
ENDLOOP.
" --- 8. Reversal Entry Posted ---
SELECT h~bukrs, h~belnr, h~gjahr, h~monat, h~blart, h~usnam, h~cputm, h~cpudt, i~hkont, i~dmbtr
FROM bkpf AS h JOIN bseg AS i ON h~belnr = i~belnr AND h~bukrs = i~bukrs AND h~gjahr = i~gjahr
INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_reversal)
WHERE h~bukrs IN @s_bukrs AND h~gjahr IN @s_gjahr AND h~monat IN @s_monat AND h~stblg <> space.
LOOP AT lt_reversal INTO DATA(ls_reversal).
" Populate ls_log_entry and append, setting ActivityName = 'Reversal Entry Posted', JournalEntryType = 'Reversal'
ENDLOOP.
" --- 9. Trial Balance Report Generated (Inferred from Job) ---
" Similar to other jobs, query TBTCO for Trial Balance report programs.
" SELECT ... FROM tbtco ... WHERE jobname LIKE '[Your Trial Balance Program]'.
" --- 10. Financial Statements Generated ---
SELECT j~jobname, j~sdlstrtda, j~sdlstrttm, j~sdluname
INTO TABLE @DATA(lt_fs_jobs)
FROM tbtco AS j
WHERE j~jobname LIKE @p_fs AND j~status = 'F'.
LOOP AT lt_fs_jobs INTO DATA(ls_fs_job).
" Populate ls_log_entry, deriving FinancialPeriod from date, setting ActivityName = 'Financial Statements Generated'
ENDLOOP.
" --- 11. Reconciliation Reviewed (Inferred) ---
" Note: This activity is almost always managed outside of SAP or in a custom solution.
" Placeholder: Query a custom approval/log table if available.
" SELECT ... FROM zreco_approval ...
" --- 12. Period Closed For Posting ---
" Note: Similar to 'Period Opened', this is very complex. Query change documents for T001B.
SELECT h~objectid, h~udate, h~utime, h~username
INTO TABLE @DATA(lt_period_close)
FROM cdhdr AS h
WHERE h~objectclas = 'V_T001B' AND h~change_ind = 'U'.
LOOP AT lt_period_close INTO DATA(ls_period_close).
" Further logic needed to parse OBJECTID and check CDPOS for closing a period.
ls_log_entry-ActivityName = 'Period Closed For Posting'.
" Populate other fields... append to lt_final_log
ENDLOOP.
" ... Code to display or download the lt_final_log internal table ...
ENDFORMS. Schritte
- Voraussetzungen sammeln: Beschaffen Sie sich schreibgeschützte Zugangsdaten für die zugrunde liegende SAP ECC-Datenbank. Identifizieren Sie das korrekte Datenbankschema, welches typischerweise
SAPSR3oder ein ähnlicher Name ist, der von Ihrem Datenbankadministrator bereitgestellt wird. - Systemkonfiguration identifizieren: Konsultieren Sie Ihr SAP-Finanzteam, um die spezifischen
Buchungskreise(BUKRS) und die zu analysierenden Finanzperioden zu bestimmen. Entscheidend ist, die spezifischenBelegarten(BLART) zu identifizieren, die für 'Abgrenzungen oder Rückstellungen gebucht', 'Korrekturbuchungen gebucht' und 'Intercompany'-Transaktionen in Ihrem System verwendet werden. - Programm- und Jobnamen überprüfen: Bestätigen Sie die Programmnamen für wichtige Batch-Jobs wie Fremdwährungsbewertung (z.B.
FAGL_FCV), WE/RE-Verrechnung (z.B.SAPF124), Saldenlisten (z.B.RFBILA00) und Erstellung von Jahresabschlüssen (z.B.RFBILA00). Diese können durch Überprüfung der geplanten Jobs in TransaktionSM37gefunden werden. - SQL-Abfrage anpassen: Kopieren Sie die bereitgestellte SQL-Abfrage in einen Texteditor oder SQL-Client. Ersetzen Sie die Platzhaltervariablen
{{start_date}},{{end_date}}und{{company_codes}}durch die tatsächlichen Werte für Ihre Analyse. Aktualisieren Sie die Listen der Belegarten und Programmnamen basierend auf den in den vorherigen Schritten gesammelten Informationen. - Mit der Datenbank verbinden: Verwenden Sie ein Standard-SQL-Client-Tool, wie DBeaver, SQL Server Management Studio oder Oracle SQL Developer, um sich mit den erhaltenen Zugangsdaten mit der SAP-Datenbank zu verbinden.
- Abfrage ausführen: Führen Sie die angepasste SQL-Abfrage gegen die Datenbank aus. Je nach Datumsbereich und Größe Ihrer Finanztabellen kann diese Abfrage eine beträchtliche Zeit in Anspruch nehmen.
- Erste Ergebnisse überprüfen: Sobald die Abfrage abgeschlossen ist, führen Sie eine schnelle Überprüfung der Ausgabe durch. Prüfen Sie auf eine angemessene Anzahl von Zeilen, stellen Sie sicher, dass alle Spalten vorhanden sind, und verifizieren Sie, dass verschiedene
ActivityName-Werte in den Ergebnissen enthalten sind. - Daten exportieren: Exportieren Sie den vollständigen Ergebnissatz von Ihrem SQL-Client in eine CSV-Datei. Stellen Sie sicher, dass die Datei mit UTF-8-Codierung gespeichert wird, um Zeichenprobleme zu vermeiden.
- Für den Upload vorbereiten: Stellen Sie vor dem Hochladen in ein Process Mining-Tool sicher, dass die Spaltenüberschriften in der CSV-Datei genau den erforderlichen Attributnamen (
FinancialPeriod,ActivityName,EventTime, etc.) entsprechen. Überprüfen Sie außerdem, dass dieEventTime-Spalte in einem konsistenten Zeitstempelformat vorliegt, z.B.YYYY-MM-DD HH:MI:SS.
Konfiguration
- Datenbankzugangsdaten: Ein schreibgeschützter Datenbankbenutzer mit Zugriff auf die zentralen SAP Finanz- und Systemtabellen ist erforderlich. Dies beinhaltet Tabellen wie
BKPF,BSEG,TBTCO,CDHDRundCDPOS. - Datumsbereich: Wir empfehlen, Daten für mindestens 3 bis 6 vollständige Finanzperioden zu extrahieren, um aussagekräftige Prozessabweichungen zu erfassen. Beachten Sie, dass größere Datumsbereiche die Ausführungszeit der Abfrage erheblich verlängern.
- Buchungskreise (
BUKRS): Filtern Sie immer nach einer spezifischen Liste von Buchungskreisen. Das Ausführen der Abfrage für alle Buchungskreise auf einem großen System ist nicht praktikabel und wird wahrscheinlich Performance-Probleme verursachen. - Belegarten (
BLART): Die Identifizierung von Buchungsarten, wie Abgrenzungen und Korrekturen, hängt vollständig von der spezifischen SAP-Konfiguration Ihrer Organisation ab. Sie müssen die korrekten Belegartcodes in denWHERE-Klauseln der Abfrage für eine genaue Aktivitätsklassifizierung angeben. - Programm- und Jobnamen: Die Abfrage verwendet gängige Programmnamen für automatisierte Abschlussschritte. Ihr System verwendet möglicherweise benutzerdefinierte Wrapper-Programme oder andere Jobnamen. Überprüfen Sie diese in Transaktion
SM37und aktualisieren Sie die Abfrage entsprechend. - Leistungsüberlegungen: Diese Abfrage greift auf sehr große Tabellen zu, insbesondere
BSEGundCDPOS. Es wird dringend empfohlen, diese Extraktion außerhalb der Geschäftszeiten durchzuführen, um die Systemperformance nicht zu beeinträchtigen. Das Anwenden enger Datums- und Buchungskreisfilter ist der effektivste Weg, die Ausführungszeit zu steuern.
a Beispielabfrage sql
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'FRPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(b.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', b.MONAT), 2)) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
c.UDATE + c.UTIME AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
p.TABKEY AS CompanyCode,
NULL AS DocumentNumber,
c.USERNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM CDHDR c
JOIN CDPOS p ON c.OBJECTCLAS = p.OBJECTCLAS AND c.OBJECTID = p.OBJECTID AND c.CHANGENR = p.CHANGENR
WHERE c.OBJECTCLAS = 'V_T001B'
AND p.TABNAME = 'T001B'
AND p.FNAME = 'TOPE1'
AND c.UDATE BETWEEN '{{start_date}}' AND '{{end_date}}'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Accrual Or Provision Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Accrual' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('SA', '[Your Accrual Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Intercompany Document Cleared' AS ActivityName,
h.AUGDT AS EventTime, -- Clearing Date
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Clearing' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.AUGDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Intercompany Doc Type]')
AND h.AUGBL IS NOT NULL
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'FAGL_FCV' OR p.PROGNAME = 'SAPF100'
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F' -- Finished
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'GR/IR Clearing Run Executed' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'SAPF124' -- Program for F.13
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName, -- Proxy event
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('FAGLL03', 'FBL3N') -- Common reconciliation reports
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Adjusting' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.BLART IN ('[Your Adjusting Doc Type]')
UNION ALL
SELECT
CONCAT(CAST(h.GJAHR AS VARCHAR(4)), '-', RIGHT(CONCAT('00', h.MONAT), 2)) AS FinancialPeriod,
'Reversal Entry Posted' AS ActivityName,
h.CPUDT + h.CPUTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
h.BUKRS AS CompanyCode,
h.BELNR AS DocumentNumber,
h.USNAM AS ResponsibleUser,
d.HKONT AS GLAccount,
h.BLART AS DocumentType,
d.DMBTR AS AmountInLocalCurrency,
'Reversal' AS JournalEntryType
FROM BKPF h
JOIN BSEG d ON h.MANDT = d.MANDT AND h.BUKRS = d.BUKRS AND h.BELNR = d.BELNR AND h.GJAHR = d.GJAHR
WHERE h.BUDAT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND h.BUKRS IN ({{company_codes}})
AND h.STBLG IS NOT NULL -- STBLG links to the reversed document
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Trial Balance Report Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME IN ('RFSSLD00', 'S_ALR_87012310')
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
UNION ALL
SELECT
CONCAT(CAST(YEAR(j.SDLSTRTDT) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(j.SDLSTRTDT)), 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
j.SDLSTRTDT + j.SDLSTRTTM AS EventTime,
'SAP_ECC' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
NULL AS CompanyCode,
j.JOBNAME AS DocumentNumber,
j.SDLUNAME AS ResponsibleUser,
NULL AS GLAccount,
NULL AS DocumentType,
NULL AS AmountInLocalCurrency,
NULL AS JournalEntryType
FROM TBTCO j
JOIN TBTCP p ON j.JOBNAME = p.JOBNAME AND j.JOBCOUNT = p.JOBCOUNT
WHERE p.PROGNAME = 'RFBILA00' -- Program for F.01
AND j.SDLSTRTDT BETWEEN '{{start_date}}' AND '{{end_date}}'
AND j.STATUS = 'F'
-- UNION ALL
-- Note: 'Reconciliation Reviewed' is typically not a standard, logged event in SAP ECC.
-- This activity often happens offline or in a custom tool.
-- The following is a placeholder to be adapted if a custom (Z-table) log exists.
-- SELECT
-- CONCAT(CAST(YEAR(z.REVIEW_DATE) AS VARCHAR(4)), '-', RIGHT(CONCAT('00', MONTH(z.REVIEW_DATE)), 2)) AS FinancialPeriod,
-- 'Reconciliation Reviewed' AS ActivityName,
-- z.REVIEW_DATE AS EventTime,
-- 'SAP_ECC' AS SourceSystem,
-- CURRENT_TIMESTAMP AS LastDataUpdate,
-- z.BUKRS AS CompanyCode,
-- z.HKONT AS DocumentNumber, -- Using GL Account as a proxy identifier
-- z.REVIEWER_USER AS ResponsibleUser,
-- z.HKONT AS GLAccount,
-- NULL AS DocumentType,
-- NULL AS AmountInLocalCurrency,
-- NULL AS JournalEntryType
-- FROM ZRECON_LOG z -- Replace with your custom table for reconciliation status
-- WHERE z.REVIEW_DATE BETWEEN '{{start_date}}' AND '{{end_date}}'
-- AND z.STATUS = 'Reviewed'
;