Odd error, maybe with UD field?

So we are getting an error in out Pilot system, that we aren’t getting in our production system. I copied the error below. I think it has to do with a UD field issue, but I’m not sure where to look. We created a UD field in Pilot once to try out something with an updateable dashboard, but it didn’t work out so we didn’t replicate in production. Since then, we’ve copied over production to pilot, and now we are getting this error in pilot. It looks like the UD field map still exists for some reason. That’s about where we get stuck because you can’t delete those mappings. We will probably copy over again and see if the error goes away, (because maybe it’s related to me messing around in the system) but if anyone know what this error is and where to look around to fix it, that would be helpful.

Server Side Exception

An error occurred while executing the command definition. See the inner exception for details.

Exception caught in: Epicor.ServiceModel

Error Detail 
Description:  An error occurred while executing the command definition. See the inner exception for details.
Inner Exception:  Invalid object name 'Erp.JobMtl_UD'.
Program:  System.Data.Entity.dll
Method:  ExecuteStoreCommands
Original Exception Type:  EntityCommandExecutionException
Framework Method:  <Compile>b__14a
Framework Line Number:  0
Framework Column Number:  0
Framework Source:  <Compile>b__14a at offset 53 in file:line:column <filename unknown>:0:0

Server Trace Stack:     at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
   at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
   at System.Data.Objects.CompiledQuery.ExecuteQuery[TResult](ObjectContext context, Object[] parameterValues)
   at Epicor.Data.DBExpressionCompiler.<>c__DisplayClass14b`6.<>c__DisplayClass14e.<Compile>b__14a(Func`6 query)
   at Epicor.Data.DBExpressionCompiler.InvokeSingle[TContext,TQuery,TResult](Expression expression, Cache currentCacheSetting, Boolean cacheQuery, TContext context, Func`2 getDataCacheKey, Func`2 compileQuery, Func`2 executeQuery)
   at Epicor.Data.DBExpressionCompiler.<>c__DisplayClass14b`6.<Compile>b__147(TContext context, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
   at Erp.Services.BO.PartSvc.ExistsJobMtl(String company, Boolean jobComplete, Boolean issuedComplete, String partNum)
   at Erp.Services.BO.PartSvc.setEnableUOMClass()
   at Erp.Services.BO.PartSvc.PartAfterGetRows()
   at Erp.Services.BO.PartSvc.OnRowEvent(DataTableEventType type, String tableName, IceRow row)
   at Ice.TablesetBound`3.<>c__DisplayClass25.<InnerGetByID>b__1f()
   at Ice.Services.Trace.TablesetProfilingCollector.DoRowEventTrace(String tableName, String methodName, Int32 rowCount, Action action)
   at Ice.TablesetBound`3.InnerGetByID(IceDataContext context, Int32 pageSize, Int32 absolutePage, Boolean& morePages, TFullTableset tableset, IEnumerable`1 queryParameters)
   at Erp.Services.BO.PartSvc.GetByID(String partNum)
   at Erp.Services.BO.PartSvcFacade.GetByID(String partNum)
   at SyncInvokeGetByID(Object , Object[] , Object[] )
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
   at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func`2 func)
   at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
   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)

Inner Trace:
Invalid object name 'Erp.JobMtl_UD'.
:   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)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, 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 asyncWrite)
   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.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)

Client Stack Trace 
   at Epicor.ServiceModel.Channels.ImplBase`1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets)
   at Erp.Proxy.BO.PartImpl.GetByID(String partNum)
   at Erp.Adapters.PartAdapter.OnGetByID(String ID)
   at Ice.Lib.Framework.EpiBaseAdapter.GetByID(String stringId)
   at Erp.UI.App.PartRevCheckoutEntry.Transaction.ValidatePart(String partNum)
1 Like

By the way, the error shows up when trying to check out parts in engineering workbench (not all part though, but a lot of them). Another odd thing is that in part entry, you can search for and find a part number, but the system acts like it doesn’t exist if you were to type that number in.

We got it figured out. There was a DB sync that needed to be done. Works fine now.

I was going to say check if your database and data model are sync’d. I am curious how you stumbled into that error though…

What version / patch are you on?

We are on 10.0.700.4. I was going to write up this long post about what we saw, but all of that info is in my previous posts.

UD went through a nice improvement in deployment in … ?10.1.500?

The sync / deployment timing being different was an issue in earlier releases so we overhauled that significantly. Now there is not separate sync step. When you deploy in Admin Console, it does everything. Things have been much more reliable and my escalations have dropped from a few a week to … not sure I have had one since…

If you are still on 10.0 you have missed many significant framework improvements.

Good to know. We are working on getting ready for an upgrade. Just trying to find the time.