Rule resolution
Rule resolution
Rule resolution is a search algorithm used to find the most appropriate instance of a rule to execute in any situation.
Rule resolution occurs whenever a rule is needed to accomplish processing of a case. As you create applications, the choices you make when defining the values for the key parts of a rule are based on how you want the rule to be found by rule resolution.
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
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.