UnresolvedAssemblyError occur when calling Function Rule
As application is utilizing a Function rule. The function is correctly implemented and compiles without error. However, at runtime the Function fails to invoke via a DataTransform with UnresolvedAssemblyError.
2016-01-28 09:52:32,457 [.PRPCWorkManager : 7] [ STANDARD] [ myApp:0x.0y.0z] ( FlowProblems.Work_.Action) ERROR - Problem flow abort due to system flow FlowProblems being the issue
com.pega.pegarules.pub.PRAppRuntimeException: The flow SendToCreditDepartment had a problem on step Integrator2 of: com.pega.pegarules.pub.generator.UnresolvedAssemblyError: ** 2001449583§a_function§PegaEL-InvalidExpression No candidates found [possible function name, ruleset/version or number of parameter problem] for Rule-Utility-Function in ruleset list <null> expected since isEditing is false ruleset = a_ruleset library = a_Library functionName = a_function parameters = [ Item: param.PackageName Pega type = text Java data type = String] @(a_ruleset:a_Library).a_function(param.PackageName)
Steps to Reproduce
The UnresolvedAssemblyError associated to a Function rule can be a cache related issue.
However, there is an additional known condition in which the error can occur. There are situations where the Function name signatures not normalized correctly and when that occurs, the system will unable to locate the Function rule and the error of UnresolvedAssemblyError occur will get thrown.
To rule out any caching issue, try the Revalidate and Save operation and clear the contents in PegaTemp directory. If the issue still persists, install HFix-25979 which contains an updated version of com.pega.pegarules.integration.engine.internal.util.UtilityFunctionWrapper.java. The fix ensures the Function name signature getting normalized and located as expected.