Error Receipt Entry

Hey Everyone! We’re running into an error when trying to receive a shipment. The PO is using “Standard” as a purchase type, and the receiving lady had just received another PO right before this one which was also “Standard”. I attempted to create a new generic purchase type as referenced Error in receipt entry - Yahoo Archive - Epicor User Help Forum but that didn’t seem to help. Any assistance is greatly appreciated, error text below:

Purchase Type Code references invalid value.
Exception caught in: Epicor.ServiceModel

Error Detail

Description: Purchase Type Code references invalid value.
Program: Epicor.Ice.dll
Method: ValidateReferentialIntegrity
Line Number: 589
Column Number: 21
Table: RcvDtl
Field: PurchCode
Server Trace Stack: at Ice.Core.BizRuleEngine.ValidateReferentialIntegrity() in C:_Releases\ICE\RL3.2.200.0\Source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 589
at Ice.Core.BizRuleEngine.ValidateRow() in C:_Releases\ICE\RL3.2.200.0\Source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 179
at Ice.Core.BizRuleEngine.Validate(IceRow oldRow, IceRow newRow, LinqRow curRow) in C:_Releases\ICE\RL3.2.200.0\Source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 124
at Erp.Services.BO.ReceiptSvc.CommitRcvDtl(Int32 vendorNum, String purPoint, String packSlip, ReceiptTableset& ds) in C:_Releases\ERP\UD10.2.200.20\Source\Server\Services\BO\Receipt\Receipt.cs:line 20739
at Erp.Services.BO.ReceiptSvcFacade.CommitRcvDtl(Int32 vendorNum, String purPoint, String packSlip, ReceiptTableset& ds) in C:_Releases\ERP\UD10.2.200.20\Source\Server\Services\BO\Receipt\ReceiptSvcFacade.cs:line 5435
at SyncInvokeCommitRcvDtl(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\ICE3.2.200.20\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59 at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in C:_Releases\ICE\ICE3.2.200.20\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\ICE3.2.200.20\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.SecurityChannelListener1.ReceiveItemAndVerifySecurityAsyncResult2.InnerTryReceiveCompletedCallback(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.ReceiptImpl.CommitRcvDtl(Int32 vendorNum, String purPoint, String packSlip, ReceiptDataSet ds)
at Erp.Adapters.ReceiptAdapter.CommitRcvDtl(Int32 vendorNum, String purPoint, String packSlip)

In case anyone comes along searching for this: The resolution was to delete the PO line and re-create it. Turns out this PO had been created in Vantage 8, where the PODetail.PurchCode field could be edited by the user. Someone had typed data into that field, and it carried over during our conversion to E10.