Ihr Daten-Template für Record to Report, Periodenabschluss und Abstimmung
Ihr Daten-Template für Record to Report, Periodenabschluss und Abstimmung
- Empfohlene Attribute für die Datenerfassung
- Wichtige Aktivitäten für die Nachverfolgung
- Hinweise zur Extraktion
Attribute für Record to Report, Periodenabschluss und Abstimmung
| Name | Beschreibung | ||
|---|---|---|---|
| Finanzperiode FinancialPeriod | Eindeutige Kennung des Finanzberichtszyklus, üblicherweise aus Geschäftsjahr und Buchungsperiode zusammengesetzt. | ||
| Beschreibung Die Finanzperiode dient als primäre Fallkennung. Sie fasst alle Aktivitäten zusammen, die zum Abschluss und zur Abstimmung der Konten für den jeweiligen Berichtszyklus gehören, zum Beispiel „2023-12“ für Dezember 2023. So lässt sich der gesamte Periodenabschlussprozess für jede einzelne Periode von Anfang bis Ende analysieren. In der Analyse können Sie die durchgängige Zykluszeit jedes Abschlusses verfolgen, die Ergebnisse verschiedener Perioden vergleichen und Trends oder Auffälligkeiten erkennen. Wird jede Finanzperiode als eigener Fall definiert, lassen sich Effizienz, Engpässe und Abweichungen im Abschlussprozess über die Zeit hinweg darstellen und messen. Warum das wichtig ist Diese wichtige Fallkennung bildet die Grundlage der Analyse und ermöglicht den Vergleich von Abschlusszykluszeiten, Arbeitsaufkommen und Prozesseinhaltung zwischen den Perioden. Woher beziehen Dieses Attribut wird üblicherweise aus Geschäftsjahr (GJAHR) und Buchungsperiode (MONAT) in den Finanzbelegköpfen zusammengesetzt, zum Beispiel aus der Tabelle BKPF. Beispiele 2023-122024-032023-Q4 | |||
| Aktivität ActivityName | Bezeichnung des konkreten Geschäftsereignisses oder der Aufgabe im Periodenabschlussprozess. | ||
| Beschreibung Dieses Attribut erfasst die einzelnen Schritte im Record-to-Report-Zyklus, etwa „Korrekturbuchung gebucht“ oder „Finanzberichte erstellt“. Es bildet die Grundlage der Prozesslandkarte und zeigt die Abfolge der Ereignisse im Periodenabschluss. Die Analyse der Aktivitäten ist ein wesentlicher Bestandteil von Process Mining. Sie macht den Prozessfluss sichtbar, zeigt die Reihenfolge der Aufgaben und Prozessvarianten und misst, wie häufig und wie lange die einzelnen Schritte dauern. So lassen sich Engpässe, nicht standardisierte Prozesspfade und Möglichkeiten zur Standardisierung oder Automatisierung erkennen. Warum das wichtig ist Dieses Attribut ist für die Erstellung der Prozesslandkarte erforderlich. Es ermöglicht, die Abfolge der Aufgaben im Periodenabschluss darzustellen und zu analysieren. Woher beziehen Wird aus einer Kombination von SAP-Transaktionscodes (TCODE), Belegarten (BLART) oder bestimmten Programmausführungen abgeleitet, etwa FAGL_FCV für die Fremdwährungsbewertung. Beispiele Korrekturbuchung gebuchtKontenabstimmung begonnenPeriode für Buchungen geschlossen | |||
| Ereigniszeit EventTime | Timestamp, der angibt, wann eine Aktivität oder ein Ereignis stattgefunden hat. | ||
| Beschreibung Die Ereigniszeit gibt für jede Aktivität das genaue Datum und die genaue Uhrzeit an und bildet damit die zeitliche Grundlage der Analyse. Sie setzt sich üblicherweise aus Erstellungsdatum und -uhrzeit des Belegs zusammen. Dieser Timestamp ist erforderlich, um die Ereignisse in der richtigen Reihenfolge anzuordnen und den Prozessfluss zu rekonstruieren. Er dient zur Berechnung aller zeitbasierten Kennzahlen, darunter Zykluszeiten zwischen Aktivitäten, Wartezeiten und die Gesamtdauer des Periodenabschlusses. Die Analyse der Zeitstempel macht Verzögerungen und die zeitliche Verteilung der Arbeit sichtbar. Warum das wichtig ist Als Pflichtattribut liefert dieses Feld die chronologische Reihenfolge der Ereignisse. Diese ist erforderlich, um Zykluszeiten zu berechnen und Prozessengpässe zu erkennen. Woher beziehen Wird bei Finanzbelegen üblicherweise aus dem Belegerfassungsdatum (CPUDT) und der Erfassungsuhrzeit (CPUTM) in der Tabelle BKPF bezogen. Beispiele 2023-12-28T14:30:15Z2024-01-02T09:05:00Z2024-01-05T17:21:45Z | |||
| Letzte Datenaktualisierung LastDataUpdate | Timestamp der letzten Aktualisierung oder Extraktion der Daten aus dem Quellsystem. | ||
| Beschreibung Dieses Attribut zeigt, wie aktuell die analysierten Daten sind. Es gibt Datum und Uhrzeit des letzten Laufs der Datenpipeline an und ordnet die Aktualität der Erkenntnisse zum Prozess ein. Bei Dashboards, die den Fortschritt in Echtzeit verfolgen, hilft dieser Timestamp den Benutzern zu erkennen, ob sie aktuelle Informationen oder Daten vom Vortag sehen. So wissen sie, wie aktuell die Daten sind, und können die Analyse richtig einordnen. Warum das wichtig ist Informiert Benutzer über die Aktualität der Daten. Das ist wichtig, damit Analysen und Dashboards zeitnah und relevant bleiben. Woher beziehen Dieser Timestamp wird vom Datenextraktions- oder ETL-Tool am Ende jedes Datenladevorgangs erstellt und hinzugefügt. Beispiele 2024-05-21T04:00:00Z2024-05-20T04:00:00Z2024-05-19T04:00:00Z | |||
| Quellsystem SourceSystem | Kennung des Quellsystems, aus dem die Daten extrahiert wurden. | ||
| Beschreibung Dieses Attribut gibt die Herkunft der Ereignisdaten an, etwa den Namen oder die ID der jeweiligen SAP-ECC-Instanz. In Unternehmen mit mehreren ERP- oder Finanzsystemen ist dieses Feld entscheidend, um Daten aus unterschiedlichen Quellen auseinanderzuhalten. Auch bei einer Systemlandschaft mit nur einem System ist es wichtige Metainformation für Data Governance, Audits und die Fehlerbehebung. Es bestätigt die Herkunft der Daten. Das schafft Vertrauen in die Analyse und sorgt für eine nachvollziehbare Datenherkunft. Warum das wichtig ist Macht die Datenherkunft nachvollziehbar und unterstützt so die Governance. In Systemlandschaften mit mehreren Systemen ist dieses Attribut entscheidend, um Prozesse voneinander zu unterscheiden. Woher beziehen Dies ist üblicherweise ein statischer Wert, der bei der Datenextraktion hinzugefügt wird und den jeweiligen SAP-Mandanten und die System-ID angibt (z. B. aus der Tabelle T000). Beispiele ECC_PROD_100SAP_E74_200ECC_FINANCE | |||
| Belegart BLART | Code zur Klassifizierung verschiedener Arten von Buchhaltungsbelegen. | ||
| Beschreibung In SAP unterscheidet die Belegart verschiedene Geschäftsvorfälle, etwa Lieferantenrechnungen (KR), Kundenzahlungen (DZ) und Sachkontenbuchungen (SA). Sie steuert außerdem Eigenschaften wie den Nummernkreis des Belegs. Bei der Analyse des Periodenabschlusses ist die Belegart ein hilfreicher Filter. Damit lassen sich bestimmte Aktivitäten wie Abgrenzungen, Rückstellungen oder Stornobuchungen isolieren. So können Sie Umfang und finanzielle Auswirkungen verschiedener abschlussbezogener Geschäftsvorfälle analysieren und bestimmte Aktivitäten im Prozessmodell definieren. Warum das wichtig ist Ermöglicht die Klassifizierung und Filterung von Geschäftsvorfällen, sodass sich bestimmte Aktivitäten wie Abgrenzungen, Stornierungen oder konzerninterne Buchungen gezielt untersuchen lassen. Woher beziehen Befindet sich in der Belegkopftabelle BKPF (BLART). Beispiele SAABKR | |||
| Belegnummer BELNR | Eindeutige Kennung eines Buchhaltungsbelegs innerhalb eines Geschäftsjahres und Buchungskreises. | ||
| Beschreibung Die Buchhaltungsbelegnummer ist der Primärschlüssel für Finanzbuchungen in SAP. Jede Buchung, Rechnung und jeder Zahlungsbeleg erhält eine eindeutige Nummer. Für Analysen auf hoher Ebene wird die Belegnummer zwar selten verwendet, für Detailanalysen ist sie jedoch sehr hilfreich. Über ein Process-Mining-Dashboard können Analysten anhand der Belegnummer direkt zum betreffenden Vorgang in SAP wechseln und Auffälligkeiten genauer untersuchen, etwa eine hohe Korrekturbuchung oder einen verspätet abgestimmten Posten. So führt der Weg von der Erkenntnis direkt zum Quellbeleg. Warum das wichtig ist Verweist direkt auf den Quellvorgang in SAP. So können Sie von der Prozessansicht aus einzelne Buchungen detailliert untersuchen. Woher beziehen Befindet sich als Primärschlüssel in der Tabelle BKPF (BELNR). Beispiele 100000456719000001233000008901 | |||
| Betrag in Hauswährung DMBTR | Finanzieller Wert eines Einzelpostens, angegeben in der Hauswährung des Buchungskreises. | ||
| Beschreibung Dieses Attribut gibt den Geldwert einer Finanzbuchung an. Es ist die zentrale quantitative Kennzahl für die Auswirkungen eines Geschäftsvorfalls auf das Hauptbuch. Die Analyse des Betrags ist wichtig, um Probleme zu priorisieren und finanzielle Risiken einzuschätzen. So kann das Dashboard „Volumenanalyse von Korrekturbuchungen“ zwischen vielen Korrekturen mit geringem Wert und wenigen Korrekturen mit hohem Wert unterscheiden. Dadurch richtet sich die Aufmerksamkeit auf finanziell wesentliche Geschäftsvorfälle. Warum das wichtig ist Beziffert die finanziellen Auswirkungen von Geschäftsvorfällen und ermöglicht eine Analyse nach Wesentlichkeit, etwa zur Erkennung von Korrekturbuchungen mit hohem Wert. Woher beziehen Verfügbar in der Einzelpostentabelle der Belege, BSEG (DMBTR). Beispiele 1500.75-25000.00123456.00 | |||
| Buchungsart JournalEntryType | Klassifizierung von Buchungen, etwa als „Standard“, „Korrektur“, „Abgrenzung“ oder „Stornierung“. | ||
| Beschreibung Dieses abgeleitete Attribut kategorisiert Finanzbelege nach ihrem Zweck im Abschlussprozess. Die Zuordnung basiert häufig auf einer Kombination aus Belegart (BLART), Stornogrund (STGRD) oder den verwendeten Sachkonten. Diese Klassifizierung ist eine wichtige Grundlage für das Dashboard „Volumenanalyse von Korrekturbuchungen“ und die zugehörigen KPIs. Wenn Korrektur- oder Abgrenzungsbuchungen ausdrücklich gekennzeichnet sind, können Analysten deren Anzahl und Wert messen, Entwicklungen verfolgen und die Ursachen untersuchen. So lassen sich routinemäßige operative Buchungen von Periodenendkorrekturen unterscheiden. Warum das wichtig ist Kategorisiert Buchungen für gezielte Analysen. So lassen sich wichtige Buchungsarten wie Korrekturen und Abgrenzungen verfolgen und messen, die Hinweise auf die Prozessgesundheit geben. Woher beziehen Dieses Feld wird abgeleitet. Die Logik muss anhand von Geschäftsregeln festgelegt werden, üblicherweise unter Verwendung von Feldern wie der Belegart (BLART) aus BKPF. Beispiele KorrekturAbgrenzungStornierungStandard | |||
| Buchungskreis BUKRS | Organisationseinheit, die eine juristische Person repräsentiert, für die Finanzberichte erstellt werden. | ||
| Beschreibung Der Buchungskreis ist eine grundlegende Organisationseinheit in SAP Financials. Er steht für ein eigenständiges Unternehmen mit eigener ausgeglichener Buchführung. Alle Finanztransaktionen werden auf Buchungskreisebene gebucht. In Process Mining ist die Filterung nach Buchungskreis entscheidend, um den Periodenabschluss verschiedener juristischer Personen innerhalb eines Konzerns zu vergleichen. So lassen sich bewährte Vorgehensweisen in leistungsstarken Einheiten erkennen und Einheiten mit Verzögerungen, vielen Korrekturbuchungen oder Prozessabweichungen gezielt untersuchen. Der Buchungskreis ist eine wichtige Dimension für die Segmentierung der Analyse. Warum das wichtig ist Ermöglicht den Vergleich von Abschlussleistung und Compliance verschiedener juristischer Personen. Das ist für Finanzanalysen auf Konzernebene entscheidend. Woher beziehen Dieses Feld ist in fast allen Finanzbelegtabellen in SAP verfügbar, vor allem in BKPF (Kopf) und BSEG (Einzelposten). Beispiele 10002000US01DE01 | |||
| Sachkonto HKONT | Nummer des Sachkontos, auf das ein Einzelposten gebucht wird. | ||
| Beschreibung Das Sachkonto ist ein zentrales Stammdatenelement im Finanzwesen und dient der Klassifizierung von Geschäftsvorfällen. Jede Finanzbuchung wird einem oder mehreren Sachkonten zugeordnet. Beim Periodenabschluss ist die Analyse nach Sachkonto wichtig für die Dashboards „Engpässe bei der Kontenabstimmung“ und „Volumenanalyse von Korrekturbuchungen“. Sie zeigt, welche Konten sich besonders schwer abstimmen lassen, häufige Korrekturen erfordern oder ein erhöhtes Risiko für wesentliche Falschdarstellungen aufweisen. So können Teams ihre Arbeit auf problematische Konten konzentrieren. Warum das wichtig ist Ermöglicht die gezielte Analyse von Abstimmungen und Korrekturbuchungen. So lassen sich problematische Konten erkennen, die Verzögerungen verursachen oder häufige Korrekturen erfordern. Woher beziehen Verfügbar in der Einzelpostentabelle der Finanzbelege, BSEG (HKONT). Beispiele 113100400500750000 | |||
| Verantwortlicher Benutzer USNAM | SAP-Benutzer-ID der Person, die die Transaktion erstellt oder ausgeführt hat. | ||
| Beschreibung Dieses Feld erfasst den Benutzer, der einen Beleg gebucht, einen Bericht ausgeführt oder ein abschlussbezogenes Programm gestartet hat. Es weist die jeweilige Aktivität einer verantwortlichen Person zu. Die Analyse nach Benutzer ist wichtig, um die Arbeitsverteilung zu verstehen, Schulungsbedarf zu erkennen und Prozessabweichungen zu untersuchen. Dashboards mit Aktivitäten je Benutzer können überlastete Teammitglieder oder Personen sichtbar machen, die nicht standardisierte Vorgehensweisen anwenden. Außerdem unterstützen sie das Leistungsmanagement und die Ressourcenplanung im Finanzteam. Warum das wichtig ist Ermöglicht die Analyse der Arbeitsverteilung und der Teamleistung sowie die Erkennung von Prozessabweichungen, die bestimmten Personen zuzuordnen sind. Woher beziehen Für die Belegerstellung in der Tabelle BKPF (USNAM) verfügbar. Bei Batch-Jobs ist das Feld in TBTCO (SDLUNAME) zu finden. Beispiele JSMITHRDOEFIN_ADMIN | |||
| Abstimmungsstatus ReconciliationStatus | Aktueller Status einer Kontenabstimmung, etwa „Offen“, „In Prüfung“ oder „Genehmigt“. | ||
| Beschreibung Dieses Attribut verfolgt den Status einer Kontenabstimmung während des Workflows. Es zeigt an, ob die Abstimmung begonnen, zur Prüfung eingereicht, freigegeben oder abgelehnt wurde. Dieses Attribut ist wichtig, um den Fortschritt von Abstimmungen in Echtzeit zu überwachen. Es zeigt, welche Abstimmungen feststecken und wie lange, und unterstützt KPIs wie „Zykluszeit der Kontenabstimmung“. Außerdem macht es den Freigabeprozess sichtbar und ist eine wichtige Grundlage für Dashboards zu Engpässen bei Abstimmungen und zur Arbeitsverteilung im Team. Warum das wichtig ist Macht den Abstimmungsworkflow sichtbar. So lassen sich Fortschritte verfolgen, Engpässe erkennen und Prüf- sowie Freigabezeiten messen. Woher beziehen Diese Informationen finden sich häufig in einem separaten Abstimmungstool (z. B. SAP Account Substantiation and Automation von BlackLine) oder in einem benutzerdefinierten Statusfeld. In BKPF/BSEG gibt es dafür normalerweise kein Standardfeld. Beispiele Nicht begonnenIn BearbeitungGenehmigtAbgelehnt | |||
| Abteilung Department | Fachabteilung oder Kostenstelle, die für die Aktivität oder den Geschäftsvorfall verantwortlich ist. | ||
| Beschreibung Dieses Attribut gibt die mit einem Geschäftsvorfall verbundene Fachabteilung an, etwa „Finanzen“, „Vertrieb“ oder „Logistik“. Die Zuordnung erfolgt häufig anhand der Stammdaten der Kostenstelle, die mit einer Buchung verknüpft ist, oder anhand der Stammdaten des Benutzers. Die Analyse nach Abteilung unterstützt das Dashboard „Arbeitsverteilung im Abschlussteam“. Sie zeigt, wie verschiedene Unternehmensbereiche zum Arbeitsaufkommen am Periodenende beitragen, insbesondere durch Geschäftsvorfälle, die später Korrekturen oder Abstimmungen erfordern können. So werden auch Bereiche außerhalb des Finanzteams sichtbar, die den Abschlussprozess beeinflussen. Warum das wichtig ist Unterstützt die Analyse der Arbeitsverteilung und der Prozesseinhaltung in verschiedenen Unternehmensbereichen. So wird sichtbar, wie die einzelnen Abteilungen die Effizienz des Finanzabschlusses beeinflussen. Woher beziehen Wird häufig aus der Kostenstelle (KOSTL) in BSEG oder aus den HR-Stammdaten des verantwortlichen Benutzers abgeleitet. Dafür müssen möglicherweise mehrere Tabellen verknüpft werden. Beispiele KonzernfinanzenKreditorenbuchhaltungFP&A | |||
| Geplantes Abschlussdatum TargetCompletionDate | Der geplante Termin für eine Aktivität oder den gesamten Periodenabschluss. | ||
| Beschreibung Das geplante Abschlussdatum gibt den Zeitplan vor, an dem der Periodenabschluss gemessen wird. Bis zu diesem Termin müssen bestimmte Meilensteine oder der endgültige Abschluss erreicht sein. Dieses Attribut ist für Leistungs- und Compliance-Analysen unverzichtbar. Es dient zur Berechnung der KPI „Pünktliche Periodenabschlüsse“ und als Grundlage für das Dashboard „Compliance beim Abschluss und überfällige Aufgaben“. Durch den Vergleich des tatsächlichen Ereigniszeitpunkts mit dem geplanten Datum kann das System feststellen, ob Aufgaben planmäßig verlaufen, verspätet sind oder voraussichtlich verspätet abgeschlossen werden. So lässt sich der Abschlussprozess frühzeitig steuern. Warum das wichtig ist Ermöglicht die Überwachung von Compliance und Leistung, indem es eine Grundlage dafür bietet, zu messen, ob Abschlussaktivitäten fristgerecht erledigt werden. So unterstützt es KPIs zur termingerechten Ausführung. Woher beziehen Dabei handelt es sich in der Regel um Stammdaten, die in einem separaten Kalender, einem Closing-Cockpit-Tool wie 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 | |||
| Geschäftsjahr GJAHR | Das Geschäftsjahr, in dem die Transaktion gebucht wurde. | ||
| Beschreibung Das Geschäftsjahr ist eine grundlegende Bezugsgröße für die Organisation von Finanzdaten. Es ist ein wichtiger Bestandteil der Case-ID für die Finanzperiode und liefert den Kontext für alle Transaktionen. Auch wenn das Geschäftsjahr häufig Teil der Case-ID ist, kann es für langfristige Trendanalysen sinnvoll sein, es als separates Attribut zu führen. So lassen sich Abschlussdurchlaufzeiten, Anpassungsvolumen und andere KPIs über mehrere Jahre hinweg vergleichen und Leistungsverbesserungen oder -verschlechterungen erkennen. Warum das wichtig ist Liefert den zeitlichen Kontext und ermöglicht Leistungsvergleiche des Abschlussprozesses zwischen Geschäftsjahren. Woher beziehen Verfügbar in der Belegkopftabelle BKPF (GJAHR). Beispiele 202320242022 | |||
| Ist automatisiert IsAutomated | Kennzeichnet, ob eine Aktivität von einem Benutzer oder einem automatisierten System ausgeführt wurde. | ||
| Beschreibung Dieses boolesche Attribut unterscheidet zwischen manuellen Aufgaben und solchen, die das System automatisch ausführt, etwa einem geplanten Batch-Job zur Fremdwährungsbewertung oder einem Bot, der wiederkehrende Buchungen vornimmt. Die Zuordnung erfolgt häufig anhand des mit der Transaktion verknüpften Benutzernamens, zum Beispiel „BATCHUSER“. Der Automatisierungsgrad ist entscheidend, um Effizienzpotenziale zu erkennen. Mit diesem Attribut lässt sich darstellen, welche Prozessschritte manuell ausgeführt werden und sich möglicherweise automatisieren lassen. Außerdem können Sie die manuelle Arbeitsbelastung genauer ermitteln, indem Sie systemgenerierte Aktivitäten ausschließen. Warum das wichtig ist Unterscheidet zwischen manuellen und systemgesteuerten Aktivitäten. Das ist entscheidend, um Automatisierungspotenziale zu erkennen und den manuellen Arbeitsaufwand genau zu messen. Woher beziehen Dieses Attribut wird abgeleitet. Die Logik basiert in der Regel auf dem Benutzernamen (USNAM): Eine Liste bekannter System- oder Batch-Benutzer-IDs kennzeichnet automatisierte Aufgaben. Beispiele truefalse | |||
| Ist Nacharbeit IsRework | Ein berechnetes Kennzeichen, das Aktivitäten markiert, bei denen Nacharbeit anfällt, etwa eine Stornierung oder eine abgelehnte Abstimmung. | ||
| Beschreibung Dieses boolesche Attribut kennzeichnet Ereignisse oder Ereignisfolgen, die auf ineffiziente Schleifen oder Korrekturen im Prozess hindeuten. So kann beispielsweise die Aktivität „Abstimmung geprüft“, auf die für dasselbe Konto eine weitere Aktivität „Korrekturbuchung gebucht“ folgt, als Nacharbeit markiert werden. Das Attribut ist wichtig, um Prozessverschwendung zu quantifizieren. Es unterstützt das Dashboard „Fälle mit Nacharbeit bei Abstimmungen“ und die KPI „Nacharbeitsquote bei Abstimmungen“. Wenn Teams Nacharbeit gezielt betrachten, können sie Ursachen untersuchen, die Auswirkungen auf die Durchlaufzeit messen und verfolgen, ob Verbesserungsmaßnahmen dazu beitragen, Fehler von Anfang an zu vermeiden. Warum das wichtig ist Quantifiziert Ineffizienzen im Prozess, indem Korrekturen und Wiederholungen gekennzeichnet werden. So lässt sich der Aufwand für vermeidbare Arbeit messen und reduzieren. Woher beziehen Dieses Attribut wird berechnet. Die Logik wird im Process-Mining-Tool anhand bestimmter Aktivitätsfolgen, etwa Schleifen, oder Attributen wie „ReversalReason ist nicht null“ definiert. Beispiele truefalse | |||
| Ist überfällig IsOverdue | Ein berechnetes Kennzeichen, das angibt, ob eine Aktivität nach dem geplanten Termin abgeschlossen wurde. | ||
| Beschreibung Dieses boolesche Attribut vergleicht den tatsächlichen Abschlusszeitpunkt einer Aktivität (EventTime) mit dem geplanten Termin (TargetCompletionDate). Liegt der Ereigniszeitpunkt nach dem geplanten Termin, wird das Kennzeichen auf „true“ gesetzt. Das Attribut unterstützt direkt das Dashboard „Compliance beim Abschluss und überfällige Aufgaben“ sowie die KPI „Pünktliche Periodenabschlüsse“. Es zeigt Terminabweichungen unmittelbar an. Verantwortliche können verspätete Aufgaben schnell erkennen, ihre Auswirkungen auf den Gesamtzeitplan nachvollziehen und Teams für die Einhaltung von Fristen zur Verantwortung ziehen. Warum das wichtig ist Zeigt Verstöße gegen Zeitpläne deutlich an. So lassen sich verspätete Aufgaben schnell erkennen und die Termintreue messen. Woher beziehen Dieses Attribut wird im Process-Mining-Tool berechnet, indem EventTime mit TargetCompletionDate verglichen wird. Beispiele truefalse | |||
| Partnergesellschaft VBUND | Kennung des verbundenen Konzernunternehmens, das an einem konzerninternen Geschäftsvorfall beteiligt ist. | ||
| Beschreibung Mit der Partnergesellschafts-ID wird der andere Buchungskreis eines konzerninternen Geschäftsvorfalls identifiziert. Sie ist für die Abstimmung von Konten zwischen verbundenen juristischen Personen erforderlich. Dieses Attribut unterstützt direkt das Dashboard „Ablauf der konzerninternen Abstimmung“ und die KPI „Zykluszeit der konzerninternen Abstimmung“. Wenn Sie nach Geschäftsvorfällen mit einer Partnergesellschaft filtern, können Sie gezielt die Effizienz und Termintreue der konzerninternen Abstimmung analysieren. Dieser Prozess ist beim Periodenabschluss häufig besonders problematisch. Warum das wichtig ist Kennzeichnet konzerninterne Geschäftsvorfälle und ermöglicht eine gezielte Analyse des oft komplexen und zeitaufwendigen Abstimmungsprozesses zwischen Konzerngesellschaften. Woher beziehen Befindet sich in der Einzelpostentabelle der Belege, BSEG (VBUND). Beispiele 1000US013000 | |||
| Stornogrund ReversalReason | Code für den Grund, aus dem ein Finanzbeleg storniert wurde. | ||
| Beschreibung Beim Stornieren eines Belegs in SAP kann ein Grundcode angegeben werden, etwa „Stornierung in aktueller Periode“ oder „Falsche Eingabe“. Dieses Attribut liefert wichtige Hinweise darauf, warum Nacharbeit erforderlich ist. Die Analyse der Stornogründe zeigt wiederkehrende Fehler, etwa falsche Dateneingaben oder fehlerhafte Datumsangaben. Auf dieser Grundlage können Sie vorbeugende Maßnahmen einführen, Schulungen verbessern oder Systemkontrollen anpassen, um Fehler und nachfolgende Stornierungen zu reduzieren und den Abschluss effizienter zu gestalten. Warum das wichtig ist Zeigt die Ursachen von Fehlern und Nacharbeit auf und hilft, Möglichkeiten zur Prozessverbesserung und Fehlervermeidung zu erkennen. Woher beziehen Befindet sich in der Belegkopftabelle BKPF (STGRD). Beispiele 010205 | |||
Aktivitäten für Record to Report, Periodenabschluss und Abstimmung
| Aktivität | Beschreibung | ||
|---|---|---|---|
| Finanzberichte erstellt | Kennzeichnet den Zeitpunkt, zu dem offizielle Finanzberichte wie die Gewinn- und Verlustrechnung und die Bilanz erstellt werden. Diese Aktivität wird üblicherweise erfasst, indem die Ausführung eines bestimmten Berichtsprogramms protokolliert wird. | ||
| Warum das wichtig ist Dieser wichtige Meilenstein markiert das Ende der Datenverarbeitung und den Beginn der abschließenden Prüfung und Freigabe. Die Zeit zwischen diesem Ereignis und der Freigabe ist eine wichtige KPI. Woher beziehen Wird aus Systemauditprotokollen wie STAD abgeleitet, die die Ausführung des Programms zur Erstellung von Finanzberichten erfassen, meist über die Transaktion F.01. Erfassung Aus Systemprotokollen (STAD), die die Ausführung der Transaktion F.01 zur Erstellung von Finanzberichten erfassen. Ereignistyp inferred | |||
| Fremdwährungsbewertung ausgeführt | Hier wird ein Programm ausgeführt, das offene Posten und Salden in Fremdwährungen mit den Wechselkursen zum Periodenende neu bewertet. Dies geschieht üblicherweise als Batch-Job im Rahmen des Periodenabschlusses. | ||
| Warum das wichtig ist Dieser Schritt ist wichtig für eine korrekte Finanzberichterstattung in multinationalen Unternehmen. Die Analyse von Zeitpunkt und Dauer zeigt Möglichkeiten zur Automatisierung und Leistungsoptimierung auf. Woher beziehen Wird aus den Ausführungsprotokollen des Fremdwährungsbewertungsprogramms ermittelt, etwa FAGL_FCV oder F.05. Details zu Batch-Jobs aus Tabellen wie TBTCO und TBTCP enthalten die Ausführungszeitpunkte. Erfassung Aus Batch-Job-Protokollen (Tabelle TBTCO) für das Programm FAGL_FC_VALUATION oder SAPF100. Ereignistyp explicit | |||
| Kontenabstimmung begonnen | Kennzeichnet den Beginn der Abstimmung einer Gruppe von Sachkonten für die betreffende Periode. In SAP ECC ist dies kein eigenständiges Ereignis. Der Beginn wird üblicherweise aus zugehörigen Aktivitäten abgeleitet, etwa aus der erstmaligen Ausführung eines wichtigen Berichts. | ||
| Warum das wichtig ist Diese Aktivität setzt einen wichtigen Meilenstein für die Messung der Dauer der gesamten Abstimmungsphase. Der Beginn der Abstimmung ist eine wesentliche Grundlage für die KPI „Zykluszeit der Kontenabstimmung“. Woher beziehen Dieses Ereignis wird nicht ausdrücklich protokolliert. Es muss aus anderen Datenquellen abgeleitet werden, etwa aus dem Systemauditprotokoll (Transaktion STAD), das die erstmalige Ausführung eines Saldenberichts wie FAGLB03 oder FS10N erfasst. Erfassung Aus der erstmaligen Ausführung relevanter Berichtstransaktionen (z. B. FAGLB03) in den Systemprotokollen ableiten. Ereignistyp inferred | |||
| Korrekturbuchung gebucht | Nach Abschluss der ursprünglichen Buchungen für die Periode wird eine Korrekturbuchung vorgenommen, um Kontensalden zu berichtigen. SAP erfasst dieses Ereignis als regulären Finanzbeleg. | ||
| Warum das wichtig ist Diese Aktivität ist wichtig für die Volumenanalyse von Korrekturbuchungen. Viele Korrekturen deuten auf Probleme mit der Genauigkeit vorgelagerter Prozesse hin und sind ein wichtiger Ansatzpunkt für Prozessverbesserungen. Woher beziehen Zu finden in den Tabellen BKPF und BSEG. Diese Buchungen lassen sich üblicherweise anhand eines bestimmten, für Korrekturen vorgesehenen Belegtyps (BKPF-BLART) oder anhand der Buchung in Sonderperioden wie 13 bis 16 identifizieren. Erfassung BKPF nach Belegen filtern, die in Sonderperioden gebucht wurden oder einen Korrekturbelegtyp aufweisen. Ereignistyp explicit | |||
| Periode für Buchungen geöffnet | Damit beginnt offiziell eine Finanzperiode. Buchungen im Hauptbuch sind nun möglich. Ein berechtigter Benutzer ändert dazu ausdrücklich die Konfiguration und öffnet eine bestimmte Periode für Buchungen in einem oder mehreren Buchungskreisen. | ||
| Warum das wichtig ist Diese Aktivität markiert den maßgeblichen Start des Falls im Periodenabschlussprozess. Die Zeit ab diesem Punkt zeigt den gesamten Lebenszyklus der Finanzperiode. Woher beziehen Änderungen an Buchungsperioden über die Transaktion OB52 werden protokolliert. Sie lassen sich aus den Änderungsbelegen zur zugrunde liegenden Konfigurationstabelle T001B auslesen, in der Regel über die Tabellen CDHDR und CDPOS. Erfassung Aus Änderungsbelegen (CDHDR/CDPOS) zur Tabelle T001B auslesen. Ereignistyp explicit | |||
| Periode für Buchungen geschlossen | Kennzeichnet den formellen Abschluss einer Buchungsperiode, durch den weitere operative Buchungen verhindert werden. So bleibt die Integrität der Finanzdaten für die abgeschlossene Periode gewahrt. Die Schließung erfolgt durch eine ausdrückliche Konfigurationsänderung. | ||
| Warum das wichtig ist Dies ist das maßgebliche Endereignis des Periodenabschlussprozesses. Es ist entscheidend für die korrekte Berechnung der gesamten Zykluszeit des Periodenabschlusses und die Messung der Termintreue. Woher beziehen Das Schließen von Perioden über die Transaktion OB52 wird protokolliert. Die Änderungen lassen sich anhand der Änderungsbelege (Tabellen CDHDR und CDPOS) zur Konfigurationstabelle T001B ermitteln. Erfassung Aus Änderungsbelegen (CDHDR/CDPOS) zur Tabelle T001B auslesen. Ereignistyp explicit | |||
| Abgrenzung oder Rückstellung gebucht | Hier wird eine Buchung für eine Abgrenzung, Rechnungsabgrenzung oder Rückstellung erfasst, die üblicherweise gegen Ende einer Periode gebucht wird. In SAP gibt es dafür keinen eigenen Ereignistyp. Das Ereignis wird anhand bestimmter Merkmale der Buchungsbelege abgeleitet. | ||
| Warum das wichtig ist Durch die gezielte Auswertung dieser Buchungen lässt sich der Teilprozess zur Verwaltung von Schätzungen analysieren. Viele Abgrenzungen oder häufige Anpassungen können auf Verbesserungsbedarf im Prozess hindeuten. Woher beziehen Wird aus den Finanzbelegtabellen BKPF und BSEG abgeleitet. Die Buchungen lassen sich anhand eines bestimmten Belegtyps (BKPF-BLART), eines eindeutigen Sachkontos (BSEG-HKONT) oder anhand von Schlüsselwörtern im Kopftext (BKPF-BKTXT) identifizieren. Erfassung Tabellen BKPF/BSEG nach Belegtyp, bestimmten Sachkonten oder Textfeldern filtern. Ereignistyp inferred | |||
| Abstimmung geprüft | Zeigt an, dass eine Abstimmung für ein bestimmtes Konto oder eine Kontengruppe geprüft und bestätigt wurde. In SAP ECC wird dieses Ereignis nicht ausdrücklich protokolliert. Die Prüfung erfolgt häufig über Offline-Kontrollen oder kundenspezifische Lösungen. | ||
| Warum das wichtig ist Die Erfassung des Prüfzeitpunkts ist wichtig, um Engpässe bei Kontrollen und Aufsicht im Abschlussprozess zu erkennen. So lassen sich auch Verzögerungen durch die Verfügbarkeit der Führungskräfte oder durch Nacharbeit aufzeigen. Woher beziehen Diese Information ist in den Standardtabellen von ECC nicht verfügbar. Dafür ist eine kundenspezifische Lösung erforderlich, etwa ein Statusfeld in einer kundenspezifischen Z-Tabelle, ein einfacher Workflow oder die Integration eines spezialisierten Abstimmungstools eines Drittanbieters. Erfassung Statusänderung aus einem kundenspezifischen Workflow oder einer Z-Tabelle erfassen, sofern vorhanden. Ereignistyp inferred | |||
| GR/IR-Ausgleichslauf ausgeführt | Hier wird das automatische Ausgleichsprogramm für das Konto Wareneingang/Rechnungseingang ausgeführt. Das Programm ordnet die zugehörigen Wareneingänge und Rechnungseingänge einander zu und gleicht die Posten aus. | ||
| Warum das wichtig ist Das GR/IR-Konto ist häufig die Ursache für Abstimmungsprobleme. Die Überwachung dieser Aktivität zeigt, ob der automatische Schritt korrekt ausgeführt wird, und macht sichtbar, wie viele Ausnahmen manuell nachbearbeitet werden müssen. Woher beziehen Die Ausführung wird in Batch-Job-Protokollen erfasst (Transaktion SM37). Üblicherweise wird das Programm SAPF124 über die Transaktion F.13 gestartet. Job-Protokolltabellen wie TBTCO enthalten die erforderlichen Zeitstempel. Erfassung Aus Batch-Job-Protokollen (Tabelle TBTCO) für das Ausgleichsprogramm SAPF124. Ereignistyp explicit | |||
| Konzerninterner Beleg ausgeglichen | Diese Aktivität kennzeichnet den Ausgleich eines offenen Postens zwischen zwei verschiedenen Buchungskreisen. Damit ist ein konzerninterner Geschäftsvorfall ausgeglichen oder abgestimmt. In SAP wird dies als explizite Finanzbuchung erfasst, üblicherweise in Form eines Ausgleichsbelegs. | ||
| Warum das wichtig ist Verzögerungen beim Ausgleich konzerninterner Posten sind ein häufiger Engpass im Abschlussprozess. Die Erfassung dieser Aktivität ist entscheidend, um die Zykluszeit des konzerninternen Abstimmungsprozesses zu messen und zu verbessern. Woher beziehen Wird anhand der Finanzbelege in BKPF und BSEG identifiziert. Ein Ausgleichsbeleg ist mit offenen Posten verknüpft und schließt diese aus. Das Ausgleichsdatum (BSEG-AUGDT) dient als Timestamp des Ereignisses. Konzerninterne Geschäftsvorfälle werden anhand der Partnergesellschaftsfelder erkannt. Erfassung Ausgleichsbelege in BKPF/BSEG identifizieren, die Posten mit Partnergesellschaften betreffen. Ereignistyp explicit | |||
| Saldenliste erstellt | Kennzeichnet die Ausführung eines Berichts zur Erstellung der Saldenliste. Damit wird geprüft, ob die Summe der Sollbuchungen der Summe der Habenbuchungen entspricht, bevor die offiziellen Finanzberichte erstellt werden. | ||
| Warum das wichtig ist Dies ist eine wichtige Qualitätskontrolle vor der abschließenden Berichterstattung. Wird der Bericht wiederholt ausgeführt, kann das darauf hindeuten, dass Probleme in den zugrunde liegenden Daten gefunden und behoben werden. Dadurch kann es zu Verzögerungen kommen. Woher beziehen Wird aus Systemauditprotokollen wie der Transaktion STAD abgeleitet. Diese können die Ausführung von Transaktionen zur Erstellung der Saldenliste erfassen, etwa S_ALR_87012277 oder F.01. Erfassung Aus Systemprotokollen (STAD), die die Ausführung von Berichtstransaktionen erfassen. Ereignistyp inferred | |||
| Stornobeleg gebucht | Diese Aktivität erfasst die Buchung eines Belegs, der eine zuvor gebuchte Buchung rückgängig macht, häufig zur Korrektur eines Fehlers. SAP verknüpft den Stornobeleg ausdrücklich mit dem ursprünglichen Beleg. | ||
| Warum das wichtig ist Viele Stornierungen können auf Probleme bei der Dateneingabe oder bei Prozesskontrollen hindeuten. Die Erfassung dieser Ereignisse hilft, die Quote korrekt ausgeführter Vorgänge beim ersten Versuch zu messen und Verbesserungsbedarf zu erkennen. Woher beziehen Stornobelege sind in der Tabelle BKPF zu finden. Sie werden häufig mit der Transaktion FB08 erstellt und enthalten im Feld BKPF-STBLG einen Verweis auf die Nummer des stornierten Belegs. Erfassung Belege identifizieren, bei denen BKPF-STBLG gefüllt ist oder die über Stornotransaktionen erstellt wurden. Ereignistyp explicit | |||
Anleitungen zur Datenextraktion
Schritte
- Auf SAP Query zugreifen: Melden Sie sich bei Ihrem SAP-ECC-System an. Öffnen Sie den Transaktionscode
SQVI(QuickViewer). 2. Neue Query erstellen: Geben Sie einen Namen für Ihre Query ein, zum BeispielZ_R2R_PERIOD_CLOSE, und klicken Sie auf „Erstellen“. Geben Sie im Dialogfenster einen aussagekräftigen Titel ein, etwa „Extraktion des Record-to-Report-Periodenabschlusses“. Wählen Sie unter „Datenquelle“ die Option „Tabellenverknüpfung“. 3. Tabellen verknüpfen: Fügen Sie die HaupttabelleBKPF(Belegkopf) hinzu. Ergänzen Sie anschließend die TabelleBSEG(Belegsegment). SAP schlägt die Verknüpfungsbedingungen (MANDT, BUKRS, BELNR, GJAHR) automatisch vor. Prüfen Sie diese und bestätigen Sie sie. Für Aktivitäten zum Öffnen und Abschließen einer Periode benötigen Sie eine separate Query, dieCDHDRundCDPOSverknüpft. 4. Ausgabefelder auswählen (Listenfelder): Öffnen Sie die Registerkarte „List fld. select.“. Wählen Sie in den verfügbaren Tabellen die für das Event Log erforderlichen Felder aus. Dazu gehörenBKPF-BUKRS,BKPF-BELNR,BKPF-GJAHR,BKPF-MONAT,BKPF-CPUDT,BKPF-CPUTM,BKPF-USNAM,BKPF-BLART,BSEG-HKONT,BSEG-DMBTRund weitere Felder nach Bedarf. 5. Eingabeparameter festlegen (Selektionsfelder): Öffnen Sie die Registerkarte „Selection fields“. Wählen Sie die Felder aus, mit denen Sie die Daten bei der Ausführung filtern möchten. Besonders wichtig sindBKPF-BUKRS(Buchungskreis) undBKPF-GJAHR(Geschäftsjahr). Sie können außerdemBKPF-MONAT(Buchungsperiode) undBKPF-BLART(Belegart) hinzufügen. 6. Varianten für einzelne Aktivitäten erstellen: Da SQVI keine unterschiedlichen Datenauswahlen kombinieren kann, etwa mit einer SQL-UNION-Abfrage, müssen Sie die Query mehrmals ausführen. Führen Sie sie für jede Aktivität aus, zum Beispiel „Abgrenzung oder Rückstellung gebucht“, und geben Sie auf dem Selektionsbildschirm die passenden Filterwerte ein, etwa eine Liste der relevanten Belegarten für Abgrenzungen. Speichern Sie diese Selektionskriterien als Variante. Wiederholen Sie den Vorgang für jede extrahierbare Aktivität. 7. Daten ausführen und extrahieren: Führen Sie die Query für jede erstellte Variante aus. Dabei wird die Query mit den jeweiligen Filtern ausgeführt. 8. Ergebnisse exportieren: Exportieren Sie die Daten auf dem Ergebnisbildschirm in eine lokale Datei. Das gängigste Format ist „Tabellenkalkulation“. Wiederholen Sie den Export für jede Variante. 9. Daten zusammenführen und umwandeln: Öffnen Sie die exportierten Dateien in einem Tabellenkalkulationsprogramm oder verwenden Sie ein Skript. Führen Sie die Daten aus allen Dateien manuell in einer gemeinsamen Datei zusammen. 10. Konstante und berechnete Spalten ergänzen: Fügen Sie der zusammengeführten Datei die Spalten hinzu, die nicht direkt aus SAP-Tabellen extrahiert werden. Dazu gehörenActivityName(manuell anhand der Variante festlegen, aus der die Daten stammen),FinancialPeriod(durch Verknüpfen von Geschäftsjahr und Periode),EventTime(durch Zusammenführen von Datums- und Zeitfeldern),SourceSystemundLastDataUpdate. 11. Für den Upload formatieren: Speichern Sie die fertige Datei im CSV- oder Excel-Format und verwenden Sie die für Ihr Process-Mining-Tool erforderlichen Spaltenüberschriften. Prüfen Sie Datentypen und Formatierung, bevor Sie die Datei hochladen.
Konfiguration
- Datenquelle: Tabellenverknüpfung in SAP Query (SQVI). Wichtige Tabellen sind BKPF, BSEG, CDHDR und CDPOS. * Datumsbereich: Für die Erkennung von Mustern empfiehlt es sich, Daten aus mindestens 3 bis 6 vollständigen Finanzperioden zu extrahieren. Filtern Sie nach
BKPF-GJAHR(Geschäftsjahr) undBKPF-MONAT(Periode). * Buchungskreisfilter: Filtern Sie immer nachBKPF-BUKRS(Buchungskreis), um das Datenvolumen zu begrenzen und die Analyse auf bestimmte Rechtsträger auszurichten. Es empfiehlt sich nicht, alle Buchungskreise gleichzeitig zu extrahieren. * Belegartenfilter: Verwenden Sie Filter fürBKPF-BLART(Belegart), um bestimmte Aktivitäten wie Abgrenzungen, Anpassungen oder Stornierungen zu isolieren. Ermitteln Sie die für Ihr Unternehmen relevanten Belegarten. * Voraussetzungen: Der Benutzer, der die Extraktion ausführt, benötigt die Berechtigung für die TransaktionSQVIsowie Anzeigezugriff auf die relevanten Finanzbuchhaltungstabellen, zum Beispiel über das Berechtigungsobjekt S_TABU_DIS. * Leistungsaspekte: Die Verknüpfung von BKPF und BSEG kann viele Ressourcen beanspruchen. Führen Sie die Extraktion außerhalb der Spitzenzeiten aus. Vermeiden Sie sehr große Datumsbereiche und lassen Sie den Buchungskreisfilter nicht offen, da dies zu Speicherproblemen oder Zeitüberschreitungen führen kann.
a Beispielabfrage sql
/*
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
- Umfang und Design des Programms festlegen: Definieren Sie die Logik zur Identifizierung der 12 erforderlichen Aktivitäten. Stimmen Sie sich mit den Prozessverantwortlichen und SAP-Funktionsanalysten ab, um die Belegarten, Sachkonten und Programmnamen zu bestätigen, die in Ihrer SAP-ECC-Umgebung für Aktivitäten zum Periodenabschluss verwendet werden.
- ABAP-Programm erstellen: Erstellen Sie mit der Transaktion
SE38(ABAP Editor) ein neues ausführbares Programm, zum BeispielZ_PM_R2R_EXTRACTION. Geben Sie einen aussagekräftigen Titel ein und wählen Sie als Programmtyp „Ausführbares Programm“. - Selektionsbildschirm definieren: Legen Sie im Programm mit
PARAMETERSundSELECT-OPTIONSeinen Selektionsbildschirm an. Darüber können Benutzer den Umfang der Extraktion festlegen, einschließlich Buchungskreis (BUKRS), Geschäftsjahr (GJAHR) und Buchungsperiode (MONAT). So lässt sich das Datenvolumen gezielt steuern. - Datenstrukturen deklarieren: Definieren Sie eine interne Tabellenstruktur für die Daten des fertigen Event Logs. Sie muss alle erforderlichen und empfohlenen Attribute enthalten:
FinancialPeriod,ActivityName,EventTime,SourceSystem,LastDataUpdate,BUKRS,BELNR,USNAM,HKONT,BLART,DMBTRundJournalEntryType. - Datenextraktionslogik implementieren: Schreiben Sie die ABAP-Kernlogik, um Daten für jede der 12 Aktivitäten auszuwählen. Fragen Sie für jede Aktivität die relevanten SAP-Tabellen ab, zum Beispiel BKPF, BSEG, TBTCO und CDHDR, und füllen Sie eine temporäre interne Tabelle. Verwenden Sie die im zugehörigen ABAP-Query-Abschnitt angegebene Logik als Vorlage.
- Abgeleitete Aktivitäten identifizieren: Implementieren Sie für Aktivitäten, die SAP standardmäßig nicht explizit protokolliert, etwa „Kontenabstimmung gestartet“ oder „Abstimmung geprüft“, die vereinbarte Ableitungslogik. Dazu kann es erforderlich sein, den ersten Lauf eines bestimmten Berichts zu prüfen oder benutzerdefinierte Z-Tabellen abzufragen, sofern vorhanden.
- Ereignisdaten konsolidieren: Fügen Sie nach der Extraktion aller einzelnen Aktivitäten die Datensätze aus den temporären Tabellen in die endgültige konsolidierte interne Tabelle ein. Stellen Sie sicher, dass das Feld
EventTimekorrekt aus dem jeweiligen Quellfeld befüllt wird, etwa aus dem Buchungsdatum und der Buchungszeit des Belegs oder dem Startdatum und der Startzeit des Jobs. - Daten standardisieren und formatieren: Vereinheitlichen Sie vor der Ausgabe die wichtigsten Felder. Verknüpfen Sie Geschäftsjahr und Periode zur Kennung
FinancialPeriod. Legen Sie feste Werte fürSourceSystemundLastDataUpdatefest. Sorgen Sie für ein einheitliches Timestamp-Format. - Ausgabefunktion entwickeln: Ergänzen Sie das Programm um eine Funktion zum Export der endgültigen internen Tabelle. Üblicherweise werden die Daten mit
OPEN DATASETals CSV- oder tabulatorgetrennte Datei auf dem SAP Application Server gespeichert. Alternativ können Benutzer sie mit dem FunktionsbausteinGUI_DOWNLOADdirekt auf ihren lokalen Rechner herunterladen. - Testen und validieren: Testen Sie das Programm gründlich mit einem repräsentativen Datensatz, der mehrere Buchungskreise und Perioden abdeckt. Prüfen Sie anhand der Validierungsschritte die Genauigkeit und Vollständigkeit der Daten. Passen Sie die Selektionslogik anhand der Rückmeldungen von Funktionsfachleuten an.
- Ausführung planen (optional): Nach erfolgreicher Validierung können Sie das Programm über die Transaktion
SM36als Hintergrundjob einplanen. So lässt sich das Event Log regelmäßig und ohne manuelle Eingriffe automatisiert extrahieren.
Konfiguration
- Selektionskriterien: Das Programm sollte über einen Selektionsbildschirm zum Filtern der Daten verfügen. Wichtige Filter sind:
Buchungskreis (BUKRS): Erforderlich, um den Umfang auf die relevanten Rechtsträger zu begrenzen.Geschäftsjahr (GJAHR): Erforderlich, um das maßgebliche Jahr für die Extraktion festzulegen.Buchungsperiode (MONAT): Erforderlich, um die gewünschten Finanzperioden auszuwählen.
- Aktivitätsspezifische Konfiguration: Viele Auswahlkriterien hängen von Ihrer SAP-Konfiguration ab. Sie sollten im Programm als Parameter oder Konstanten konfigurierbar sein:
Belegarten für Abgrenzungen und Rückstellungen: Liste der Belegarten (BLART), anhand derer Abgrenzungs- und Rückstellungsbuchungen erkannt werden.Belegarten für Korrekturbuchungen: Liste der Belegarten, anhand derer Korrekturbuchungen erkannt werden.Hintergrundjob- und Programmnamen: Technische Namen der Programme für die Fremdwährungsbewertung (z. B.FAGL_FCV), den WE/RE-Ausgleich (z. B.SAPF124), die Saldenlisten und die Erstellung von Finanzberichten (z. B.RFBILA00).
- Datumsbereich: Die primäre Auswahl erfolgt zwar nach Geschäftsjahr und Periode, doch die zugrunde liegende Logik sollte Datum und Uhrzeit der Ereignisse vollständig berücksichtigen. Für eine erste Analyse empfiehlt es sich, Daten aus den letzten 3 bis 6 abgeschlossenen Finanzperioden zu extrahieren.
- Leistung: In großen SAP-Umgebungen ist die Leistung des Programms entscheidend. Stellen Sie sicher, dass Datenbankabfragen Indexfelder verwenden, insbesondere bei Tabellen wie
BKPFundBSEG. Vermeiden Sie die Auswahl aller Felder (SELECT *) und verarbeiten Sie die Daten bei Bedarf in handhabbaren Paketen. - Berechtigungen: Der Benutzer oder das Servicekonto, der beziehungsweise das dieses Programm ausführt, benötigt Zugriff auf alle abgefragten Tabellen (
BKPF,BSEG,TBTCO,TBTCP,CDHDR,CDPOS) sowie die Berechtigung, Transaktionen wieSE38(für die Entwicklung) undSM37/SM36(für Planung und Überwachung) auszuführen.
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 klären: Beschaffen Sie schreibgeschützte Zugangsdaten für die zugrunde liegende SAP-ECC-Datenbank. Ermitteln Sie das richtige Datenbankschema. Es heißt üblicherweise
SAPSR3oder ähnlich und wird von Ihrer Datenbankadministration angegeben. - Systemkonfiguration ermitteln: Klären Sie mit Ihrem SAP-Finanzteam, welche
Buchungskreise(BUKRS) und Finanzperioden Sie analysieren möchten. Ermitteln Sie insbesondere die in Ihrem System verwendetenBelegarten(BLART) für die Transaktionen „Abgrenzung oder Rückstellung gebucht“, „Korrekturbuchung gebucht“ und „Konzerninterne Transaktion“. - Programm- und Jobnamen prüfen: Bestätigen Sie die Programmnamen wichtiger Batch-Jobs, etwa für die Fremdwährungsbewertung (z. B.
FAGL_FCV), den WE/RE-Ausgleich (z. B.SAPF124), Saldenlisten (z. B.RFBILA00) und die Erstellung von Finanzberichten (z. B.RFBILA00). Diese finden Sie in den geplanten Jobs der TransaktionSM37. - SQL-Abfrage anpassen: Kopieren Sie die bereitgestellte SQL-Abfrage in einen Texteditor oder SQL-Client. Ersetzen Sie die Platzhalter
{{start_date}},{{end_date}}und{{company_codes}}durch die tatsächlichen Werte für Ihre Analyse. Passen Sie die Listen der Belegarten und Programmnamen anhand der zuvor ermittelten Informationen an. - Mit der Datenbank verbinden: Stellen Sie mit einem gängigen SQL-Client, etwa DBeaver, SQL Server Management Studio oder Oracle SQL Developer, und den bereitgestellten Zugangsdaten eine Verbindung zur SAP-Datenbank her.
- Abfrage ausführen: Führen Sie die angepasste SQL-Abfrage für die Datenbank aus. Je nach Datumsbereich und Größe Ihrer Finanzdatenbanktabellen kann dies längere Zeit dauern.
- Ergebnisse zunächst prüfen: Überprüfen Sie nach Abschluss der Abfrage die Ausgabe kurz. Achten Sie auf eine plausible Zeilenanzahl, vollständige Spalten und verschiedene
ActivityName-Werte in den Ergebnissen. - Daten exportieren: Exportieren Sie das vollständige Ergebnis aus Ihrem SQL-Client in eine CSV-Datei. Speichern Sie die Datei mit UTF-8-Kodierung, um Zeichenfehler zu vermeiden.
- Upload vorbereiten: Prüfen Sie vor dem Upload in ein Process-Mining-Tool, ob die Spaltenüberschriften in der CSV-Datei genau den erforderlichen Attributnamen entsprechen (
FinancialPeriod,ActivityName,EventTimeusw.). Achten Sie außerdem auf ein einheitliches Timestamp-Format in der SpalteEventTime, zum BeispielYYYY-MM-DD HH:MI:SS.
Konfiguration
- Datenbankzugangsdaten: Erforderlich ist ein schreibgeschützter Datenbankbenutzer mit Zugriff auf die zentralen SAP-Finanz- und Systemtabellen, darunter
BKPF,BSEG,TBTCO,CDHDRundCDPOS. - Datumsbereich: Wir empfehlen, Daten aus mindestens 3 bis 6 vollständigen Finanzperioden zu extrahieren, um aussagekräftige Prozessabweichungen zu erfassen. Beachten Sie, dass größere Datumsbereiche die Abfrage deutlich verlängern.
- Buchungskreise (
BUKRS): Filtern Sie immer nach einer bestimmten Liste von Buchungskreisen. Eine Abfrage für alle Buchungskreise in einem großen System ist nicht praktikabel und führt wahrscheinlich zu Leistungsproblemen. - Belegarten (
BLART): Die Zuordnung von Buchungsbelegarten, etwa für Abgrenzungen und Anpassungen, hängt vollständig von der SAP-Konfiguration Ihres Unternehmens ab. Damit Aktivitäten korrekt klassifiziert werden, müssen Sie die passenden Belegartcodes in denWHERE-Klauseln der Abfrage angeben. - Programm- und Jobnamen: Die Abfrage verwendet gängige Programmnamen für automatisierte Abschlussaktivitäten. In Ihrem System kommen möglicherweise benutzerdefinierte Wrapper-Programme oder andere Jobnamen zum Einsatz. Prüfen Sie diese in der Transaktion
SM37und passen Sie die Abfrage entsprechend an. - Leistungsaspekte: Die Abfrage greift auf sehr große Tabellen zu, insbesondere
BSEGundCDPOS. Führen Sie die Extraktion möglichst außerhalb der Geschäftszeiten aus, um die Systemleistung nicht zu beeinträchtigen. Enge Filter für Datum und Buchungskreis sind die wirksamste Möglichkeit, die Ausführungszeit zu begrenzen.
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'
; Möchten Sie loslegen?
Verwenden Sie dieses Daten-Template als Ausgangspunkt für Ihr Process-Mining-Projekt und gewinnen Sie wertvolle Erkenntnisse zu Ihren Finanzabschlussprozessen. Beginnen Sie noch heute damit, Ihren Record-to-Report-Prozess zu optimieren.
Optimieren Sie den Record-to-Report-Abschluss und verkürzen Sie jetzt die Durchlaufzeit
Beseitigen Sie Engpässe und verkürzen Sie den Abschlusszyklus Ihres Record-to-Report-Prozesses um 30 %.
Keine Kreditkarte erforderlich. Starten Sie Ihre kostenlose 14-tägige Testphase.