Buy to Order Releases has not been recieved

So, shipping team is shiping an order that is Buy to Order and we are getting this error:

At least one of the Buy To Order PO Releases has not been received.

Exception caught in: Epicor.ServiceModel

Error Detail

Description: At least one of the Buy To Order PO Releases has not been received.
Program: Erp.Services.BO.CustShip.dll
Method: PreCreateMassShipDtl
Line Number: 24195
Column Number: 17
Server Trace Stack: at Erp.Services.BO.CustShipSvc.PreCreateMassShipDtl(Int32 packNum, Int32 orderNum, String& warnMsg, CustShipTableset& ds) in c:_Releases\ERP\UD10.1.400.37\Source\Server\Services\BO\CustShip\CustShip.cs:line 24195
at Epicor.Customization.Bpm.BO6F4881A408754EAE9B4B55CDE4B93C43.PreCreateMassShipDtlImpl.ExecuteBase(PreCreateMassShipDtlParameters parameters)
at Epicor.Customization.Bpm.MethodCustomizationBase23.RunDirectives(TParam parameters) in c:\_Releases\ICE\3.1.400.37\Source\Server\Internal\Lib\Epicor.Customization.BPM\MethodCustomizationBase2.cs:line 218 at Epicor.Customization.Bpm.CustomizationBase23.Execute(TParam parameters) in c:_Releases\ICE\3.1.400.37\Source\Server\Internal\Lib\Epicor.Customization.BPM\CustomizationBase2.cs:line 77
at Epicor.Customization.Bpm.BO6F4881A408754EAE9B4B55CDE4B93C43.CustShipSvcCustomization.PreCreateMassShipDtl(Int32 packNum, Int32 orderNum, String& warnMsg, CustShipTableset& ds)
at Erp.Services.BO.CustShipSvcFacade.PreCreateMassShipDtl(Int32 packNum, Int32 orderNum, String& warnMsg, CustShipTableset& ds) in c:_Releases\ERP\UD10.1.400.37\Source\Server\Services\BO\CustShip\CustShipSvcFacade.cs:line 1856
at SyncInvokePreCreateMassShipDtl(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func2 func) in c:\_Releases\ICE\3.1.400.37\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59 at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in c:_Releases\ICE\3.1.400.37\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 28
at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) in c:_Releases\ICE\3.1.400.37\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)

Client Stack Trace

at Epicor.ServiceModel.Channels.ImplBase`1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets)
at Erp.Proxy.BO.CustShipImpl.PreCreateMassShipDtl(Int32 packNum, Int32 orderNum, String& warnMsg, CustShipDataSet ds)
at Erp.Adapters.CustShipAdapter.PreCreateMassShipDtl(Int32 packNum, Int32 orderNum, String& warnMsg)

Ive had this error before.
you need to receive the buy to order PO before you can ship. you have the PO linked to a sales order, and ship from the same bin that you received to on the PO.

1 Like

In the sales order–>Releases it says PO Not Linked. So, how would I link the PO to the Order?

is the Buy to Order check box marked as true ? on the sales order release.

Yes

take that off.
Epicor thinks that you are buying to the order. so it is expecting a receipt before shipment.

1 Like

Gotcha. Interesting. We do buy the part and then sell it via dropship for our customers. But Epicor sees this slightly differnet than that.

you can have a Buy to order part - you are going to buy it from a vendor like drop ship but you have having the part come to your location first and your team is shipping it out.

or drop ship; same process but the inventory is not coming to your location.

all that is controlled by the check boxes
and you can set it on the part or control it on each release on the sales order.
if you want to default as a drop ship, set it on the part (part maintenance)

Yeah, we order it, comes to our location, and then we ship it to where ever our customers want us to. Seems like it would be better just to make this a standard part instead of a Buy to Order and bypass all the current mess.

if you buy it and ship it as soon as it comes in, then that is buy to order.

if you buy it, receive it, stock it on your inventory, then ship when there is demand. That is a standard part.

i only use buy to order for something that we dont stock, but we dont drop ship.
we never keep an on hand quantity.