We are on 10.2.200.40 and I just deployed a dashboard where I added a Customization layer on top of it. When our users are attempting to adjust column widths and then Tools >> Save Layouts, it is giving an error. The main problem is, I don’t know of a Key 3 being anywhere in my BAQ or dashboard.
Error:
The maximum number of characters allowed for Key 3 is 50
The maximum number of characters allowed for Key 3 is 50
Exception caught in: Epicor.ServiceModel
Error Detail
============
Description: The maximum number of characters allowed for Key 3 is 50
Program: Epicor.Ice.dll
Method: ValidateColumn
Line Number: 253
Column Number: 17
Table: XXXDef
Field: Key3
Server Trace Stack: at Ice.Core.BizRuleEngine.ValidateColumn(IceColumn column, String columnName, Object columnValue) in C:\_Releases\ICE\ICE3.2.200.40\Source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 253
at Ice.Core.BizRuleEngine.ValidateRow() in C:\_Releases\ICE\ICE3.2.200.40\Source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 143
at Ice.Core.BizRuleEngine.Validate(IceRow oldRow, IceRow newRow, LinqRow curRow) in C:\_Releases\ICE\ICE3.2.200.40\Source\Framework\Epicor.Ice\BizRuleEngine\BizRuleEngine.cs:line 125
at Ice.Services.BO.GenXDataSvc.CreateXXXDef(XXXDefRow ttXXXDefRow, Nullable`1 previousSystemFlag) in C:\_Releases\ICE\ICE3.2.200.40\Source\Server\Services\BO\GenXData\GenXData.cs:line 298
at Ice.Services.BO.GenXDataSvc.StoreData(GenXDataTableset ds) in C:\_Releases\ICE\ICE3.2.200.40\Source\Server\Services\BO\GenXData\GenXData.cs:line 232
at Ice.Services.BO.GenXDataSvcFacade.StoreData(GenXDataTableset ds) in C:\_Releases\ICE\ICE3.2.200.40\Source\Server\Services\BO\GenXData\GenXDataSvcFacade.cs:line 296
at SyncInvokeStoreData(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\ICE3.2.200.40\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59
at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func`2 func) in C:\_Releases\ICE\ICE3.2.200.40\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.40\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 Ice.Proxy.BO.GenXDataImpl.StoreData(GenXDataDataSet ds)
at Ice.Lib.Framework.GenXObject.StoreData(GenXDataDataSet ds)
at Ice.Lib.Framework.GenXObject.handleChunkAndSave(Boolean doCompression, String company, String productID, String typeCode, String cgcCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.GenXObject.ChunkNSaveStringByID(String company, String productID, String typeCode, String cgcCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.GenXObject.ChunkNSaveStringByID(String company, String productID, String typeCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.FormFunctions.ChunkNSaveStringByID(Session s, String company, String productID, String typeCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.FormFunctions.ChunkNSaveStringByID(Object sender, String company, String productID, String typeCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)```