Please enable JavaScript to view this site.

 

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.

 

Step 1: Configure the 03_processLog-App to run in OCPM mode

1.Go to the tab 1A. OCPM Config

1A OCPM Config tab

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

];

 

Step 2: Create object-centric event sources

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

template_OCPM_eventSource
 

2.Give the new tab a meaningful name

OCPM new tab new 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://mpmX_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.

OCPM format finalEventSourceTable

Information about the purpose of the ObjectType, PrincipalObjectType, and ActivityOriginID fields in OCPM can be found here.

 

Step 3: Create an OCPM link table

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 touch point 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 template_ocpm_link_table
Template 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
OCPM object link table
 

4.Draw a list of all CaseIDs from the eventSource tables and create ID columns for all object ID types
OCPM CaseIDList

 

5.Join to each CaseID successively all object IDs which are connected with it
OCPM left join CaseID Link Table

 

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).
OCPM CaseID Link Table mvProcessDescription

 

7.Further in the script the link table is saved and dropped in the MPM_Model folder.

 

Step 4: Create the touchpoint events

To show the interaction between different objects, events of several objects can be used, we call these events touch point 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.mpmX-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 touch point events do the following:

1.Copy the tab template_ocpm_touchpoints
template OCPM Touchpoint
 

2.Rename the tab according to your best practice, for example, to "ocpm touchpoint events"
 

3.Put the tab behind the link-table tab
ocpm touchpoint events behind object link table
 

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://mpmX_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.

 

Step 5: Happy Mining

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:
OCPM final tab order

 

 

© by MEHRWERK GmbH