Rule library fails to locate Java Function on new deployments
On triggering an activity, the deployment of the application with a new ruleset fails. This occurs due to the activity's inability to identify and locate a Candidate function available in the function's Java Library.
[sV2], Partitions=] [STANDARD] [ ] [ ] (QueueProcessorExecutor) ERROR - [QueueProcessor:UCEQueueProcessor] Exception while processing message: 9402f740-6a29-4bc
com.pega.pegarules.pub.generator.UnresolvedAssemblyError: 1963511623§ConvertPegaDateTimeToISODateTime§PegaEL-InvalidExpression No candidates found [possible function name, ruleset/version or number of parameter problem] @AOMUtilities
[sV2], Partitions=] [STANDARD] [ ] [ ] (mbly.antlr3.RUFReferenceHelper) WARN - 1963511623§ConvertPegaDateTimeToISODateTime§PegaEL-InvalidExpression No candidates found [possible function name, ruleset/version or number of parameter problem]
for Rule-Utility-Function in ruleset list , AOMFW-Local:01-02, AOMFW-Artifacts:01-02, AOMFW-Database:01-02, AOMFW:01-02, AOMFW-Int:01-02, AOMFW-Testing:01-02, AOMFW-PM-Artifacts:01-02, AOMFW-PM-Catalogue:01-01, AOMFW-BuildArtifacts:01-01, AOMFW-UI:01-01, VFUK:01-01, VFUKInt:01-01, PegaMarketing_FW-HealthCheck:08-01, PegaMKT-Install:08-01, PegaMKT-MarketingProfile:08-01, PegaMKT-Portal:08-01, PegaMKT-Desktop:08-01, PegaMKT-RevisionManagement:08-01, PegaMKT-Engine:08-01, PegaMKT-Integration:08-01, PegaMKT-MailUtilities:08-01, PegaMKT-Passbook:08-01, PegaMKT-PushNotification:08-01, PegaMKT-Security:08-01, PegaFW-DashboardCharts:01-01, Pega-IAC:08-01, UI-Kit-7:12-01-01, Pega-DecisionManager:08-01, PegaFW-NPS:08-01, Pega-ProcessCommander:08-01, Pega-DeploymentDefaults:08-01, Pega-DecisionScience:08-01, Pega-DecisionArchitect:08-01, Pega-LP-Mobile:08-01, Pega-LP-ProcessAndRules:08-01, Pega-LP-Integration:08-01, Pega-LP-Reports:08-01, Pega-LP-SystemSettings:08-01, Pega-LP-UserInterface:08-01, Pega-LP-OrgAndSecurity:08-01, Pega-LP-DataModel:08-01, Pega-LP-Application:08-01, Pega-LP:08-01, Pega-SystemOperations:08-01, Pega-UpdateManager:08-01, Pega-SecurityVA:08-01, Pega-Feedback:08-01, Pega-HealthCheck:08-01, Pega-AutoTest:08-01, Pega-AppDefinition:08-01, Pega-ImportExport:08-01, Pega-LocalizationTools:08-01, Pega-RuleRefactoring:08-01, Pega-ProcessArchitect:08-01, Pega-Portlet:08-01, Pega-Content:08-01, Pega-BigData:08-01, Pega-NLP:08-01, Pega-DecisionEngine:08-01, Pega-IntegrationArchitect:08-01, Pega-SystemArchitect:08-01, Pega-Desktop:08-01, Pega-EndUserUI:08-01, Pega-Survey:08-01, Pega-Social:08-01, Pega-SharedData:08-01, Pega-API:08-01, Pega-EventProcessing:08-01, Pega-Reporting:08-01, Pega-UIDesign:08-01, Pega-Gadgets:08-01, Pega-UIEngine:08-01, Pega-ProcessEngine:08-01, Pega-SearchEngine:08-01, Pega-IntegrationEngine:08-01, Pega-RulesEngine:08-01, Pega-Engine:08-01, PegaLegacyRules:01-01, Pega-ProCom:08-01, Pega-IntSvcs:08-01, Pega-WB:08-01, Pega-RULES:08-01,
ruleset = null , library = AOMUtilities , functionName = ConvertPegaDateTimeToISODateTime , parameters = [ Item: Primary.ExtractDate Pega type = datetime Java data type = BigDecimal],
currently isEdititing = false
PRNodeId on which its been assembled is prod-utility-1575610019550
the assembly date time in yyyyMMdd_HHmmss format is =
RUF being called from: pzInskey = RULE-OBJ-ACTIVITY VFUK-FW-AOMFW-DATA-UNICACAMPAIGNEVENTS PROCESSQUEUEITEM #GMT
pxInsId = !PROCESSQUEUEITEM
Steps to Reproduce
Deploy the new code in the Product file with an activity and a function.
A defect in Pegasystems’ code or rules.
Re-compiling the rules is the recognized method to solve sporadic issues. For more information, refer to: Troubleshooting Rule Utility Function issues Guide.
As a local-change, perform a system restart of all the nodes. This ensures that the LibraryMetadata of all the Rule-Utility-Library (RUL) rules are consistent across all nodes.
When a complete application import to a Clean installation is performed, references to a few Rule-Utility-Functions (RUF) are unresolved during the initial assembly. This occurs after the introduction of a new RUL or RUF on a node in a cluster and then generating that (RUL). The other nodes in the cluster had the incorrect LibraryMetaDataCache for that RUL. Therefore, assemblies on the other nodes are corrupt and displayed a runtime UnresolvedAssemblyError.
To resolve this, modify the method in which the Library subsystem processes the Note change events for Library Generation. This ensures that each node completely rebuilds the LibraryMetadata for that RUL, such that it contains all the RUFs.
Perform the below steps to prevent the issue from re-occurring:
- Re-Validate and Save the ruleset included in the Product rule after each import. Performing this immediately after each import prevents the error from displaying. The user does not have to wait until the error appears to re-validate and save.
- Specify the exact ruleset version in the application before the import, and update the version after the import.
When the user is importing a Product rule that contains rules only in RulesetX, then the user can specify the current highest ruleset version for RulesetX (such as, RulesetX:01-01-01) in the application the user is importing to.
When the system completes importing the rules to the new RulesetX version (such as, RulesetX:01-01-02), the user can update the application to use that version.
Published December 2, 2021
0% found this useful
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.