I have a new worker that needs to be able to make Purchase Order Entry. Their Buyer ID is their name. however, I get the error that it needs to be at least 8 characters long. So, I had them put in their first initial then last name as that is shorter than 8 charac. Said it was invalid name. Everyone else in the company has their buyer id as their name. So any ideas why this gets raised?
This does sound strange for BuyerID x(8) & Name x(30) fields.
You should be able to enter 1 thru 8 characters for BuyerID, and 1 thru 30 characters for the Name.
If you click on detail button in the error message is there any more info?
Or could you have any active customizations, maybe extended properties or BPM?
Here’s thew hole code. I do see where it says customization, but I can’t find that one in my lsit. So a little confused at the moment.
Message No.: 1
Description: The maximum number of characters allowed for Buyer ID is 8
Program: Epicor.Ice.dll
Method: ValidateColumn
Line Number: 303
Column Number: 17
Table: POHeader
Field: BuyerID
Server Trace Stack: at Ice.Core.BizRuleEngine.ValidateColumn(IceColumn column, String columnName, Object columnValue) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 303
at Ice.Core.BizRuleEngine.ValidateRow() in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 167
at Ice.Core.BizRuleEngine.Validate(IceRow oldRow, IceRow newRow, LinqRow curRow) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 119
at Ice.Services.Trace.TablesetProfilingCollector.DoRowEventTrace(String tableName, String methodName, Int32 rowCount, Action action) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetProfilingCollector.cs:line 144
at Ice.TablesetBound3.CreateRow(IceDataContext dataContext, Int32 tableNum, IIceTable table, IceRow newTablesetRow, TablesetProfilingCollector parentTraceCollector) in c:\_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 1011 at Ice.TablesetBound
3.WriteTable(IceDataContext dataContext, Int32 tableIndex, IIceTable table, TablesetProfilingCollector parentTraceCollector) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 884
at Ice.TablesetBound3.InnerUpdate(IceDataContext dataContext, TFullTableset tableset) in c:\_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 795 at Erp.Services.BO.POSvc.Update(POTableset& ds) in c:\_Releases\ERP\UD10.1.400.19\Source\Server\Services\BO\PO\PO.Designer.cs:line 3177 at Epicor.Customization.Bpm.MethodCustomizationBase2
3.RunDirectives(TParam parameters) in c:_Releases\ICE\3.1.400.19\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.19\source\Server\Internal\Lib\Epicor.Customization.BPM\CustomizationBase2.cs:line 77 at Epicor.Customization.Bpm.BO3947B01B6DC04A0393D471512B112858.POSvcCustomization.Update(POTableset& ds) at Erp.Services.BO.POSvcFacade.Update(POTableset& ds) in c:\_Releases\ERP\UD10.1.400.19\Source\Server\Services\BO\PO\POSvcFacade.cs:line 329 at SyncInvokeUpdate(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func
2 func) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func`2 func) in c:_Releases\ICE\3.1.400.19\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.19\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.ProcessMessage31(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.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.Security.NegotiateStream.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ReadCallback(AsyncProtocolRequest asyncRequest)
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.ServiceModel.Channels.SocketConnection.OnReceiveAsync(Object sender, SocketAsyncEventArgs eventArgs)
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)
Message No.: 2
Description: BuyerID references invalid value.
Program: Epicor.Ice.dll
Method: ValidateReferentialIntegrity
Line Number: 612
Column Number: 21
Table: POHeader
Field: BuyerID
Server Trace Stack: at Ice.Core.BizRuleEngine.ValidateReferentialIntegrity() in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 612
at Ice.Core.BizRuleEngine.Validate(IceRow oldRow, IceRow newRow, LinqRow curRow) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 119
at Ice.Services.Trace.TablesetProfilingCollector.DoRowEventTrace(String tableName, String methodName, Int32 rowCount, Action action) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetProfilingCollector.cs:line 144
at Ice.TablesetBound3.CreateRow(IceDataContext dataContext, Int32 tableNum, IIceTable table, IceRow newTablesetRow, TablesetProfilingCollector parentTraceCollector) in c:\_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 1011 at Ice.TablesetBound
3.WriteTable(IceDataContext dataContext, Int32 tableIndex, IIceTable table, TablesetProfilingCollector parentTraceCollector) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 884
at Ice.TablesetBound3.InnerUpdate(IceDataContext dataContext, TFullTableset tableset) in c:\_Releases\ICE\3.1.400.19\source\Framework\Epicor.Ice\Services\TablesetBound.cs:line 795 at Erp.Services.BO.POSvc.Update(POTableset& ds) in c:\_Releases\ERP\UD10.1.400.19\Source\Server\Services\BO\PO\PO.Designer.cs:line 3177 at Epicor.Customization.Bpm.MethodCustomizationBase2
3.RunDirectives(TParam parameters) in c:_Releases\ICE\3.1.400.19\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.19\source\Server\Internal\Lib\Epicor.Customization.BPM\CustomizationBase2.cs:line 77 at Epicor.Customization.Bpm.BO3947B01B6DC04A0393D471512B112858.POSvcCustomization.Update(POTableset& ds) at Erp.Services.BO.POSvcFacade.Update(POTableset& ds) in c:\_Releases\ERP\UD10.1.400.19\Source\Server\Services\BO\PO\POSvcFacade.cs:line 329 at SyncInvokeUpdate(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func
2 func) in c:_Releases\ICE\3.1.400.19\source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func`2 func) in c:_Releases\ICE\3.1.400.19\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.19\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.ProcessMessage31(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.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.Security.NegotiateStream.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ReadCallback(AsyncProtocolRequest asyncRequest)
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.ServiceModel.Channels.SocketConnection.OnReceiveAsync(Object sender, SocketAsyncEventArgs eventArgs)
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.POImpl.Update(PODataSet ds)
at Erp.Adapters.POAdapter.OnUpdate()
at Ice.Lib.Framework.EpiBaseAdapter.Update()
at Erp.UI.App.POEntry.Transaction.Update()
Got it working. Did some digging and realized my ignorance of the system caused me to bypass the Buyer Maintenance. Once I added them in, it was working great.