Support Article
Rules resolution identified 2 version of the rule
SA-11470
Summary
This is an intermittent issue where after a developer checks out a rule, makes some changes, then deletes the checkout, the system complains that rule resolution identified 2 versions of the rule.
Error Messages
2015-05-05 14:36:38,639 | ERROR | WebContainer : 2 |<company>.com | Claims_Work_ClaimAdmin.Stream | Msg: Section 'HeadStaticContent' execution error on page 'pyWorkPage' of class 'Claims-Work-ClaimAdmin'.
com.pega.pegarules.pub.generator.UnresolvedAssemblyError: Unable to select between versions
Caused by:
com.pega.pegarules.pub.database.MultipleRuleVersionException: Rule resolution identified 2 versions of the rule with class Rule-Obj-When and name @BASECLASS!ISENABLEBETTERHTML5SUPPORT
Steps to Reproduce
Unable to reproduce on demand as it seems to occur randomly. When it does occur, these are the steps that developers report
1. check out a rule (normal not private)
2. make changes to the rule
3. delete checkout
4. get error that there are 2 versions
Root Cause
Entries in that pr_sys_updatescache are inserted through a trigger defined on pr4_rule table. In general they are inserting pzObjClass to OLD.pxObjClass of the entry which got deleted from pr4_rule. But in this case, the pxObjClass is empty.
Resolution
Replace faulty trigger below,
CREATE TRIGGER PEGA71R.TRPR4_RULE_DEL
AFTER delete ON PEGA71R.PR4_RULE
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
CALL PEGA71D.PRPC_UPDATESCACHE(OLD.PZINSKEY, OLD.PXHOSTID,
NULL, 'true&pyRuleSet=' || COALESCE(OLD.PYRULESET, '')) ;
END `
with,
CREATE TRIGGER PEGA71R.TRPR4_RULE_DEL
AFTER delete ON PEGA71R.PR4_RULE
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
CALL PEGA71D.PRPC_UPDATESCACHE(OLD.PZINSKEY, OLD.PXHOSTID,
OLD.PXOBJCLASS, 'true&pyRuleSet=' || COALESCE(OLD.PYRULESET, '')) ;
END `
Published July 7, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.