Error: Trandate cannot be empty

  • 16 November 2022
  • 4 replies


  When I try to add a SOLine Item having a Non-Inventored item through customization. I am getting Error: Trandate cannot be empty

While debugging the code Trandate has value in the SOLine row. What may be the reason for this issue?


 at PX.Data.PXDBDefaultAttribute.RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
   at PX.Data.PXCache.OnRowPersisting(Object item, PXDBOperation operation)
   at PX.Data.PXCache`1.PersistUpdated(Object row, Boolean bypassInterceptor)
   at PX.Data.PXCache`1.Persist(PXDBOperation operation)
   at PX.Data.PXGraph.Persist(Type cacheType, PXDBOperation operation)
   at PX.Data.PXGraph.Persist()
   at PX.Objects.SO.SOOrderEntry.PersistImpl()
   at PX.Objects.SO.SOOrderEntry.Persist()
   at PX.Objects.Extensions.ProcessAffectedEntitiesInPrimaryGraphBase`4.Persist(Action basePersist)
   at PX.Objects.Extensions.ProcessAffectedEntitiesInPrimaryGraphBase`4.Persist(Action basePersist)
   at PX.Objects.Extensions.PaymentProfile.PaymentProfileGraph`2.Persist(Action base)
   at PX.Objects.SO.GraphExtensions.SOOrderEntryExt.CreatePaymentAPIExt.Persist(PersistDelegate baseMethod)
   at PX.Data.PXSave`1.d__2.MoveNext()
   at PX.Data.PXAction`1.d__38.MoveNext()
   at PX.Data.PXAction`1.d__38.MoveNext()
   at PX.Data.PXAction`1.PressImpl(Boolean internalCall, Boolean externalCall)
   at PX.Data.PXAction`1.Press()
   at DevTechServiceordercustomization.DevTechSOOrderEntryExtension.serviceDetail(PXAdapter adapter) in E:\Projects\InfoSourcing\DevTechServiceordercustomization\DevTechServiceordercustomization\AEF\SOOrderEntryExt.cs:line 148
   at PX.Data.PXAction`1.RunHandler(PXAdapter adapter)
   at PX.Data.PXAction`1.d__38.MoveNext()
   at PX.Data.PXAction`1.d__38.MoveNext()
   at PX.Web.UI.PXBaseDataSource.tryExecutePendingCommand(String viewName, String[] sortcolumns, Boolean[] descendings, Object[] searches, Object[] parameters, PXFilterRow[] filters, DataSourceSelectArguments arguments, Boolean& closeWindowRequired, Int32& adapterStartRow, Int32& adapterTotalRows)
   at PX.Web.UI.PXBaseDataSource.ExecuteSelect(String viewName, DataSourceSelectArguments arguments, PXDSSelectArguments pxarguments)




4 replies


Could you post a small portion of the code you are using to do this?

SOLine newline = Base.Transactions.Cache.CreateCopy(Base.Transactions.Cache.Insert()) as SOLine;
                            newline.InventoryID = ext.UsrServiceitem;
                            newline = Base.Transactions.Update(newline);


It appears like you’re attempting to copy a brand new transaction, which I could see being somewhat problematic. Try this instead:

SOLine newLine = Base.Transactions.Insert(new SOLine());


I have tried the same. still facing the problem. I am not able to understand it is going to cretepayment module


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2022  Acumatica, Inc. All rights reserved