Completing the Decision tab (Advanced format)

Record the if.. then.. logic of the decision tree in the three-column array. These unlabeled columns are known as the comparison, action, and next value columns.

This help topic describes the advanced format of the Decision tab. If you encounter a Decision tab that does not contain an Evaluate Parameter or Evaluate property name see Completing the Decision tab (Basic format).

At run time, the system evaluates the if portion of the array, starting at the top row, and continues until it reaches a Return statement. If the system processes the entire tree but does not reach a Return statement, it returns the Otherwise value.

The Evaluate field at the topic identifies the Property value, if any, from the Configuration tab. When this field is blank, the value is taken from a parameter of the Property-Map-DecisionTree method. If this decision tree was created in basic mode or if the Allowed to Evaluate Properties? box on the Configuration tab is not selected, the Evaluate field does not appear

If the Redirect this Rule? check box on the Configuration tab is selected, this circumstance-qualified rule is redirected and tab is blank.

Understanding the branch structure

Each indent level supports comparisons against a single value, which are determined by context:

  • The top (leftmost) level tests values against the value of the property that is identified on the Configuration tab, or a parameter value specified in the method that calls the decision tree. Comparisons are implicit: the property on the Configuration tab (or the parameter in the method) is not displayed on this tab.
  • An indented level tests values against a property identified in the Evaluate field of the statement above the indented level.
  • Each text box can contain a value, a comparison operator followed by a value, or a Boolean expression. The context is not relevant when a Boolean expression is evaluated.

Using the controls

To display controls for that row or field, click it.

Control Action
Collapse All Click to hide subtree structures, or to hide specific subtree structures, click the minus sign.
Expand All Click to show all the subtree structures, or to display specific subtrees, click the plus sign.
Open expression builder icon Click to start the Expression Builder. This tool provides prompting and guidance when you create complex expressions involving functions. See Using the Expression Builder.
Open icon Click to review a property for a field that contains a property reference.
Add row add row and Delete row buttons

Click to select a row. Then click the appropriate buttons to insert, append, or delete a row, respectively.

Show Conflicts Click to analyze the consistency of the tree. This button displays a Warning icon next to any parts of the tree that are unreachable. For example, a branch that extends below the two mutually contradictory tests (if Width > 100) and (if Width < 100) is unreachable.

To highlight the parts of the tree that cause that branch to be unreachable, click the Warning icon. A decision tree that contains no unreachable parts is called consistent.

The presence of unreachable portions of the tree does not prevent you from saving the rule. Comparisons involving two properties such as Width > Length are ignored in this analysis.

Conflicts are also checked when you save the form, and when you use the Guardrails landing page for the application.

Conflicts do not prevent the rule from being validated or executed, but could indicate that a rule does not work as intended.

Show Completeness Click to automatically add suggested portions of the decision tree that cover additional cases and reduce or eliminate the situations that fall through to the Otherwise Return expression. Suggested additions are displayed with a light green highlight and can refer to values that you must modify such as Result or DecisionTreeInputParam. These additions are only suggestions; you can alter or delete them.

Modifying branches with drag and drop operations

To move a subtree structure, drag the small circle at its left.

To copy a subtree structure, drag while holding down the CTRL key, and drop it on the destination node.

Completing fields in a branch

Field Description
if / if value is Enter a value for the current context, or a comparison starting with one of the six comparison operators: <, >, =, !=, >= or <=.

The value can be an expression, such as a literal value between quotations or a Single Value property reference. (For more information, see About expressions.) To select a pattern that helps you enter Boolean expressions, click the drop-down button. The form changes to reflect your pattern decision.

If the Action field is set to Otherwise, this field is not visible .

(action) Select an action from the selection list. The action that you choose determines which branch of this decision tree the system follows at run time when the condition to its left is reached and evaluates to true. Select a keyword:
Return
Causes this branch of the decision tree to end processing when reached. If the system finds a Return row to be true, the value in the right column of this row becomes the result of the decision tree evaluation.
Continue
Causes the next row of the decision tree to be nested within this branch. The system reflects the nesting by indenting the next row on the form display and changing the arrow to so that it points down to the indented row. The context for the Continue statement is the same as for the current statement.
Evaluate

Causes the system to use a new property, identified in the right column, as the context for nested comparisons below the current row. Enter a Single Value property reference in the Value field to the right of the Action field.

This choice is not available for decision trees that are created in basic mode, or when the Allowed to Evaluate Properties check box on the Configuration tab is not selected.

Call Decision Tree

