actually this is not only a workaround but rather the best practice solution. You have to incorporate here a Priori knowledge on which Activity happens on Item, Header or maybe Customer level. This is not known in general for any process, but rather domain and source system specific. In your use case of SAP ECC and Order-to-Cash, your suggested solution makes sense. Celonis offers you also the functionality to deal with this requirements by the Custom KPIs in the Process Explorer.
In the opinion of the App Store this is most relevant when looking on Automation or Productivity Use Cases. Here you are looking on the potential of single activities and we are using a formula like this.
COUNT(DISTINCT CASE WHEN "_CEL_O2C_ACTIVITIES"."ACTIVITY_EN" IN (‘Set Delivery Block’) THEN "VBAP"."VBELN" ELSE "VBAP"."VBELN"||"VBAP"."POSNR" END)
This ensures you are counting on the activity always to your needs, Header or Item Level. The Con is actually the lines will not sum up to zero on the intersections as you are counting different entities.
We are also thinking about introducing a new column in our Transformations where we specify the level of each activity. Would this be helpful for you?