System not able to find Function in one of the environments
I wrote a function in DEV environment inorder to meet our bussiness requirements and deployed it in SYSi & QA regions.
My code is able to sucessfully call this function in DEV and QA environment and working as expected. However when the same code tried to call the same function in SYSi region, system is throwing the below error.
"No candidates found [possible function name, ruleset/version or number of parameter problem] for Rule-Utility-Function in ruleset list <null> Lib....(Function Name)"
I tried below things, but they didn't resolved the problem:
1. Regenerate the library
2. Deleted the marker file and restarted the JVM.
What would be the possible reason for this behaviour??
The function code is in SYSi Region and I compared my Access Roles in SYSi with other environments and they are same. The ruleset version in which function is there is also up to date.
One observation is that this function is called from an activity pre-condition. Now if this activity is in my private checkout, the error is not coming, but once I deleted acticity from my checkout the issue is happening again.
Fortunately now the function is working in SYSi after 5 days, but I'm not able to find the root cause why it didn't worked before. I'm pretty sure it's not related to rulepulse agent as it will execute every 60 seconds to sync up rules in all the nodes.
When this happened with me , I had to go and delete the rule assembly cache of the activity in SMA in the higher environments, complie and generate the library in which the function is part of. I would also be intrested if this is some sort of bug ?
"com.pega.pegarules.pub.PRAppRuntimeException: The flow SendToCreditDepartment had a problem on step Integrator2 of: com.pega.pegarules.pub.generator.UnresolvedAssemblyError: ** 2001449583§EscapeSpecSymbols§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 = ECM-FileNetComponent library = FileNetComponent functionName = EscapeSpecSymbols parameters = [ Item: param.PackageName Pega type = text Java data type = String] @(ECM-FileNetComponent:FileNetComponent).EscapeSpecSymbols(param.PackageName)
From: (B1208A77259A79BBE63E2E6FA8D46E96F) "
"Revalidate and save" all rules in ruleset (where locate this function) fixed this problem.