Additional Information

Differences between the languages Python and F(x)

  • When using the f(x) language a semicolon at the end of a line means an assignment (the variable now holds the given value).

    • Without the semicolon the line will be seen as an expression, that will be evaluated to a result by the under-lying rule-engine.

  • If you are using the Python language, then you will always need a semicolon at the end of the line (or expression).

    • A result statement in Python always looks like Result=(EXPRESSION);

  • See the Figure 1 and Figure 2 for the same expression

Modell 3 a Exp 3
Figure 1. A condition’s expression in Python language
Modell 3 a Exp 4
Figure 2. The same condition’s expression in F(x)-language

Difference between exclusive and inclusive gateways

  • In contrast to the parallel gateways an exclusive merging gateway does not wait for sub-processes to reach the gateway.

  • Instead the gateway will operate as soon as a sub-process (token) reaches it.

  • An exclusive gateway will always create only one sub-process (token).

    • (Still, the BPMN allows valid models with multiple sub-processes [tokens] reaching an exclusive merging gateway, which then will forward each sub-process without delay.)

Default sequence flows do not need an expression / condition. A default sequence flow will always be determined as the next path element, if none of the other edge’s conditions evaluate to true.

Differentiation of the gateway execution context

Scripts are not necessarily executed only once. Therefore, you have the option to differentiate between the execution contexts.

ScriptContext is used to define case distinctions for expressions depending on the given setting, point of execution and user actions. (see related workflow topic: ScriptContext)

If the simulation run is currently at a gateway, there are two execution distinctions for the following sequence flow expressions:

ScriptContext.SequenceFlowCondition

The gateway checks whether the sequence path should be followed

ScriptContext.SequenceFlowExpression

The gateway executes the script if the sequence path is followed

The query of the currently active expression context can either be

ScriptContext.ActiveContext == ScriptContext.SequenceFlowCondition

or

ScriptContext.ActiveContext == ScriptContext.SequenceFlowExpression