RDD error in customized Crystal Report Priority Dispatch report - Parent Columns and Child Columns don't have type matching columns

We have customized the Priority Dispatch Report and show material that is needed for the job as well as available inventory to meet the demand. This report worked in 10.1.500 but has now failed in 10.1.600. Nothing has been changed at all between the two versions. The error message I am getting is:

Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask: Parent Columns and Child Columns don’t have type-matching columns.

Stack Trace:
at System.Data.DataRelation.CheckState()
at System.Data.DataRelation.Create(String relationName, DataColumn[] parentColumns, DataColumn[] childColumns, Boolean createConstraints)
at Ice.Core.RptBase.ReportDataSetRelationshipBuilder.BuildRelationship(DataTable parentTable, DataTable childTable, DataSourceRelationship relationshipInformation) in C:_Releases\ICE\3.1.600.2\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDataSetRelationshipBuilder.cs:line 72
at Ice.Core.RptBase.ReportDataSetRelationshipBuilder.BuildRelationships(DataSet dataSet, DataSourceRelationshipCollection relationshipInformations) in C:_Releases\ICE\3.1.600.2\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDataSetRelationshipBuilder.cs:line 22
at Ice.Core.RptBase.ReportDataBuilderBase.XSDOpen() in C:_Releases\ICE\3.1.600.2\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDataBuilderBase.cs:line 321
at Erp.Internal.JC.JCR65.RunProcess(Int64 instanceTaskNum, String outputFileName) in c:_Releases\ERP\RL10.1.600.0\Source\Server\Internal\JC\JCR65\JCR65.cs:line 313
at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in c:_Releases\ICE\3.1.600.0\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 93
at Ice.Hosting.TaskCaller.ExecuteTask() in c:_Releases\ICE\3.1.600.0\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 54
at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in c:_Releases\ICE\3.1.600.0\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 63
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in c:_Releases\ICE\3.1.600.0\Source\Server\Services\Lib\RunTask\RunTask.cs:line 535
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in c:_Releases\ICE\3.1.600.0\Source\Server\Services\Lib\RunTask\RunTask.cs:line 535
at Ice.Services.Lib.RunTaskSvcFacade.RunTask(Int64 ipTaskNum) in c:_Releases\ICE\3.1.600.0\Source\Server\Services\Lib\RunTask\RunTaskSvcFacade.cs:line 87
at SyncInvokeRunTask(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.600.0\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59 at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in c:_Releases\ICE\3.1.600.0\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.600.0\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)

Table JCR65 is one of the standard tables in the RDD. Has anyone seen this? We have had this happen with other reports as well and it is taking a lot of time to rebuild them.

What I have found is that In 10.1.600 RDD’s All of the join tables in your relationships MUST be un-excluded.

Also, double check ALL tables to make sure the SysRowID AND SysRevID and the UD_SysRowID are all UN-EXLCUDED.

Also any “Linked Tables” that use table fields that are excluded will not be visible.

For instance, If you are in the Material Tag RDD and there is a field reference to the ResourceGroupID (but the ResourceGroupID is excluded) then the Linked table that uses the ResourceGroupID to get the Group ID Description will fail. If you un-exclude the ResourceGroupID in the main Dataset then the Lookup field will work.

DaveO

Thanks, Dave. I will give it a shot and hope I find something that works! I would hate to recreate all of it…