More about Decision Trees
Overriding the property
Decision tree evaluation may be based on a known property identified on the Configuration tab, or on a parameter supplied in the Property-Map-DecisionTree method, or both.
If you leave the Property field blank, evaluation is always based on the parameter. If a parameter is supplied, the parameter value is used even when the Property field is not blank.
Standard functions
As an alternative to the Property-Map-DecisionTree method, you can use these standard functions to evaluate a decision tree:
@(Pega-RULES:DecisionTree).ObtainValue(tools, myStepPage, decisiontree, inputproperty)
@(Pega-RULES:DecisionTree).ObtainValue(tools, myStepPage, decisiontree, inputproperty, bAllowMissingProperties)
Decision tree rules can also be evaluated as part of a collection rule ( Rule-Declare-Collection rule type).
Pega Community note
See the Pega Community article How to evaluate a decision tree and handle errors for an example.
Uploading a text file to start
You can create a decision tree by importing (or "harvesting) a specially formatted text file. This capability lets others not familiar with the Pega Platform create decision trees.
Performance
The number of nodes in a decision tree is not limited. However, as a best practice to avoid slow performance when updating the form and also avoid the Java 64 KB code maximum, limit your decision trees to no more than 300 to 500 rows.
You can view the generated Java code of a rule by clicking
. You can use this code to debug your application or to examine how rules are implemented.Special processing with Declare Expression calls
When a Declare Expression rule has
Result of decision tree
for the Set
Property To field, special processing occurs at runtime when a property referenced in the
decision table is not present on the clipboard. Ordinarily such decision rules fail with an
error message; in this case the Otherwise value is returned instead. For details, see the
Pega Community
article
Troubleshooting: Declarative Expression does not execute
when a decision rule provides no return value.
Not declarative
Despite the class name, the Rule-Declare-DecisionTable rule type does not produce forward or backward chaining. Technically, it is not a declarative rule type.
Custom function aliases
You can use Configuration tab to enable custom function aliases instead of the default comparison. For some of those aliases, you can click Select values and select from a list of values that are available for the selected property.
Previous topic Understanding business rules Next topic More about Decision Tables