Process Mining Data in ProcessMind
Ontdek hoe je data voorbereidt, uploadt en instelt voor process mining in ProcessMind. Tips over formaten, uitdagingen en best practices.
Voor analyse van het Purchase-to-Pay-proces met Process Mining heb je een kwalitatieve event log uit SAP nodig. Hieronder vind je de gebruikelijke stappen en datastructuren.
Voordat je data uit SAP haalt, bepaal welke stappen je wilt meenemen. Een standaard P2P-proces bestaat uit:
Je haalt meestal data uit de volgende tabellen:
| Process-stap | SAP-tabel | Omschrijving |
|---|---|---|
| Purchase Requisition | EBAN | Header van Purchase Requisition |
| Purchase Order | EKKO / EKPO | PO Header (EKKO) & Items (EKPO) |
| Goods Receipt | MKPF / MSEG | Header en items van materiaaldocument |
| Invoice Receipt | BKPF / BSEG | Header en items van boekhouddocument |
| Payment | PAYR / REGUH | Betalingsdocumenttabellen |
De volgende velden zijn meestal vereist voor Process Mining. Pas aan waar nodig voor jouw situatie.
| Case-ID | PO Number / documentnr. | Alle gebeurtenissen binnen één procesinstantie |
|---|---|---|
| Activiteit | Afgeleid (bijv. “PO Created”) | Naam van processtap |
| Timestamp | AEDAT, BUDAT, CPUDT | Wanneer de stap is uitgevoerd |
| Gebruiker/Agent | ERNAM, USNAM, etc. | Wie de actie heeft uitgevoerd |
| Bedrag | WRBTR, DMBTR | Bedrag gekoppeld aan de stap |
| Vendor / Material | LIFNR, MATNR | Leverancier of materiaal Informatie |
SAP ECC (ABAP stack)
SAP S/4HANA (HANA stack)
Minimaal benodigde kolommen voor Process Mining
| Kolom | Voorbeeld | Voorbeeld |
|---|---|---|
| Case-ID | Uniek ID voor de procesinstantie | Purchase Order ID |
| Activiteit | Naam van de processtap | ”Create PO”, “Post Invoice” |
| Timestamp | Datum en tijd van het gebeurtenis | 2025-04-17 10:22:12 |
Optioneel om de event log te verrijken
| Kolomnaam | Omschrijving |
|---|---|
| Gebruiker | Medewerker die de actie heeft uitgevoerd |
| Bedrag | Financiële waarde aan het gebeurtenis |
| Vendor / Material | Leverancier of materiaal betrokken bij het gebeurtenis |
| Company Code | Bedrijfscode gekoppeld aan het gebeurtenis |
| Valuta | Valuta van de transactie |
| Document Type | Documenttype (bijv. PO, GR, Invoice) |
| Overige velden | Bedrag, Vendor, Valuta, etc |
Tip
Unpivot je data om meerdere datumvelden om te zetten naar één regel per activiteit indien nodig.
Zodra je de ruwe data hebt, moet je deze vaak nog geschikt maken voor Process Mining. Denk aan:
Tools die je kunt gebruiken:
Data cleaning en voorbereiding is een belangrijke stap in data-analyse. Hierbij worden fouten en inconsistenties in de data opgespoord en hersteld voor betere kwaliteit en betrouwbaarheid.
" Example ABAP code to extract Purchase-to-Pay event log data
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,
activity TYPE char40,
timestamp TYPE sy-datum,
username TYPE sy-uname,
amount TYPE ekpo-netwr,
END OF event_log.
START-OF-SELECTION.
" 1. Extract Purchase Order creation
SELECT ebeln aedat ernam netwr
INTO (event_log-case_id, event_log-timestamp, event_log-username, event_log-amount)
FROM ekko
WHERE aedat >= '20240101'.
event_log-activity = 'Create Purchase Order'.
APPEND event_log.
ENDSELECT.
" 2. Extract Goods Receipt (MIGO)
SELECT mblnr budat usnam ebeln
INTO (event_log-case_id, event_log-timestamp, 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-activity = 'Goods Receipt'.
APPEND event_log.
ENDSELECT.
" 3. Extract Invoice Posting (MIRO)
SELECT ebeln bldat usnam wrbtr
INTO (event_log-case_id, event_log-timestamp, event_log-username, event_log-amount)
FROM rseg
INNER JOIN rbkp ON rseg~belnr = rbkp~belnr
WHERE bldat >= '20240101'.
event_log-activity = 'Invoice Posted'.
APPEND event_log.
ENDSELECT.
" 4. Export results to file (optional, if permissions allow)
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-activity
event_log-timestamp
event_log-username
event_log-amount
INTO file SEPARATED BY ';'.
TRANSFER file TO filename.
ENDLOOP.
CLOSE DATASET filename.
WRITE: / 'Event log exported successfully.'. | Sectie | Doel |
|---|---|
| ekko | Header tabel voor PO creatie |
| mseg + mkpf | Voor Goods Receipt (GR) entries |
| rseg + rbkp | Voor Invoice Receipt (IR) entries |
| OPEN DATASET | Schrijft de event log als CSV-bestand op de server (controleer rechten) |
| bwart = ‘101’ | Filter op GR movement types |
Met SQL-queries kun je gegevens uit de relevante tabellen halen. Hieronder enkele voorbeelden voor iedere P2P-stap. Pas de queries aan op jouw SAP-omgeving en wensen.
Een eenvoudig voorbeeld:
-- Purchase Order creation
SELECT
EKKO.EBELN AS CaseID,
'PO Created' AS Activity,
EKKO.AEDAT AS Timestamp,
EKKO.ERNAM AS User,
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 Timestamp,
MKPF.USNAM AS User,
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 Timestamp,
BKPF.USNAM AS User,
BSEG.WRBTR AS Amount
FROM BSEG
JOIN BKPF ON BSEG.BELNR = BKPF.BELNR
WHERE BKPF.BLART = 'RE'; -- Invoice type Deze logs kun je samenvoegen tot één event log voor process mining:
-- Combine event logs (simplified UNION)
SELECT * FROM (
SELECT 'PO Created' AS Activity, EBELN AS CaseID, AEDAT AS Timestamp 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, Timestamp; Zodra je een uniforme structuur hebt met minimaal: • Case-ID • Activiteit • Timestamp
Slimme Tip
• Normaaliseer tijdstempels naar dezelfde tijdzone. • Zorg dat Case-IDs overal consistent zijn. • Maak de data schoon door test- of geannuleerde documenten te verwijderen. • Gebruik filters zoals company code, document type of fiscaal jaar om de scope te beperken.
We gebruiken cookies om je ervaring te verbeteren, gepersonaliseerde inhoud te tonen en het verkeer op onze site te analyseren. Door op "Alles accepteren" te klikken, ga je akkoord met ons gebruik van cookies.