Applies to Pega Platform versions 7.2 through 8.5.2
What is rule resolution?
Symptoms
Errors
Explanations
Solutions
What is rule resolution?
See Rule resolution.
Symptoms
Issues with rule resolution can surface in the following ways:
- A RuleNotFoundException is seen on the screen or in the logs.
- The wrong rule is executed (wrong ruleset version or circumstanced version).
- New rules or versions of a rule are not picked up after a deployment.
Errors
Here are examples of typical errors seen in the logs or on screen:
com.pega.pegarules.pub.generator.RuleNotFoundException: Failed to find a <rule type> with the name <rule name> that applies to <class name>
com.pega.pegarules.pub.generator.RuleNotFoundException: Failed to find instance @baseclass.<rule name> of type <rule type>
Rule obj-when instance not found
Failed to find instance <rule name>
HitNotFound
Explanations
Rule resolution issues are commonly caused by the following incorrect usage:
Incorrect page class
In most cases the problem is caused when the primary page has a wrong class, is classless (possibly blank), or is missing altogether.
Invalid circumstancing
Generally, the step page is used to resolve a rule. However, evaluation of circumstance conditions uses the primary page only. For example, if a rule is circumstanced on the property .CustomerType, and this rule is encountered during the running of an activity, the circumstance property .CustomerType must be found on the primary page of the activity, not on the step page of the current step.
Incorrect rule ranking
Rules are ranked in the order of AppliesTo, Ruleset, and Circumstance.
Null value for rule availability
When a new rule is created, make sure that the property pyRuleAvailable of that rule has a value. A null value (an empty property value) will cause the rule to be ignored by the rule resolution process.
Solutions
- Preventing incorrect page class
- Preventing invalid circumstancing
- Preventing incorrect rule ranking
- Preventing null value for rule availability
- Contacting GCS
Preventing incorrect page class
When the primary page has a wrong class, is classless (possibly blank), or is missing altogether, verify using the Tracer to see against which "applies to class" the rule is being resolved.
See Application debugging using the Tracer tool.
Preventing invalid circumstancing
Ensure that a circumstanced property is specified on the primary page of the activity, not on the step page of the current step.
Preventing incorrect rule ranking
Ensure that the expected rule is in the right ruleset based on the user's ruleset list and AppliesTo class.
See Rule resolution exceptions and Ruleset list usage during rule resolution.
Preventing null value for rule availability
When a new rule is created, make sure that the property pyRuleAvailable of that rule has a value.
Contacting Global Client Support
If you need assistance with isolating your rule resolution issue, go to the Pega Support Center and post your question.