Erstellen neuer Events durch Erstellen von Event Sources für traditionelles Mining |
Scroll Previous Topic Top Next Topic More |
Das Hauptkonzept der Erstellung eines Events besteht darin, eine Tabelle zu erstellen und dann eine "where"-Anweisung auf diese Tabelle anzuwenden, um die spezifischen Bedingungen jedes Events zu erfüllen. Diese Tabelle wird als "eventSourceTable" bezeichnet und kann die direkte Ausgabetabelle der Transform-Phase oder die Kombination mehrerer Tabellen aus der Transform-Phase sein. Um diesen Teil zu erläutern, werden die Schritte der Ereigniserzeugung aufgelistet und anschließend wird zu jedem Schritt ein Beispiel mit dem Event "Bestellung erstellen" beschrieben.
1.Überprüfen Sie, ob die erste Skript-Registerkarte "Main" ist, erstellen Sie eine neue Skript-Registerkarte und geben Sie ihr einen Namen.
2.Kopieren Sie den Inhalt der Skript-Registerkarte "template_eventSource" und fügen Sie ihn in die neu erstellte Registerkarte ein.
3.Geben Sie der Event Source einen verständlichen Namen in der Variablen "eventSourceName" (Zeile 5).
let eventSourceName = 'ChangeLog_RSEG';
4.Füllen Sie die Inline-Tabelle "activityScenarioFieldsTable" aus. Diese Tabelle enthält die Felder:
process |
Setzen Sie ihn auf "y", um die Aktivität zu laden. Setzen Sie ihn auf "n", um sie nicht zu laden. Dies ist nützlich für die einmalige Fehlersuche in einer Aktivität. |
ActivityTypeID |
Eindeutige ID-Nummer der Aktivität. |
ActivityType |
Name der Aktivitätsart. |
ActivityTypeDescription_EN |
Beschreibung/Name der Aktivität. Dies sind die Aktivitätsnamen, die im ProcessAnalyzer angezeigt werden. Durch Änderung des Feldnamens (z.B. in ActivityTypeDescription_DE für deutsche Sprache) können verschiedene Sprachen eingestellt werden. Dazu müssen Sie die Aktivitätsnamen in der entsprechenden Sprache einfügen. |
QlikSourceWhereFilter |
Dies ist eine Where-Anweisung, die auf die Event Source-Tabelle angewendet wird, um das gewünschte Event zu erhalten. |
process |
Setzen Sie ihn auf "y", denn die Aktivität soll belastet werden. |
ActivityTypeID |
Es kann eine beliebige Nummer gewählt werden. Für dieses Beispiel wurde die ID 300 gewählt. |
ActivityType |
Create Purchase Order |
ActivityTypeDescription_DE |
Lege Bestellung an |
QlikSourceWhereFilter |
Wie bereits erläutert: CDHDR_OBJECTCLAS = 'EINKBELEG' AND CDPOS_TABNAME = 'EKKO' AND CDPOS_FNAME = 'KEY' AND CDPOS_CHNGIND = 'I' |
NoConcatenate
activityScenarioFieldsTable:
LOAD * Inline [
process, |
ActivityTypeID, |
ActivityType, |
ActivityTypeDescription_EN, |
QlikSourceWhereFilter |
y, |
300, |
CreatePurchaseOrder, |
Create order, |
CDHDR_OBJECTCLAS = 'EINKBELEG' AND CDPOS_TABNAME = 'EKKO' AND CDPOS_FNAME = 'KEY' AND CDPOS_CHNGIND = 'I' |
];
5.Erstellen Sie Ihre eventSourceTable so, dass Sie die benötigten Events erhalten.
Vergessen Sie nicht, die für die Prozessanalyse erforderlichen Felder aufzunehmen: CaseID, ActivityStartTimestamp und ActivityEndTimestamp, ActivityUserName und ActivityOriginID (ProcessAnalyzer-Felder) in diesen Prozess. |
eventSourceTable:
LOAD
[CDPOS_MANDANT] & '_' & [CDPOS_OBJECTCLAS] & '_' & [CDPOS_OBJECTID] & '_' & [CDPOS_CHANGENR] & '_' & [CDPOS_TABNAME] & '_' & [CDPOS_TABKEY] & '_' & [CDPOS_FNAME] & '_' & [CDPOS_CHNGIND] as [%CDPOS_PKEY], |
'030_' & mid(CDPOS_TABKEY, 4, 10) as %EKKO_PKEY,
CDPOS_TABNAME,
CDPOS_FNAME,
CDPOS_CHNGIND,
CDHDR_AETST,
CDHDR_OBJECTCLAS,
CDHDR_USERNAME
FROM [$(DataConnection)/ProcessAnalyzer_$(mvProcessDescription)/02_Transform/views/CDHDR_CDPOS_EINKBELEG.qvd] (qvd);
inner join (eventSourceTable)
Load
RSEG_BELNR & '_' & RSEG_MANDT & '_' & RSEG_BUKRS & '_' & RSEG_GJAHR as CaseID_RSEG,
RSEG_MANDT & '_' & RSEG_EBELN as %EKKO_PKEY
FROM [$(DataConnection)/ProcessAnalyzer_$(mvProcessDescription)/01_Extract/transformed/RSEG.qvd] (qvd);
6.Schließlich werden die Felder des Process Mining in die finalEventSourceTable aufgenommen.
NoConcatenate
finalEventSourceTable:
Load *,
CaseID_RSEG as CaseID,
CDHDR_AETST as ActivityStartTimestamp,
CDHDR_AETST as ActivityEndTimestamp,
CDHDR_USERNAME as ActivityUserName,
%CDPOS_PKEY as ActivityOriginID
Resident eventSourceTable
Nicht obligatorische Felder werden nicht in der eventSource gespeichert, es sei denn, Sie führen sie in der Variablen mvEventFieldsToKeep. |
7.Sobald die Event Source definiert ist, setzen Sie mvExecuteEventsSourceMining auf 1 und ziehen diese neu erstellte Script-Reiter unter den Reiter "Main".
8.Wir empfehlen, jede Ereignisquelle einzeln zu laden, um Fehler zu vermeiden. Ziehen Sie daher eine Reiter "exit script" nach der erstellten Skript-Reiter, die nur eine Anweisung "exit script;" enthält.
LET mvExecuteEventSourceMining = 1;