Introducing Acumatica Cloud ERP: 2026R2
Technical discussions focused on Customizations for developers. See Low Code | No Code Forum for non-technical discussions
Recently active
Hello Community, I am at work on creating a custom processing screen that creates sales order of the transfer type. This part works correctly but after I save the transfer SO, I’d like to also print the sales order for that transfer SO. I’ve gone through a few iterations of the code, but currently trying to call “PrintSalesOrder” on my SOOrderEntry graph below. order = transferEntry.Document.Insert(order); PXTrace.WriteInformation("2.1: Line Item Population"); PXTrace.WriteInformation(s.InventoryID.ToString()); PXTrace.WriteInformation(sExt.UsrSerialNbr); transferEntry.Transactions.Insert(line); transferEntry.splits.Current.LotSerialNbr = sExt.UsrSerialNbr; transferEntry.splits.Current.IsAllocated = true; PXTrace.WriteInformation("4: Saving transfer"); transferEntry.Transactions.Cache.Update(transferEntry); transferEntry.Actions.PressSave(); PXTrace.WriteInformation("4: Saving transfer: " + transferEntry.Document.Current.OrderNbr); PXSelectBase<SOOrder> cmdTransfer = new PXS
I am creating a customization on the sales order screen to collect some info on a smart panel and add it to custom fields on the line details. This is a low code project so I created the smart panel using the UI. I dropped a button on the action bar for the details grid. On the PopupPanel property of the button, I pointed it to the smartpanel by adding the ID there. This all works great. When the button is clicked, the popup panel comes up. The only issue I am facing is that the information entered is always saved to only the first line on the details grid. It does not matter which line I have selected before clicking the button to open the popup panel. What am I missing?I am on Acumatica 2023 R2.
Hi All!We are currently busy implementing ePODs for a customer with the help of Acumatica Mobile. With this we have extended the Shipments Entry (SO3020PL) and Shipments (SO302000) screen to the Mobile App. What we want to achieve is to create a custom action on the Shipments Entry screen that mimics the ScanBarcode action (which opens up a barcode scanner) on the IN202520 screen. We want to basically open the barcode scanner and then override it’s logic to scan the Barcode (which will be the Invoice Number) and then navigate to the related shipment that has this Invoice Number. I know this is a tall order but any advice on this would be greatful. Even only advising where I can look of how the BarCodeCameraScan behavior is stored in order for me to mimic how the scanner is opened: Thanks!
I have built a custom screen with a primary grid:When I enter two or more items into the list and save, only the last item is saved: Why? DAC:[Serializable][PXCacheName("IN Fulfillment Warehouse", PXDacType.Catalogue)][PXPrimaryGraph(typeof(INFulfillmentSiteMaint))]public class INFulfillmentSite : IBqlTable{ public static class FK { public class Site : INSite.PK.ForeignKeyOf<INFulfillmentSite>.By<siteID> { } } #region CountryID [PXDBString(100, IsKey = true, IsUnicode = true)] [Country] [PXUIField(DisplayName = "Country")] [PXDefault("US", PersistingCheck = PXPersistingCheck.Nothing)] public virtual string CountryID { get; set; } public abstract class countryID : PX.Data.BQL.BqlString.Field<countryID> { } #endregion #region StateID [PXDBString(50, IsKey = true, IsUnicode = true, InputMask = ">CC")] [State(typeof(countryID))] [PXDefault] [PXUIField(DisplayName = "State")] public virtual string StateID { get; set; } public abstract class stateID : PX.Data.BQL.BqlStr
I have a custom table with a basic GridView screen for entry. When entering values for the first row and clicking Save, an error is thrown saying that one of the non-nullable fields has a null value. After some debugging, it appears that the save is trying to save the row I entered, plus a new blank row -- thus, the complaint of the null value. In fact, if I make the field nullable, it actually saves the blank row (blank except for identity field) in the db. Also, this only happens on the first row entered. If I add another row and save, it doesn’t happen. My guess is maybe a table/DAC key issue that makes it want to insert instead of update, but I’ve triple checked my key references. Does this ring a bell to anyone as something you’ve run across?Custom Table1 and Table2 have identity keys. Custom Table2 has a foreign key to Table1 referencing its key field. Table1 primary key definition: public class PK : PrimaryKeyOf<CFLocationBarcode>.By<locationBarcodeID>{ pu
From my understanding, non-persisted fields are the best way to handle data that needs to be calculated using some business logic. However, since these fields aren’t saved to the database, we can’t use them in generic inquires and reports. If I instead saved this field to the database, I think I would need to make sure that it is recalculated either every time one of the values in the business logic equation changes, or if a user or anything else is interacting with it, including a report/inquiry. I’m not sure of the best way of doing that or if I’m missing something.
Related to this question.I can’t figure out why adding a popup dialog to Opportunities breaks the address lookup map.I can see that the ASPX page uses #include to load in some panel templates. This is the broken result of the ‘Address Lookup’ button after adding my popup dialog element:
what is the replacement for this Graph WarehouseManagementSystemGraph in 2024 R1 ?
What is the problem with my code all the other with ewt is already not shown but still there is one that is showing i already fix this hahhahaha =IIf(InStr(Trim([GLTran.TranDesc]), 'EWT') > 0 OR [GLTran.TranDesc] = 'EWT FOR 4TH QTR 2022_DAP' ,'', [GLTran.CreditAmt] - [GLTran.DebitAmt])
I’m adding a Tasks GI to menu which is used in a dashboard. When a task record is opened, I need it to redirect to entry screen and allow editing. The redirect is not working. Opening a task record just shows the GI fields, but it’s not the entry screen. Below is my code. If anyone could look at it and tell me what might be wrong I’d appreciate it!
Good afternoon!We had a question about mass updating Purchase Order numbers for Invoices after they were created. We have this functionality due to a customization that I blogged about in 2021: https://www.acumatica.com/blog/vlog-changing-an-acumatica-po-number-with-a-smart-panel-and-custom-action/One of our staff said “Sure, we can write an Import Scenario off of that.” Well, it was not as easy as we thought. The smart panel is very basic. https://gist.github.com/kjrichardson/4ec5742fe1cec2e245c3d1e89957e259The code to pop it is basic as well. A simple AskExt. public PXAction<ARInvoice> ChangePONbr; [PXUIField(DisplayName = "Change PO Nbr", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)] [PXUIEnabled(typeof(Where<ARInvoice.status.IsNotEqual<ARDocStatus.closed>.And<ARInvoice.status.IsNotEqual<ARDocStatus.canceled>>>))] [PXButton(Category = "Corrections", CommitChanges = true)] protected vir
On Appointment screen I wants to set default sort order on Line Status column.Reason is Not Started items should be visible first. This helps a lot in Acumatica mobile application.I cannot find any help to set default sorting column. Is it possible or any other way to make this possible.“AppointmentDetails” view is used for it in “AppointmentEntry” graph.
Hi All,I am trying to add a custom button in the Move screen called “Print Label” in the highlighted section where on pressing it runs the report Move Serial Number Layout (MAIN6501) for the given line details generated.I have written this action but it’s giving me errors. Basically the line details Production Number, Inventory ID and the Lot/ Serial number are the parameters required to run the report.using PX.Data;using PX.Objects.CS;using PX.Objects.AM.Attributes;using System;using System.Collections.Generic;using PX.Objects;using PX.Objects.AM;using PX.Objects.IN;namespace PX.Objects.AM{ public class MoveEntry_Extension : PXGraphExtension<PX.Objects.AM.MoveEntry> { #region Event Handlers public PXAction<AMBatch> ReportSerialNumberLayout; [PXButton(CommitChanges = true)] [PXUIField(DisplayName = "Print Label", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)] protected void reportSerialNumberLayout() { var currentMov
Hello,I have been trying to create a customization that sets the Expense Claim’s date and description to match the Expense Receipt’s date and description when I click CLAIM (instead of the defaults of today’s date and Submitted Receipts).This is what I have so far, but it is throwing up an error : error CS0115: 'ExpenseClaimEntry_Extension.Persist()': no suitable method found to override Thank you for any help!
Hello, I am trying to persist a custom field from a SO to a PO when the purchasing details are updated through PO LINK. Nothing seems to be erring, but the value is not being updated on the PO. The PO is no longer On Hold so the fields are not updateable through the UI. Could this be what the issue is? protected void SupplyPOLine_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e, PXRowUpdated InvokeBaseHandler) { if (InvokeBaseHandler != null) InvokeBaseHandler(cache, e); var row = (SupplyPOLine)e.Row; // Retrieve the Purchase Order based on the OrderNbr POOrder poOrder = PXSelect<POOrder, Where<POOrder.orderNbr, Equal<Required<POOrder.orderNbr>>>> .Select(Base, row.OrderNbr); POOrderExt poOrderExt = poOrder.GetExtension<POOrderExt>(); //Get the Sales Order Number from the SOLine PXCache soLineCache = Base.Caches[typeof(SO
Hello, I have made a change to the way in which credit checks work by extending SOOrderCustomerCredit. The following article helped a lot with this I’ve added breakpoints to my code and these are being hit when I enter a sales order, so I know my code is working. The problem is that when I look at the SOEntry graph I cannot see any reference to the SOOrderCustomerCredit class. In fact, when I search the Acumatica code the only references to SOOrderCustomerCredit seem to be where it is defined (inheriting from an abstract class called SOOrderCustomerCreditExtension). I cannot see where the Acumatica code actually uses the SOOrderCustomerCredit class.Can anyone explain the link between SOEntry and SOOrderCustomerCredit please?
public delegate IEnumerable PrintQuoteDelegate(PXAdapter adapter); [PXOverride] public IEnumerable PrintQuote(PXAdapter adapter, PrintQuoteDelegate baseMethod) { IEnumerable returnValue = adapter.Get(); try { returnValue = baseMethod(adapter); } catch (PXReportRequiredException ex) { ex.Mode = PXBaseRedirectException.WindowMode.New; throw ex; } return returnValue; }Any ideas? Customer wants this to re-direct to a tab instead of same window
On the Sales Order screen, I have a custom field in SOLine (UsrNSUnitCost) that is persisted to the db. I have a custom unbound “total” field in the header (UsrTotalNSCost) to show the total for that field, computed as Qty * UsrNSUnitCost for all SO Lines on the order.My PXFormula compiles and does not have any runtime errors, but the field is zero even when there are SO Lines with amounts in the custom field.This is the DAC field for the SOOrder table:public sealed class AABSOOrderExt : PXCacheExtension<PX.Objects.SO.SOOrder>{ #region UsrTotalNSCost [PXDecimal] [PXUIField(DisplayName = "NS Total", Enabled = false)] public decimal? UsrTotalNSCost { get; set; } public abstract class usrTotalNSCost : PX.Data.BQL.BqlDecimal.Field<usrTotalNSCost> { } #endregion}This is the DAC field for the SOLine table:public sealed class AABSOLineExt : PXCacheExtension<PX.Objects.SO.SOLine>{ #region UsrNSUnitCost [PXDBDecimal] [PXDefault(TypeCode.Decimal, "0.00", Pers
...or perhaps I’m not using it properly. I’m experimenting with TimeStamp to understand Acumatica’s locking better.I’ve created the following code, a simple button call the press save.public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry>{ public static bool IsActive() => true; public PXAction<SOOrder> CheatSave; [PXButton(CommitChanges = true)] [PXUIField(DisplayName = "Cheat Save")] protected void cheatSave() { var a = Base.TimeStamp; Base.SelectTimeStamp(); var b = Base.TimeStamp; Base.Actions.PressSave(); }}The button appears on the main menu. When I go to an existing order, update the Description and press ‘CHEAT SAVE’ it works, the change is saved.If I go to an existing order, update the Description, then update the description in SQL (using update SOOrder set OrderDesc = 'Z' where OrderNbr = 'SO023847'), and press ‘CHEAT SAVE’ I get the following message. “Error: Another process has updated the 'SOOrder' record. Your changes will be
I declared a method in the SOOrderEntry graph as follows.public void UpdateSalesOrder(PXCache cache, PXFieldUpdatedEventArgs e, string blanketOrderNumber = null){ PXTrace.WriteError("Field_updated"); // Tenant selection if (PX.Data.Update.PXInstanceHelper.CurrentCompany == 3) { // Determine the appropriate SOOrder row SOOrder row = null; if (!string.IsNullOrEmpty(blanketOrderNumber)) { // Fetch the specific SOOrder record matching the blanketOrderNumber row = PXSelect<SOOrder, Where<SOOrder.orderType, Equal<Required<SOOrder.orderType>>, And<SOOrder.orderNbr, Equal<Required<SOOrder.orderNbr>>>>> .Select(cache.Graph, "BL", blanketOrderNumber); if (row == null) { PXTrace.WriteError($"No SOOrder found with OrderNbr: {blanketOrderNumber} and OrderType: BL.");
I’m trying to select MatrixInventoryItem record inside a static process. I have the corresponding InventoryItem which I thought I could just cast as MatrixInventoryItem but was not able to. I have this for my BQL:MatrixInventoryItem matrixItem = PXSelect<MatrixInventoryItem, Where<MatrixInventoryItem.inventoryID, Equal<Required<MatrixInventoryItem.inventoryID>>>> .Select(itemGraph, item.InventoryID);If I debug this I see that item.InventoryID does have a value.In SQL profiler, I’m seeing this WHERE clause which returns no rows:FROM [InventoryItem] [MatrixInventoryItem]WHERE ( [MatrixInventoryItem].[CompanyID] = 2) AND [MatrixInventoryItem].[DeletedDatabaseRecord] = 0 AND (NULL = @P0) OPTION(OPTIMIZE FOR UNKNOWN)',N'@P0 int',@P0=675But expecting this, which does return the row I need:FROM [InventoryItem] [MatrixInventoryItem]WHERE ( [MatrixInventoryItem].[CompanyID] = 2) AND [MatrixInventoryItem].[DeletedDatabaseRecord] = 0 AND ([MatrixInventoryItem].[
I’m first creating a blanket sales order. Then, I create some child orders by splitting the quantity of the blanket order. After selecting one child sales order, I continue the process. During this process, after releasing the relevant POReceipt for that sales order, the 'Shipped Quantity' field of the parent blanket order gets updated. I want to capture this update.I tried using a SOLine_ShippedQty_FieldUpdated event handler in the SOOrderEntry graph, but it is not being triggered. Please check the below screen shot. Please let me know how I can detect when the 'Shipped Quantity' field is being updated.Qty.On Shipments(ShippedQty)protected void SOLine_ShippedQty_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e){ PXTrace.WriteInformation("SOLine_ShippedQty_FieldUpdated triggered");}
Good day i have a question regarding this because i want to create a invoice type then the referenceInvoice Type :Sales Invoice and Service InvoiceThen i want to change the number sequence depending on the Invoice typeSales InvoiceSA000000Service InvoiceSE000000Is it possibleI already created a customization project that will generate a field for invoice type my problem is i dont know how will i change my number sequence when i change a invoice types is that possible?
Am i wrong why it is not working I would like to include the details of the TIN in my report by retrieving the CustomerMaster.ParentBAccountID and fetching the data for the customer where it matches the Customer.AcctCD. Is this possible?
Hello.Back in May, I was having issues getting the 4.1 REST API code to actually be able to log into my Acumatica Instance.Dmitrii provided me with a link to the 5.1.2-beta version and it worked like a charm. I’ve been coding with it ever since and moving forward.Fast forward to today - I am trying to add code to the library to pass back more detailed error messages from the API, and the place I would normally do that is in the function VerifyResponse that is found in a source file named EntityAPI_Implementation.cs - however this file does not exist in the 5.1.2-beta code I have, so I cannot update it to pass back extended error info.Is there a replacement in the beta version for that function in that file?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.