Create Object Centric Event Sources |
Scroll Previous Topic Top Next Topic More |
It is very easy to create object centric event sources. Just follow the steps below. If you need background information about OCPM and OCPM event logs, then go here.
1.Go to the tab 1A. OCPM Config
2.Set the variable mvIsOCPM to 1
Let mvIsOCPM = 1;
3.Optional: Define colors for your objects by changing / adding / deleting colors from the Colors-inline-Table
Colors:
mapping load * inline [
No, Color
1 ,#adceff
2 ,#cc99ca
3 ,#aedfe0
4 ,#fac8a3
5 ,#333333
6 ,#85b6ff
7 ,#f7ac75
8 ,#993396
9 ,#86ced1
10,#8f85ff
];
The big difference to traditional mining is that for the creation of the event sources two more fields are added (ObjectType and PrincipalObjectType), which are listed in the variable mvEventFieldsToKeep and defined in the finalEventSourceTable.
In addition, the creation of the CaseID is easier, because the object ID is often in the same table as the event data and therefore less table joins and keys are needed to get to a traditional spanning CaseID.
To create an OCPM-event source follow these steps:
1.Copy the tab template_ocpm_eventSource from the tab area OCPM template
2.Give the new tab a meaningful name
3.Give the eventSource a name by filling the variable eventSourceName:
let eventSourceName = 'templateEventSource';
let eventSourceName = 'invoice';
4.Load the source tables for the definition of the events and perform the necessary transformations, as shown in the example here:
eventSourceTable
LOAD
LEDGER & '_' & COMPANY & '_' & OPERATING_BUSINESS_UNIT & '_' & TRANSACTION_NUM as %DocumentID,
TRANSACTION_CLASS,
CREATED_BY,
TRANSACTION_DATE,
GL_DATE,
DUE_DATE,
CREATION_DATE,
LAST_UPDATE_DATE,
ENTRY_DATE
FROM [lib://MPM_Data/Invoices_Headers.csv}]
(txt, codepage is 28591, embedded labels, delimiter is ';', msq).
The table Invoice_Header contains different timestamps and the object ID, here called %DocumentID. The different timestamps are cross-tabulated into one column to make it easier to define the activities.
rename table eventSourceTable to eventSourceTable_tmp;
eventSourceTable:
CrossTable (DateType,Timestamp,3)
load *
resident eventSourceTable_tmp;
drop table eventSourceTable_tmp;
5.After that, the activities are defined as usual:
NoConcatenate
activityScenarioFieldsTable:
LOAD * Inline [
process; |
ActivityTypeID; |
ActivityTypeDescription_DE; |
ActivityType; |
QlikSourceWhereFilter |
y, |
110; |
Rechnungsbetrag fällig; |
Invoice Amount Due; |
DateType = 'DUE_DATE' |
y, |
120; |
Rechnungsupdate; |
Invoice Update; |
DateType = 'LAST_UPDATE_DATE' |
y, |
130; |
Rechnungs-Transaktion gestartet; |
InvoiceTransaction started; |
DateType = 'TRANSACTION_DATE' |
y, |
140; |
Technung gebucht; |
Invoice Entered; |
DateType = 'ENTRY_DATE' |
](delimiter is ';');
6.Create the correct format in the finalEventSoruceTable for deriving the events:
a.Define the CaseID
b.Define start and end timestamp
c.Optional: define the ActivityUserName
d.Define the ActivityOrigin
e.Define the ObjectType
f.Define the PrincipalObjectType
g.Define the ActivityOriginID
h.Define the filter fields
i.Optional: add more fields that should be present at the event after mining. These fields must be added to the variable mvEventFieldsToKeep as a comma list.
Information about the purpose of the ObjectType, PrincipalObjectType, and ActivityOriginID fields in OCPM can be found here.
To establish the link between different objects, a CaseID link table is created, which contains all further object relations for all object case IDs. This table can be used in the front-end for filtering, in the data model for meaningful context information, and in event log creation for easy definition of touchpoint events.
As a best practice format we suggest to create a table with one column CaseID and one column per object type containing all IDs related to the respective CaseID, e.g. CaseID | InvoiceID | CreditMemoID | SalesOrderID | TransportDocID.
To create the CaseID link table do the following:
1.Copy the tab tamplate_ocpm_link_table
2.Rename the tab according to your best practice, for example, with object link table
3.Put the tab after the event source tabs
4.Draw a list of all CaseIDs from the eventSource tables and create ID columns for all object ID types
5.Join to each CaseID successively all object IDs which are connected with it
6.When all object relations are united in the table, ensure the final format is one column CaseID and one column per object typeID
Attention: The final table must be named CaseID_Link_Table_$(mvProcessDescription).
7.Further in the script the link table is saved and dropped in the MPM_Model folder.
To show the interaction between different objects, events of several objects can be used, we call these events touchpoint events. Each event has an object as its main trigger and is therefore already modeled in one of the event sources.
The next step is to make an existing event available to other objects. It is important that the CaseID link table has been created before.
To learn more about touchpoint events refer to this link: https://help.mpm-processmining.com/ins_how-to-create-an-event-log-for-ocpm.html
Depending on the number and complexity of touchpoint events, it may be useful to create multiple touchpoint event sources.
To create the touchpoint events do the following:
1.Copy the tab template_ocpm_touchpoints
2.Rename the tab according to your best practice, for example, to "ocpm touchpoint events"
3.Put the tab behind the link-table tab
4.Give the touchpoint event source a name
let eventSourceName = 'touchpoints';
5.Load the original event source from which the event will be duplicated
a.Change the CaseID to the object ID from the CaseID link table
b.Change the ObjectType field to the new Object Type
[eventLog_$(eventSourceName)]:
LOAD
CaseID as %CreditMemoID,
ActivityTypeID,
ActivityStartTimestamp,
ActivityEndTimestamp,
ActivityType,
ActivityUserName,
ActivityOrigin,
'Invoice' as ObjectType
PrincipalObjectType,
ActivityOriginID,
RealUser
FROM [lib://MPM_Data/ProcessAnalyzer_ProcessDescription/03_ProcessLogGeneration/DataSource_EventLogs/eventLog_ds_creditMemo.qvd]
(qvd)
where ActivityType = 'Credit Memo Entered';
6.Join the new CaseID of the new object, which should get the touchpoint, to the event-source.
Attention: Make sure to set the keys for the join correctly and rename the new object ID to CaseID.
7.Drop the old CaseID that was renamed in step 5a.
8.Further in the tab the event-source is saved.
Once the event sources, the CaseID link table and the touchpoint events are created, the mining can be done as usual.
The tab structure could now look like this: