I’m trying to Auto Print an email with the Stock status report attachment (.pdf) with a Data Directive. It should be triggered when a custom field in the Warehouse table is changed from false to true. When i manually change the checkbox from false to true, the Auto Print works. However when i update the field from false to true from the Epicor REST API the Auto Print doesn’t work.
I’ve tried using both the OData method PATCH /Warehses({Company},{WarehouseCode}) and the Custom Method Update. Both API calls did change the checkbox, but still return an error when trying to execute the Data Directive. The error is as follows:
<![CDATA[
Failed to run autoprint report. Error: Business Logic Error
Business Layer Exception
BusinessObjectException
Description: Failed to run autoprint report. Error: System.Data.ConstraintException: This property cannot be set to a null value.
at System.Data.EntityUtil.ThrowPropertyIsNotNullable(String propertyName)
at Ice.Tables.SysTaskParam.set_ParamCharacter(String value) in c:_Releases\ICE\3.1.600.0\Source\Server\Db\Ice.Data.Model\IceContext.Model.cs:line 127538
at Ice.Core.TaskServiceBase1.setParmValue(IceRow paramRow, IceColumn column, LinqRow rptDefRow, Boolean setDefRow, Boolean setToken) in C:\_Releases\ICE\3.1.600.16\Source\Server\Internal\Lib\TaskLib\TaskBase\TaskServiceBase.cs:line 1185 at Ice.Core.TaskServiceBase
1.WriteSysTask(IceRow paramRow) in C:_Releases\ICE\3.1.600.16\Source\Server\Internal\Lib\TaskLib\TaskBase\TaskServiceBase.cs:line 268
at Ice.Core.RptServiceBase1.WriteSysTask(IceRow paramRow) in C:\_Releases\ICE\3.1.600.16\Source\Server\Internal\Lib\TaskLib\RptBase\RptServiceBase.cs:line 129 at CallSite.Target(Closure , CallSite , Object , IceRow ) at Ice.Lib.AutoPrint.SubmitImmediateAutoPrintReport.GetSysTaskNumberAndTaskProgram(Object reportService, IceRow reportParameters, Int64& sysTaskNumber, String& taskProgram) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\BAM\AutoPrint\SubmitImmediateAutoPrintReport.cs:line 63 at Ice.Lib.AutoPrint.SubmitImmediateAutoPrintReport.SubmitImmediateReport(IceRow reportParameters, Object reportServiceBO) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\BAM\AutoPrint\SubmitImmediateAutoPrintReport.cs:line 44 Program: Ice.Lib.BAM.dll Method: SubmitImmediateReport Line Number: 44 Column Number: 16 Server Trace Stack: at Ice.Lib.AutoPrint.SubmitImmediateAutoPrintReport.SubmitImmediateReport(IceRow reportParameters, Object reportServiceBO) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\BAM\AutoPrint\SubmitImmediateAutoPrintReport.cs:line 44 at Epicor.Customization.Bpm.DBA3C30100D7934B92AC3AE72F92E07B1B.PostTranDirective_Voorraad_9213CE89D62B4B279D3ED9F0862F8CD1.A001_AutoPrintAction() at Epicor.Customization.Bpm.DBA3C30100D7934B92AC3AE72F92E07B1B.PostTranDirective_Voorraad_9213CE89D62B4B279D3ED9F0862F8CD1.ExecuteCore() at Epicor.Customization.Bpm.DirectiveBase
3.Execute(TParam parameters) in c:_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\DirectiveBase.Generic.cs:line 129
at System.Linq.Enumerable.All[TSource](IEnumerable1 source, Func
2 predicate)
at Epicor.Customization.Bpm.CustomizationBase23.Execute(TParam parameters) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\CustomizationBase2.cs:line 71 at Epicor.Customization.Bpm.Standard.MonitoringSessionManager.ProcessCollectedData(IceContext db, IRowChangesCollection data, IDirectiveEnabler enabler) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\Standard\MonitoringSessionManager.cs:line 130 at Epicor.Customization.Bpm.SvcFacadeBase
3.Epicor.Hosting.IBpmReadyService.FinalizeCall(Object state, Boolean fail) in c:_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\SvcFacadeBase.Generic.cs:line 205
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 32 at Ice.Hosting.RestApi.OperationInvokeHelper.CallInvoker(IceDataContext dataContext, Type svcType, MethodInfo mi, Object[] inputs, Boolean isRoot) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.Ice\Hosting\ServiceCaller\OperationInvokeHelper.cs:line 282 at Ice.Hosting.RestApi.OperationInvokeHelper.MakeServiceCall(IceDataContext dataContext, Type svcType, MethodInfo mi, Object[] parameters) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.Ice\Hosting\ServiceCaller\OperationInvokeHelper.cs:line 240 at Epicor.RESTApi.DataSources.IceServiceCaller.CallCustomMethod(TypeMapping typeMapping, ContextInfo context, String methodName, Object inputObject) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.RESTApi\DataSources\IceServiceCaller.cs:line 250 at Epicor.RESTApi.Controllers.CustomActionController.CustomMethod(Object input) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.RESTApi\Controllers\CustomActionController.cs:line 25 at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary
2 arguments, CancellationToken cancellationToken)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.Start[TStateMachine](TStateMachine& stateMachine) at System.Web.Http.Controllers.ApiControllerActionInvoker.InvokeActionAsyncCore(HttpActionContext actionContext, CancellationToken cancellationToken) at System.Web.Http.Controllers.ApiControllerActionInvoker.InvokeActionAsync(HttpActionContext actionContext, CancellationToken cancellationToken) at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>b__0(ActionInvoker innerInvoker) at System.Web.Http.Controllers.ActionFilterResult.<>c__DisplayClass10
1.b__f()
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.Start[TStateMachine](TStateMachine& stateMachine) at System.Web.Http.Filters.ActionFilterAttribute.CallOnActionExecutedAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func
1 continuation)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.Start[TStateMachine](TStateMachine& stateMachine) at System.Web.Http.Filters.ActionFilterAttribute.ExecuteActionFilterAsyncCore(HttpActionContext actionContext, CancellationToken cancellationToken, Func
1 continuation)
at System.Web.Http.Filters.ActionFilterAttribute.System.Web.Http.Filters.IActionFilter.ExecuteActionFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func1 continuation) at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1.Start[TStateMachine](TStateMachine& stateMachine)
at System.Web.Http.Controllers.ActionFilterResult.ExecuteAsync(CancellationToken cancellationToken)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.Start[TStateMachine](TStateMachine& stateMachine) at System.Web.Http.Filters.AuthorizationFilterAttribute.ExecuteAuthorizationFilterAsyncCore(HttpActionContext actionContext, CancellationToken cancellationToken, Func
1 continuation)
at System.Web.Http.Filters.AuthorizationFilterAttribute.System.Web.Http.Filters.IAuthorizationFilter.ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func1 continuation) at System.Web.Http.Controllers.AuthorizationFilterResult.ExecuteAsync(CancellationToken cancellationToken) at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1.Start[TStateMachine](TStateMachine& stateMachine)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Web.Http.HttpServer.d__0.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.Start[TStateMachine](TStateMachine& stateMachine) at System.Web.Http.HttpServer.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Web.Http.Owin.HttpMessageHandlerAdapter.<InvokeCore>d__0.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.Web.Http.Owin.HttpMessageHandlerAdapter.InvokeCore(IOwinContext context, IOwinRequest owinRequest, IOwinResponse owinResponse) at Epicor.RESTApi.ConfigureStartup.<>c__DisplayClass3_0.<ConfigureIceAuth>b__0(IOwinContext context, Func
1 next) in C:_Releases\ICE\3.1.600.16\Source\Framework\Epicor.RESTApi\Startup.cs:line 140
at Microsoft.Owin.Mapping.MapWhenMiddleware.d__0.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.Owin.Mapping.MapWhenMiddleware.Invoke(IDictionary2 environment) at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.<RunApp>d__5.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.RunApp(Func
2 entryPoint, IDictionary2 environment, TaskCompletionSource
1 tcs, StageAsyncResult result)
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent(Object sender, EventArgs e, AsyncCallback cb, Object extradata)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error)
at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb)
at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus)
at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
(BusinessObjectException)
at Epicor.Customization.Bpm.DirectiveBase3.ProcessRememberedExceptions() in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\DirectiveBase.Generic.cs:line 247 at Epicor.Customization.Bpm.DirectiveBase
3.Execute(TParam parameters) in c:_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\DirectiveBase.Generic.cs:line 153
at System.Linq.Enumerable.All[TSour
ce](IEnumerable1 source, Func
2 predicate)
at Epicor.Customization.Bpm.CustomizationBase23.Execute(TParam parameters) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\CustomizationBase2.cs:line 71 at Epicor.Customization.Bpm.Standard.MonitoringSessionManager.ProcessCollectedData(IceContext db, IRowChangesCollection data, IDirectiveEnabler enabler) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\Standard\MonitoringSessionManager.cs:line 130 at Epicor.Customization.Bpm.SvcFacadeBase
3.Epicor.Hosting.IBpmReadyService.FinalizeCall(Object state, Boolean fail) in c:_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\SvcFacadeBase.Generic.cs:line 205
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 47 at Ice.Hosting.RestApi.OperationInvokeHelper.CallInvoker(IceDataContext dataContext, Type svcType, MethodInfo mi, Object[] inputs, Boolean isRoot) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.Ice\Hosting\ServiceCaller\OperationInvokeHelper.cs:line 282 at Ice.Hosting.RestApi.OperationInvokeHelper.MakeServiceCall(IceDataContext dataContext, Type svcType, MethodInfo mi, Object[] parameters) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.Ice\Hosting\ServiceCaller\OperationInvokeHelper.cs:line 240 at Epicor.RESTApi.DataSources.IceServiceCaller.CallCustomMethod(TypeMapping typeMapping, ContextInfo context, String methodName, Object inputObject) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.RESTApi\DataSources\IceServiceCaller.cs:line 250 at Epicor.RESTApi.Controllers.CustomActionController.CustomMethod(Object input) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.RESTApi\Controllers\CustomActionController.cs:line 25 at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary
2 arguments, CancellationToken cancellationToken)
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.HttpServer.d__0.MoveNext()
]]>