2022.3 - rule error - LookupValue

We have problems with evaluating rules on 2022.3. which worked on 2022.1 correctly.

Server error occurred. Please check server log for more details:
Vykonání pravidla 'BusinessPartner_DenyUpdateBranchData_BasicData' se nezdařilo.

Could not resolve xslt function "LookupValue" with namespace prefix ""
2022-09-22 18:07:38,673 [10] ERROR Origam.Server.Controller.AbstractController - Vykonání pravidla 'BusinessPartner_DenyUpdateBranchData_BasicData' se nezdařilo.

System.Exception: Vykonání pravidla 'BusinessPartner_DenyUpdateBranchData_BasicData' se nezdařilo.

 ---> System.Exception: Could not resolve xslt function "LookupValue" with namespace prefix ""
   at Origam.Rule.Xslt.OrigamXsltContext.ResolveFunction(String prefix, String name, XPathResultType[] ArgTypes) in D:\a\1\s\backend\Origam.Rule\Xslt\OrigamXsltContext.cs:line 108
   at MS.Internal.Xml.XPath.FunctionQuery.SetXsltContext(XsltContext context)
   at MS.Internal.Xml.XPath.LogicalExpr.SetXsltContext(XsltContext context)
   at MS.Internal.Xml.XPath.CompiledXpathExpr.SetContext(IXmlNamespaceResolver nsResolver)
   at Origam.Rule.XpathEvaluator.Evaluate(String xpath, Boolean isPathRelative, OrigamDataType returnDataType, XPathNavigator nav, XPathNodeIterator contextPosition, String transactionId) in D:\a\1\s\backend\Origam.Rule\XpathEvaluator.cs:line 217
   at Origam.Rule.RuleEngine.EvaluateRule(XPathRule rule, IXmlContainer context, XPathNodeIterator contextPosition) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 2165
   at Origam.Rule.RuleEngine.EvaluateRule(IRule rule, Object data, XPathNodeIterator contextPosition, Boolean parentIsTracing) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 314
   --- End of inner exception stack trace ---
   at Origam.Rule.RuleEngine.EvaluateRule(IRule rule, Object data, XPathNodeIterator contextPosition, Boolean parentIsTracing) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 314
   at Origam.Rule.RuleEngine.RowLevelSecurityState(XmlContainer originalData, XmlContainer actualData, String field, CredentialType type, Guid entityId, Guid fieldId, Boolean isNewRow) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 1898
   at Origam.Rule.RuleEngine.RowLevelSecurityState(DataRow row, Object profileId, Guid formId) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 1706
   at Origam.Server.SessionStore.RowStates(String entity, Object[] ids) in D:\a\1\s\backend\Origam.Server\Session Stores\SessionStore.cs:line 1318
   at Origam.Server.ServerCoreUIService.RowStates(RowStatesInput input) in D:\a\1\s\backend\Origam.Server\ServerCoreUIService.cs:line 446
   at Origam.Server.Controller.UIServiceController.<>c__DisplayClass20_0.<RowStates>b__0() in D:\a\1\s\backend\Origam.Server\Controller\UIServiceController.cs:line 201
   at Origam.Server.Controller.AbstractController.RunWithErrorHandler(Func`1 func) in D:\a\1\s\backend\Origam.Server\Controller\AbstractController.cs:line 115

From release notes 2022.3 section Breaking changes:

1 Like

@washi - any idea how to identify all occurrences of AS function without AS: in XPath ?

I guess full text search for common functions in Rule folder of the model.

Try Notepad++, Find in Files and select the model folder and check for regular expression (<?!AS):.

@washi I think it is not only in Rule folders, because Xpath is used in Workflow ContextStore as well.
Finally I use FNR tool with regex ^(?!.*AS:isnull).*xPath.*isnull.* for each AS function

1 Like