Rule Resolution & Circumstancing
Inheritance · Algorithm Steps · Availability · Base Flag · Circumstancing Types · Ranking · Worked Examples
Class Inheritance
Pega uses two inheritance mechanisms to organize classes and determine where rules are found. Understanding both is critical for rule resolution.
1. Directed Inheritance (explicit parent)
‣You explicitly set the parent class in the Class form → "Parent class to inherit from (Directed)" field
‣The child class gets all rules from the parent
‣Follows the class hierarchy you define
‣Like traditional OOP inheritance (Java extends)
@baseclass└─ Work-└─ Work-Cover-└─ MyOrg-MyApp-Work-Claim (directed parent: Work-Cover-)
2. Pattern Inheritance (automatic by naming)
‣Pega automatically determines parent classes by removing the rightmost dash-delimited segment from the class name
‣No explicit configuration needed — it's derived from the class name itself
‣Enables reuse across class hierarchies
MyOrg-MyApp-Work-ClaimPattern parents (searched in order):1. MyOrg-MyApp-Work- (remove "Claim")2. MyOrg-MyApp- (remove "Work-")3. MyOrg- (remove "MyApp-")
Both types are used simultaneously during rule resolution. Pega searches pattern inheritance first within each level, then moves up via directed inheritance.
How to visualize the hierarchy:
Dev Studio → Open a class → click "Class Hierarchy" (or use the Class Inheritance display tool)
‣Solid black arrows = directed inheritance
‣Dashed arrows = pattern inheritance
‣Solid blue arrows = both (class is found via pattern AND is the directed parent)
Why two types?
‣Directed gives you explicit control — you choose the parent
‣Pattern enables cross-cutting reuse — define a rule once in a higher pattern class, and all classes matching that naming pattern inherit it automatically
Key insight: When Pega searches for a rule, it uses the "ancestor tree" — a combined path of both inheritance types, searched in a specific order.
READY FOR MORE?
These guides teach the mechanics. LSA interviews test judgment.
Book a mock interview →