Ihr Datentemplate für den Record-to-Report-Prozess: Periodenabschluss und Abstimmung
Ihr Datentemplate für den Record-to-Report-Prozess: Periodenabschluss und Abstimmung
- Empfohlene zu erfassende Attribute
- Wichtige Aktivitäten für die Prozessanalyse
- Schritt-für-Schritt-Anleitung zur Datenextraktion
Attribute für den Record-to-Report-Prozess: Periodenabschluss und Abstimmung
| Name | Beschreibung | ||
|---|---|---|---|
| Finanzperiode FinancialPeriod | Eine eindeutige Kennung für den Finanzberichtszyklus, etwa „2023-12“ für Dezember 2023. Sie dient als Case für den Periodenabschluss. | ||
| Beschreibung Die Finanzperiode ist die zentrale Case-Kennung, unter der alle Aktivitäten zum Abschluss der Bücher für einen bestimmten Zeitraum zusammengefasst werden, üblicherweise für einen Kalendermonat oder eine Geschäftsperiode. Jede Finanzperiode steht für einen vollständigen Durchlauf des Periodenabschlusses. In der Process-Mining-Analyse lässt sich mit diesem Attribut der gesamte Ablauf eines Periodenabschlusses vom Start bis zur endgültigen Berichterstattung verfolgen. Es dient dazu, Durchlaufzeiten verschiedener Perioden zu vergleichen, häufige Prozesspfade zu ermitteln und Unterschiede zwischen monatlichen, quartalsweisen und jährlichen Abschlussverfahren zu analysieren. Wird jede Periode als Case betrachtet, können Analysten die Leistung im Zeitverlauf messen und systemische Engpässe aufdecken. Warum das wichtig ist Diese zentrale Case-Kennung bildet die Grundlage der Analyse. Sie ermöglicht den Vergleich der Leistung beim Periodenabschluss im Zeitverlauf und hilft, Trends oder wiederkehrende Probleme zu erkennen. Woher beziehen Abgeleitet aus den Feldern Geschäftsjahr (GJAHR) und Buchungsperiode (MONAT) in den Kopfdaten der Finanzbelege, üblicherweise aus Tabellen wie BKPF. Beispiele 2023-122024-032024-Q1 | |||
| Aktivität ActivityName | Die Bezeichnung eines bestimmten Arbeitsschritts oder einer Aufgabe im Periodenabschluss, etwa „Nachträgliche Buchung erfasst“ oder „Buchungsperiode geschlossen“. | ||
| Beschreibung Dieses Attribut steht für ein einzelnes Event oder eine Aufgabe im durchgängigen Prozess für Periodenabschluss und Abstimmung. Aktivitäten bilden die Bausteine der Prozesslandkarte und zeigen die Reihenfolge der ausgeführten Arbeitsschritte. Sie werden häufig aus einer Kombination von Transaktionscodes, Belegarten oder Statusänderungen in SAP S/4HANA abgeleitet. Die Analyse von Aktivitäten ist eine Grundlage für Process Mining. Sie hilft, den Prozessfluss zu visualisieren, Abweichungen vom Standardverfahren zu erkennen, Engpässe mit überlangen Aktivitäten aufzudecken und Häufigkeit sowie Reihenfolge von Aufgaben zu verstehen. Das ist wichtig für Dashboards wie „Variantenanalyse des Periodenabschlusses“ und „Aktueller Status des Periodenabschlusses“. Warum das wichtig ist Legt die Prozessschritte fest und bildet die Grundlage der Prozesslandkarte. So lassen sich Prozessfluss, Abweichungen und Engpässe analysieren. Woher beziehen Abgeleitet aus verschiedenen Quellen, etwa Transaktionscodes (TCODE), Belegarten (BLART) oder Statusfeldern in Tabellen zu Aufgaben des Finanzabschlusses (z. B. aus SAP Financial Closing Cockpit). Beispiele Buchungsperiode geöffnetKontenabstimmung gestartetFinanzberichte erstelltKonzerninterne Abstimmung gestartet | |||
| Startzeit EventTime | Der Timestamp, der angibt, wann eine bestimmte Aktivität begonnen oder im System erfasst wurde. | ||
| Beschreibung Die Ereigniszeit erfasst das genaue Datum und die Uhrzeit einer Aktivität. Bei Finanzbuchungen ist dies häufig der Erstellungszeitpunkt (CPUTM) oder das Buchungsdatum (BUDAT) eines Belegs. Bei Statusänderungen oder Aufgaben ist es der Timestamp, zu dem die Änderung protokolliert wurde. Dieses Attribut ist entscheidend für die chronologische Sortierung von Aktivitäten und bildet die Grundlage aller zeitbasierten Analysen. Es dient dazu, Durchlaufzeiten zwischen Aktivitäten, die Dauer einzelner Aufgaben und die Gesamtdauer des durchgängigen Prozesses zu berechnen. Es unterstützt direkt KPIs wie die durchschnittliche Durchlaufzeit des Periodenabschlusses und die durchschnittliche Freigabezeit für Abstimmungen. Warum das wichtig ist Dieser erforderliche Timestamp ermöglicht die chronologische Sortierung von Events und bildet die Grundlage für alle Berechnungen von Dauer und Leistung. Woher beziehen Die Daten stammen aus Timestamp-Feldern wie Erstellungsdatum (CPUDT) und Erstellungszeit (CPUTM) in Tabellen wie BKPF oder aus Änderungsdatumsfeldern in verschiedenen Statustabellen (z. B. CDHDR, CDPOS). Beispiele 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Abstimmungsstatus ReconciliationStatus | Der Status einer Kontoabstimmung, zum Beispiel „Offen“, „In Bearbeitung“ oder „Genehmigt“. | ||
| Beschreibung Dieses Attribut erfasst den Stand einer Abstimmung für ein bestimmtes Konto oder eine bestimmte Aufgabe. Es zeigt an, ob die Abstimmung begonnen, zur Prüfung eingereicht, genehmigt oder abgelehnt wurde. Statusänderungen sind wichtige Ereignisse im Prozess. Das Dashboard „Analyse der Nacharbeit bei Abstimmungen“ basiert auf diesem Attribut. Anhand der Statusfolge lässt sich erkennen, ob auf den Status „Genehmigt“ weitere Korrekturen folgen, was auf Nacharbeit hindeutet. Außerdem unterstützt das Attribut die Kennzahl „Abstimmungsquote beim ersten Durchlauf“: Sie zeigt, welche Abstimmungen ohne vorherige Ablehnung oder Wiedereröffnung genehmigt werden. Warum das wichtig ist Erfasst Fortschritt und Ergebnis von Abstimmungsaufgaben. So lassen sich Nacharbeit erkennen, Genehmigungsquoten messen und Engpässe analysieren. Woher beziehen Diese Informationen sind in der Regel in Tabellen des verwendeten Abstimmungstools gespeichert, etwa im SAP Financial Closing cockpit oder in SAP Account Substantiation and Automation von BlackLine. Beispiele Nicht begonnenIn VorbereitungGenehmigtAbgelehnt | |||
| Belegnummer DocumentNumber | Die eindeutige Kennung eines Finanzbelegs, zum Beispiel eines Buchungssatzes. | ||
| Beschreibung SAP weist jeder Finanzbuchung eine eindeutige Belegnummer zu. Sie dient als zentraler Referenzschlüssel, um einzelne Transaktionen im Abschlussprozess nachzuverfolgen und zu prüfen. Die Belegnummer ist selbst keine Case-ID, stellt aber eine wichtige Verbindung zum Quellsystem her. Analysten können damit aus einer Process-Mining-Ansicht zu den Details der jeweiligen Transaktion in SAP S/4HANA wechseln und die Ursachen eines Problems untersuchen. Besonders hilfreich ist sie bei der Prüfung bestimmter Korrekturbuchungen oder Abstimmungsbuchungen. Warum das wichtig ist Stellt eine direkte Referenz zur zugrunde liegenden Transaktion in SAP bereit. So können Sie vom Prozessmodell aus einfach zu den Details wechseln und die Prüfung nachvollziehbar dokumentieren. Woher beziehen Zu finden in der Belegkopftabelle BKPF (Feld BELNR) und in Einzelpostentabellen wie BSEG oder ACDOCA. Beispiele 100000045190000001300000023 | |||
| Buchungskreis CompanyCode | Eine eindeutige Kennung für eine rechtliche Einheit oder ein Unternehmen innerhalb der SAP-Organisation. | ||
| Beschreibung Der Buchungskreis ist eine eigenständige Rechnungslegungseinheit innerhalb eines Unternehmens, für die ein vollständiger, in sich geschlossener Kontensatz geführt werden kann. Alle Aktivitäten des Periodenabschlusses werden auf Buchungskreisebene ausgeführt. Der Buchungskreis ist eine grundlegende organisatorische Dimension für die Finanzanalyse. Mit Process Mining können Sie den Periodenabschluss verschiedener Rechtsträger vergleichen. Das Dashboard „Variantenanalyse des Periodenabschlusses“ verwendet den Buchungskreis, um Abweichungen zu erkennen und die Standardisierung der Abschlussverfahren voranzutreiben. Warum das wichtig ist Der Buchungskreis liefert einen wichtigen organisatorischen Kontext. So lassen sich Prozesse verschiedener Rechtsträger vergleichen, um Abweichungen und bewährte Vorgehensweisen zu erkennen. Woher beziehen Der Buchungskreis ist in nahezu allen Finanztabellen in SAP enthalten, insbesondere in der Kopftabelle BKPF (Feld BUKRS). Beispiele 10001710US01DE01 | |||
| Endzeit EndTime | Der Timestamp, der angibt, wann eine Aktivität abgeschlossen wurde. | ||
| Beschreibung Die Endzeit kennzeichnet den Abschluss einer Aufgabe. Bei sofort abgeschlossenen Events im System kann sie mit der Startzeit übereinstimmen. Bei Aktivitäten mit messbarer Dauer gibt sie den Zeitpunkt des Abschlusses an. Zusammen mit der Startzeit ist dieses Attribut entscheidend, um die Warum das wichtig ist Ermöglicht die Berechnung der Aktivitätsdauer (Verarbeitungszeit). Das ist entscheidend, um Leistungsengpässe zu erkennen und die Effizienz zu analysieren. Woher beziehen Wie die Startzeit kann auch dieser Wert aus verschiedenen Timestamp-Feldern stammen. Bei manchen Aktivitäten entspricht er der Startzeit. Bei anderen kann er aus einem separaten Feld für das Abschluss- oder Änderungsdatum in Anwendungstabellen oder Änderungsprotokollen (CDHDR, CDPOS) stammen. Beispiele 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Geplantes Abschlussdatum TargetCompletionDate | Das geplante Datum oder die Frist für den Abschluss einer wichtigen Aktivität, zum Beispiel die Erstellung des Jahresabschlusses. | ||
| Beschreibung Das geplante Abschlussdatum bezeichnet die interne oder externe Frist für einen bestimmten Meilenstein im Periodenabschluss. Bis zu diesem Datum soll eine Aufgabe abgeschlossen sein. Dieses Attribut ist wichtig, um die Einhaltung des Zeitplans und die Leistung im Vergleich zu Fristen zu messen. Es bildet die Grundlage für das Dashboard „Einhaltung der Berichtstermine“ und die Kennzahl „Pünktlichkeitsquote des Jahresabschlusses“. Beide vergleichen das geplante Datum mit Warum das wichtig ist Ermöglicht die Analyse der Termintreue und hilft, die pünktliche Erledigung wichtiger Abschlussaktivitäten zu messen und zu verbessern. Woher beziehen Diese Daten befinden sich häufig in einem Aufgabenverwaltungs- oder Planungssystem, etwa im SAP Financial Closing cockpit. Dort werden Abschlussaufgaben mit geplanten Enddaten definiert. Beispiele 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Sachkontonummer GlAccountNumber | Die Kennung eines bestimmten Kontos im Hauptbuch. | ||
| Beschreibung Die Sachkontonummer identifiziert einzelne Konten, auf denen Finanztransaktionen wie Bargeld, Verbindlichkeiten oder Umsatzerlöse erfasst werden. Viele Aktivitäten zum Periodenende, etwa Abstimmungen und Korrekturbuchungen, beziehen sich direkt auf bestimmte Sachkonten. Dieses Attribut ist für eine detaillierte Analyse der Finanzprozesse unverzichtbar. Das Dashboard „Analyse der Korrekturbuchungen“ zeigt damit die Anzahl der Korrekturen je Konto und hilft, problematische Bereiche zu erkennen. Auch die Kennzahl „Durchschnittliche Abstimmungsdauer je Sachkonto“ greift auf dieses Attribut zurück, um Verzögerungen bei bestimmten Konten aufzudecken. Warum das wichtig ist Verknüpft Prozessaktivitäten mit bestimmten Finanzkonten. So lassen sich Abstimmungen und Buchungssätze detailliert analysieren und die Ursachen von Problemen ermitteln. Woher beziehen Zu finden in den Einzelpostentabellen für Finanzbelege, vor allem in BSEG (Feld HKONT) oder in der universellen Journaltabelle ACDOCA von S/4HANA. Beispiele 113100004000000073000000 | |||
| Verantwortlicher Benutzer ResponsibleUser | Die Benutzer-ID der Person, die die Aktivität ausgeführt hat oder für die Aufgabe verantwortlich ist. | ||
| Beschreibung Dieses Attribut identifiziert die Mitarbeitenden, die eine bestimmte Aufgabe ausgeführt haben, etwa einen Buchungssatz zu buchen oder eine Abstimmung freizugeben. Die Benutzer-ID wird üblicherweise in Systemprotokollen und Belegköpfen erfasst. Die Analyse nach Benutzern ist wichtig, um die Arbeitsverteilung, die individuelle Leistung und den Schulungsbedarf zu verstehen. Das Dashboard „Effizienz der Ressourcenzuteilung“ verwendet dieses Attribut direkt, um Verarbeitungszeiten von Aktivitäten nach Benutzern darzustellen. Es kann außerdem Automatisierungsmöglichkeiten aufzeigen, indem es wiederkehrende Aufgaben hervorhebt, die von vielen Benutzern ausgeführt werden. Warum das wichtig ist Ordnet Prozessaktivitäten den Personen zu, die sie ausgeführt haben. So lassen sich Arbeitslasten analysieren, Ressourcen optimieren und Leistungen steuern. Woher beziehen Häufig zu finden in Belegkopftabellen wie BKPF (Feld USNAM, Benutzername) oder in Änderungsbelegtabellen wie CDHDR (Feld USERNAME). Beispiele ABROWNCSMITHDJOHNSON | |||
| Belegbetrag DocumentAmount | Der Gesamtwert der Finanzbuchung in der Belegwährung. | ||
| Beschreibung Dieses Attribut gibt den Geldwert eines Finanzbelegs an. Bei Korrekturen zum Periodenende kann es sich um den Betrag der gebuchten Rückstellung oder Korrektur handeln. Die Analyse des Betrags hilft bei der Wesentlichkeitsbeurteilung. Analysten können Korrekturbuchungen mit hohem Wert vorrangig untersuchen, da sie ein größeres finanzielles Risiko darstellen können. Außerdem lässt sich die Prozessübersicht auf Transaktionen oberhalb eines bestimmten Schwellenwerts filtern. So konzentriert sich die Ansicht auf die wesentlichen Aktivitäten. Warum das wichtig ist Ergänzt die Analyse um eine finanzielle Dimension. So lassen sich Probleme nach finanzieller Auswirkung und Wesentlichkeit priorisieren. Woher beziehen Dieser Wert muss in der Regel aus Einzelpostentabellen wie BSEG oder ACDOCA aggregiert werden (Feld WRBTR, Betrag in Belegwährung). Beispiele 15000.00250.75-500.00 | |||
| Belegwährung DocumentCurrency | Der Währungscode für die Beträge im Finanzbeleg. | ||
| Beschreibung Dieses Attribut gibt an, in welcher Währung die Transaktion erfasst wurde, zum Beispiel USD, EUR oder JPY. Es liefert den notwendigen Kontext für das Attribut In international tätigen Unternehmen kann die Analyse nach Währung wichtig sein. Sie stellt sicher, dass Geldbeträge korrekt interpretiert werden, und ist Voraussetzung für die Umrechnung in eine einheitliche Berichtswährung bei aggregierten Auswertungen. Ohne diesen Kontext lassen sich Werte von Warum das wichtig ist Liefert den notwendigen Kontext für Geldbeträge, damit diese korrekt interpretiert werden, insbesondere bei mehreren Währungen. Woher beziehen Zu finden in der Belegkopftabelle BKPF (Feld WAERS). Beispiele USDEURJPY | |||
| Buchungsart JournalEntryType | Die Art des gebuchten Finanzbelegs. Sie unterscheidet beispielsweise Standardbuchungen, Rückstellungen und Korrekturen. | ||
| Beschreibung Die Buchungsart, in der SAP als Belegart bezeichnet, ist ein Schlüssel zur Klassifizierung von Buchhaltungsbelegen. Sie legt fest, welche Kontenarten bebucht werden können, und unterscheidet Geschäftsvorfälle wie eine Lieferantenrechnung (KR), eine Hauptbuchbuchung (SA) oder eine Kundenzahlung (DZ). Beim Periodenabschluss ist dieses Attribut entscheidend, um bestimmte Aktivitätstypen gezielt zu untersuchen. So können Analysten beispielsweise Korrekturbuchungen herausfiltern und damit das Dashboard „Analyse der Korrekturbuchungen“ sowie die Kennzahl „Anzahl der Korrekturbuchungen“ unterstützen. Das Attribut hilft außerdem bei der Berechnung der „Quote manueller Buchungen“. Warum das wichtig ist Kategorisiert Finanztransaktionen und ermöglicht es, bestimmte Buchungsarten wie manuelle Korrekturen gezielt zu analysieren. Diese sind für einen reibungslosen Periodenabschluss besonders wichtig. Woher beziehen Standardfeld in der Belegkopftabelle BKPF (Feld BLART). Beispiele SAKRAB | |||
| Durchlaufzeit des Periodenabschlusses PeriodCloseCycleTime | Die gesamte Dauer eines Finanzperiodenabschlusses, von der ersten bis zur letzten Aktivität. | ||
| Beschreibung Diese Kennzahl gibt die End-to-End-Dauer des Periodenabschlusses für einen einzelnen Case (Finanzperiode) an. Sie wird berechnet, indem der Timestamp der ersten Aktivität innerhalb der Periode vom Timestamp der letzten Aktivität abgezogen wird. Sie ist eine zentrale Leistungskennzahl und bildet die Grundlage für das Dashboard „Überblick über die Durchlaufzeit des Periodenabschlusses“ sowie die Kennzahl „Durchschnittliche Durchlaufzeit des Periodenabschlusses“. Damit lässt sich die Gesamteffizienz und Geschwindigkeit des Abschlussprozesses auf hoher Ebene messen. Außerdem können Sie Zeiträume vergleichen und Buchungskreise miteinander benchmarken. Warum das wichtig ist Dient als zentrale Kennzahl für die Gesamtdauer des Prozesses und ermöglicht es, Effizienzsteigerungen im Zeitverlauf auf hoher Ebene zu verfolgen. Woher beziehen Auf Case-Ebene berechnet: Beispiele P5D10H30MP7D2HP6D | |||
| Ist automatisiert IsAutomated | Ein boolesches Kennzeichen, das angibt, ob die Aktivität von einem Systembenutzer oder einem automatisierten Prozess ausgeführt wurde. | ||
| Beschreibung Dieses Kennzeichen unterscheidet manuell von einem menschlichen Benutzer ausgeführte Aufgaben und automatisch vom System ausgeführte Aufgaben. Dazu zählen beispielsweise ein geplanter Stapelverarbeitungsauftrag zur Währungsbewertung oder automatische Ausgleichsläufe. Das Kennzeichen wird in der Regel anhand der ID von Das Attribut ist wichtig, um den Automatisierungsgrad des Abschlussprozesses zu verstehen. Es zeigt Möglichkeiten für weitere Automatisierung auf, indem es manuelle Aufgaben mit hohem Volumen hervorhebt. Bei der Ursachenanalyse hilft es außerdem festzustellen, ob Engpässe bei manuellen oder automatisierten Schritten auftreten. Warum das wichtig ist Unterscheidet zwischen Aktivitäten von Personen und Systemen. Das ist wichtig, um Automatisierungsmöglichkeiten zu erkennen und die Effizienz beider Bereiche zu analysieren. Woher beziehen Dies ist ein abgeleitetes Attribut, das häufig auf einer Regel für das Feld „ResponsibleUser“ basiert. Dabei wird beispielsweise geprüft, ob die Benutzer-ID zu einem System- oder Stapelverarbeitungsbenutzer wie „BATCHUSER“ gehört. Alternativ kann der Transaktionscode herangezogen werden. Beispiele truefalse | |||
| Ist Nacharbeit bei Abstimmungen IsReconciliationRework | Ein boolesches Kennzeichen, das den Wert „wahr“ hat, wenn auf eine Abstimmungsaktivität eine Ablehnung oder weitere Korrekturen folgen. | ||
| Beschreibung Dieses berechnete Attribut erkennt Nacharbeit im Teilprozess der Abstimmung. Es kennzeichnet Aktivitäten oder Cases, bei denen eine Abstimmung abgelehnt, nach der Einreichung wieder geöffnet oder nach dem vermeintlichen Abschluss für ein Sachkonto noch eine Korrekturbuchung vorgenommen wurde. Das Kennzeichen wurde speziell für das Dashboard „Analyse der Nacharbeit bei Abstimmungen“ und die Kennzahl „Nacharbeitsquote bei Abstimmungen“ entwickelt. Es überführt komplexe Prozessabfolgen in ein einfaches, messbares Attribut, das den Umfang der Nacharbeit beziffert. So können Teams gezielt die Qualität beim ersten Durchlauf verbessern. Warum das wichtig ist Beziffert Nacharbeit direkt, eine wichtige Form von Prozessineffizienz. So lassen sich Qualität und Verbesserungsmaßnahmen bei Abstimmungen gezielt analysieren. Woher beziehen Wird anhand der Aktivitätsabfolge berechnet. Das Kennzeichen erhält beispielsweise den Wert „wahr“, wenn auf „Abstimmung genehmigt“ im selben Zeitraum für dasselbe Sachkonto „Korrekturbuchung gebucht“ folgt. Beispiele truefalse | |||
| Ist termingerecht IsOnTime | Ein boolesches Kennzeichen, das den Wert „wahr“ hat, wenn ein Meilenstein am oder vor dem geplanten Datum abgeschlossen wurde. | ||
| Beschreibung Dieses Attribut zeigt mit einem einfachen Ja-Nein-Ergebnis an, ob ein Termin eingehalten wurde. Es wird berechnet, indem für einen bestimmten Meilenstein, etwa die Genehmigung des Jahresabschlusses, Es bildet die Grundlage für die Kennzahl „Pünktlichkeitsquote des Jahresabschlusses“. Der Vergleich von Datumswerten wird in einen klaren Status „termingerecht“ oder „verspätet“ überführt, der sich in Dashboards und Berichten leicht darstellen lässt. So können Sie die Wirksamkeit von Maßnahmen zur Beschleunigung des Abschlusses messen. Warum das wichtig ist Vereinfacht die Analyse der Termintreue zu einem eindeutigen Ergebnis und erleichtert es, die pünktliche Erledigung zu verfolgen und zu berichten. Woher beziehen Berechnetes Feld: Beispiele truefalse | |||
| Letzte Datenaktualisierung LastDataUpdate | Der Timestamp, der angibt, wann die Daten zuletzt aktualisiert oder aus dem Quellsystem extrahiert wurden. | ||
| Beschreibung Dieses Attribut erfasst Datum und Uhrzeit der letzten Datenextraktion. Es gibt Aufschluss darüber, wie aktuell die im Process-Mining-Tool analysierten Daten sind. Es dient vor allem der Data Governance und der Information der Benutzer. Dashboard-Betrachter sehen, wie aktuell die Analyse ist. Das ist besonders wichtig bei Dashboards zur Überwachung nahezu in Echtzeit, etwa „Aktueller Status des Periodenabschlusses“. So können Benutzer einschätzen, ob die angezeigten Daten von heute, gestern oder der Vorwoche stammen. Warum das wichtig ist Informiert Benutzer über die Aktualität der Daten und zeigt, wie aktuell die Erkenntnisse zum Prozess sind. Woher beziehen Diese Metadaten werden vom Datenextraktions- oder ETL-Tool bei der Ausführung erstellt und mit einem Timestamp versehen. Beispiele 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Quellsystem SourceSystemId | Kennung der SAP-S/4HANA-Instanz oder des Mandanten, aus dem die Daten extrahiert wurden. | ||
| Beschreibung Dieses Attribut gibt das Ursprungssystem der Daten an. In Umgebungen mit mehreren SAP-Instanzen, etwa für verschiedene Regionen oder Geschäftseinheiten, ist dieses Feld entscheidend, um die Datenquellen voneinander zu unterscheiden. Es dient vor allem der Data Governance, der Prüfung und der Sicherstellung der Datenintegrität. In der Analyse kann es als Filter verwendet werden, um Prozesse aus verschiedenen Quellsystemen zu vergleichen, wenn diese in einem Process-Mining-Modell zusammengeführt werden. Warum das wichtig ist Liefert wichtige Informationen zur Datenherkunft und zum Kontext. So bleibt nachvollziehbar, woher die Daten stammen, insbesondere in Umgebungen mit mehreren Systemen. Woher beziehen Dabei handelt es sich üblicherweise um Metadaten, die während der Datenextraktion ergänzt werden. Sie stammen häufig aus der System-ID (SY-SYSID) oder dem Mandanten (SY-MANDT) in SAP. Beispiele S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
| Tatsächliches Abschlussdatum ActualCompletionDate | Das tatsächliche Datum, an dem eine wichtige Aktivität oder der gesamte Periodenabschluss abgeschlossen wurde. | ||
| Beschreibung Dieses Attribut erfasst das tatsächliche Abschlussdatum eines wichtigen Meilensteins. Es entspricht dem Timestamp der endgültigen Genehmigung des Jahresabschlusses oder der Schließung der Buchungsperiode. Es ist das Gegenstück zu Warum das wichtig ist Gibt den tatsächlichen Zeitpunkt wichtiger Meilensteine an. So lassen sich die Leistung im Vergleich zu geplanten Fristen messen und Verzögerungen analysieren. Woher beziehen Abgeleitet aus der EventTime der letzten Aktivität einer Abfolge, zum Beispiel „Jahresabschluss genehmigt“ oder „Buchungsperiode geschlossen“. Beispiele 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| Transaktionscode TransactionCode | Der SAP-Transaktionscode (T-Code), mit dem die Aktivität ausgeführt wird. | ||
| Beschreibung Ein Transaktionscode ist eine Abkürzung, mit der sich eine bestimmte Funktion oder ein Programm in SAP aufrufen lässt. FB01 dient beispielsweise zum Buchen eines Belegs, FAGLB03 zum Anzeigen von Sachkontensalden. Der T-Code gibt oft einen eindeutigen technischen Hinweis darauf, welche Aktivität ausgeführt wurde. Dieses Attribut hilft bei der Definition von Aktivitäten im Prozessmodell. Es ermöglicht eine zuverlässige Unterscheidung zwischen automatisierten und manuellen Aktivitäten und zeigt, wie eine Aufgabe im System ausgeführt wurde. Die Analyse von T-Codes kann nicht standardisierte oder ineffiziente Vorgehensweisen aufdecken. Warum das wichtig ist Zeigt auf technischer Systemebene, wie eine Aktivität ausgeführt wurde. Das ist hilfreich, um manuelle und automatisierte Schritte sowie nicht standardisierte Verfahren zu erkennen. Woher beziehen Zu finden in der Belegkopftabelle BKPF (Feld TCODE) oder in Änderungsbelegprotokollen. Beispiele FB01FAGL_FCVF.13 | |||
Aktivitäten im Record-to-Report-Prozess: Periodenabschluss und Abstimmung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Buchungsperiode geöffnet | Damit beginnt die Finanzperiode: Die Buchungsperioden werden für die Erfassung von Transaktionen geöffnet. Diese explizite, protokollierte Konfigurationsänderung nimmt ein Finanzadministrator in SAP vor. Sie ermöglicht Buchungen für die neue Periode. | ||
| Warum das wichtig ist Diese Aktivität ist das zentrale Start-Event des Periodenabschlusses. Sie ermöglicht eine genaue Messung der gesamten Durchlaufzeit und bildet einen klaren Ausgangspunkt für die Prozessanalyse. Woher beziehen Dieses Event wird aus Änderungsbelegen erfasst (Tabellen CDHDR und CDPOS), in denen Änderungen an der Buchungsperiodentabelle T001B protokolliert werden. Die Änderung erfolgt üblicherweise über die Transaktion OB52. Erfassung Filtern Sie die Änderungsprotokolle für Tabelle T001B nach dem betreffenden Geschäftsjahr und der Buchungsperiode. Ereignistyp explicit | |||
| Buchungsperiode geschlossen | Dies ist die letzte Aktivität im Zyklus. Dabei wird die Buchungsperiode offiziell geschlossen, um weitere Transaktionen zu verhindern. So bleibt die Datenintegrität der endgültigen Finanzberichte gewahrt. | ||
| Warum das wichtig ist Diese Aktivität ist das eindeutige End-Event des Prozesses. Sie ist entscheidend, um die gesamte Durchlaufzeit des Periodenabschlusses zu berechnen und Trends beim Prozessabschluss zu analysieren. Woher beziehen Wie beim Öffnen einer Periode wird dieses Event aus Änderungsbelegen erfasst (Tabellen CDHDR und CDPOS), in denen Aktualisierungen der Buchungsperiodentabelle T001B über die Transaktion OB52 protokolliert werden. Erfassung Filtern Sie die Änderungsprotokolle für Tabelle T001B, um den Abschluss des betreffenden Geschäftsjahres und der Buchungsperiode zu ermitteln. Ereignistyp explicit | |||
| Finanzberichte erstellt | Diese Aktivität kennzeichnet die Erstellung der offiziellen Finanzberichte, etwa der Bilanz und der Gewinn- und Verlustrechnung. Sie bildet den Abschluss der Periodenabschluss- und Konsolidierungsprozesse. | ||
| Warum das wichtig ist Dies ist ein wichtiger Meilenstein im Record-to-Report-Zyklus. Der Zeitpunkt ist entscheidend, um Berichtsfristen einzuhalten und Stakeholder rechtzeitig zu informieren. Woher beziehen Am besten lässt sich das Event mit einem Tool für das Finanzabschlussmanagement wie SAP Financial Closing Cockpit erfassen, in dem es als explizite Aufgabe geführt wird. Andernfalls muss es aus Berichtserstellungsprotokollen oder den Timestamps der Dateierstellung abgeleitet werden. Erfassung Verfolgen Sie den Abschlussstatus der Aufgabe „Finanzberichte erstellen“ in einem Closing-Tool oder analysieren Sie die Berichtsausführungsprotokolle. Ereignistyp inferred | |||
| Kontenabstimmung freigegeben | Diese Aktivität kennzeichnet die endgültige Freigabe einer Hauptbuchkontenabstimmung. Sie bestätigt, dass der Saldo belegt und alle Probleme behoben wurden. Das Event wird anhand einer Statusänderung zu „Genehmigt“ in einem Abstimmungstool abgeleitet. | ||
| Warum das wichtig ist Dieser Meilenstein markiert den Abschluss einer wichtigen Kontrollaktivität. Die Überwachung der Freigabezeiten hilft, Engpässe im Prüfprozess zu erkennen. Sie ist außerdem wichtig, um Nacharbeit und die Erfolgsquote beim ersten Durchlauf zu messen. Woher beziehen Das Event wird aus einem Abstimmungsmanagementsystem wie SAP Account Substantiation and Automation erfasst, indem der Timestamp des endgültigen Freigabestatus nachverfolgt wird. Erfassung Ermitteln Sie den Timestamp, zu dem das Statusfeld einer Abstimmung auf den abschließenden Status „Genehmigt“ gesetzt wird. Ereignistyp inferred | |||
| Kontenabstimmung gestartet | Kennzeichnet den Beginn des manuellen oder teilautomatisierten Verfahrens zur Belegung von Hauptbuchkontensalden. Das Event wird abgeleitet, wenn sich der Status einer Abstimmung von „Neu“ zu „In Bearbeitung“ ändert oder die erste Aktion der vorbereitenden Person protokolliert wird. | ||
| Warum das wichtig ist Dieser Meilenstein macht Dauer und Aufwand für die Belegung von Bilanzkonten nachvollziehbar. Er hilft, Konten oder Abteilungen zu ermitteln, die mit ihren Abstimmungen spät beginnen. Woher beziehen Dieses Event wird üblicherweise aus einem speziellen Abstimmungstool wie SAP Account Substantiation and Automation von BlackLine oder einem anderen Drittanbietersystem erfasst. Es wird anhand der Timestamps von Statusänderungen abgeleitet. Erfassung Erfassen Sie den Timestamp der ersten Statusänderung ausgehend vom Status „Nicht gestartet“ für eine bestimmte Hauptbuchkontenabstimmung. Ereignistyp inferred | |||
| Konzerninterne Abstimmung gestartet | Diese Aktivität kennzeichnet den Beginn des Abgleichs und der Abstimmung von Transaktionen zwischen verschiedenen Buchungskreisen innerhalb eines Konzerns. Sie wird häufig durch den Start eines Abstimmungsjobs oder das Anlegen eines neuen Abstimmungsfalls im SAP-ICMR-Tool ausgelöst. | ||
| Warum das wichtig ist Konzerninterne Abstimmungen sind oft komplex und zeitaufwendig. Die Analyse ihrer Dauer und ihres Ablaufs ist entscheidend, um den Konzernabschluss zu optimieren und die Richtigkeit der konsolidierten Finanzdaten sicherzustellen. Woher beziehen Das Event wird aus Statusänderungen im SAP-Modul Intercompany Matching and Reconciliation (ICMR) oder aus dem Anlegen der ersten Abstimmungsbelege für die Periode abgeleitet. Erfassung Erfassen Sie für die betreffende Periode das Anlagedatum oder den Timestamp der Statusänderung von Abstimmungseinheiten im ICMR-Tool. Ereignistyp inferred | |||
| Nachträgliche Buchung erfasst | Dieses Event kennzeichnet einen Korrekturbuchungssatz, der nach den ersten Abstimmungen erstellt wird, meist um bei der Prüfung festgestellte Abweichungen zu beheben. Es handelt sich um eine explizite Buchung im Hauptbuch. | ||
| Warum das wichtig ist Häufige nachträgliche Buchungen weisen auf eine geringe Qualität beim ersten Durchlauf in vorgelagerten Prozessen oder Abstimmungen hin. Ihre Analyse ist entscheidend, um Fehlerursachen zu ermitteln und Nacharbeit zu verringern. Woher beziehen Die Buchungen werden als explizite Belege in den Tabellen ACDOCA und BKPF erfasst. Sie lassen sich anhand bestimmter Belegarten, später Buchungsdaten im Abschlusszyklus oder bestimmter Textbeschreibungen identifizieren. Erfassung Filtern Sie Buchungssätze in BKPF anhand einer Kombination aus Belegart und Buchungsdatum im Verhältnis zu den Abstimmungsaktivitäten. Ereignistyp explicit | |||
| Abgrenzungen und Rückstellungen gebucht | Dieses Event erfasst das Anlegen manueller Buchungssätze für Abgrenzungen, Rechnungsabgrenzungen und sonstige Rückstellungen, die für eine korrekte Finanzberichterstattung nach dem Prinzip der periodengerechten Rechnungslegung erforderlich sind. Dabei handelt es sich um explizite Buchungen im Hauptbuch. | ||
| Warum das wichtig ist Die Überwachung dieser Buchungen hilft, Umfang und Zeitpunkt manueller Anpassungen zu analysieren. Eine hohe Anzahl kann auf Automatisierungs- oder Verbesserungsmöglichkeiten in vorgelagerten Prozessen hinweisen. Woher beziehen Die Buchungen werden als explizite Buchungssätze in der Universal-Journal-Tabelle ACDOCA und der Kopftabelle BKPF erfasst. Sie lassen sich anhand bestimmter, für Abgrenzungen konfigurierter Belegarten identifizieren. Erfassung Filtern Sie Belege in Tabelle BKPF nach Belegart (z. B. „SA“ oder benutzerdefinierten Belegarten) und Buchungsdatum innerhalb der Periode. Ereignistyp explicit | |||
| Automatischer Ausgleichslauf ausgeführt | Dieses Event kennzeichnet die Ausführung automatischer Ausgleichsprogramme in SAP, etwa des GR/IR-Ausgleichslaufs (Wareneingang/Rechnungseingang). Diese Jobs gleichen offene Posten auf bestimmten Hauptbuchkonten aus und verringern den manuellen Abstimmungsaufwand. | ||
| Warum das wichtig ist Diese Aktivität zeigt den Automatisierungsgrad im Abstimmungsprozess. Fehler oder Ausnahmen bei diesen Läufen können erheblichen manuellen Aufwand und Verzögerungen verursachen. Woher beziehen Das Event wird aus den Ausführungsprotokollen bestimmter Batch-Jobs erfasst, etwa F.13 oder F.13E für den automatischen Ausgleich. Die Job-Protokolltabellen TBTCO und TBTCP enthalten die Ausführungsdetails. Erfassung Überwachen Sie in den SAP-Job-Protokollen die Start- und End-Timestamps von Jobs zu Transaktionen wie F.13. Ereignistyp explicit | |||
| Datenübertragung aus Nebenbüchern abgeschlossen | Dieses Event kennzeichnet den Abschluss von Batch-Jobs, die zusammengefasste Daten aus Nebenbüchern wie Debitorenbuchhaltung, Kreditorenbuchhaltung und Anlagenbuchhaltung ins Hauptbuch übertragen. So sind vor Beginn der Abschlussverfahren alle zugrunde liegenden operativen Transaktionen im Hauptbuch erfasst. | ||
| Warum das wichtig ist Verzögerungen beim Abschluss der Nebenbücher können den gesamten Prozess erheblich ausbremsen. Die Überwachung dieser Aktivität hilft, Ineffizienzen bei der Datenerfassung und Integration aus Quellsystemen aufzudecken. Woher beziehen Das Event wird aus dem erfolgreichen Abschluss bestimmter Batch-Jobs abgeleitet, die für den Saldenausgleich und die Datenübertragung zuständig sind. Die Job-Protokolle finden Sie in den Tabellen TBTCO und TBTCP. Erfassung Ermitteln und überwachen Sie die Abschluss-Timestamps relevanter Batch-Jobs in der Jobübersicht von SAP (Transaktion SM37). Ereignistyp explicit | |||
| Finanzberichte freigegeben | Dieses Event kennzeichnet die endgültige Freigabe der Finanzberichte durch die zuständige Geschäftsleitung vor ihrer Veröffentlichung. Häufig findet dieser Vorgang außerhalb des Systems statt. Er lässt sich jedoch erfassen, wenn ein formeller digitaler Freigabeschritt vorhanden ist. | ||
| Warum das wichtig ist Dies ist der abschließende Qualitäts- und Kontrollschritt. Die Überwachung des Zeitpunkts ist entscheidend, um die Einhaltung von Berichtsfristen und die Effizienz des Prüfzyklus durch die Geschäftsleitung zu beurteilen. Woher beziehen Dieses Event lässt sich erfassen, wenn ein Workflow oder Statusfeld für die Freigabe von Finanzberichten vorhanden ist, etwa in SAP Financial Closing Cockpit oder einem Dokumentenmanagementsystem. Erfassung Ermitteln Sie ein Datenfeld und einen Timestamp, die die endgültige Freigabe des Finanzberichtspakets anzeigen. Ereignistyp inferred | |||
| Fremdwährungsbewertung ausgeführt | Dies ist ein standardmäßiger Monatsabschlussvorgang, bei dem offene Posten und Salden in Fremdwährungen anhand der Wechselkurse zum Periodenende neu bewertet werden. Bei der Ausführung des Programms werden die daraus resultierenden Bewertungsdifferenzen gebucht. | ||
| Warum das wichtig ist So werden die Einhaltung der Rechnungslegungsstandards und ein korrektes Bild der Finanzlage sichergestellt. Die Überwachung dieser Aktivität hilft, alle Währungsbewertungen fristgerecht durchzuführen. Woher beziehen Das Event wird aus den Ausführungsprotokollen des Fremdwährungsbewertungsprogramms erfasst (z. B. FAGL_FCV). Jobdetails sind in den Tabellen TBTCO und TBTCP gespeichert. Erfassung Überwachen Sie die Ausführungsprotokolle von Jobs zur Transaktion FAGL_FCV oder zum zugrunde liegenden Programm. Ereignistyp explicit | |||
| Konsolidierungsaufgaben ausgeführt | Dieses Event kennzeichnet die Ausführung von Konsolidierungsaktivitäten in SAP Group Reporting, etwa der Währungsumrechnung, Umgliederung und Eliminierung konzerninterner Gewinne. Diese Aufgaben werden üblicherweise im Konsolidierungsmonitor verwaltet und protokolliert. | ||
| Warum das wichtig ist Für Unternehmen mit mehreren rechtlichen Einheiten ist die Konsolidierung ein entscheidender Prozessschritt. Die Überwachung dieser Aufgaben hilft, den Konzernabschluss zu optimieren und eine fristgerechte konsolidierte Berichterstattung sicherzustellen. Woher beziehen Das Event wird aus den Statusprotokollen im Data Monitor oder Consolidation Monitor von SAP S/4HANA for Group Reporting erfasst. Für jede Aufgabe werden üblicherweise Benutzer, Timestamp und Status protokolliert. Erfassung Extrahieren Sie die Ausführungsprotokolle der Aufgaben aus den zugrunde liegenden Tabellen des Konsolidierungsmonitors von Group Reporting. Ereignistyp explicit | |||
| Summen- und Saldenliste erstellt | Dieses Event zeigt an, dass eine Summen- und Saldenliste zur Prüfung erstellt und gespeichert wurde. Sie ist ein wichtiger Kontrollpunkt, bevor der endgültige Jahresabschluss erstellt wird. Das Event lässt sich häufig erfassen, wenn die Berichtsausgabe gespeichert wird. | ||
| Warum das wichtig ist Die Erstellung der Summen- und Saldenliste ist ein wichtiger Qualitätsschritt. Die Analyse des Zeitpunkts zeigt, ob die Voraussetzungen für die endgültige Berichterstattung erfüllt sind, und kann Verzögerungen bei vorherigen Aktivitäten aufdecken. Woher beziehen Oft handelt es sich nicht um ein explizites Event. Es lässt sich möglicherweise aus der Ausführung einer bestimmten Berichtstransaktion ableiten, wenn Varianten mit Benutzer und Datum gespeichert werden oder der Prozess in einem Tool wie SAP Financial Closing Cockpit verwaltet wird. Erfassung Eine Systemanalyse ist erforderlich, um festzustellen, ob ein zuverlässiger Protokollierungsmechanismus vorhanden ist, etwa Ausführungsprotokolle von Berichten oder Aufgabenlisten im Closing Cockpit. Ereignistyp inferred | |||
Anleitungen zur Datenextraktion
Schritte
- CDS-Views identifizieren und überprüfen: Melden Sie sich mit SAP HANA Studio oder Eclipse mit ADT an Ihrem SAP S/4HANA-System an. Suchen Sie mit den ABAP Development Tools nach den in der Abfrage genannten Standard-CDS-Views, etwa I_JournalEntryItem, I_BatchJob und I_ConsolidationTaskLog, und überprüfen Sie, ob sie vorhanden sind. Für Prozesse wie die Kontenabstimmung müssen Sie möglicherweise eigene CDS-Views erstellen, zum Beispiel Z_I_ACCOUNTRECONCILIATION, um Statusänderungen zu erfassen.
- CDS-Views über OData bereitstellen: Erstellen Sie im SAP-Backend mit der Transaktion
SEGW(Gateway Service Builder) ein neues Projekt. Klicken Sie im Ordner Data Model mit der rechten Maustaste und wählen Sie „Reference -> Data Source“. Fügen Sie die benötigten CDS-Views hinzu. Generieren Sie die Laufzeitobjekte, um einen OData-Service bereitzustellen, über den externe Systeme auf diese Views zugreifen können. - OData-Service aktivieren: Öffnen Sie auf dem SAP Gateway Hub die Transaktion
/IWFND/MAINT_SERVICE. Klicken Sie auf „Add Service“, suchen Sie den im vorherigen Schritt generierten Service und fügen Sie ihn hinzu. Damit wird der Service aktiviert und kann abgefragt werden. - Datenverbindung herstellen: Stellen Sie mit dem von Ihnen gewählten Datenextraktionstool, etwa Python, Power BI oder einer dedizierten ETL-Plattform, eine Verbindung zum neu erstellten OData-Service her. Dafür benötigen Sie die Service-URL und passende Zugangsdaten mit Berechtigung für den Zugriff auf die CDS-Views.
- Abfrage anpassen und ausführen: Kopieren Sie die bereitgestellte SQL-Abfrage. Ersetzen Sie die Platzhalter für Datumsbereiche, Buchungskreise und gegebenenfalls eigene CDS-Views oder Stapelverarbeitungsaufträge durch Werte aus Ihrer SAP-Umgebung. Führen Sie die Abfrage am OData-Service-Endpunkt aus. OData verwendet eine andere Syntax (
$filter,$select). Daher müssen Sie die Logik der UNION-ALL-Abfrage möglicherweise in mehrere separate API-Aufrufe übertragen, einen für jede Aktivität. - Aktivitätsdaten zusammenführen: OData unterstützt komplexe UNION-ALL-Abfragen in einem einzelnen Aufruf in der Regel nicht direkt. Führen Sie deshalb für jeden Aktivitätsblock der Abfrage eine separate Anfrage aus. Fassen Sie die Ergebnisse aller Anfragen in Ihrem Client-Tool zu einem Datensatz oder einer Tabelle zusammen.
- Daten umwandeln und bereinigen: Prüfen Sie die zusammengeführten Daten. Achten Sie darauf, dass die Spalten
EventTimeundEndTimeein einheitliches Timestamp-Format verwenden. Prüfen Sie, obFinancialPeriodkorrekt als 'YYYY-MM' formatiert ist. Behandeln Sie NULL-Werte in Spalten wieResponsibleUseroderDocumentNumberbei Bedarf. - Als Event Log exportieren: Exportieren Sie den fertigen, zusammengeführten Datensatz in eine CSV-Datei. Die Spaltenüberschriften müssen den erforderlichen Attributen entsprechen, zum Beispiel
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUser. Diese Datei können Sie nun in ProcessMind hochladen.
Konfiguration
- CDS-Views: Die Abfrage kombiniert Standard-CDS-Views mit eigenen CDS-Views. Standard-Views wie
I_JournalEntryItem(für Buchungsbelege) undI_BatchJob(für automatisierte Ausführungen) sind unverzichtbar. Eigene Views wieZ_I_ACCOUNTRECONCILIATIONsind häufig erforderlich, um den Status interner Prozesse zu erfassen, die nicht durch Standard-Views abgedeckt werden. - Datumsbereich: Legen Sie einen bestimmten Datumsbereich für die Extraktion fest, um das Datenvolumen zu begrenzen. Die Abfrage enthält die Platzhalter
[Start Date]und[End Date]. Für aussagekräftige Analysen sollte der Zeitraum in der Regel drei bis sechs vollständige Geschäftsjahresperioden umfassen. - Wichtige Filter: Filter sind entscheidend für Leistung und Relevanz. Filtern Sie immer nach
CompanyCode. Weitere wichtige Filter sindLedger(zum Beispiel '0L' für das führende Ledger),FiscalYearund bestimmteDocumentType-Werte, um reguläre Buchungen, Abgrenzungen und Anpassungen zu unterscheiden. - Voraussetzungen: Der Benutzer, der die Extraktion ausführt, benötigt in SAP Berechtigungen für den Zugriff auf die angegebenen CDS-Views und die Ausführung von OData-Services, zum Beispiel die Berechtigungsobjekte
S_SERVICEundS_RFC. Die SAP-Gateway-Services müssen konfiguriert und aktiviert sein. - Leistung: Abfragen von
I_JournalEntryItemkönnen die Systemleistung stark beanspruchen. Verwenden Sie stets gezielte Filter, insbesondere für Datumsangaben, Buchungskreise und Ledger. Führen Sie die Extraktion möglichst außerhalb der Spitzenzeiten aus oder verwenden Sie für die laufende Überwachung eine inkrementelle Lade-Strategie.
a Beispielabfrage 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]'; Schritte
- Prüfen Sie, ob direkter Lesezugriff auf das SAP-HANA-Schema mit den benötigten Anwendungstabellen verfügbar ist, und ermitteln Sie den Schemaeigentümer für ACDOCA, TBTCO, CDHDR und CDPOS. Ersetzen Sie den Schema-Platzhalter in der Abfrage durch den freigegebenen Schemanamen.
- Legen Sie Geschäftsjahr, Geschäftsperiode, Buchungskreisumfang und Extraktionszeitraum fest. Verwenden Sie einen Zeitraum, der den vollständigen Abschlusszyklus abdeckt, in der Regel drei bis sechs Monate, und ersetzen Sie die Datumsparameter durch passende Werte für Ihr System.
- Überprüfen Sie die lokalen Feldzuordnungen für Änderungen an der Konfiguration der Buchungsperioden, den Abschluss von Stapelverarbeitungsaufträgen, Änderungen des Abstimmungsstatus, Konsolidierungsausführungen, Berichtserstellung und Freigabedatensätze. Die Abfrage enthält Platzhalter für Quellobjekte, die nicht in jeder SAP-S/4HANA-Installation vorhanden sind. Ersetzen Sie diese vor der Ausführung durch freigegebene Views oder Tabellen aus Ihrem System.
- Führen Sie die Abfrage mit schreibgeschützten Datenbankzugangsdaten aus. Die Abfrage erstellt ausdrücklich eine Ereigniszeile für jede erforderliche Aktivität und leitet keine zusätzlichen Ereignisse aus der Ereignisreihenfolge ab.
- Prüfen Sie die zurückgegebenen Spalten.
FinancialPeriodist die Fall-ID,ActivityNamebezeichnet die Ereignisaktivität undEventTimeenthält den erforderlichen Ereignis-Timestamp.EndTime,ResponsibleUser,CompanyCode,GlAccountNumber,DocumentNumber,ReconciliationStatusundTargetCompletionDatewerden ausgegeben, sofern der Quelldatensatz entsprechende Werte enthält. - Prüfen Sie, ob alle erforderlichen Aktivitäten im Ergebnis enthalten sind, auch wenn für eine bestimmte Periode keine Quelldatensätze vorliegen. Für fehlende Aktivitätstypen gibt die Abfrage eine Validierungszeile mit
ActivityNamegleichActivity Coverage Validationzurück. Entfernen Sie diese Zeile oder behandeln Sie sie separat, bevor Sie die Daten in ProcessMind hochladen, falls beim Import ausschließlich Geschäftsvorgänge zulässig sind. - Gleichen Sie repräsentative Ereignisse mit SAP-Anwendungsdatensätzen und Auftragsprotokollen ab. Prüfen Sie, ob Buchungsereignisse den ACDOCA-Datensätzen, Auftragsereignisse den TBTCO-Datensätzen und Änderungsereignisse den CDHDR- und CDPOS-Datensätzen oder den konfigurierten Abstimmungs- und Freigabequellen entsprechen.
- Exportieren Sie das Ergebnis als UTF-8-kodierte CSV-Datei oder in einem anderen von ProcessMind unterstützten Tabellenformat. Behalten Sie die Spaltennamen
FinancialPeriod,ActivityNameundEventTimeexakt bei. Sortieren Sie nachFinancialPeriodundEventTimeund behalten Sie eine Zeile pro ausdrücklich extrahiertem Ereignis bei. - Laden Sie das Event Log in ProcessMind hoch und legen Sie
FinancialPeriodals Fall-ID,ActivityNameals Aktivität undEventTimeals Start-Timestamp fest. Ordnen SieEndTimeals End-Timestamp zu, sofern verfügbar, und verwenden Sie die übrigen Spalten als Ereignis- oder Fallattribute.
Wichtiger Hinweis zur Zuordnung der Quelldaten: SAP S/4HANA bietet keine einheitliche Tabellenstruktur für alle Abstimmungstools, Konsolidierungsmonitore, Berichtsarchive, Freigabe-Workflows oder Konfigurationen der Buchungsperioden. Ersetzen Sie jeden Platzhalter [Your table name] und [Your column name] in der Abfrage durch ein geprüftes Objekt und eine geprüfte Spalte aus Ihrem System. Behandeln Sie Platzhalter nicht als ausführbares SQL.
Konfiguration
- Datenbankzugriff: Verwenden Sie einen schreibgeschützten SAP-HANA-Datenbankbenutzer mit SELECT-Berechtigung für ACDOCA, TBTCO, CDHDR, CDPOS und die konfigurierten Quellobjekte für Buchungsperiodensteuerung, Abstimmung, Konsolidierung, Berichterstattung und Freigaben.
- Schemakonfiguration: Ersetzen Sie [Your SAP schema] durch das tatsächliche Schema mit den Anwendungsobjekten. Prüfen Sie, ob es sich bei den Objekten um Tabellen, Calculation Views oder freigegebene Reporting-Views handelt.
- Datumsbereich: Extrahieren Sie den vollständigen Abschlusszyklus, in der Regel drei bis sechs Monate. Berücksichtigen Sie Eröffnungs- und Abschlussaktivitäten, verspätete Buchungen, Stornierungen, Freigaben und Anpassungen nach dem Abschluss.
- Geschäftsperiode: Filtern Sie nach Geschäftsjahr und Geschäftsperiode des Buchungskreises. Gehen Sie nicht von Kalenderjahresperioden aus, wenn eine andere Geschäftsjahresvariante gilt.
- Buchungskreis: Verwenden Sie einen Buchungskreisfilter, wenn der Prozess auf ausgewählte rechtliche Einheiten beschränkt ist. Verwenden Sie [Configure based on your system], wenn der Umfang in einer separaten Organisationszuordnung gepflegt wird.
- Belegarten: Beschränken Sie die Extraktion von Buchungsbelegen auf die für Abgrenzungen, Rückstellungen, Anpassungen, Bewertungen, Ausgleiche und andere Abschlussbuchungen verwendeten Belegarten. Prüfen Sie die lokale Konfiguration der Belegarten, bevor Sie diese Filter aktivieren.
- Auftragsstatus: Berücksichtigen Sie für Abschlussaktivitäten nur abgeschlossene oder erfolgreich beendete Aufträge. Prüfen Sie die lokalen TBTCO-Statuswerte, bevor Sie eine Statusbedingung anwenden.
- Änderungsbelege: Filtern Sie CDHDR und CDPOS nach der relevanten Objektklasse und den Änderungskennzeichen, nachdem Sie die lokale Konfiguration geprüft haben. Änderungsbelege allein identifizieren möglicherweise nicht alle Geschäftsaktivitäten.
- Abstimmungs- und Freigabequellen: Konfigurieren Sie geprüfte Quellobjekte für Änderungen des Abstimmungsstatus, Aktionen der Bearbeitenden, Freigaben, Zieldaten und digitale Bestätigungen. Diese Quellen unterscheiden sich je nach eingesetzten SAP-Komponenten und Erweiterungen.
- Leistung: Begrenzen Sie Filterbedingungen für Geschäftsjahr, Geschäftsperiode, Buchungskreis, Buchungsdatum und Ereignis-Timestamp. Wenden Sie Filter in jedem UNION-ALL-Zweig an, vermeiden Sie uneingeschränkte Scans von ACDOCA und führen Sie die Abfrage innerhalb eines freigegebenen Berichtszeitraums aus.
- Datentypen: Vereinheitlichen Sie Timestamps auf eine gemeinsame Zeitzone und einen einheitlichen Datentyp. Wandeln Sie leere Zeichenfolgen in NULL um und erhalten Sie führende Nullen in Buchungskreisen, Kontonummern und Belegnummern.
- Voraussetzungen: Prüfen Sie, ob die erforderlichen SAP-Komponenten, Abstimmungstools, Konsolidierungsfunktionen, Auftragsprotokollierung, Änderungsbelegaktivierung sowie die Protokollierung von Berichten oder Workflows verfügbar und mit Daten befüllt sind.
- Sicherheit und Compliance: Gewähren Sie nur die erforderlichen Mindestberechtigungen, schützen Sie Finanz- und Benutzerdaten, dokumentieren Sie den Zweck der Extraktion und halten Sie die SAP- und Datenbank-Auditvorgaben Ihrer Organisation ein.
a Beispielabfrage sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName Möchten Sie loslegen?
Mit diesem Datentemplate kann Ihre Organisation Effizienz und Compliance verbessern. Beginnen Sie noch heute damit, Ihren Record-to-Report-Prozess zu optimieren.
Optimieren Sie noch heute Ihren Record-to-Report-Abschluss und die Abstimmung
Decken Sie Ineffizienzen auf und verkürzen Sie Ihren Abschlusszyklus um bis zu 30 %.
Keine Kreditkarte erforderlich. In wenigen Minuten startklar.