Hi Pega,
Can you plz explain 2 statements, I came across in Academy Module path -
Senior System Architect >> Application Development Intermediate >> Rule resolution
Both seems contradictory to me.
Statement 1 :
[ Ref. -
Remaining Rule candidates and ranking | Pega Academy ]
" After the rule candidates are ranked, the rule resolution algorithm removes any rule candidates affected by a rule where the Availability is set to Withdrawn.
Unlike a rule with the Availability set to Not Available, a rule with the Availability set to Withdrawn also affects rules in lower ruleset versions. If the Availability of a rule is set to Withdrawn, all other rule candidates in a lower ruleset version that match the applies to class, the rule purpose, and any qualifiers of the withdrawn rule are removed from the list as well. "
Statement 2 :
[ Ref.- Explanation for answer in Module Quiz ;; Screenshot attached ]
The withdrawn rule masks all lower versions of the non-circumstanced rules. The circumstanced rules have their own availability value. The rule request meets the condition for the High Risk circumstanced rule.
Thanks in advance.

@VallabhGopalDas
Let’s explain the withdrawn rules with the scenario. Consider your application has the below application rules stack:
RuleSetA:01-01
RuleSetB:01-01
RuleSetC:01-01
Let’s say you are running a case type (AddressChange) in the context of the class hierarchy (PegaCA-Work-AddressChange).
Now the section rule: ChangeAddress in the class (PegaCA-Work-AddressChange) is in the RuleSetA:01-01-02 (considering this as the highest patch ruleset version). is configured as withdrawn, then the rule resolution won’t check this rule even if it is present in the RuleSetA:01-01-01.
Then rule-resolution jumps to the second ruleset (RuleSetB:01-01) and checks if this rule is present in the same class (PegaCA-Work-AddressChange) in the RuleSetB:01-01-02 (Considering this as the highest patch version). If this is not withdrawn, rule-resolution picks this rule and gets executed.
If the rule in the highest patch version is withdrawn then if at all the same rule is present in the below patch versions, it won’t be considered.
The conclusion is as per the rule-resolution the order of priority is
-
Class
-
Ruleset
-
Circumstancing
-
Ruleset version.
Then it executes the withdrawn rule availability and sorts the rules to pick the best rule for the execution.
Hi @P.Siva.Praveen.
I completely agree with this.
Now, plz go thru the screenshot Question.
if Rule in highest version (i.e. MyCoLoan 01-01-04 ) is Withdrawn, it should pick Rule from MyCoPL 01-01-05 to execute.
But the accepted answer by PegaAcademy is different with below explanation –
The withdrawn rule masks all lower versions of the non-circumstanced rules. The circumstanced rules have their own availability value. The rule request meets the condition for the High Risk circumstanced rule.
I feel this answer to be confusing & invalid in the light of what you discussed.
@VallabhGopalDas
Let me clarify that.
As I said before, rule resolution works like this. First, the rules get sorted based on the below order.
-
Class
-
Ruleset
-
Circumstancing
-
Ruleset version
Let’s say the circumstance version of High Risk is found, then it executes the rule from class Myco-PL-Loan (MycoLoan:01-01-01). No matter whether this rule is withdrawn in the highest version.