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