Extrakt Phase |
Scroll Previous Topic Top Next Topic More |
In der Extrakt Phase wird die App MPM_Process_01_QVDBuilder eingesetzt. Das Programm extrahiert Tabellen aus einer Datenbank wie z.B. SAP und legt sie in einem speziellen Ordner ab. Es kann vorkommen, dass Tabellen bereits extrahiert, aber noch nicht im .qvd-Format vorliegen oder aus Größengründen in mehreren Dateien gespeichert sind. Dateien, die nicht für die weitere Modellierung geeignet sind, weil sie verstreut oder nicht im .qvd-Format vorliegen, werden in 01_Extract/extract gespeichert und dann von der App MPM_Process_01_QVDBuilder in .qvd-Dateien umgewandelt, die unter 01_Extract/transformed gespeichert werden.
QVD ist ein natives Qlik-Format, das nur von Qlik Sense® oder QlikView geschrieben und gelesen werden kann. Das Dateiformat ist für die Geschwindigkeit beim Lesen von Daten aus einem Skript optimiert, aber dennoch sehr kompakt. Weitere Informationen finden Sie in der Qlik Sense® help.
Um das Event "Create Purchase Order" aus einer SAP-Datenbank zu erstellen, müssen wir alle zugehörigen Tabellen sammeln. Wie Sie wissen, enthält ein Event drei Schlüsselinformationen, die für das Process Mining benötigt werden: CaseID, Event-Zeitstempel und Event-Definition. Die CaseID ist für alle Ereignisse gleich, aber der Zeitstempel ist für jedes Ereignis eindeutig.
1.Zunächst sollten wir uns überlegen, wie wir ein Event definieren und welche Tabellen die erforderlichen Informationen wie Zeitstempel oder Fall-ID liefern sollen. Eventuell muss eine spezielle Fall-ID definiert werden. In diesem Beispiel kann die Definition einer Fall-ID in einem Kaufprozess wie folgt aussehen:
oCaseID: InvoiceNr_Client_CompanyCode_FiscalYear
2.Zweitens müssen wir Tabellen extrahieren, aus denen wir die Felder kombinieren können, die für die Erstellung der Fall-ID und für die Zeitstempel erforderlich sind. Für das Event "Create Purchase Order" verwenden wir diese Tabellen:
oÄnderungsprotokoll: CDHDR, das zum Speichern der Kopfdaten des Änderungsbelegs verwendet wird.
oÄnderungsprotokoll: CDPOS: Hier werden die Daten der Änderungsbelegpositionen gespeichert.
oRSEG: dient zum Speichern von Belegpositionsdaten: Eingangsrechnung
3.Drittens: Da verschiedene Tabellen dieselben Feldnamen enthalten können (z. B. MANDANT), qualifizieren wir die Tabellen mit der Funktion MW_qualifyFieldNames('TableName','Qualifier','Unqualify'), um synthetische Schlüssel und zirkuläre Referenzen zu vermeiden.
4.Viertens: Die extrahierte Tabelle wird als .QVD-Datei gespeichert.
5.Und schließlich haben wir die Tabelle gelöscht, um den Arbeitsspeicher für eine bessere Leistung zu entlasten.
//Name the table and then insert the load script with the data connection dialog on the right site
CDHDR:
LOAD |
MANDANT & '_' & OBJECTCLAS & '_' & OBJECTID & '_' & CHANGENR as %CDHDR_PKEY, |
|
timestamp(date(UDATE) + time(UTIME)) as AETST, |
|
MANDANT, |
|
OBJECTCLAS, |
|
OBJECTID, |
|
CHANGENR, |
|
USERNAME, |
|
UDATE, |
|
UTIME, |
|
TCODE, |
|
PLANCHNGNR, |
|
ACT_CHNGNO, |
|
WAS_PLANND, |
|
CHANGE_IND, |
|
LANGU, |
|
VERSION, |
|
_DATAAGING; |
SELECT |
MANDANT, |
|
OBJECTCLAS, |
|
OBJECTID, |
|
CHANGENR, |
|
USERNAME, |
|
UDATE, |
|
UTIME, |
|
TCODE, |
|
PLANCHNGNR, |
|
ACT_CHNGNO, |
|
WAS_PLANND, |
|
CHANGE_IND, |
|
LANGU, |
|
VERSION, |
|
_DATAAGING |
FROM CDHDR
WHERE OBJECTCLASS EQ 'EINKBELEG' AND UPDATE GE '$(mvDateFilter)';
// The function MW_qualifyFieldNames is used to qualify the table MW_qualifyFieldNames('TableName','Qualifier', 'Unqualify')
call MW_qualifyFieldNames('CDHDR','CDHDR', '%*');
// The qvd is stored in the respective folder structure (defined in section main)
Store CDHDR into [$(DataConnection)/ProcessAnalyzer_$(FDescription)/01_Extract/transformed/CDHDR_EINKBELEG.qvd] (qvd);
// Table is dropped to clear RAM (performance)
Drop Table CDHDR, temp;