Error on system start
During system startup, you get the following error in the logs.
(internal.library.LibLibraryDef) ERROR - Library Pega-RulesEngine.ReportingUtils
has inconsistent Rule-Utility-Function key / implementation issues.
These may be the result of merging the Function from another ruleset.
Please resave all prototypes into a higher ruleset and remove the bad functions. Duplicate function signatures for one pxInsName: REPORTINGUTILS!PYPROCESSDATETIMEFILTERS
selecting: pyProcessDateTimeFilters--(Strin221e11874736cdea202a08c571e16062 : RULE-UTILITY-FUNCTION REPORTINGUTILS PYPROCESSDATETIMEFILTERS #20120713T020227.644 GMT (Pega-RulesEngine:06-03-01)
selecting: pyProcessDateTimeFilters--(Strin221e11874736cdea202a08c571e16062 : RULE-UTILITY-FUNCTION REPORTINGUTILS PYPROCESSDATETIMEFILTERS #20121019T172843.382 GMT (Pega-RulesEngine:06-03-10)
selecting: pyProcessDateTimeFilters--(Strinb9f3a363e5a286056168b0e88be23f79 : RULE-UTILITY-FUNCTION REPORTINGUTILS PYPROCESSDATETIMEFILTERS #20130703T115023.657 GMT (Pega-RulesEngine:06-03-15)
16:33:07,020 INFO [STDOUT] 2015-06-26 16:33:07,020 [<hostname>] [ STANDARD] [ ] (dictionary.ConclusionCacheImpl) INFO - Starting conclusion pre-load...
Steps to Reproduce
Restart the system.
The root cause of this problem is a defect in Pegasystems’ code/rules. It is invalid to have multiple copies of a Rule-Utility-Function (RUF) with the same pxInsName where the signature is different among the multiple copies and a reference to one of the signatures is ambiguous, i.e. it cannot be determined which RUF is being used. In this case the RUF PYPROCESSDATETIMEFILTERS was given an extra argument (bringing the total number of arguments to 8) as part of HFix-8285. Although all relevant references to the RUF were updated to include the extra argument as part of the hotfix, a test activity which is not used was inadvertently left in the system with a reference to the old RUF. This activity does not include the extra argument in the function call, resulting in an ambiguous reference.
This issue is resolved through the following local change: You must confirm that you do not have any references to PYPROCESSDATETIMEFILTERS in your own code which reference the older signature which is missing the additional argument. If you have any such references, you must update them to include the new argument. Once you do that, the only remaining reference (which is triggering the error message) is the one in the obsolete activity pzResolveJoinConditionsTest. You can either leave that reference alone (which means the harmless error message will continue to appear), or you can delete it directly from pr4_rules_vw using a SQL application; this will stop the error from continuing to appear.