Flows

This topic covers all the different BPMN flow types.

Sequence Flows

In contrast to the BPMN 2.0 Specification we added one feature, that is mostly desired by non-technical modelers: the Duration of a sequence flow.

  • This can be useful when you need a delay between two activities.

  • E. g. you model a process like the one shown below. Imagine the way up to the board is long and takes around ten minutes.

  • You do not want to add another activity which represents the ten minutes time consumption for the walk to the board room.

  • Instead you simply add a Duration in the simulation properties set.

  • See Model 1b - Time Consuming Sequence Flows from the Simulation Tutorial for an example.

Sequence Flow Time Consumption
Figure 1. Example Model

Optional Simulation Properties

Expression

This field is used to define the expressions after an exclusive or inclusive gateway.

  • You simply add a condition like x<y (in F(x)) or a Python-script, that determines whether this sequence or conditional flow is to be followed next in the model.

  • See Gateway Decision Making and especially the sub-section Assigning Conditions for more information.

Duration

Add a duration for this sequence flow.

  • The approach is exactly the same as the duration of the activity.

  • This feature can be used to represent a time consumption, for which you would not like to add an additional activity, like the time period of walking to the CEO’s office (which can be significantly far way).

Message Flows

Message flows are used to represent communication between pools. That’s why we added some useful features which will give you the possibility to get more details into your communication scheme (see table below).

Optional Simulation Properties

Data

In this Text-Box you can add attributes, which shall be transported along with the message.

  • E. g. you define the variable x in activity a in pool 1, that shall be passed to an activity b in pool 2, because it will be the data basis for a gateway decision after activity b.

    • To accomplish this, you simply write the name of the variable (in this case: x) into the Data-Text-Box and it’s done!

    • If you would like to pass more than one variable or attribute, you can do this by separating them with a semicolon (e. g. x; y;)

  • See Model 4b - Transporting Process Variables via Messages from the Simulation Tutorial for an example.

Note that you can assign new names to the attributes you want to be transferred to another pool.

  • The keyword to do this is AS.

  • E. g. you want the attributes "revenue" and "profit" to be transferred from your food division to your enterprise’s headquarters.

    • Then you simply enter the following: revenue AS revenueFood; profit AS profitFood

    • Of course you can mix "to be renamed" and "not to be renamed" attributes.

  • Model 3e - Data Stores from the Simulation Tutorial uses the keyword AS to rename transferred data between pools for example.

Transport Delay

Here you can add a transport delay by selecting an appropriate stochastic distribution. E. g. sending a document to your supplier, which will be delivered by a courier in approximately one hour.

Default & Conditional Flows

You can use these elements in simulation without any additional settings. These flow types do not contain any customizable simulation properties.

Data Associations

Data Associations are used to link Data Objects and Data Stores to the BPMN model’s entities. E. g. if you want an activity to access the data of a previously created data object, then you will use a data association between the activity and the data object. Depending on the data associations direction, the activity will either read data from the data object or write data to the data object.

When using data associations with data stores, you have to specify the data, which is read or written by any model’s entity. This is being done in the Data property.

Optional Simulation Properties

Data

This property is used to determine the data, which will be read or written from or to the data store. Simply insert the name of the data entries. E. g. x; will transfer a variable called x to or from the data store.
Use a comma if you need to pass more than just one variable. F. e. x, y;
You can also rename the variables with the AS identifier.

  • Imagine two pools using the same data store.

    • The data entity x is available to both pools.

    • But due to some constraints it is necessary that pool A calls the variable y instead of x, and pool B calls it z.

    • So, the data property of pool A’s data associations looks like this:

      • x AS y; (reading)

      • y AS x; (writing)

    • and those from pool B are:

      • x AS z; (reading)

      • z AS x; (writing).

  • Model 3e - Data Stores from the Simulation Tutorial uses the keyword AS to rename transferred data between pools for example.

The comma separator also works for the renaming functions: E. g. x AS a, y AS b;