Pattern 26 (Cancel Multiple Instance Task)
Within a given process instance, multiple instances of a task can be created. The required number of instances is known at design time. These instances are independent of each other and run concurrently. At any time, the multiple instance task can be cancelled and any instances which have not completed are withdrawn. Task instances that have already completed are unaffected.
Run 500 instances of the Protein Test task with distinct samples. If it has not completed one hour after commencement, cancel it.
This pattern provides a means of cancelling a multiple instance task at any time during its execution such that any remaining instances are cancelled. However any instances which have already completed are unaffected by the cancellation.
There are two variants of this pattern depending on whether the task instances are started sequentially or simultaneously. These scenarios are depicted in Figures 40 and 41. In both cases, transition C corresponds to the multiple instance task, which is executed numinst times. When the cancel transition is enabled, any remaining instances of task C that have not already executed are withdrawn, as is the ability to add any additional instances (via the create instance transition). No subsequent tasks are enabled as a consequence of the cancellation.
Figure 40: Cancel multiple instance task pattern (sequential initiation)
Figure 41: Cancel multiple instance task pattern -(concurrent initiation)
There is one context condition associated with this pattern: it is assumed that only one instance of each multiple instance task is executing for a given case at any time.
In order to implement this pattern, an offering also needs to support one of the Multiple Instance patterns that provide synchronization of the task instances at completion (i.e. WCP13 - WCP15). Staffware provides the ability to immediately terminate dynamic subprocedures albeit with loss of any associated data. SAP Workflow allows multiple instances created from a "multi-line container element" to be terminated when the parent task terminates. BPMN and XPDL support the pattern via a MI task which has an error type intermediate event trigger at the boundary. When the MI task is to be cancelled, a cancel event is triggered to terminate any remaining MI task instances. Similarly UML 2.0 ADs provide support by including the multiple instance task in a cancellation region. Oracle BPEL is able to support the pattern by associating a fault or compensation handler with a <flowN> construct. As the <flowN> construct is specific to Oracle BPEL, there is no support for this pattern by BPEL more generally.
Full support for this pattern is demonstrated by any offering which provides a construct which satisfies the description when used in a context satisfying the context assumption. If there are any limitations on the range of tasks that can appear within the cancellation region or the types of task instances that can be cancelled then an offering achieves a partial rating.
To achieve a + rating (direct support) or a +/- rating (partial support) the product should satisfy the corresponding evaluation criterion of the pattern. Otherwise a - rating (no support) is assigned.
|Staffware||10||+||It is possible to withdraw subprocedure steps. However, in this case the sub-procedure is terminated prematurely without transferring any data back.|
|Websphere MQ||3.4||-||Not supported. There is no direct support for multiple instance activities.|
|FLOWer||3.51||-||No direct means of cancelling a dynamic subplan without triggering the next activity.|
|COSA||5.1||-||Multiple instance activities are not supported.|
|iPlanet||3.0||-||No support for multiple instance activities.|
|SAP Workflow||4.6c||+||Via "dynamic processing with a multi-line container element" it is possible to create an instance for each row in a table. The termination of the parent activity can be passed on to the child objects.|
|FileNet||3.5||-||No inherent support for multiple instance activities.|
|BPEL||1.1||-||No support for multiple activity instances.|
|Websphere Integration Developer||6.0||-||No support for multiple activity instances.|
|Oracle BPEL||10.1.2||+||Supported for multiple activity instances in a <flowN> construct by associating it with a fault or compensation handler.|
|BPMN||1.0||+||Achievable via a MI task which has an error type intermediate event trigger at the boundary. When the MI activity is to be withdrawn, a cancel event is triggered to terminate any remaining MI activities.|
|XPDL||2.0||+||Achievable via a MI task which has an error type intermediate event trigger at the boundary. When the MI activity is to be withdrawn, a cancel event is triggered to terminate any remaining MI activities.|
|UML ADs||2.0||+||Supported by including the activity in an interruptible region.|
|EPC (implemented by ARIS toolset 6.2)||-||Not supported.|
|jBPM||3.1.4||-||jBPM does not support this pattern.|
|OpenWFE||1.7.3||-||OpenWFE does not support this pattern.|
|Enhydra Shark||2||-||Enhydra Shark does not support this pattern.|