The current way of developing transformations in Celonis for event logs is to do this per case key. The event log for PO headers has transformations with the po_header_id as case key. The event log for requisitions has it’s own transformations with the requisition header id as case_key and the event log for AP invoices has it’s own transformations with the invoice id as case key. All these three event logs share multiple activities.
We would like to make this more flexible and easier to maintain. The main purpose is to have the complex joins only at a single place and to have the definition of the activities also at a single place to avoid having to maintain the different SQL statements in the transformations.
The way we are thinking to set it up is to create 1 single activities table and this contains the usual columns like activity name, eventtime and user name, but not the case key any longer. Instead it has multiple columns for the different object id’s that will be populated depending on the object that the activity is primarily related to. So in this example the columns po_header_id, requisition_header_id and invoice_id. The activity “Create Purchase Order Header” will have the column po_header_id populated with the po header id and the activity Create Invoice will have the column invoice_id populated with the invoice id, etc. This will allow us to only create transformations for the activities once, and when some changes are needed we can do them at a single place.
To still be able to generate event logs per case key there will be separate tables that link the different object id’s. So a table that contains the link between the po_header_id’s and the requisition_header_id’s, a table that contains the link between the po_header_id’s and the invoice_id’s, and a table that contains the link between the requisition_header_id’s and the invoice_id’s, etc. This way the complex joins are only need to populated these tables with the links and no longer in the different transformations for all the activities.
To generate the different event logs for the different case keys we can select from the generic activities table and the different tables that link the different object id’s.
Any thoughts on this setup?
Appreciate your feedback!
Best,
Marcel