Support Article
Activity status error displays on click of Refresh
SA-53737
Summary
Error occurs when a rule which references a particular Rule-Utility-Function (RUF) is executed.
Error Messages
ActivityStatusError
Caused by: com.pega.pegarules.pub.generator.UnresolvedAssemblyError: ** Error occurred trying to parse the expression and augmenting the code: java.lang.NullPointerException
at com.pega.pegarules.priv.FUAUtil.throwUnresolvedAssemblyError(FUAUtil.java:423) ~[prpublic.jar:?]
at com.pegarules.generated.model.ra_model_myRule_091450dc0f7ddb464f06d8b9d0e96e77.appendAndMapTo_3(ra_model_setwsportfolio_091450dc0f7ddb464f06d8b9d0e96e77.java:3650) ~[?:?]
Steps to Reproduce
Execute a custom code which executes a particular RUF.
Root Cause
A defect in Pegasystems’ code or rules.
The generated Java is verified for the rule that failed to compile. This is done by manually running the pyExtractCode rule and supplying the first part through the Hash code of the rule as the Required parameter. In the above example, it is:
com.pegarules.generated.model.ra_model_myRule_091450dc0f7ddb464f06d8b9d0e96e77
On checking the generated Java, 'Parse the expression' text and additional text below it indicate those portions of the rule (in this case, a Data Transform) that failed to compile. In this case, the compiled code revealed:/*** Error occurred trying to parse the expression and augmenting the code: java.lang.NullPointerException
targetcontext (TARGET) sourcecontext (SOURCE ) {
#assignmentcontext (77749576) : .OstdUsedBal := @DLLFunctions.ConvertToInt(.UsedBalance );
#assignmentcontext (488258375) : .OstdNewBal := @DLLFunctions.ConvertToInt(.NewBalance );
#assignmentcontext (1504154397) : .MO12HighBal := @DLLFunctions.ConvertToInt(.Mo12HighBalance );
targetcontext (TARGET) sourcecontext (SOURCE ) {
#assignmentcontext (77749576) : .OstdUsedBal := @DLLFunctions.ConvertToInt(.UsedBalance );
#assignmentcontext (488258375) : .OstdNewBal := @DLLFunctions.ConvertToInt(.NewBalance );
#assignmentcontext (1504154397) : .MO12HighBal := @DLLFunctions.ConvertToInt(.Mo12HighBalance );
In this case, every failure referenced a particular RUF. The failure resulted because this RUF was present in a ruleset to which the current application had no access. This resulted in the Null Pointer Exception and the failure to parse.
Resolution
Apply HFix-42466.
Additionally, perform the following:
- Resave the rules.
- Recompile those rules that display the parse error at runtime (for exmaple, myRule).
Published December 14, 2018 - 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.