Causes the system to evaluate another decision tree, which is identified in the field to the right of this value. The result of the second decision tree becomes the result of this decision tree, and evaluation ends.

At run time, if this decision table evaluates in a backward-chaining context (the AllowMissingProperties parameter to the method is true ), the system evaluates the called decision tree in the same way.

This choice is not available for decision trees that are created in basic mode, or when the Allowed to Call Decision check box on the Configuration tab is not selected.

Call Map Value

Causes the system to evaluate a map value, identified in the next field. The result of the map value becomes the result of this decision tree, and evaluation ends.

At run time, if this decision table evaluates in a backward-chaining context (the AllowMissingProperties parameter to the method is true), the system evaluates the called map value in the same way.

This choice is not available for decision trees that are created in basic mode, or when the Allowed to Call Decision check box on the Configuration tab is not selected.

Call Decision Table

Causes the system to evaluate a decision table, identified in the next field. The result of the decision table becomes the result of this decision tree, and evaluation ends.

At run time, if this decision table evaluates in a backward-chaining context (the AllowMissingProperties parameter to the method is true), the system evaluates the called map value in the same way.

This choice is not available for decision trees that are created in basic mode, or when the Allowed to Call Decision check box on the Configuration tab is not selected.

Otherwise
Select Otherwise only as the final choice in a set of alternatives. The value in the right column of this bottom row becomes the result of this decision tree evaluation.
(next value) Identify a target based on the action value.

If you selected Return as the action and the Configuration tab is not blank, select one of the values listed on the Configuration tab.

Otherwise, enter a value or expression here that allows evaluation of the decision tree to continue. You can reference a property on any page, but be sure to enter any page you reference on the Pages & Classes tab. Enter a value that depends on the one of the following action value keywords:

Return or Otherwise
Enter an expression for the result of this decision tree when this row is the final one evaluated.
Evaluate
Identify a property reference that the system uses at run time to evaluate the nested comparisons beneath the row that contains the Evaluate action. This option is not available for decision trees that are created in basic mode, or when the Allowed to Evaluate Properties check box on the Configuration tab is not selected.
Call Decision Tree
Select another decision tree. The result of that rule becomes the result of this rule.
Call Map Value
Select a map value. The result of that rule becomes the result of this rule.
Call Decision Table
Select a decision table. The result of that rule becomes the result of this rule.
Call Base Decision Tree
Available only for decision trees that are circumstance-qualified. When selected, the base (or non-qualified) decision tree of the same name, ruleset, and version is executed.
Take Action
Set one or more properties to values as the only outcome of the decision tree. This ends evaluation of the rule, returning the null string as its result. This capability is not available for decision trees that are created in basic mode, or when the Allowed to Take Action check box on the Configuration tab is not selected.

This input field is not displayed when the action value is Continue.

To open a referenced decision tree, map value, or decision table, Click the Open icon. (The Call Decision Tree, Call Map Value, and Call Decision Table choices are not available for decision trees that are created in basic mode, or when the Allowed to Call Decisions? field on the Configuration tab is not selected.)

Click to access an optional array of properties and values. To hide this array, click .

When the system evaluates the decision tree at run time and this row is the source of the results, the system also recomputes the value of the target properties that are identified in this array. Order is significant.

This capability is not available for decision trees that are created in basic mode, or for decision trees when the Allowed to Set Take Action? check box on the Configuration tab is not selected.

Property Optional. Identify a property reference corresponding to a value to be set.
Value Enter a value for that property — a constant, property reference, or expression.

Completing the Otherwise branch

Field Description
Otherwise  
Return To define the outcome of this decision tree when no result is determined by the tree structure above, choose Return or Take Action. If this field is blank and no other return value is computed, the system returns the null value.
Return

Choose Return to specify a value to return if an earlier branch does not return a value.

If the Allowed Results list on the Configuration tab is not blank, this field is required and is limited to one of the constant values that are listed on that tab.

For guided assistance in entering an expression start the Expression Builder by clicking the Open expression builder icon.

Note: During backward chaining computations for Declare Expression rules, if the Otherwise Return value can be computed, but properties that are needed for other parts of the form are not defined, the Otherwise Return value is returned as the value of the decision table.
Take Action

Choose Take Action (when this choice is visible) to return the empty string as the value of the decision tree, but to also evaluate a function that is identified by an alias in the Allowed Action Functions field of the Configuration tab.

Most commonly, the Take Action choice allows one or more property values to be set as the outcome of a decision tree.

Select a property in the Set field. Enter a value for the property in the Equal to field.