Path missing in server log for rule error

After optimization of error logging in server log, the path/name of a workflow step is missing when a rule fails.

2023-04-25 10:29:08,258 [312] ERROR Origam.Workflow.WorkflowEngine - Regelauswertung fehlgeschlagen. Regel: 'SR_DataTransPayment_AliasCCNotReturned'

System.Exception: Regelauswertung fehlgeschlagen. Regel: 'SR_DataTransPayment_AliasCCNotReturned'

 ---> System.Xml.XPath.XPathException: Function 'AS:LookupValue()' has failed.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> Origam.OrigamException: Lookup-Text für Lookup nicht verfügbar: e1d9b4f4-82af-4c27-b18b-3363741ec0e7
 ---> System.Data.DataException: Beim Erhalt eines Einzelwerts ist ein Ausnahmefall aufgetreten. 
Error occured when setting parameter: @OrganizationBusinessPartner_parId to value: 
 ---> System.Exception: Error occured when setting parameter: @OrganizationBusinessPartner_parId to value: 
 ---> System.FormatException: Unrecognized Guid format.
   at System.Guid.GuidResult.SetFailure(Boolean overflow, String failureMessageID)
   at System.Guid.TryParseGuid(ReadOnlySpan`1 guidString, GuidResult& result)
   at System.Guid..ctor(String g)
   at Origam.DA.Service.AbstractDataService.BuildParameters(QueryParameterCollection parameters, IDataParameterCollection dsParameters, UserProfile currentProfile) in D:\a\1\s\backend\Origam.DA.Service\AbstractDataService.cs:line 410
   --- End of inner exception stack trace ---
   at Origam.DA.Service.AbstractDataService.BuildParameters(QueryParameterCollection parameters, IDataParameterCollection dsParameters, UserProfile currentProfile) in D:\a\1\s\backend\Origam.DA.Service\AbstractDataService.cs:line 587
   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 946
   --- 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 178
   at Origam.Workflow.DataServiceAgent.Run() in D:\a\1\s\backend\Origam.Workflow\Service Agents\DataServiceAgent.cs:line 610
   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 301
   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 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.Workflow.WorkflowEngine.EvaluateStartRule(IWorkflowStep task) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 950
   at Origam.Workflow.WorkflowEngine.EvaluateStartRuleTimed(IWorkflowStep task) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 0
   at Origam.Workflow.WorkflowEngine.ResumeWorkflow() in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 612
   at Origam.Workflow.WorkflowEngine.engineTask_Finished(Object sender, WorkflowEngineTaskEventArgs e) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 1520
   at Origam.Workflow.Tasks.ServiceMethodCallEngineTask.Execute() in D:\a\1\s\backend\Origam.Workflow\Tasks\ServiceMethodCallEngineTask.cs:line 95
   at Origam.Workflow.WorkflowEngine.engineTask_Finished(Object sender, WorkflowEngineTaskEventArgs e) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 1520
   at Origam.Workflow.WorkflowEngine.engineTask_Finished(Object sender, WorkflowEngineTaskEventArgs e) in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 1520
   at Origam.Workflow.Tasks.ServiceMethodCallEngineTask.Execute() in D:\a\1\s\backend\Origam.Workflow\Tasks\ServiceMethodCallEngineTask.cs:line 95
   at Origam.Workflow.WorkflowEngine.RunWorkflow() in D:\a\1\s\backend\Origam.Workflow\Engine.cs:line 558

We need some way of recording the workflow progress. Maybe write the current workflow and step into a List or StringBuilder. The recorded stacktrace will then be appended to exception message if an exception occurs.

The fix should be in 2022.4 too.

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