Auf dieser Seite

SAP P2P-Datenanforderungen für Process Mining extrahieren

Datenanforderungenextraktion aus SAP für Purchase-to-Pay (P2P) Process Mining

Um den Purchase-to-Pay-Prozess mit Process Mining zu analysierenn, müssen Sie ein hochwertiges Event Log aus SAP extrahieren. Nachfolgend finden Sie die typischen Schritte und Strukturen.

1. P2P Prozessumfang definieren

Bevor Sie Datenanforderungen extrahieren, definieren Sie die Prozessschritte, die im Event Log enthalten sein sollen. Ein typischer P2P-Prozess umfasst:

  1. Purchase Requisition
  2. Purchase Order
  3. Goods Receipt
  4. Invoice Receipt
  5. Payment

2. Wichtige SAP-Tabellen identifizieren

Datenanforderungen werden in der Regel aus folgenden SAP-Tabellen extrahiert:

ProzessschrittSAP-TabelleBeschreibung
Purchase RequisitionEBANPurchase Requisition Header
Purchase OrderEKKO / EKPOPO Header (EKKO) & Items (EKPO)
Goods ReceiptMKPF / MSEGMaterialbeleg Kopf & Positionen
Invoice ReceiptBKPF / BSEGBuchungsbeleg Kopf & Positionen
PaymentPAYR / REGUHZahlungstabellen

3. Benötigte Felder für das Event Log bestimmen

Für Process Mining sind üblicherweise folgende Felder erforderlich. Sie können je nach Bedarf angepasst werden.

Case-IDPO-Nummer / BelegnummerGruppiert alle Ereignisse eines Prozesses
ActivityAbgeleitet (z. B. „PO Created“)Name des Prozessschritts
ZeitstempelAEDAT, BUDAT, CPUDTWann der Schritt stattfand
Benutzer/AgentERNAM, USNAM, usw.Wer hat die Aktion ausgeführt
AmountWRBTR, DMBTRWert zum Schritt
Vendor / MaterialLIFNR, MATNRPartner- oder MaterialHinweis

4. RohDatenanforderungen extrahieren

SAP ECC (ABAP Stack)

  • Mit ABAP-Reports können Sie Datenanforderungen direkt aus den relevanten Tabellen extrahieren.
  • Individuelle ABAP-Programme können geverwendet werden, um Datenanforderungen gezielt zu verbinden, zu filtern und als EventDatenanforderungen zu exportieren.
  • Sie können das Ergebnis z.B. als CSV- oder Flatfile-Format exportieren.

SAP S/4HANA (HANA Stack)

  • CDS Views (Core Datenanforderungen Dienste) bieten logische Modelle zur Datenanforderungenauswahl.
  • SAP Fiori Apps oder HANA Studio können für SQL-Skripte geverwendet werden.
  • Für Automatisierung ODATA API, SAP Datenanforderungensphere oder SAP Datenanforderungen Intelligence verwenden.

5. Event Log aufbauen

Minimale Spalten für Process Mining

SpalteBeispielBeispiel
Case-IDEindeutige ProzessinstanzPurchase Order ID
ActivityName des Prozessschrittes”Create PO”, “Post Invoice”
ZeitstempelDatum und Uhrzeit des Ereignisse2025-04-17 10:22:12

Optionale Spalten zur Anreicherung

SpaltennameBeschreibung
BenutzerNutzer, der den Antrag bearbeitet.ie Aktion ausgeführt hat
AmountBetrag im Zusammenhang mit dem Event
Vendor / MaterialBeteiligter Lieferant oder Material
Company CodeBuchungskreis des Ereignisse
CurrencyWährung der Transaktion
Document TypDokumententyp (z.B. PO, GR, Invoice)
Other FieldsBetrag, Vendor, Currency, usw.

tip

Verwenden Sie ein Unpivot, um aus mehreren Datumsfeldern bei Bedarf eine Zeile pro Aktivität zu erstellen.

6. Datenanforderungen modernisieren und bereinigen

Nachdem Sie die RohDatenanforderungen extrahiert haben, sollten Sie diese für Process Mining aufbereiten. Typische Schritte:

  • Zeitstempels normalisieren (z.B. Umrechnung in UTC)
  • Aktivitäten labeln (z.B. „PO Created“ statt MIGO-Code)
  • Eine Zeile pro Event sicherstellen (Long Format)
  • Bereinigung von NULL-Werten und Duplikaten
  • Konsistente Case-IDs (je Instanz eindeutig)

Empfohlene Tools:

  • SQL-Skripte zur Datenanforderungenbereinigung/-transformation
  • Excel, Power Query
  • Python & Pandas
  • KNIME, Alteryx oder ETL-Tools
Datenanforderungen cleaning and Preparation

Datenanforderungenbereinigung und -vorbereitung ist ein wichtiger Schritt im Datenanforderungen Analysen-Prozess. Sie sichert Datenanforderungenqualität und Verlässlichkeit durch Erkennung und Korrektur von Fehlern und Inkonsistenzen.

ABAP-Beispielcode für die Extraktion von Event-Logs

" Beispiel-ABAP-Code für die Extraktion von Purchase-to-Pay Event-Logs
REPORT z_p2p_Event_log_export.

TABLES: ekko, ekpo, mseg, mkpf, rbkp, rseg.

DATA: BEGIN OF Event_log OCCURS 0,
        case_id        TYPE ekko-ebeln,
        Aktivität       TYPE char40,
        Zeitstempel      TYPE sy-datum,
        username       TYPE sy-uname,
        amount         TYPE ekpo-netwr,
      END OF Event_log.

