Alternative Strings

The user can define the behavior for the evaluation of transition conditions in alternative branches with Multi-Token.

The following are possible:

  • Processing is from left to right with a stop after the first active transition (1-off-n-select). This corresponds with the behavior of alternative strings with Single-Token.

  • Parallel processing of all transitions of the alternative branch (x-off-n-select)

x-off-n-select

With Multi-Token, more than one parallel switch can be made from the transitions (1-off-n-select). The branches to be run are determined by the result of the transition conditions of the transitions that follow the alternative branch. The transitions of the branches are all processed. All branches with satisfied transitions are activated.

If none of the transitions are switched, the step that is currently set remains set.

x-off-n-select:

If...

Then

If S_5_10 is active and transition condition a is true and b is false,

then a sequence is run from S_5_10 to S_5_11.

If S_5_10 is active and transition condition a is false and b is true,

then a sequence is run from S_5_10 to S_5_12.

If S_5_10 is active and transition conditions a and b are true,

then a sequence is run from S_5_10 to S_5_11 and S_5_12.

A second token is created by the parallel activation of the two alternative branches. These two tokens are now running parallel to one another, i.e. S_5_11 and S_5_12 are active at the same time.

Token 1 (S_5_11)

Token 2 (S_5_12)

If...

Then

If...

Then

If the transition condition c is true,

then a sequence is run from S_5_11 to S_5_13.

If transition condition d is true,

then a sequence is run from S_5_12 to S_5_13.

If S_5_13 is still active (token 1) because of the activation of transition condition c, then token 2 is ended and the string will be further processed as Single-Token. If S_5_13 is no longer active (token 1), then it is reactivated by token 2 and both tokens continue running parallel (Multi-Token).

If alternative branches should only be switched exclusively in this mode of operation, then this must be defined explicitly with the transition logic.

Example:

Terminating an Alternative Branch with a Parallel Merge

If a parallel merge is used to terminate an alternative branch, it may block the string.

Terminating an Alternative Branch with a Parallel Merge:

If...

Then

If transition condition a is true and b is false,

then a sequence runs to S_6_1.

Since S_6_1 and S_6_2 are linked by a parallel merge, the branch cannot be departed because S_6_1 and S_6_2 can never be active at the same time.

(Either S_6_1 is activated with transition condition a or S_6_2 with transition condition b.)

Therefore S_6_1 and S_6_2 can never be active at the same time either. The string is blocked.

This block can be removed, for example, by a second timed token that runs via transition b.