All product information in wiki.bizagi.com is only valid for Bizagi BPM Suite 9.1.X.
For newer Bizagi BPM Suite versions (10.X and up) please visit the User Guide.
 

Patterns2

From Business Process Management, BPM and Workflow Automation Wiki | BizAgi BPMS

Jump to: navigation, search

<keywords content="keywords">

synchronization, patterns, routing

</keywords>

Contents

Advanced Routing and Synchronization Patterns

Multiple Choice

The multiple Choice pattern assumes that one of the alternatives is selected and performed.  However, sometimes you must use a block, which will allow the selection of a subset of alternatives from a set of possible alternatives. That is what the multiple choice (inclusive) patterns are for.  The multiple choice is at a point in the workflow where, based on a decision or control data, one or more branches are chosen, triggering one or more paths of the process.


Bizagi (BPMN) Implementation

The implementation of a multiple choice is carried out by means of an Inclusive Gateway (divergence element) or a Complex Gateway (divergence element) if applicable.


An Inclusive Gateway (divergence element)  enables you to take one or more paths if one or more business rules are satisfied.  That is to say, it is based on data from the process that are evaluated by policies. The Complex Gateway (divergence element) enables you to select one or more paths considering the decision made by the user prior to this point.  That is to say, the system user will choose the paths he/she would like to be activated.


Image:Modeling_the_Process11_Image013.jpg

Some business rules might be:

Transition to B: “<GoToActivityB>==true”

Transition to C: “<LoanValue> > 50000”

Transition to D:  “BusinessRule.NewClient (<idClient>)

Transitions are valid when the result of evaluating the rule is true.  There should be at least one valid transition.  One token will be generated for each valid path that is enabled.

 

Example: In the loan request process, the create credit card and disbursement activity will be performed only when applicable.  In this case, there is no “default” conditions given that at least one of the two is always carried out.  In this example, one or two branches can be activated.


Image:Modeling_the_Process11_Image014.jpg


Synchronized Merge

Synchronized Merge is a point in the process where multiple paths converge into just one.  If more than one path is taken at a point in the process, the active paths must be synchronized.  It is assumed that the branches cannot be activated again while the synchronizer is waiting for the ones that were activated previously.


Bizagi (BPMN) Implementation

After an Inclusive Gateway (divergence element), one or more paths can be activated.  The Inclusive Gateway (convergence element) shape is used to wait for all the active paths.

 

Image:Modeling_the_Process11_Image015.jpg

 

Example: In this case, the Inclusive Gateway (convergence element) is used to synchronize the paths that were activated previously (disbursement or creation of credit card).

 

Image:Modeling_the_Process11_Image016.jpg


Multiple Merge or Serialization

The Multiple Merge is a workflow pattern where two or more non-synchronized branches are joined. If more than one branch is triggered concurrently, the activity after the serialization is performed once for each branch that has been triggered.


Bizagi (BPMN) Implementation

An activity can be triggered by each incoming transition. In Bizagi, as well as BPMN, this pattern can be illustrated in different versions:


Version 1: Exclusive Gateway (divergence element). This is the simple case of a multiple merge, in which just one path is activated and it is not synchronized.  In this case, activity D is generated just once.


Image:Modeling_the_Process11_Image017.jpg


Version 2: Parallel Gateway (divergence element) In this case, all the branches are always activated.  It is important to remember that D will be activated as many times as there are parallel paths.  In Bizagi, unlike BPMN, you can configure activity D to avoid the duplication of tokens with the singleton property.


Image:Modeling_the_Process11_Image018.jpg

 

This same version can be used, changing activity D for a sub-process.  In this case, sub-process is duplicated, not the activity, which would be the right thing to do, however, it must be synchronized for the process flow to go on.


Image:Modeling_the_Process11_Image019.jpg

 

Version 3: Inclusive Gateway (divergence element) (van der Aalst’s example). Like in the previous case, more than one path can be activated.  You must be especially careful with the duplication of activities during the modeling process.


Image:Modeling_the_Process11_Image020.jpg

  

Example: The Send Insurance and Collect activity is triggered when either the Prepare Baggage Insurance and/or the Prepare Cancellation Insurance activity is carried out, which means that if the client takes both insurance policies, the activity will be carried out twice. In Bizagi, the activity to send insurance policies as a singleton can be configured so that it is activated just once in time.


Image:Modeling_the_Process11_Image021.jpg


Discriminator

A discriminator is a point in the process that waits for one of the incoming branches to satisfy the condition before going on to the next activity.  Unlike a synchronizer, the rest of the branches that arrive will be ignored and disregarded.

 

Bizagi (BPMN) Implementation)

A Complex Gateway (divergence element) is used to wait for a specific number of incoming branches. A code must be used on enter of the complex gateway along with a rule associated with the transition of the Complex Gateway that leads to the following activity.

 

Image:Modeling_the_Process11_Image022.jpg

 

Example: The code for the rule on enter in the Complex Gateway is:  <Counter>++


The condition for the transition that leads to D is: “<Counter>==<Number>”.


When the counter reaches the number indicated, D will be triggered.  Otherwise the token incoming will be triggered.


Option 2: A discriminator can also be implemented by means of an Exclusive Gateway (convergence element) in which the condition is evaluated and, if it is not satisfied, it is ignored by means of the end event.


Image:Modeling_the_Process11_Image023.jpg


N out of M Join

This pattern can be seen as a generalization of the discriminator.  We want to synchronize N paths from M incoming transitions.  This pattern is a point in the process where M parallel branches converge into just one and the following activity is enabled once N incoming branches have been triggered. The result of the rest of the M-N branches is ignored.  Similar to the discriminator, the merge is unblocked once the M incoming branches have been triggered.


Bizagi (BPMN) Implementation)

When N branches are triggered, a Complex Gateway (convergence element) is used to synchronize the number of activities required.  The counter increases with each branch that reaches the Complex Gateway.  When the counter reaches M, D is triggered.  After that, the paths that arrive will be ignored.


Image:Modeling_the_Process11_Image024.jpg

 

Example: A code equivalent to <Counter>++ Hill be used in the Complex Gateway; D Hill be triggered when <Counter>==2


Image:Modeling_the_Process11_Image025.jpg

  <comments />