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 am facing an issue with a customization on the Receive and Put Away screen related to automatically triggering the Set Qty action, and I would appreciate your guidance.ScreenReceive and Put Away (PO302020)Issue DescriptionI have implemented custom logic to automatically trigger the Set Qty action after scanning an item.In Receive mode, the functionality works as expected.After scanning the item, the Set Qty state is triggered automatically, and the system prompts the user to enter the quantity.In Put Away mode, the same logic does not work. Expected BehaviorIn Put Away mode, after scanning the item and location as per flow, the system should automatically trigger the Set Qty action and prompt the user to enter the quantity. Customization Code Referenceusing System;using System.Collections;using PX.Data;using PX.BarcodeProcessing;using PX.Objects.IN;using PX.Objects.PO.WMS; namespace PX.Objects.PO.WMS{ public class ReceivePutAwayExt_ASetQtyExt : PXGraphExtension<ReceiveP
We are experiencing an issue where the selector magnifying glass icon is missing on all screens in Acumatica.The problem occurs system-wide and is not limited to a specific screen. As a result, users cannot open selectors using the magnifying glass and must rely on keyboard input only.
In 25R2 Acumatica is pushing everyone toward the “Modern UI” (HTML/TS) customization path and, as part of that change, the old in-product ASPX Editor is effectively no longer available.
25R2 classic to Modern UI converted and added to the package , package published in another instance unable to see the MUI changes in the screen In 25R2, to be able to add the files to the Customization project you have to have the Modern UI files in the following path, FrontendSources\screen\src\developmentAfter publish the package in another instance the Modern UI files not reflected in any where
I have created a DAC with two keys and an Identity field. I can view and edit existing records fine, however when I create a new record and enter in a new key value as soon as I leave the field it blanks. Both Key fields blank after I focus is lost.Any Ideal? [Serializable] [PXCacheName("MLS Listing")] [PXPrimaryGraph(typeof(MLSListingList))] public class GPMLSListing : PXBqlTable, IBqlTable { public class PK : PrimaryKeyOf<GPMLSListing>.By<address1, postalCode> { public static GPMLSListing Find(PXGraph graph, string address1, string postalCode) => FindBy(graph, address1, postalCode); } #region ListingID [PXDBIdentity( FieldName = "Property ID")] //[PXSelector(typeof(Search<address1>), ValidateValue = false)] public virtual int? ListingID { get; set; } public abstract class listingID : PX.Data.BQL.BqlInt.Field<listingID> { } #endregion #region Selected [PXBo
Hello all, We can open a new screen using PXRedirectRequireExcption. We also can include parameters as argument when we throw the exception. My question is how in the “target” screen we can access the parameters provided as argument when we threw the exception in the “source” screen. for example I throw the below exception from screen A that will open screen B. So when screen B page is loading how I can access the P1 and P2? to be more specific I need to access them in the Page_Load.throw new PXRedirectRequiredException(myGraph, true, string.Empty, P1, P2) { Mode = PXBaseRedirectException.WindowMode.NewWindow };Any help is appreciated.
How to show PXRichTextEdit in the mobile app?
Hi, I'm working on a customization project in Acumatica 2024 R2 to allow for split payments for Cash Sales. I have a custom DAC that will store the multiple payments for a cash sale if it's allowed for that invoice. However after trying to add a line counter to the SOInvoiceExt to keep track of the lines added for the split payment I'm unable to load the SO303000 screen. Please see below code for the SOInvoice DAC, Custom DAC and the extended graph. Any help is greatly appreciated.**SOInvoiceExt** public class SOInvoiceExt : PXCacheExtension<PX.Objects.SO.SOInvoice> { #region UsrSplitPayment [PXDBBool] [PXDefault(false)] [PXUIField(DisplayName="Split Payment")] public bool? UsrSplitPayment { get; set; } public abstract class usrSplitPayment : PX.Data.BQL.BqlBool.Field<usrSplitPayment> { } #endregion #region UsrSplitLineCntr [PXDBInt()] [PXDefault(0)] //[PXUIField(DisplayName="Split Line Counter", Enabled= false)] public int? UsrSplitPa
This question was asked and answered before. But the solution on that topic does not work in 25R2 for me.PXAction created on Graph ext Show on Modern UI grid Header | CommunityI'm trying to add a custom action to a grid on AP301000. I am working on a local demo instance with no other customizations.I am able to add my action, but when I do, all the other actions on the grid disappear.I tried thisexport interface AP301000_APTran_ICSAllocations_converted extends APTran { }@gridConfig({ preset: GridPreset.Details, autoGrowInHeight: GridAutoGrowMode.Fill, repaintColumns: true, topBarItems: { AddNew: { index: 0, config: { commandName: "AllocateLine", text: "Allocate Line" } } }}) And thisexport interface AP301000_APTran_ICSAllocations_converted extends APTran { }@gridConfig({ topBarItems: { AddNew: { index: 0, config: { commandName: "AllocateLine", text: "Allocate Line" } } }})Any assistance would be greatly appreciated.
I have create an action with PXAction on my Graph extension, I am trying to add this action on the grid header, after converting code to Modern UI, it is not showing on grid Header, although I have verified this action is added in view class in ts file like…--------------------ts file------------------export class EWPM3030 extends PXScreen {BatchFormulaMaterials = createCollection(BatchMatl);}export class BatchMatl extends PXView { AddPackagingMatl: PXActionState;}---------------html---------------<qp-grid id="FormulaMaterials_gridMatl" statusField="Availability" view.bind="BatchFormulaMaterials"></qp-grid> please let me know if anything is more required
I have a custom screen (XC030000 - Recurring Task Maintenance) that I'm trying to open from a graph extension action. The redirect works perfectly in Classic UI but fails in Modern UI with the error: "You have insufficient rights to access the object (XCRecurringTaskMaint)."Environment:Acumatica Version: 2025R1 UI Mode: Modern UI (works in Classic UI) Custom Screen ID: XC030000 Custom Graph: Recurring.XCRecurringTaskMaintWhat I'm Trying to Do:I have a universal graph extension that adds a "Create Recurring Task" action to multiple screens (Sales Orders, Purchase Orders, etc.). When clicked, it should open my custom Recurring Task screen in a new window with pre-filled RefNoteID and RefNoteIDType values. public static class Functions{ public static void OpenRecurringTask(PXGraph callingGraph, Guid? refNoteID, string refType) { var graph = PXGraph.CreateInstance<Recurring.XCRecurringTaskMaint>(); var task = graph.RecurringTask.Insert(new XCRecurringTask());
I’m customizing the SO301000 screen in Modern UI. I created a Dialog Panel in the .html file and linked it to the TypeScript class with @viewInfo and createSingle/createCollection. However, the panel does not display when I open the screen. I’ve attached my .html and .ts files. Can anyone point out what I’m doing wrong or missing in the setup? .htmlimport { GridPreset, PXActionState, PXFieldOptions, PXFieldState, PXView, controlConfig, createCollection, gridConfig, columnConfig, createSingle, viewInfo} from "client-controls"; import { SO301000, SOOrderHeader, SOLine } from "src/screens/SO/SO301000/SO301000"; //export interface SO301000_SKModernUICST extends SO301000 { }export class SO301000_SKModernUICST extends SO301000 { AddRBInvoiceOK: PXActionState; @viewInfo({containerName: "addRBinvoicefilter"}) addRBinvoicefilter = createSingle(AddRBInvoiceFilter); @viewInfo({containerName: "RBinvoicesplits"}) RBinvoicesplits = createColle
Hello everyone,I’m asking if someone can help me with this issue. I have custom fields in the Contact tab, which stopped working for me after converting to Modern UI. This is my code, and I’m not sure what’s wrong. Thanks in advance
In the Process Order screen, I have added a custom StringList field to the grid. When I apply a filter on this field in the grid level, the filtering works only for the currently loaded page. If I navigate to the next page, the filter then applies only to those page records, not across all pages.Could you please suggest the correct approach to make the filter work across all pages/records? public delegate IEnumerable ordersDelegate(); [PXOverride] public virtual IEnumerable orders(ordersDelegate basemethod) { PXUIFieldAttribute.SetDisplayName<SOOrder.customerID>(Base.Caches[typeof(SOOrder)], Messages.CustomerID); SOOrderFilter filter = PXCache<SOOrderFilter>.CreateCopy(Base.Filter.Current); if (filter.Action == PXAutomationMenuAttribute.Undefined) yield break; if (_ActionChanged) Base.Orders.Cache.Clear(); PXSelectBase<SOOrder> cmd = GetSelectCommand(filter); AddCommonFilters(filter, cmd); int startRow = PXView.StartRow;
Hi,I have a custom screen with multiple tabs. The tabs are dynamically displaying based on header '’document type'’ field. The tabs are working correctly when i open the screen. But when I navigate to the same screen using PXRequiredRedirectException from a custom process screen, the tabs are not populating values. Only the first tab works correctly. Others will populate when i refresh it manually. How to solve this?
Hello Everyone,Could you please advise or share any documentation on how to print inventory labels from the Receive and Put Away screens in the WMS Mobile App?Thank youJennifer
I'm not sure if this is possible in the modern interface, but I wanted to ask.Currently, in the classic 25R2 interface, when a user creates an accounts payable invoice, the FIRST field they enter is "Vendor." Then, using the TAB key, they cycle through each field following the specific procedure we've requested. From "Vendor," the TAB key goes to "Date," then to the left, then to "Location," and finally to the middle column. See the image below of the classic 25R2 interface.A customization has been added to the fields to specify the order when the Tab key is pressed. But in the modern version, it's not working correctly. Could you help me with the parameters I need to use to make this work in the modern version? In the Modern UI, if they enter "Vendor" first and press TAB, it just goes down that middle column and never back to the first column. See below..html <template> <qp-tab after="#ContactsTab" id="ServiceRenderTab" caption="Services Rendered Tickets"> <qp-
I am trying to add a custom field to the PO505000 (Create Purchase Orders) screen, but when I click the “customize existing screen” button in the project editor and then go to the screen to edit it, I am getting the error shown below: I have tried publishing the project after adding the screen but that has not worked. I have also tried removing the screen, publishing the project, and adding it back into the project but that has also not helped. Any ideas on things I can try would be greatly appreciated!
I’m seeing the error message: [2025-11-19 12:17:33.647] Cannot delete C:\[tenant]\App_Data\TSScreenInfo\Company folder, lock.json is present, pid=21156, ppid=17096 I presume this relates to a fatal build error in the previous publish attempt, which aborted with an HTML Merge error. It seems like the lock.json is not deleted when the publish exits abnormally.I have to manually delete that file before I can Publish.The issue might go away if the HTML Merge error gets fixed in a new version, but it strikes me that the Publish ought to remove the lock file.This is with 25.200.0248.
Environment - Acumatica version: Acumatica 2025 R2,Build 25.200.0248- SQL Server: Microsoft SQL Server 2022 Express - Module: Automation Schedules / Scheduling Error messageCannot insert the value NULL into column 'IsRelative', table 'DatabaseName.dbo.AUScheduleFill'; column does not allow nulls. INSERT fails. When it occursOccurs when saving or running an automation schedule that includes entries in the Filter Values tab after recent changes (upgrade, customization deployment, or schema update). The error appears at the moment the system attempts to insert rows into ‘AUScheduleFill’. --- Steps to reproduce1. Log in to Acumatica and open Automation Schedules. 2. Create or open a schedule that has a populated Filter Values tab (one or more filter rows). 3. Save the schedule or trigger the schedule run. 4. Observe the SQL/Acumatica error about `IsRelative` being NULL and the INSERT failing. --- What I have checked and tried- Confirmed the exact error text in the Acumatica trace and S
When a user enters a sales order and selects some stock items, the Marked of PO check is defaulted to check. The scenario did not occur for all items; not verified. I tested a few; see below. It this setting? Or something I can turn off. I causes order processing confusion and errors; also you can create a shipment without unchecking the box. (We do Dropships and Direct Import orders that do require a purchase order to be generated.Thank you for your assistance.
Is it possible to create a custom redirect exception? We have a requirement that at the end of a process we need to redirect to a file and a report. I have seen the PXRedirectWithReportException and thought we could recreate a version of this to redirect to a file instead of a report. Is this possible? I have seen this page Creating a Custom Exception, where it mentions “To create a custom redirect exception, you must derive a class from the PX.Data.PXBaseRedirectException base class.” There is no documentation (that I have seen) that shows how to do this. Are there any examples of custom redirection exceptions? Or an explanation on how these work? Or source code on this?
Dear Acumatica Team,I am following same instructions for learning T190 course. I want to create custom field for Repair Shop, But when i follow same instructions, and go to click on Customize button, I am getting error below.An unhandled exception has occurred in the function ‘MoveNext’. Please see the trace log for more details.When i go to check log trace, i am not getting any information from Log trace. There is no any item available for that. Please find attachment for the same.Please help me to fix this issue.Thanks & Regards,Mike Waugh
My customer wants to be able to select items in the Selected Inventory Items grid and add them to the Excluded Inventory Items grid without having to add them one at a time.I created a custom checkbox and an action to do this. However, I cannot get the checkbox field to be enabled. The grid has a Details skin, so that shouldn’t make the grid read only.I tried adding code to the row selected handler for the grid but it is still disabled.protected virtual void InventoryItem_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected baseHandler){ var row = (InventoryItem)e.Row; baseHandler?.Invoke(cache, e); PXUIFieldAttribute.SetEnabled<SCGCInventoryItemExt.usrExclude>(cache, null, true); Base.InventoryItemsToLock.Cache.AllowUpdate = true;}I tried it as shown above and also without using the baseHandler but no difference. protected virtual void InventoryItem_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { var row = (InventoryItem)e.Row; PXUIFieldAttribute.SetE
I have a very strange problem with Modern UI. Here are the steps I take to get it: I create a sales order, set a kit, explode it, then without saving it, I create a new line with any item. When I try to set a QTY, it throws an object referencing error and role back qty to 0 on the tab and resets the QTY back to zero. This problem is related to Modern UI because Classic UI doesn't have this problem.protected virtual void SOLine_OrderQty_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e, PXFieldUpdated baseMethod){ baseMethod?.Invoke(sender, e); SOOrderEntry soGraph = (SOOrderEntry)sender.Graph; SOLine row = (SOLine)e.Row; if (row == null) return; BZSOLineExt rowExt = PXCache<SOLine>.GetExtension<BZSOLineExt>(row); if (rowExt == null) return; switch (rowExt.UsrBZExplodeState) { case null: return; case BZExplodeState.Never: return; } if (soGraph.IsContractBasedAPI || row.InventoryID == null ||
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.