Preceding Rule
What does it do?
The Preceding Rule creates conditions under which a new activity is started.
How is it used?
Every activity has a preceding rule which, when it evaluates to true, allows the activity to start. By default the preceding rule is blank and is true, so unless you configure a rule every activity starts automatically. When you configure a rule and it evaluates to false, that branch of the process is not followed.

![]() |
If a preceding rule has been configured and the rule evaluates to true, an instance of the activity is started. |
![]() |
If a preceding rule has been configured and the rule evaluates to false, an instance of the activity is not started |

Access the preceding rule by opening the activity strip and selecting the Preceding Rule icon.
Alternatively double click the icon of the activity or right-click the activity and select Properties from the menu.

By default, the Preceding Rule page does not have a rule configured. Add a by clicking Add.

Configure the rule expressions using the Add/Edit Rule dialog. Multiple expressions can be added. An example configured rule is shown that only starts the activity if the activity instance status is equal to New.

The rule editor creates a logical statement that is evaluated:
- before the activity instance is started (when using the Preceding Rule)
- when the activity needs to be sent to the destination user to be actioned (when using the Destination Rule) . The rule determines whether the destination user will receive the item on their worklist.
Multiple expressions can be added.
The Rule is evaluated using the following formula: [First Variable] [Comparison Operator] [Second Variable] = Result
Feature | Description | How to use it |
---|---|---|
Boolean Operator | The operator used to compare the different rules. See the section Using Line Rule Operators below | Click on the Boolean Operator drop-down and select the operator |
First Variable | The first variable used in the comparison to determine if the outcome will resolve to true. When using GetList methods and repeating XML nodes, the drop down next to the First Variable is enabled which can be used to perform the following actions: Sum Minimum Maximum Average Count |
Populate the field manually or source it from dynamic fields from the object browser such as Data, XML, SmartObject Properties, SmartObject Methods, SharePoint columns etc |
Logical Function | This function is only available if Non-Shared activity level Data Fields or XML Fields have been used in an activity before a Line Rule or in a Succeeding Rule. The following options are available: All All Slots At Most At Least None |
Not available for Preceding or Destination Rule |
Logical Data | This option is only available when using the Logical Function of At Least or At Most | Not available for Preceding or Destination Rule |
Comparison Operator | The operator used to compare the first and second variables in the expression. See the section Using Line Rule Operators below | Click on the Comparison Operator drop-down and select the operator |
Second Variable | The second variable is used in the comparison to determine if the outcome will resolve to true | Populate the field manually or source it from dynamic fields from the object browser such as Data, XML, SmartObject Properties, SmartObject Methods, SharePoint columns etc |
All - All slots on the activity instance, whether completed or not
All Slots - All completed slots


The comparison operator is used to compare two values to achieve a result of TRUE or FALSE.
Operators | |
---|---|
= | Equal to |
> | Greater than |
< | Less than |
>= | Greater than or equal to |
<= | Less than or equal to |
<> | not equal |

Boolean operators evaluate the outcome to determine if the expression evaluates to TRUE OR FALSE.
Boolean operators can only evaluate two states i.e. 1 or 0 (Binary logic). They do not evaluate Text or numerical values. It is advised to only compare binary fields with other binary fields.
Boolean Operators (A=First Parameter; B Second Parameter; Q = Result) | ||||
And | The And operator requires that all input parameters be Valid for a True result | |||
A | B | Q | ||
0 | 0 | F | ||
0 | 1 | F | ||
1 | 0 | F | ||
1 | 1 | T | ||
Or | The OR Operator requires that any parameter be valid for a True result | |||
A | B | Q | ||
0 | 0 | F | ||
0 | 1 | T | ||
1 | 0 | T | ||
1 | 1 | T | ||
XOR | The XOR operator requires that one input parameter be valid for a True result. Where all input parameters are valid or all are not valid the output will be false | |||
A | B | Q | ||
0 | 0 | F | ||
0 | 1 | T | ||
1 | 0 | T | ||
1 | 1 | F |

Multiple expressions require using a Boolean Operator. The Boolean Operator controls the outcome of multiple expressions for the rule. A simplified formula below displays the outcome of a Boolean operator when two rules are listed in the Preceding Rule page. The Boolean Truth tables are provided in the Using Line Rule Operators section.
It is possible for the Preceding Rule logic to be configured in such a way that it evaluates correctly, but never resolves to true; although never in error, the preceding rule never resolves to true and the activity never executes.
To illustrate the operators evaluation process the image below shows two expressions and two possible scenarios. In the first, the preceding rule evaluates to true and in the second, false.
For the rule to execute, the expressions must resolve to true - when the expressions do not resolve to true, the activity does not run.
Parameter 1 | Operator | Parameter 2 | Result |
---|---|---|---|
Activity Instance Status = New | AND | Process Folio = Potential Candidates | True |
Activity Instance Status <> New |
AND |
Process Folio = Potential Candidates |
False |

To illustrate using indenting, the following expressions evaluate separately, from top to bottom, but they are connected with an And statement, which means they both must be true in order for the activity to start.
For a multiple-level expression example, say you want expression 1 to be evaluated separately and 2 and 3 to be evaluated together. Select the Or operator on the Preceding Rule page and click Indent Right. This ensures that the second and thirs expressions are evaluated separately from the first expression. In mathematical terms this would be expressed as:
ActivityInstanceStatus = New AND (ProcessFolio = Potential Candidates OR PotentialCustomer = True)