Advance Print Routing PackSlip only

I was going to say you could print each separately, but I know you were trying to avoid that.

This topic still interests me. I will play around with it and let you know.

Taking a step back, it seems like you really want a BPM to AutoPrint using the style with the Break/Routing enabled. The ReportStyle would have the B/R setup just to do the emailing, and the B/R not-enabled.

In the AutoPrint widget in the DD, you can set the “PrintOptions” parameter to S to have it only print the Pack Slip, and the “SSRSEnableRouting” to true

image

image

In summary:

  • You’d have just one report style with the most basic B/R setup, but not enabled
  • With the B/R not enabled, selecting that style on the Print Pack Slip form causes the "Routing box to be unchecked.
  • A DD with some basic condition check, has an AutotPrint widget set to print that style, just the bpack slip, and routing enabled.
  • Printing the packslip with that style (and the routing box unchecked) acts like a normal print, honoring the “Pack Slip, Labels, or Both” setting.
  • when the DD fires, the break routing setup in the style happens.

Basically, make two different print tasks. The first is the normal one to print the slips and/or labels, and the second (triggered by the fiirst), just does the routing.

3 Likes

My man! Nice, didn’t really think outside the box on this one and go the route of a BPM. This would definitely work!

Thank you, Calvin. I will try this out later this week and let you all know.

Hello Calvin,

I finally got the time to try out your suggestion but I’m hitting a snag. I get a Business Logic Error on “PackNumList”

Failed to submit autoprint report. Error: Business Logic Error
Business Layer Exception
BLException
Correlation ID: 00000000-0000-0000-0000-000000000000
Description: Shipment not available.
Program: Erp.Services.Rpt.PackingSlipPrint.dll
Method: ExValidateParam
Line Number: 128
Column Number: 17
Table: RptParam
Field: PackNumList
Server Trace Stack: at Erp.Services.Rpt.PackingSlipPrintSvc.ExValidateParam() in C:_Releases\ERP\RL10.2.500.0\Source\Server\Services\Rpt\PackingSlipPrint\PackingSlipPrint.cs:line 128
at Ice.Core.TaskServiceBase1.SubmitUsingTaskAgent(IceRow parameterRow, String agentID, Int64 agentSchedNum, Int32 agentTaskNum, String maintProgram) in C:\_Releases\ICE\UD10.2.500.8FW\Source\Server\Internal\Lib\TaskLib\TaskBase\TaskServiceBase.cs:line 320 at Erp.Services.Rpt.PackingSlipPrintSvc.SubmitToAgent(PackingSlipPrintTableset ds, String agentID, Int64 agentSchedNum, Int32 agentTaskNum, String maintProgram) in C:\_Releases\ERP\RL10.2.500.0\Source\Server\Services\Rpt\PackingSlipPrint\PackingSlipPrint.Designer.cs:line 112 at Epicor.Customization.Bpm.DB14BF3DE5AA3B413793E2564718C3E9BB.PostTranDirective_CustomerPortal_D9B64318BCC54EEF9A617DBFE37F5815.A001_AutoPrintAction() at Epicor.Customization.Bpm.DB14BF3DE5AA3B413793E2564718C3E9BB.PostTranDirective_CustomerPortal_D9B64318BCC54EEF9A617DBFE37F5815.ExecuteCore() at Epicor.Customization.Bpm.DirectiveBase3.Execute(TParam parameters) in C:_Releases\ICE\RL10.2.500.0FW\Source\Server\Internal\Lib\Epicor.Customization.Bpm\DirectiveBase.Generic.cs:line 146
at System.Linq.Enumerable.All[TSource](IEnumerable1 source, Func2 predicate)
at Epicor.Customization.Bpm.CustomizationBase23.Execute(TParam parameters) in C:\_Releases\ICE\RL10.2.500.0FW\Source\Server\Internal\Lib\Epicor.Customization.Bpm\CustomizationBase2.cs:line 87 at Epicor.Customization.Bpm.Standard.MonitoringSessionManager.ProcessCollectedData(IceDataContext db, IRowChangesCollection data, IDirectiveEnabler enabler) in C:\_Releases\ICE\RL10.2.500.0FW\Source\Server\Internal\Lib\Epicor.Customization.Bpm\Standard\MonitoringSessionManager.cs:line 145 at Epicor.Customization.Bpm.SvcFacadeBase3.Epicor.Hosting.IBpmReadyService.FinalizeCall(Object state, Boolean fail) in C:_Releases\ICE\RL10.2.500.0FW\Source\Server\Internal\Lib\Epicor.Customization.Bpm\SvcFacadeBase.Generic.cs:line 227
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func`2 func) in C:_Releases\ICE\UD10.2.500.8FW\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 32
at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) in C:_Releases\ICE\UD10.2.500.8FW\Source\Framework\Epicor.System\Hosting\Wcf\EpiOperationInvoker.cs:line 23
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.OnReceive(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete(Object state)
at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object state)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.Security.NegotiateStream.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ReadCallback(AsyncProtocolRequest asyncRequest)
at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result)
at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes)
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.ConnectionStream.IOAsyncResult.OnAsyncIOComplete(Object state)
at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

So would you know what am I to select here?
image

Thanks.

If you want just the one packslip number, use the PackNum field, with you packnum

1 Like