Hello friends,
I’m running into a pretty interesting issue which Epicor Support and I haven’t been able to figure out.
We create parts(both component and assemblies) and upload all the details via DMT in the following order since January 2019:
- Part
- Part Plant
- Part Revision
- Bill of Operations
- Bill of Materials
- Price List Part
We had no issues with this method until a couple of months ago when I started seeing assemblies being stuck on the Engineering workbench. Not all assemblies are effected by this, only a few newer ones(around 50 out of 12K).
When the DMT is uploading the Bill of Materials, it is giving the following error:
In this case, S004-053 is the assembly and E002-159 is the last item in the BOM.
If I go to the Engineering Workbench, I see S004-053 checked out in the group with all the material added to it. I can remove material and add more without any errors, however when I try to check in the part, I get the same error as the DMT does.
Application Error
Exception caught in: Epicor.ServiceModel
Error Detail
Message: Query processor could not produce a query plan because of the hints defined in this query. Resubmit the query without specifying any hints and without using SET FORCEPLAN.
Program: Epicor.ServiceModel.dll
Method: ShouldRethrowNonRetryableExceptionClient Stack Trace
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource
1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func
3 operation, TInterceptionContext interceptionContext, Action3 executing, Action
3 executed)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternal[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object parameters)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass651.<ExecuteStoreQueryReliably>b__64() at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func
1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass651.<ExecuteStoreQueryReliably>b__63() at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery[TElement](String commandText, Object[] parameters) at Ice.IceDataContextExtensions.ReadCurrent[T,TContext](TContext ctx, T entity, LockHint lockHint) in C:\_Releases\ICE\ICE3.2.100.9\Source\Framework\Epicor.System\Data\IceDataContextExtensions.cs:line 168 at Erp.Internal.BM.LLCReset.RunLLCReset(String IP_LookInPart, Int32 IP_NewLowLevel) in c:\_Releases\ERP\RL10.2.100.0\Source\Server\Internal\BM\LLCReset\LLCReset.cs:line 106 at Erp.Internal.BM.BMM10_GD.CheckInRev(ECORev aECORev) in c:\_Releases\ERP\RL10.2.100.0\Source\Server\Internal\BM\EngWBLib\BMM10-GD.i.cs:line 5874 at Erp.Services.BO.EngWorkBenchSvc.doCheckInRev(ECORev bECORev, String ipAuditText) in C:\_Releases\ERP\UD10.2.100.9\Source\Server\Services\BO\EngWorkBench\EngWorkBench.cs:line 13354 at Erp.Services.BO.EngWorkBenchSvc.CheckIn(String ipGroupID, String ipPartNum, String ipRevisionNum, String ipAltMethod, Nullable
1 ipAsOfDate, Boolean ipCompleteTree, Boolean ipValidPassword, Boolean ipReturn, Boolean ipGetDatasetForTree, Boolean ipUseMethodForParts, String ipAuditText, String& opMessage) in C:_Releases\ERP\UD10.2.100.9\Source\Server\Services\BO\EngWorkBench\EngWorkBench.cs:line 8211
at Erp.Services.BO.EngWorkBenchSvcFacade.CheckIn(String ipGroupID, String ipPartNum, String ipRevisionNum, String ipAltMethod, Nullable1 ipAsOfDate, Boolean ipCompleteTree, Boolean ipValidPassword, Boolean ipReturn, Boolean ipGetDatasetForTree, Boolean ipUseMethodForParts, String ipAuditText, String& opMessage) in C:\_Releases\ERP\UD10.2.100.9\Source\Server\Services\BO\EngWorkBench\EngWorkBenchSvcFacade.cs:line 2333 at SyncInvokeCheckIn(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.100.9\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.100.9\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 47
at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object inputs, Object& outputs) in C:_Releases\ICE\ICE3.2.100.9\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 Epicor.ServiceModel.Channels.ImplBase
1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets) at Erp.Proxy.BO.EngWorkBenchImpl.CheckIn(String ipGroupID, String ipPartNum, String ipRevisionNum, String ipAltMethod, Nullable
1 ipAsOfDate, Boolean ipCompleteTree, Boolean ipValidPassword, Boolean ipReturn, Boolean ipGetDatasetForTree, Boolean ipUseMethodForParts, String ipAuditText, String& opMessage)
at Erp.Adapters.EngWorkBenchAdapter.CheckIn(String ipGroupID, String ipPartNum, String ipRevisionNum, String ipAltMethod, DateTime ipAsOfDate, Boolean ipCompleteTree, Boolean ipValidPassword, Boolean ipReturn, Boolean ipGetDatasetForTree, Boolean ipUseMethodForParts, String ipAuditText, String& opMessage)
ErrorMessageDetail.txt (6.6 KB)
If I undo the checkout and check the part out again, do things manually all in the Engineering Workbench, it seems to have no issues which leads me to believe there might be a problem with the way DMT is initiating the BOM record.
The files I use for DMT are built the same way as the other ones that have no problem.
S004-053.xlsx (20.5 KB)
Has anyone seen this error before or have a guess on what it could be?
Thank you in advance.
P.S: Epicor support directed my ticket to the DMT team after the Engineering Workbench support guy wasn’t able to understand what was going on. If they can find a solution I’ll post it here for anyone else that might face the same problem.