START-OF-SELECTION.

  " 1. Extrahiere Creation von Purchase Orders
  SELECT ebeln aedat ernam netwr
    INTO (Event_log-case_id, Event_log-Zeitstempel, Event_log-username, Event_log-amount)
    FROM ekko
    WHERE aedat >= '20240101'.
    Event_log-Aktivität = 'Create Purchase Order'.
    APPEND Event_log.
  ENDSELECT.

  " 2. Extrahiere Goods Receipt (MIGO)
  SELECT mblnr budat usnam ebeln
    INTO (Event_log-case_id, Event_log-Zeitstempel, Event_log-username, Event_log-amount)
    FROM mseg
    INNER JOIN mkpf ON mseg~mblnr = mkpf~mblnr
    WHERE bwart = '101' AND budat >= '20240101'. " GR document type
    Event_log-Aktivität = 'Goods Receipt'.
    APPEND Event_log.
  ENDSELECT.

  " 3. Extrahiere Invoice Posting (MIRO)
  SELECT ebeln bldat usnam wrbtr
    INTO (Event_log-case_id, Event_log-Zeitstempel, Event_log-username, Event_log-amount)
    FROM rseg
    INNER JOIN rbkp ON rseg~belnr = rbkp~belnr
    WHERE bldat >= '20240101'.
    Event_log-Aktivität = 'Invoice Posted'.
    APPEND Event_log.
  ENDSELECT.

  " 4. Exportiere Ergebnisdatei (optional, falls Berechtigungen vorhanden)
  DATA: filename TYPE string VALUE '/usr/sap/tmp/p2p_event_log.csv',
        file TYPE string,
        rc TYPE i.

  OPEN DATASET filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
  LOOP AT Event_log.
    CONCATENATE Event_log-case_id
                Event_log-Aktivität
                Event_log-Zeitstempel
                Event_log-username
                Event_log-amount
                INTO file SEPARATED BY ';'.
    TRANSFER file TO filename.
  ENDLOOP.
  CLOSE DATASET filename.

  WRITE: / 'Event-Log-Export erfolgreich abgeschlossen.'.

Hinweise zum ABAP-Code

AbschnittBeschreibung
ekkoKopftabelle für PO-Erstellung
mseg + mkpfFür Buchungen von Goods Receipt (GR)
rseg + rbkpFür Buchungen von Invoice Receipt (IR)
OPEN DATASETSchreibt das Event Log als CSV-File auf den Server (Berechtigungen prüfen)
bwart = ‘101’Filter für GR-Bewegungsarten

Beispiel-SQL-Queries für die Datenanforderungenextraktion

Mit SQL-Abfragen können Sie relevante Datenanforderungen direkt aus den SAP-Tabellen extrahieren. Hier einige Beispiel-Queries für die einzelnen Schritte des P2P-Prozesses. Bitte passen Sie die Queries nach Ihren Anforderungen und SAP-Versionen an.

Ein einfaches Beispiel:

-- Purchase Order creation
SELECT
  EKKO.EBELN AS CaseID,
  'PO Created' AS Activity,
  EKKO.AEDAT AS Zeitstempel,
  EKKO.ERNAM AS Benutzer,
  EKKO.LIFNR AS Vendor,
  EKKO.WAERS AS Currency,
  EKKO.BUKRS AS CompanyCode
FROM EKKO
WHERE EKKO.BSART = 'NB'; -- Standard PO type
-- Goods Receipt
SELECT
  MSEG.EBELN AS CaseID,
  'Goods Receipt' AS Activity,
  MKPF.BUDAT AS Zeitstempel,
  MKPF.USNAM AS Benutzer,
  MSEG.MATNR AS Material,
  MSEG.MENGE AS Quantity
FROM MSEG
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR
WHERE MSEG.BEWTP = 'R'; -- Receipt type
-- Invoice Receipt
SELECT
  BSEG.BELNR AS CaseID,
  'Invoice Posted' AS Activity,
  BKPF.BUDAT AS Zeitstempel,
  BKPF.USNAM AS Benutzer,
  BSEG.WRBTR AS Amount
FROM BSEG
JOIN BKPF ON BSEG.BELNR = BKPF.BELNR
WHERE BKPF.BLART = 'RE'; -- Invoice type

Sie können diese Logs zu einem Event Log für das Process Mining zusammenführen:

-- Kombinieren aller Event-Logs (vereinfachtes UNION)
SELECT * FROM (
  SELECT 'PO Created' AS Activity, EBELN AS CaseID, AEDAT AS Zeitstempel FROM EKKO
  UNION
  SELECT 'Goods Receipt', EBELN, BUDAT FROM MSEG JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR
  UNION
  SELECT 'Invoice Posted', BELNR, BUDAT FROM BKPF
) AS EventLog
ORDER BY CaseID, Zeitstempel;

7. Export als Event Log

Sobald Sie eine einheitliche Struktur mit mindestens: • Case-ID • Activity • Zeitstempel

Pro-Tipp

• Zeitstempels in dieselbe Zeitzone normalisieren. • Stellen Sie sicher, dass Ihre Case-IDs in allen Ereignisse konsistent sind. • Datenanforderungen bereinigen und Test- oder stornierte Dokumente entfernen. • Filter wie Buchungskreis, Dokumenttyp oder Geschäftsjahr verwenden, um die Auswahl einzuschränken.