Bruce Silver, Intalio Designer and BPMN 2.0 Event Subprocesses
One of the greatest free BPMN modeling tools is the Intalio BPMN Designer. It is a an easy to use tool for Business Process Modeling, it implements almost all the BPMN 2.0 specification. Following their marketing idea of zero code it allows business people to integrate functionalities to the core business process using connectors and web services descriptors (who somebody else developed for you if you are lucky or have bought their enterprise edition). When your process model is made ready for execution, deployment is at your finger tip.
These days reading the Bruce Silver book “BPMN Method and Style” I tried to test Intalio Designer capabilities for handling the following scenario:
A client post a form to initiate a process, if the process is not completed after a period of time, the former client must be interrogated if she wish to wait for other period of time or wants to cancel the process. If she decides to wait she must give the period of time in order to set it. If she cancels then all parallel subprocesses are canceled and process finishes.
Following Bruce Silver (you can check picture 10-31 of his book), a BPMN 2.0 Non Interrupting Event Subprocess is a suitable solution for establishing a handler for timer events in order to take actions if your subprocess haven’t finished in the desired amount of time. Bruce Silver says also that Terminate End Event must be used to finish all parallel flows and then go on with the normal execution of the rest of the process until its completion .
My first concern was that Intalio Designer lacks BPMN 2.0 Event Subprocesses, so I had to try with a “workaround for non-interrupting event with short-running handler” (See Figure 10-30 . BPMN 1.x workaround for non-interrupting event with short-running handler).
Here it is my test Process
Test Results:
1. Subprocess with the timer handler behaves as expected: Submits the creation of the human task and waits for its response. If the user cancels then rises an exception which is caught by a boundary exception handler and a terminated end event is reached. If the user give more time the timer is reset for the period amount supplied.
2. If the happy path executes before the given time, all parallel subprocesses are abandoned.
3. In both cases the process completes with a TERMINATED end state.
4. Non concluded human tasks were not retired from the Users’ Task Lists.
I am wondering if there is a better way to model this scenario?,
also if the TERMINATED end state of the process is OK or should the runner engine be fixed to COMPLETED?,
and finally if tasks should be explicitly retired using invocations to Task Manager Service or there is a property(ies) to set in order to get the engine get rid of the non finished human tasks? (I would like that Intalio Designer (or whatever designer) generates the needed code for this, is it not zero code or less effort or it maybe zero code too).
Best Regards.

January 7, 2011 at 4:54 am
Right click on the error or timer handler to set it as non interrupting
January 7, 2011 at 2:06 pm
Hello Antoine, thank you for your comment. If I add a timer event to the boundary of the looping subprocess the designer allows me to set it as “Set for parallel flow” (non-interrupting) or “Set as flow interruption” (interrupting).
The matter is that there is a need is to begin a second flow after the set time in order to allow the user take a decision which maybe to reset the timer and give the loop another try.
My concern, if I got your idea, is that if I take the “timer” subprocess off the main subprocess and use a non-interrupting boundary timer event handler (alarm), and use a second boundary error catching handler for cancellation, can I set and reset for a second (or more) chance the boundary alarm?
If I have not understood your idea maybe you give me more details, please. Also if you know what is happening with the Terminated end state of the process.
Best Regards.