Back Forward Decision Tree form
Completing the Decision tab (Advanced format)

About Decision Tree rules

 zzz Show all 

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.

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

At runtime, 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 Input tab. When this field is blank, the value is taken from a parameter of the Property-Map-DecisionTree method. The Evaluate field does not appear if this decision tree rule was created in basic mode or if the Allowed to Evaluate Properties? box on the Results tab is not selected.

NoteIf the Redirect this Rule? box on the Results tab is selected, this circumstance-qualified rule is redirected and this tab appears blank.

 zzz Understanding the branch structure

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

 zzz Using the controls

Using the controls

Click in a field to display controls for that row or field.

Control

Action

 Collapse All  

Click to hide subtree structures, or click a minus sign to hide subtree structures.

 Expand All  

Click to show all the subtree structures, or click a plus sign to display specific subtrees.

magnifying glass icon zzz

Click to start the Expression Builder. This tool provides prompting and guidance when creating complex expressions involving functions. See Using the Expression Builder.

pencil icon
zzz

Click to review a property rule (for a field that contains a property reference).

row buttons
Append Row and zzz

Click to select a row; the background color changes to peach (zzz). Then click theAppend Row, Append Row, or zzz buttons to insert, append, or delete a row. (Equivalently, use the  Insert  ,  Shift+Insert  , and  Delete   keys).

 Show Conflicts  

Click to analyze the consistency of the tree. This button displays a warning icon (zzz) 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.

Click the warning icon to orange highlight (zzz) the parts of the tree that cause that branch to be unreachable. The selected has a yellow background (zzz). 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 run the Application Preflight check for the application.

Conflicts do not prevent the rule from validating or executing, but may indicate that a rule does not work as intended.

 Show Completeness  

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

Display Name

Display Label

When reviewing this tab, you can see a presentation using either property names or the Short Description (pyLabel) of properties. Click to toggle the display. (Note that two or more properties may have the same Short Description text.)

 zzz 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.

 zzz Completing fields in a branch

Field

Description

if / if value is

zzz SmartPromptEnter 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 quotes or a Single Value property reference. (For basics of expressions, see About expressions.) Click the zzz button to select a pattern that helps you enter Boolean expressions. The form changes to reflect your pattern decision.

This field is not visible if the action field is set to Otherwise.

(action)

Select an action from the selection list. The action you choose determines which branch of this decision tree the system follows at runtime when the condition to its left is reached and evaluates to true. Select a keyword:

Keyword

Effect

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 zzzarrow to zzz, 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 tree rules created in basic mode, or when the Allowed to Evaluate Properties box on the Results tab is not selected.

Call Decision Tree

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

If, at runtime this decision table evaluates in a backward-chaining context (the AllowMissingProperties parameter to the method is true), the system evaluates the called decision tree rule in the same way.

This choice is not available for decision tree rules created in basic mode, or when the Allowed to Call Decision box on the Results tab is not selected.

Call Map Value

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

If, at runtime this decision table evaluated in a backward-chaining context (the AllowMissingProperties parameter to the method is true), the system evaluates the called map value rule in the same way.

This choice is not available for decision tree rules created in basic mode, or when the Allowed to Call Decision box on the Results tab is not selected.

Call Decision Table

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

If, at runtime this decision table evaluates in a backward-chaining context (the AllowMissingProperties parameter to the method is true), the system evaluates the called map value rule in the same way.

This choice is not available for decision tree rules created in basic mode, or when the Allowed to Call Decision box on the Results 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.

zzz
(next value)

Identify a target based on the action value.

SmartPromptIf you selected Return as the action and the Results tab is not blank, select one of the values listed on the Results 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 runtime to evaluate the nested comparisons beneath the row that contains the Evaluate action. This optional is not available for decision tree rules created in basic mode, or when the Allowed to Evaluate Properties box on the Results tab is not selected.
Call Decision Tree Select another decision tree rule. The result of that rule becomes the result of this rule.
Call Map Value Select a map value rule. The result of that rule becomes the result of this rule.
Call Decision Table Select a decision table rule. The result of that rule becomes the result of this rule.
Call Base Decision Tree Available only for decision tree rules that are circumstance-qualified. When selected, causes Process Commander at runtime to execute the base (or non-qualified) decision tree rule of the same name, RuleSet, and version.
Take Action Set one or more properties to values as the only outcome of the decision tree rule. This ends evaluation of the rule, returning the null string as its result. This capability is not available for decision tree rules created in basic mode, or when the Allowed to Take Action box on the Results tab is not selected.

This input field does not appear when the action value is Continue.

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

zzz

Append RowClick to access an optional array of properties and values. Clickzzzto hide this array.

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

This capability is not available for decision tree rules created in basic mode, or for decision tree rules when the Allowed to Set Take Action? box on the Results tab is not selected.

Property

SmartPromptOptional. Identify a property reference corresponding to a value to be set.

Value

Enter a value for that property — a constant, property reference, or expression.

 zzz Completing the Otherwise branch

Field

Description

Otherwise  
Return

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

Return

Choose Return to return a value, an expression defining a value to return if the evaluation of earlier branches does not return a value.

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

For guided assistance in entering an expression, click the magnifying glass icon (zzz) to start the Expression Builder.

AdvancedDuring backward chaining computations for Declare Expression rules, if the Otherwise Return value can be computed, but properties needed for other parts of the form are not defined, the Otherwise Return value is returned as the value of the decision table rule. (In Process Commander releases before 5.3, this condition produced an exception that ended processing.)

Take Action

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

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

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

zzz About Decision Tree rules