Has anyone encountered this error on an Appointment?
We are trying to Quick Process this appointment using Sales Order Quick Processing, also run billing and we get this error.
We do not require serial numbers, also i’m wondering if its due to the fact that we have 2 EA UOMs in our conversion table.
Any help would be appreciated!
Screenshot here:

Trace Log 1 Here:
PX.Objects.IN.PXUnitConversionException
IN Error: Unit conversion is missing.
at PX.Data.PXFirstChanceExceptionLogger.ProfilerFirstChanceException(Object o, FirstChanceExceptionEventArgs args)
at PX.Objects.IN.PXQuantityAttribute.CalcBaseQty(PXCache sender, PXFieldVerifyingEventArgs e)
at PX.Objects.IN.PXQuantityAttribute.CalcBaseQty(PXCache sender, Object data)
at PX.Objects.IN.PXQuantityAttribute.RowInserting(PXCache sender, PXRowInsertingEventArgs e)
at PX.Data.PXCache.AttributeHandlersSquasher`1.<>c__DisplayClass2_0`1.<To>b__0(PXCache cache, TArgs args)
at PX.Data.PXCache.OnRowInserting(Object item, Boolean externalCall)
at PX.Data.PXCache`1.Insert(Object data, Boolean bypassinterceptor)
at PX.Data.PXSelectBase`1.Insert(Table item)
at PX.Objects.FS.SM_SOOrderEntry.CreateInvoice(PXGraph graphProcess, List`1 docLines, Int16 invtMult, Nullable`1 invoiceDate, String invoiceFinPeriodID, OnDocumentHeaderInsertedDelegate onDocumentHeaderInserted, OnTransactionInsertedDelegate onTransactionInserted, ActionFlow quickProcessFlow)
at PX.Objects.FS.CreateInvoiceBase`2.CreateInvoiceDocument(PostBatchShared postBatchShared, String targetScreen, Guid currentProcessID, Int32 billingCycleID, String groupKey, Nullable`1 invtMult, List`1 docLines, String billingBy, ActionFlow quickProcessFlow)
at PX.Objects.FS.CreateInvoiceBase`2.CreatePostingBatchAndInvoices(Guid currentProcessID, Int32 billingCycleID, Nullable`1 upToDate, Nullable`1 invoiceDate, String invoiceFinPeriodID, String postTo, List`1 invoiceList, List`1 postLineRows, ActionFlow quickProcessFlow, Boolean isGenerateInvoiceScreen)
at PX.Objects.FS.CreateInvoiceBase`2.CreatePostingBatchForBillingCycle(Guid currentProcessID, Int32 billingCycleID, CreateInvoiceFilter filter, List`1 postLineRows, ActionFlow quickProcessFlow, Boolean isGenerateInvoiceScreen)
at PX.Objects.FS.CreateInvoiceBase`2.CreateInvoices(CreateInvoiceBase`2 processGraph, List`1 postLineRows, CreateInvoiceFilter filter, ActionFlow quickProcessFlow, Boolean isGenerateInvoiceScreen)
at PX.Objects.FS.AppointmentEntry.<>c__DisplayClass120_1.<InvoiceAppointment>b__0()
at PX.Concurrency.CancellationIgnorantExtensions.RunWithCancellationViaThreadAbort(Action method, CancellationToken cancellationToken)
at PX.Concurrency.CancellationIgnorantExtensions.<>c__DisplayClass1_0.<ToCancellationViaThreadAbort>b__0(CancellationToken cancellationToken)
at PX.Concurrency.LongOperationManager.RunSync(Byte[] timeStamp, Action`1 method, CancellationToken cancellationToken)
at PX.Concurrency.Internal.RuntimeLongOperationManager.StartOperationImpl(Object key, Byte[] timeStamp, Action`1 method, Boolean forceAsync)
at PX.Concurrency.LongOperationManager.StartOperation(Object key, Byte[] timeStamp, Action`1 method)
at PX.Data.PXLongOperation.StartOperation(PXGraph graph, PXToggleAsyncDelegate method)
at PX.Objects.FS.AppointmentEntry.InvoiceAppointment(PXAdapter adapter)
at PX.Data.PXAction`1.RunHandler(PXAdapter adapter)
at PX.Data.PXAction`1.<Press>d__38.MoveNext()
at PX.Common.EnumerableExtensions.Consume(IEnumerable enumerable)
at PX.Data.PXQuickProcess.Engine.ExecuteAction(GraphAction action)
at PX.Data.PXQuickProcess.Engine.ExecuteFlow[TGraph,TTable](TTable entryPointEntity)
at PX.Data.PXQuickProcess.QuickProcessOperation[TGraph,TTable](TTable startEntity, StepInfo[] stepInfos, Boolean autoRedirect, Boolean autoDownloadReports, List`1 errors)
at PX.Data.PXQuickProcess.<>c__DisplayClass9_0`3.<StartAndGetExceptions>b__14()
at PX.Concurrency.CancellationIgnorantExtensions.RunWithCancellationViaThreadAbort(Action method, CancellationToken cancellationToken)
at PX.Concurrency.CancellationIgnorantExtensions.<>c__DisplayClass1_0.<ToCancellationViaThreadAbort>b__0(CancellationToken cancellationToken)
at PX.Concurrency.Internal.PXLongOperationPars.PopAndRunDelegate(CancellationToken cancellationToken)
at PX.Concurrency.Internal.RuntimeLongOperationManager.PerformOperation(PXLongOperationPars p)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at PX.Concurrency.Internal.PXThreadPool.RunItem(RequestItem item)
at PX.Concurrency.Internal.PXThreadPool.Run()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Trace Log 2 Here:
PX.Data.PXOuterException
Error: Inserting 'Service Order Lot/Serial Detail' record raised at least one error. Please review the errors.
at PX.Data.PXFirstChanceExceptionLogger.ProfilerFirstChanceException(Object o, FirstChanceExceptionEventArgs args)
at PX.Data.PXUIFieldAttribute.CommandPreparing(PXCache sender, PXCommandPreparingEventArgs e)
at PX.Data.PXCache.AttributeHandlersSquasher`1.<>c__DisplayClass2_0`1.<To>b__0(PXCache cache, TArgs args)
at PX.Data.PXCache.OnCommandPreparing(String name, Object row, Object value, PXDBOperation operation, Type table, FieldDescription& description)
at PX.Data.PXCache`1.PersistInserted(Object row, Boolean bypassInterceptor)
at PX.Data.PXCache`1.Persist(PXDBOperation operation)
at PX.Data.PXGraph.<Persist>b__269_0()
at PX.Data.PXGraph.WithRetry(Action action)
at PX.Data.PXGraph.Persist()
at PX.Objects.FS.ServiceOrderEntry.Persist()
at PX.Data.PXSave`1.<HandlerInternal>g__Persist|3_2()
at PX.Data.PXSave`1.<HandlerInternal>d__3.MoveNext()
at PX.Data.PXAction`1.<Press>d__38.MoveNext()
at PX.Data.PXAction`1.PressImpl(Boolean internalCall, Boolean externalCall)
at PX.Objects.FS.ServiceOrderEntry.SkipTaxCalcAndSave()
at PX.Objects.FS.FSAllocationProcess.DeallocateServiceOrderSplitsInt(ServiceOrderEntry docgraph, List`1 splitsToDeallocate, Boolean calledFromServiceOrder)
at PX.Objects.FS.FSAllocationProcess.DeallocateServiceOrderSplits(ServiceOrderEntry docgraph, List`1 splitsToDeallocate, Boolean calledFromServiceOrder)
at PX.Objects.FS.CreateInvoiceBase`2.DeallocateItemsThatAreBeingPosted(ServiceOrderEntry graph, List`1 docLines, Boolean postingAppointments)
at PX.Objects.FS.CreateInvoiceBase`2.CreateInvoiceDocument(PostBatchShared postBatchShared, String targetScreen, Guid currentProcessID, Int32 billingCycleID, String groupKey, Nullable`1 invtMult, List`1 docLines, String billingBy, ActionFlow quickProcessFlow)
at PX.Objects.FS.CreateInvoiceBase`2.CreatePostingBatchAndInvoices(Guid currentProcessID, Int32 billingCycleID, Nullable`1 upToDate, Nullable`1 invoiceDate, String invoiceFinPeriodID, String postTo, List`1 invoiceList, List`1 postLineRows, ActionFlow quickProcessFlow, Boolean isGenerateInvoiceScreen)
at PX.Objects.FS.CreateInvoiceBase`2.CreatePostingBatchForBillingCycle(Guid currentProcessID, Int32 billingCycleID, CreateInvoiceFilter filter, List`1 postLineRows, ActionFlow quickProcessFlow, Boolean isGenerateInvoiceScreen)
at PX.Objects.FS.CreateInvoiceBase`2.CreateInvoices(CreateInvoiceBase`2 processGraph, List`1 postLineRows, CreateInvoiceFilter filter, ActionFlow quickProcessFlow, Boolean isGenerateInvoiceScreen)
at PX.Objects.FS.AppointmentEntry.<>c__DisplayClass120_1.<InvoiceAppointment>b__0()
at PX.Concurrency.CancellationIgnorantExtensions.RunWithCancellationViaThreadAbort(Action method, CancellationToken cancellationToken)
at PX.Concurrency.CancellationIgnorantExtensions.<>c__DisplayClass1_0.<ToCancellationViaThreadAbort>b__0(CancellationToken cancellationToken)
at PX.Concurrency.LongOperationManager.RunSync(Byte[] timeStamp, Action`1 method, CancellationToken cancellationToken)
at PX.Concurrency.Internal.RuntimeLongOperationManager.StartOperationImpl(Object key, Byte[] timeStamp, Action`1 method, Boolean forceAsync)
at PX.Concurrency.LongOperationManager.StartOperation(Object key, Byte[] timeStamp, Action`1 method)
at PX.Data.PXLongOperation.StartOperation(PXGraph graph, PXToggleAsyncDelegate method)
at PX.Objects.FS.AppointmentEntry.InvoiceAppointment(PXAdapter adapter)
at PX.Data.PXAction`1.RunHandler(PXAdapter adapter)
at PX.Data.PXAction`1.<Press>d__38.MoveNext()
at PX.Common.EnumerableExtensions.Consume(IEnumerable enumerable)
at PX.Data.PXQuickProcess.Engine.ExecuteAction(GraphAction action)
at PX.Data.PXQuickProcess.Engine.ExecuteFlow[TGraph,TTable](TTable entryPointEntity)
at PX.Data.PXQuickProcess.QuickProcessOperation[TGraph,TTable](TTable startEntity, StepInfo[] stepInfos, Boolean autoRedirect, Boolean autoDownloadReports, List`1 errors)
at PX.Data.PXQuickProcess.<>c__DisplayClass9_0`3.<StartAndGetExceptions>b__14()
at PX.Concurrency.CancellationIgnorantExtensions.RunWithCancellationViaThreadAbort(Action method, CancellationToken cancellationToken)
at PX.Concurrency.CancellationIgnorantExtensions.<>c__DisplayClass1_0.<ToCancellationViaThreadAbort>b__0(CancellationToken cancellationToken)
at PX.Concurrency.Internal.PXLongOperationPars.PopAndRunDelegate(CancellationToken cancellationToken)
at PX.Concurrency.Internal.RuntimeLongOperationManager.PerformOperation(PXLongOperationPars p)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at PX.Concurrency.Internal.PXThreadPool.RunItem(RequestItem item)
at PX.Concurrency.Internal.PXThreadPool.Run()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()