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.Kopieren Sie den Inhalt des Szenarios "custom_logic_03eventsource.qvs" und fügen Sie ihn in "custom_logic_03eventsource_ eventSourceName.qvs" ein.
2.Stellen Sie sicher, dass der mpmXvAppConfigAlias in Ihrer TaskApp mit dem Namen Ihres Szenarios übereinstimmt, z. B. 03eventsource_ eventSourceName.
3.Geben Sie der Ereignisquelle einen verständlichen Namen in der Variablen "eventSourceName".
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 [$(mpmXvETLFolder)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 [$(mpmXvETLFolder)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. |
Es wird empfohlen, jede eventSource einzeln zu laden, um Fehler zu vermeiden. Setzen Sie daher mvExecuteEventSourceMining auf 1 und laden Sie jeweils ein Szenario nach dem anderen.
7.Um mehrere eventSource-Szenarien auszuführen, sollte Ihre TaskApp wie folgt aussehen:
SET mpmXvAppConfigAlias = ‘03eventsource _part1'; // the file name should then be custom_logic_03eventsource _part1.qvs
$(Must_Include='lib://mpmX_scripts/V2.3.0/mpmX_api.qvs');
call mpmX_execute;
SET mpmXvAppConfigAlias = '03eventsource _part2';
$(Must_Include='lib://mpmX_scripts/V2.3.0/mpmX_api.qvs');
call mpmX_execute;
exit script;
8.Sobald die Ereignisquelle definiert ist, verwenden Sie das Szenario 04processlog.