Skip to main content
Question

Appointment/UOM Error: "Inserting 'Service Order Lot/Serial Detail' record raised at least one error. Please review the errors"

  • November 21, 2024
  • 5 replies
  • 80 views

Forum|alt.badge.img

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()
 

 

 

5 replies

vdiaz
Acumatica Moderator
Forum|alt.badge.img+2
  • Acumatica Moderator
  • 95 replies
  • November 23, 2024

@stoner7matt Hi!

I found a support case with a similar issue:

  • They had two UOM's called EA
  • Somehow one of them had a leading space in front of it
  • After deleting the duplicated UOM hey didn’t get the error anymore

The workaround we (Acumatica) offered was a script to remove the extra spaces on the UOMs. The script would update the InventoryItem table and also the details tables from the affected service order and appointment (FSSODet, FSSODetSplit, FSAppointmentDet, FSApptLineSplit).

I suggest you create a support case if you don’t feel confident about writing such script.

I hope this helps!

 


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 30 replies
  • November 25, 2024

Thanks for your help! Here’s the situation we have. I’m still working on why someone would have created 2 different EACH conversions. The only difference from the problem you described is that the from unit is exactly the same. No leading spaces. 

But I can also see why Acumatica would not know which EA to use in its calculation.

 

From Unit To Unit Multiply/Divide Conversion Factor
EA EA Multiply 1.000000
EA EACH Multiply 1.000000

vdiaz
Acumatica Moderator
Forum|alt.badge.img+2
  • Acumatica Moderator
  • 95 replies
  • November 25, 2024

@stoner7matt what happens if you delete the first row? Seems to me that it’s not necessary to add a conversion from and to the same unit (EACH). 


Forum|alt.badge.img
  • Author
  • Jr Varsity II
  • 30 replies
  • November 25, 2024

I tried that, it didnt fix it but i’m wondering if I delete it, then repeat all the steps if it prevents it from happening again.

 

i’ll try that and follow up with you.


Chris Hackett
Community Manager
Forum|alt.badge.img
  • Acumatica Community Manager
  • 2754 replies
  • January 23, 2025

Hi ​@stoner7matt were you able to find a solution? Thank you!


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings