Support Article
Rule assembly error during WHEN rule execution
SA-1015
Summary
We recently migrated our PRPC 6.1 SP2 application to new version of Oracle and a new version of Websphere.
After that, in a specific flow action when system is trying to execute a when rule, it is throwing Rule assembly exception.
As per our analysis, when PRPC is trying to pick assembled class for SWIF_TYPE property from dictionary cache, erroneously it is trying to pick another property rule with name SWIFTTYPE.
Below are the pzInsKey of property rules SWIF_TYPE, SWIFTTYPE
SWIF_TYPE: RULE-OBJ-PROPERTY XXXX-WORK-PAY- SWIF_TYPE #20110901T114007.029 GMT
SWIFTTYPE: RULE-OBJ-PROPERTY XXXX-WORK-PAY- SWIFTTYPE #20110901T114005.669 GMT
But we could see rule assembly is trying to pick rule, RULE-OBJ-PROPERTY XXXX-WORK-PAY- SWIF_TYPE #20110901T114005.669 GMT which doesn’t exist at all in the system.
[ the timestamp used is the one for SWIFTTYPE instead of the desired SWIF_TYPE ]
We could see this issue is happening in both during Design time and runtime. During design time, rule is not getting opened in designer studio.
-------------------
Pre migration:
- Database - Oracle 10.1.0.4.0
- JDBC Driver - Oracle JDBC 11.1.0.6.0
- Websphere 6.1
Post migration:
- Database - Oracle 11.2.0.3.0
- JDBC Driver - Oracle 11.2.0.3.0
- Websphere 7.0
Error Messages
1.
2014-07-14 11:10:10,784 [ WebContainer : 3] [ Developer] [ xxxxxxxx:01.03] (ngineinterface.service.HttpAPI) ERROR xxxxxxxx|xxxxxxxx xxxxxxxx - xxxxxxxx: com.pega.pegarules.pub.PRRuntimeError
com.pega.pegarules.pub.PRRuntimeError: PRRuntimeError
<...>
Caused by: com.pega.pegarules.pub.PRRuntimeException: property definition open failed for RULE-OBJ-PROPERTY XXXX-WORK-PAY- SWIF_TYPE #20110901T114005.669 GMT
at com.pega.pegarules.data.internal.dictionary.DictionaryCacheImpl.getPropertyDefinitionByKey(DictionaryCacheImpl.java:251)
at com.pega.pegarules.data.internal.dictionary.DictionaryImpl.getPropertyDefinition(DictionaryImpl.java:1021)
at com.pega.pegarules.data.internal.dictionary.ClassInfoImpl.getPropertyDefinition(ClassInfoImpl.java:930)
at com.pega.pegarules.data.internal.dictionary.PropertyInfoPublic.<init>(PropertyInfoPublic.java:229)
at com.pega.pegarules.data.internal.dictionary.ClassInfoImpl.getPropertyInfo(ClassInfoImpl.java:796)
at com.pegarules.generated.pega_rules_utilities.getPropertyField06_01_01(pega_rules_utilities.java:6414)
at com.pegarules.generated.pega_rules_utilities.getPropertyField(pega_rules_utilities.java:6440)
at com.pegarules.generated.pega_rules_utilities.getLabel06_01_01(pega_rules_utilities.java:5815)
<etc>
2. UnResolvedAssemblyError
Steps to Reproduce
Existing system has gone through multiple upgrades
1. v5.5 to v6.1 SP2
2. Current migration is Pegarules DB x86 migration
Root Cause
The root cause of this problem is defect/misconfiguration in the PRPC operating environment.
Resolution
This issue is resolved by hotfix item HFIX-9879.
This hot fix amends an internal API call in RULE-UTILITY-FUNCTION UTILITIES GETPROPERTYFIELD--(STRING,STRING,STRING,PUBLICAPI).
Published June 12, 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.