« Back to Realization Case: BPMN

Some confusion with Start Event Type and Triggers

Combination View Flat View Tree View
Threads [ Previous | Next ]

while working with the BPMN library I have noticed that there seems to be a small mistake with the Triggers in the GraphRep of the BPMN Start Event. In the AttrRep the Triggers "Error" and "Compensation" are only available for "Event Sub-Process (interrupting)", but in the GraphRep the "big IF" (the one with the many ANDs and ORs) checks those two triggers only for "Event Sub-Process (non-interrupting)". This in turn leads to strange behaviour in the visualization of the Start Event (i.e. in some cases when multiple triggers are selected the notation does not use the "multiple-triger" pentagon). The simplest solution for this to switch the "Event Sub-Process (interrupting)" and the "Event Sub-Process (non-interrupting)" in the "big IF".

Also if anybody is interested, I tried to make the "big IF" a bit more readable in the Library that I am working on and this is what I am using there:
 1# Count how many of the triggers are set (top-level, non-interrupting
 2and interrupting)
 3SET topcnt:(cond(sMes = "Yes", 1, 0))
 4SET topcnt:(cond(sTim = "Yes", topcnt+1, topcnt))
 5SET topcnt:(cond(sCon = "Yes", topcnt+1, topcnt))
 6SET topcnt:(cond(sSig = "Yes", topcnt+1, topcnt))
 7SET nonintercnt:(cond(sEsc = "Yes", topcnt+1, topcnt))
 8SET intercnt:(cond(sErr = "Yes", nonintercnt+1, nonintercnt))
 9SET intercnt:(cond(sCom = "Yes", intercnt+1, intercnt))
11IF (((sTyp = "Top-level") AND (topcnt > 1)) OR
12     ((sTyp = "Event Sub-Process (non-interrupting)") AND (nonintercnt >
131)) OR
14     ((sTyp = "Event Sub-Process (interrupting)") AND (intercnt > 1)))

I personaly find this version of the condition more readable. Also the same thing (the SETs which count the selected triggers) works in the AttrRep to enable the "Parallel" attribute.