Single instance sub-process

Single instance sub-process

We’ve enhanced the DCR semantics and is now supporting two different types of “grouping of events”:

  • Nesting – the “classical” way of grouping events together
  • Single instance sub-process – a new way of “grouping” events which we believe is more intuitively. Once the grouping is Accepting, i.e. no pending events (blue exclamation marks) exists, the sub-process is considered done.

The main difference between nesting and sub-process is that in nesting all events must be executed before you can proceed, while for sub-processes the process must be in accepting mode to continue. This is illustrated with this graph.

Nesting vs sub-process

Notice that Continue2 is enabled while Continue1 is not. The reason is that the Subprocess is accepting, i.e. no pending events exists.Also – notice that no roles can be selected for a sub-process.

You choose between nesting and sub-process in the advanced options dialog.

Choose between Nesting and Subprocess

In the Options –> Advanced dialog you have a “grouping type” where you can choose the different types:

Simulation and grouping of activities in a subprocess

Activities behave different in places in a subprocess. As a subprocess has its own state, it can be pending, executed and excluded, we group activities inside the subprocess as the state of the activities depends on the state of the subprocess. Image the graph shown below:

When we start simulation we notice that tasks are placed differently:

For activities inside a subprocess we see the tasks grouped inside.  If we execute Do this in subprocess and Do this in nesting the task list is changed:

Notice that also the Subprocess is marked as executed. When we now execute Exclude and then Include we see that the subprocess maintains the state of the inner activities while nesting does not as the event Excluded in meeting? is now included again.

Subprocesses keeps the state of the inner events when included and excluded.