Xslt function is not part of a transaction

I have a workflow that is running as an atomic transaction. During the workflow another state machine workflow is called that contains a step with a start rule containing the AS:LookupValue xslt function. The lookup fails with a timeout, because it is not part of the transaction and doesn’t have access to the record.

2022-09-19 09:46:46,218 [6] DEBUG Origam.Workflow.WorkflowEngine - Evaluating startup rule for step 01_ReinitAccessoriesAndSetNotifyLessor_WhenGoingToUpdateAllotment
2022-09-19 09:47:16,258 [6] ERROR Origam.Workflow.WorkflowEngine - Rule evaluation failed. Rule: 'RentalTransactionId_HasRentalTransactionPendingAllotmentUpdate'

System.Exception: Rule evaluation failed. Rule: 'RentalTransactionId_HasRentalTransactionPendingAllotmentUpdate'

 ---> System.Xml.XPath.XPathException: Function 'AS:LookupValue()' has failed.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> Origam.OrigamException: Failed getting lookup text for lookup: 3303eb52-9dea-4f17-a3db-bff94e0bc3e1
 ---> System.Data.DataException: Exception was encountered while getting scalar value.  
Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
 ---> System.Data.SqlClient.SqlException (0x80131904): Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
 ---> System.ComponentModel.Win32Exception (258): The wait operation timed out.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteScalar()
   at Origam.DA.Service.AbstractSqlDataService.GetScalarValue(DataStructureQuery query, ColumnsInfo columnsInfo, IPrincipal principal, String transactionId) in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 953
 --- End of inner exception stack trace ---
   at Origam.DA.Service.AbstractSqlDataService.GetScalarValue(DataStructureQuery query, ColumnsInfo columnsInfo, IPrincipal principal, String transactionId) in D:\a\1\s\backend\Origam.DA.Service\AbstractSqlDataService.cs:line 1015
   at Origam.Workflow.DataServiceAgent.GetScalarValue(DataStructureQuery query, ColumnsInfo columnsInfo) in D:\a\1\s\backend\Origam.Workflow\Service Agents\DataServiceAgent.cs:line 161
   at Origam.Workflow.DataServiceAgent.Run() in D:\a\1\s\backend\Origam.Workflow\Service Agents\DataServiceAgent.cs:line 540
   at Origam.Workbench.Services.DataLookupService.GetDisplayText(Guid lookupId, Hashtable parameters, Boolean useCache, Boolean returnMessageIfNull, String transactionId) in D:\a\1\s\backend\Origam.Workbench.Services\DataLookupService.cs:line 348
   --- End of inner exception stack trace ---
   at Origam.Workbench.Services.DataLookupService.GetDisplayText(Guid lookupId, Hashtable parameters, Boolean useCache, Boolean returnMessageIfNull, String transactionId) in D:\a\1\s\backend\Origam.Workbench.Services\DataLookupService.cs:line 374
   at Origam.Workbench.Services.DataLookupService.GetDisplayText(Guid lookupId, Object lookupValue, Boolean useCache, Boolean returnMessageIfNull, String transactionId) in D:\a\1\s\backend\Origam.Workbench.Services\DataLookupService.cs:line 223
   at Origam.Rule.XsltFunctions.LegacyXsltFunctionContainer.LookupValue(String lookupId, String recordId) in D:\a\1\s\backend\Origam.Rule\XsltFunctions\LegacyXsltFunctionContainer.cs:line 350
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Origam.Rule.Xslt.OrigamXsltContext.FuncExtension.Invoke(XsltContext xsltContext, Object[] args, XPathNavigator docContext) in D:\a\1\s\backend\Origam.Rule\Xslt\OrigamXsltContext.cs:line 299
   at MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator)
   --- End of inner exception stack trace ---
   at MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator)
   at MS.Internal.Xml.XPath.StringFunctions.toString(XPathNodeIterator nodeIterator)
   at MS.Internal.Xml.XPath.StringFunctions.Evaluate(XPathNodeIterator nodeIterator)
   at MS.Internal.Xml.XPath.LogicalExpr.Evaluate(XPathNodeIterator nodeIterator)
   at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context)
   at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr)
   at Origam.Rule.XpathEvaluator.Evaluate(String xpath, Boolean isPathRelative, OrigamDataType returnDataType, XPathNavigator nav, XPathNodeIterator contextPosition) in D:\a\1\s\backend\Origam.Rule\XpathEvaluator.cs:line 82
   at Origam.Rule.RuleEngine.EvaluateRule(XPathRule rule, IXmlContainer context, XPathNodeIterator contextPosition) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 2179
   at Origam.Rule.RuleEngine.EvaluateRule(IRule rule, Object data, XPathNodeIterator contextPosition, Boolean parentIsTracing) in D:\a\1\s\backend\Origam.Rule\RuleEngine.cs:line 271
   --- 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.Workflow.WorkflowEngine.EvaluateStartRule(IWorkflowStep task) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 943
   at Origam.Workflow.WorkflowEngine.<>c__DisplayClass112_0.<EvaluateStartRuleTimed>b__0() in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 902
   at Origam.Workflow.ProfilingTools.ExecuteAndLogDuration(Func`1 funcToExecute, String logEntryType, String path, String id, Func`1 logOnlyIf) in D:\a\1\s\backend\Origam.Workflow\ProfilingTools.cs:line 108
   at Origam.Workflow.WorkflowEngine.EvaluateStartRuleTimed(IWorkflowStep task) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 901
   at Origam.Workflow.WorkflowEngine.ResumeWorkflow() in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 612
   at Origam.Workflow.WorkflowEngine.RunWorkflow() in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 558

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.