Introducing Acumatica Cloud ERP: 2026R2
Technical discussions focused on Customizations for developers. See Low Code | No Code Forum for non-technical discussions
Recently active
I'm experiencing an issue when updating a custom field (usrDebitAccount) on the Transfers screen (IN304000) within the Transfer Details grid, specifically in a Released document. In the INTran_RowSelected event, I’ve enabled the custom field usrDebitAccount when the row is released, like this. I have also enabled the field from workflow as well.protected void INTran_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler){ InvokeBaseHandler?.Invoke(cache, e); var row = (INTran)e.Row; if (row == null) { return; } if (row.Released == true) { Base.transfer.Cache.AllowUpdate = true; Base.transactions.Cache.AllowUpdate = true; PXUIFieldAttribute.SetEnabled<INTranExt.usrDebitAccount>(cache, row, true); }}The issue is: When I change the value of usrDebitAccount on a single row and try to save, the Save button appears enabled but it shows the below error message If I click ok button of above pop up
We’re running 2023R2 and I’m trying to update the UnitPrice to equal the UnitCost when entering items in a “No Charge” Sales Order. Using the following code:namespace PX.Objects.SO{ public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry> { // Update prices when order quantities updated protected void _(Events.FieldUpdated<SOLine.orderQty> e) { var order = Base.Document.Current; var line = e.Row; if (order?.CustomerOrderNbr?.Contains("SE") == true && line != null) { // Use SetValueExt to ensure all business logic and UI updates occur e.Cache.SetValueExt<SOLine.curyUnitPrice>(line, line.CuryUnitCost); } } // Update prices when CustomerOrdNbr changes protected void _(Events.FieldUpdated<SOOrder.customerOrderNbr> e) { if (e.NewValue?.ToString().Contains("SE") == true) { foreach (SOLine line in Base.Transactions.Select()) { if (line.CuryU
Hi Acumatica Community,I'm working on a customization in Acumatica 24R2 (sandbox) where I want to show a confirmation dialog box before the "Remove Hold" action is executed on the Sales Order Invoice (ARInvoiceEntry) screen.I’ve overridden the ReleaseFromHold method and added a dialog box like this:Public delegate IEnumerable ReleaseFromHoldDelegate(PXAdapter adapter);[PXOverride]public IEnumerable ReleaseFromHold(PXAdapter adapter, ReleaseFromHoldDelegate baseMethod){ ARInvoice doc = Base.Document.Current; if (doc != null) { // Show confirmation dialog if (Base.Document.Ask("Confirm Freight Surchage, "Please confirm the Freight Surcharge Amount before proceeding. Do you want to continue?", MessageButtons.YesNo) == WebDialogResult.No) { return adapter.Get(); // Expected to cancel the action } PXTrace.WriteInformation("After confirmation check."); } // Proceed with the original Remove Hold logic return
Hi All. I am trying to get BI Ar-Invoices data into Power BI using query filter by invoice date. But on querying it shows me either authentication error (even i am admin) or some time My query is :https://local.acumatica.com/odata/BI-ARInvoices?$filter=InvoiceDate ge datetime'2025-04-03T00:00:00'Do I need to run the query in Postman and then import that data into Power BI? Please suggest a better approach Thanks
Is there a way to extend the Set Qty state logic in Scan and Transfer screen? The class is sealed and not able to do so. I would like to define my own custom logic in certain cases. Basically we are developing a putaway mechanism inside Scan and Transfer. I am defaulting an origin location for putaway using another button and then they are able to select destination location and the entire available qty should be defaulted. They also need to be able to change the defaulted qty using Set Qty and that is where the problem comes in. The qty just keeps appending to existing one.I have tried combination of RowInserted and RowUpdating events to force the qty in case of putaway mode and nothing worked so far.An example of what I have tried so far: public class CFINScanTransferExt : PXGraphExtension<INScanTransfer, INScanTransfer.Host> { public static bool IsActive() => true; public INScanTransfer Basis => Base1; protected virtual void _(Events
Hi Everyone,I have added a barcode field to the PO screen. The functionality is working fine, but I am facing an issue where, whenever I scan a product for the first time, the OrderQty is automatically set to 2. When I scan the same product again, the OrderQty increases to 3 which is correct .But i for the first time it should be 1 not 2.However, for a different product, the OrderQty is correctly set to 1 on the first scan. I have attempted to resolve this issue but have not been successful yet.Please guide me on how to fix this.Thanks!Code:// Check if a POLine for this InventoryID already exists POLine existingLine = Base.Transactions .Select() .RowCast<POLine>() .FirstOrDefault(l => l.InventoryID == item.InventoryID); if (existingLine != null) { PXTrace.WriteInformation($"Existing Line Found: {existingLine.InventoryID}, Current Qty: {existingLine.OrderQty}"); // If fir
I have a grid where I have sales orders and service orders in the same field. I want to make this a hyperlink, so I used the callback command and a custom redirect action. That works and redirects properly, but it pulls the data from the first row instead of the one currently selected. I’ve tried the SyncPosition = true and making sure the dac has a key field, but to no avail. Would anyone be able to help me out? Thanks. <CallbackCommands> <px:PXDSCallbackCommand CommitChanges="True" Name="ViewDocument" Visible="False" DependOnGrid="Details" ></px:PXDSCallbackCommand></CallbackCommands>.....<px:PXTabItem Text="Details"> <Template> <px:PXGrid SyncPosition="True" Height="100%" Width="100%" AutoAdjustColumns="True" runat="server" ID="Details" SkinID="Inquire" AllowPaging="False"> <Levels> <px:PXGridLevel DataMember="Details"> <Columns> <px:PXGridColumn
i did a customization to my training tenant. but after publish it,some how it looks like it have affect our live tenant.how do i resolve this
Hello, I have a customisation which is already published on one tenant and I would like to publish it to other tenants. The customisation contains files, sql scripts, generic inquires and site maps, and if I install on the current tenant I understand that:Files (such as dlls) are stored central and will affect all tenants.Sql scripts will affect the database which all tenants share.Generic inquiries and site maps will only affect the current tenant, and not be seen on other tenants. This is all quite painful and sharing dll files across a live and test tenant makes testing in a test tenant very difficult. But that’s how it is.The site has about 20 customisations, and I want to publish one of them to the other tenants. The only option seems to be to use the ‘Publish to Multiple Tenants’. When I click this I see the following pop up window. But I’m not sure what happens next, the screen allows me to select Tenants, but I’ve not been able select which Customisations will be published to t
I’m been trying to add a condition to the workflow of SOShipmentEntry (SO302000) so that it will make other parts of the workflow easier to configure. My code compiles but the condition doesn’t appear within the editor.I’m guessing that I have a parameter incorrect. I’ve leaned heavily on this post but to no avail.Can anyone see something obvious?using PX.Data;using PX.Data.WorkflowAPI;using PX.Objects.SO;using static PX.Data.WorkflowAPI.BoundedTo<PX.Objects.SO.SOShipmentEntry, PX.Objects.SO.SOShipment>;using PX.Data.BQL;namespace CustomerOEMods.Workflow{ public class SOShipmentEntryWorkFlowExt : PXGraphExtension<PX.Objects.SO.SOShipmentEntry_Workflow, SOShipmentEntry_Extension, SOShipmentEntry> { public class shipViaPickup : BqlString.Constant<shipViaPickup> { public shipViaPickup() : base("PICKUP") { } } #region Conditions public class Conditions : Condition.Pack { public Condition IsCustomerPICKUPOrder => GetOrCreate(b => b
Hi,We are working on customizations to the Sales Order screen. I have added several new fields and overridden a few methods, such as PrepareInvoice and CreateShipment, to ensure that some of the custom fields flow through to shipments and invoices However, we are encountering an error with the following message:Error: Inserting 'Billing Address' record raised at least one error. Please review the errors. Error: 'RevisionID' cannot be empty. We are unable to pinpoint exactly when this error occurs. Sometimes, it happens when adding a non-stock item, and at other times, it occurs when saving values in the new custom fields. The error disappears after refreshing the page, but this is not a practical solution as all entered data is lost upon refresh. I have attached the SOOrderEntry code and the Customization Projectfor your reference. Could you help identify what we might be doing wrong or missing? Any help would be greatly appreciated. Thank you.Ramitha Manathunga.SOOrderEntry Code #reg
Hi Team, I am creating a custom screen, and I have an issue with a column and actions . I added a screen ID "Details," but the standard actions like "Insert" and others are not working when I click them. Please provide a solution.Regards,Sagar <asp:Content ID="cont3" ContentPlaceHolderID="phG" Runat="Server"> <px:PXTab ID="tab" runat="server" Width="100%" Height="150px" DataSourceID="ds" AllowAutoHide="false"> <Items> <px:PXTabItem Text="Details"> <Template> <px:PXGrid runat="server" ID="CstPXGrid10" KeepPosition="True" DataSourceID="ds" SkinID="DetailsInTab" SyncPosition="True"> <Levels> <px:PXGridLevel DataMember="detailsqltyresponse" > <Columns> <px:PXGridColumn DataField="Cod" Width="70" /> <px:PXGridColumn DataFie
I need to add a new segment type to Lot/Serial classes but running into an issue because of a static method. In class INLotSerClassMaint, the persist method is overridden to do validation on the segments. Here is the method from standard Acumatica. public override void Persist() { foreach (INLotSerClass lsclass in lotserclass.Cache.Inserted) { lsclass.LotSerFormatStr = INLotSerialNbrAttribute.MakeFormatStr(lotserclass.Cache, lsclass); if (lsclass.LotSerTrack != INLotSerTrack.NotNumbered && lsclass.AutoNextNbr == true) { int NumbericCount = 0; foreach (INLotSerSegment lssegment in lotsersegments.View.SelectMultiBound(new object[] { lsclass })) { if (lssegment.SegmentType == INLotSerSegmentType.NumericVal) { NumbericCount++; } } if (NumbericCount == 0) { throw new PXException(Messages.NumericLotSerSegmentNotExists, Messages.NumericVal); } else if (NumbericCount > 1) { throw new PXE
I am developing a new processing to process web orders that can be pushed straight through to creating a shipment. I have the process set up that assigns the owner and creates the shipment but I’m not sure how to automatically send the shipment confirmation report to a specific printer on devicehub.The code I have which works to the point of creating the shipment and storing the shipment number is below.using System;using PX.Data;using PX.Objects.SO;using PX.Data.BQL.Fluent;using PX.TM;using PX.Common;using System.Collections.Generic;using PX.Objects.CR;using PX.SM;using PX.Reports;namespace PPCustomOrderProcess{ public class AIProcessOrdersCust : PXGraph<AIProcessOrdersCust> { public class wOOrderType: PX.Data.BQL.BqlString.Constant<wOOrderType> { public wOOrderType() : base("WO") { } } public class paymentMethodAFFIRM: PX.Data.BQL.BqlString.Constant<paymentMethodAFFIRM> { public paymentMethodAFFIRM() : base("AFFIRM") { } } public class pa
I want to disable Allocatiob Apply field disable by default.
I need to check the checkbox Allocation Apply which is a User-Defined Attribute in SOOrder when ever there is any change in the orderQuantity.I also want to disable the Allocation Apply Fieldpublic class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry> {protected void _(Events.FieldUpdating<SOLine, SOLine.orderQty> e){var row = e.Row;// Need to udpate the Apply field when ever there any change in the OrderQty // Allocation Apply field is in SOOrder} }// The below Solution isn’t working SOOrder Order = PXSelect<SOOrder, Where< SOOrder.orderNbr, Equal<Required<SOOrder.orderNbr>> > >.Select(Base, row.OrderNbr);var isAllcocateed = e.Cache.GetValueExt(Order, "AttributeALLOCAPPLY");
Hi Community,I am working on a customization in Acumatica, where I need to open the parameter screen for a report before the report is executed. I am using the report ID AM660000 for the "Move Report," and I want to pre-fill some parameters (like BatchNbr) from the current screen, but I want to ensure that the user can select additional parameters (like AcctCD) before the report is actually run.I have tried using the following code:throw new PXReportRequiredException(parameters, "AM660000", "Move Report");However, this approach immediately runs the report instead of just opening the parameter screen. I would like to know if there's a way to only show the parameter screen and allow the user to modify or select their parameters (e.g., AcctCD) before proceeding with the report.Any insights or examples would be greatly appreciated!
Hi, I’m trying to increase the width of the “File name” column on the “Files” screen (accessed via any screen → FILES). However, I wasn’t able to locate this screen in the customization project. Do you know what the screen name might be or where I can find it? Thanks
Hi All,I’ve added a custom field to the Purchase Receipt header, and I want to display this field on the Shipment screen Lot/Serial Nr. selector as a custom column. The idea is to display the value from the Purchase Receipt header where the LotSerial number in the shipment matches the LotSerial number from the Purchase Receipt. If there's a match, the corresponding custom field value from the Purchase Receipt should be shown on the Lot/Serial Nr. custom column.Has anyone implemented something similar or can guide me on how to achieve new column and customization.Thanks in advance!
I’m trying to create a Generic Inquiry for a table that doesn’t have its own screen, and I want to add some user defined attributes to the table. I know that add attributes to a screen is straightforward, but how would I do it without the manage user defined fields?
Hi everyone,I’ve added a checkbox called UsrOptional to mark certain line items as optional. When checked, the item is displayed as “optional” in the Sales Quote screenNow, the customer wants the total of these optional items to be excluded from the regular “Total Net” amount. Instead, this total should be displayed separately under a label like “Total Optional Items Net”.Does anyone have an idea how to implement this?Or other ways to handle it ?Thanks in advance!
Good day,In shipments screen I added in the header an unbound field with a button and a tab named Labels with a grid. When entering a quantity of labels to be made the button is pressed and it creates the label record in the custom table and appears in the grid, but my problem is that when creating labels the first time they appear and a few seconds later they disappear until I refresh the screen, the records are in the database and the labels are created just fine, but I don't know why they randomly disappear from the screen, I am not sure if I missed a configuration for the grid in the editor. public class SOShipmentEntry_Extension : PXGraphExtension<PX.Objects.SO.SOShipmentEntry>{ public PXSelect<EVTCCustomLabels, Where<EVTCCustomLabels.shipmentNbr, Equal<Current<SOShipment.shipmentNbr>>>> LabelsView; public PXAction<SOShipment> generateLabel; [PXButton (CommitChanges = true)] [PXUIField(DisplayName = "Generate Labels",
I have added a custom columns to the SOLineSplit which i want to add the custom fields to LotSerialNbr selector lookup. Attribute for the selector was uses as below. [SOLotSerialNbrAttribute.SOAllocationLotSerialNbr(typeof(SOLineSplit.inventoryID), typeof(SOLineSplit.subItemID), typeof(SOLineSplit.siteID), typeof(SOLineSplit.locationID), typeof(SOLine.lotSerialNbr), FieldClass = "LotSerial")]need to added two more columns SOLineSplitExt.UsrConversionUnit , SOLineSplitExt.UsrQtyINPiece
Hello everyone!,I need to add a custom screen in my mobile project, but when I want to enter the screen I see the following error "The sitemap does not contain the parent container." I identified it that happend when I have a SmarthPanel control on the ASPX page it doesnt work. Someone know how can I fix this?
I am working on SalesOrder Screen SO301000.Problem Statement :-- I want to add the functionality to the page. When Clicking on Save Button I want to know if the Quantity for the for the Row Has changed. If yes, I also want to get the old value and new value and add logic based on the Comparison. But only when clicking on the Save Button
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.