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.
" Voorbeeld ABAP-code om Purchase-to-Pay gebeurtenislog-data te exporteren
REPORT z_p2p_gebeurtenis_log_export.
TABLES: ekko, ekpo, mseg, mkpf, rbkp, rseg.
DATA: BEGIN OF gebeurtenis_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 gebeurtenis_log.
START-OF-SELECTION.
" 1. Purchase Order aanmaken ophalen
SELECT ebeln aedat ernam netwr
INTO (gebeurtenis_log-case_id, gebeurtenis_log-timestamp, gebeurtenis_log-username, gebeurtenis_log-amount)
FROM ekko
WHERE aedat >= '20240101'.
gebeurtenis_log-activity = 'Create Purchase Order'.
APPEND gebeurtenis_log.
ENDSELECT.
" 2. Goods Receipt (MIGO) ophalen
SELECT mblnr budat usnam ebeln
INTO (gebeurtenis_log-case_id, gebeurtenis_log-timestamp, gebeurtenis_log-username, gebeurtenis_log-amount)
FROM mseg
INNER JOIN mkpf ON mseg~mblnr = mkpf~mblnr
WHERE bwart = '101' AND budat >= '20240101'. " GR document type
gebeurtenis_log-activity = 'Goods Receipt'.
APPEND gebeurtenis_log.
ENDSELECT.
" 3. Invoice Posting (MIRO) ophalen
SELECT ebeln bldat usnam wrbtr
INTO (gebeurtenis_log-case_id, gebeurtenis_log-timestamp, gebeurtenis_log-username, gebeurtenis_log-amount)
FROM rseg
INNER JOIN rbkp ON rseg~belnr = rbkp~belnr
WHERE bldat >= '20240101'.
gebeurtenis_log-activity = 'Invoice Posted'.
APPEND gebeurtenis_log.
ENDSELECT.
" 4. Resultaten exporteren naar bestand (optioneel, indien rechten aanwezig)
DATA: filename TYPE string VALUE '/usr/sap/tmp/p2p_gebeurtenis_log.csv',
file TYPE string,
rc TYPE i.
OPEN DATASET filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
LOOP AT gebeurtenis_log.
CONCATENATE gebeurtenis_log-case_id
gebeurtenis_log-activity
gebeurtenis_log-timestamp
gebeurtenis_log-username
gebeurtenis_log-amount
INTO file SEPARATED BY ';'.
TRANSFER file TO filename.
ENDLOOP.
CLOSE DATASET filename.
WRITE: / 'Event log succesvol geëxporteerd.'. | 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 aanmaken
SELECT
EKKO.EBELN AS CaseID,
'PO Created' AS Activiteit,
EKKO.AEDAT AS Timestamp,
EKKO.ERNAM AS Gebruiker,
EKKO.LIFNR AS Vendor,
EKKO.WAERS AS Valuta,
EKKO.BUKRS AS CompanyCode
FROM EKKO
WHERE EKKO.BSART = 'NB'; -- Standaard PO type -- Goods Receipt
SELECT
MSEG.EBELN AS CaseID,
'Goods Receipt' AS Activiteit,
MKPF.BUDAT AS Timestamp,
MKPF.USNAM AS Gebruiker,
MSEG.MATNR AS Material,
MSEG.MENGE AS Aantal
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 Activiteit,
BKPF.BUDAT AS Timestamp,
BKPF.USNAM AS Gebruiker,
BSEG.WRBTR AS Bedrag
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:
-- Combineer event logs (vereenvoudigde UNION)
SELECT * FROM (
SELECT 'PO Created' AS Activiteit, 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.