Rule resolution
Rule resolution is a search algorithm that a system uses to find the most appropriate instance of a rule to execute in any situation. Rule resolution occurs whenever a rule is needed to accomplish case processing. For example, when developers update a service-level agreement (SLA) rule, rule resolution identifies the correct instance of an SLA rule so that the case is processed according to the most current business policies.
Rule resolution applies to most rules that are instances of classes derived from the abstract Rule- base class. The following are examples of instances of rules derived from the abstract Rule- base class:
- Case types (Rule-Obj-CaseType )
- Properties (Rule-Obj-Property )
- UI rules such as Sections (Rule-HTML-Section) and Harnesses (Rule-HTML-Harness)
- Declare expressions (Rule-Declare-Expression)
- Data pages (Rule-Declare-Pages)
Rule resolution does not apply to records that are instances of classes derived from any other abstract base class such as Data-, System-, or Work-. The following are examples of instances of rules derived from these abstract base classes:
- Operator IDs (Data-Admin-Operator-ID)
- Email listeners (Data-Admin-Connect-EmailListener)
- Operator's favorites (System-User-MyRules)
- The rule check-in process (Work-RuleCheckIn)
Inputs to the rule resolution algorithm
The rule resolution algorithm uses inputs from key parts of a rule to identify the most appropriate rule instance.
Inputs to the rule resolution algorithm include:
- Predefined rule keys that are used as a unique identifier, such as the Apply to: class, rule name, and rule type
- User's ruleset list
- Class hierarchy of the rule in question
- Circumstances such as the value of a property, or time and date restrictions
- Availability of the rule
- User's access roles and privileges
The output of the resolution process is the first rule found that matches all of the input criteria. As you create applications, the choices you make when defining the key parts of a rule are based on how you want the rule resolution to find the rule.
Rule resolution process and rule availability
You can update key parts of a rule instance, such as the rule availability. Rules that are subject to the rule resolution process have an Availability setting. The current Availability of a rule is visible on the rule form next to the rule name or description.
The Availability setting is used to determine if a rule is available for use during rule resolution. The availability of a rule is also used to determine if you can view, copy, or edit a rule in Dev Studio.
You can set the availability of a rule to one of five values: Available, Not Available, Blocked, Final, or Withdrawn.
Check your knowledge with the following interaction.
Populate the rules cache
Pega Platform™ uses a caching mechanism called the Rules Cache to ensure rule resolution operates efficiently.
When your application references a rule, Pega Platform checks the rules cache for the referenced rule. If the referenced rule is not available in the rules cache, Pega Platform uses a multiple-step process to populate the rules cache.
In the following image, click the + icons to learn more about the process that populates the rules cache.
Check your knowledge with the following interaction.
Want to help us improve this content?