System Decision Node

What is a system decision node?

Note: The System Decision node is an advanced feature and may not be available for your system. For more information, please contact your administrator.

The System Decision node allows you to skip a task or sub-process within the workflow by using expressions to determine the transition (True or False) to follow.

Who can use the system decision node?

The System Decision node may be used by users in a group that has administrator rights or rights to create/modify process templates.

Exploring the system decision node in process templates

The System Decision node is created in process templates. It is located under the list of Tasks and is called System Decision with this icon.  The System Decision node may be anywhere in the workflow (not used at the end of a workflow) and will execute once the previous tasks complete and System Decision becomes active / in progress. The decision transition must in some way, join back up at the end of the process.

Recommended Use:  System Decision nodes are only to be used to bypass a single task instance (this can be any type of task – not only standard task, but often also an approval task or upload reference files task), or a single sub-process. Any other use outside of skipping a single task instance is not considered to be an allowed use.

Sample system decision node expressions

System Decision nodes require that a valid expression be applied to them. To add a decision:

1.  Add the decision nodes as you would any other node.

2.  Create the two transitions from this node True and False to connect to other nodes.

3.  Enter an expression in the expression field that would determine the transition (True or False).

4.  Surround the expression with {…}

Things to consider when creating expressions:

1.  The expression must evaluate to one of the transitions (True or False).

2.  Your expression may refer to any process variable.

Note:  Date fields or Notes fields should not be used.

3.  Your expression may include any of the following operators:

a)   ! (not)

b)   && (and)

c)   || (or)

d)   ==, !=, >=, <=, <, >, (is equal to, is not equal to, is less than, is less than or equal to, is greater than, is greater than or equal to)

e)   n ? x : y (the “ternary” operator – shorthand for if “n” then “x” otherwise “y”)

f)   +, -, *, /, % (addition, subtraction, multiplication, division, remainder)
You will use the ternary operator often – probably at least once in every decision expression.

4.  Examples:

a)  Using a  string custom field with single value (check if custom field value is equal to x):
#{((not empty brand) && (brand[0].value==’X’)) ? ‘True’: ‘False’}

b)  Using a String multi-value Custom field (check if custom field value is either a or b)” you can use the below example:
#{((not empty company) && (company[0].value==’a’ || company[0].value==’b’)) ? ‘True’: ‘False’}

5.  The decision transition must in some way join back up at the end of the process

WARNING
Test the expressions on the template by running a project. The only way for users to test and validate the expression is valid is to create a project and executing them. If the template had a bad expression, the projects created from them can never be fixed and project will need to be canceled and restarted again.

Guardrails

Decision Nodes
When using two or more decision nodes in your template, including a system decision or approval decision, it is important that these do not overlap each other. Each decision node must point back directly to another node, such as the Upload for Approval node, without it crossing the other decision node. Doing so, may cause the template setup to break, remove transitions, or not validate and save.

If the template is saved with decision nodes overlapping, but with errors, this will cause projects that are created from that template to not progress forward. If you encounter a project created from a template like this, contact your administrator.