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 facing a validation issue when trying to use the CopyChildLink attribute on a field that has its selector overridden in CacheAttached. [PXRemoveBaseAttribute(typeof(ARInvoiceType.AdjListAttribute))] [ARInvoiceTypeExt.AdjList] protected virtual void _(Events.CacheAttached<ARPaymentTotals.adjdDocType> e) { } [PXRemoveBaseAttribute(typeof(ARInvoiceType.AdjdListAttribute))] [ARInvoiceTypeExt.AdjdList] protected virtual void _(Events.CacheAttached<ARAdjust.adjdDocType> e) { } [PXMergeAttributes(Method = MergeMethod.Replace)] [PXDBString(15, IsKey = true, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC")] [PXDefault] [PXUIField(DisplayName = "Reference Nbr.", Visibility = PXUIVisibility.Visible)] [ARInvoiceType.AdjdRefNbr(typeof(Search2<ARInvoice.refNbr, LeftJoin<ARAdjust, On<ARAdjust.adjdDocType, Equal<ARInvoice.docType>, And&l
This custom C# attribute will create a selector from an Acumatica ‘combo’ attribute.[PXString(10, IsUnicode = true)][PXDBString(10, IsUnicode = true)]public class DXSelectorFromComboAttributeAttribute : PXCustomSelectorAttribute{ protected string _AttributeID; public DXSelectorFromComboAttributeAttribute(string AttributeID) : base(typeof(CSAttributeDetail.valueID), typeof(CSAttributeDetail.valueID), typeof(CSAttributeDetail.description)) { _AttributeID = AttributeID; SubstituteKey = typeof(CSAttributeDetail.valueID); DescriptionField = typeof(CSAttributeDetail.description); } public override void FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e) { if (_AttributeID is object) { var view = new PXView(sender.Graph, true, GetSelect()); view.Clear(); foreach (CSAttributeDetail attributeDetail in view.SelectMulti(_AttributeID)) { view.Cach
I added the project task description next to the project task field in the classic version, but in the modern version, the project task description field is placed at the end, as shown in the image. How can I make the project task description next to the project task in the modern version?This is the code I tried to write, but it's not working. .tsimport { PXFieldState } from "client-controls";import { AR301000,ARTran } from "src/screens/AR/AR301000/AR301000"; export interface AR301000_SKModernUICST extends AR301000 {}export class AR301000_SKModernUICST {}export interface ARTran_SKModernUICST extends ARTran {}export class ARTran_SKModernUICST { ARTran__TaskID_description: PXFieldState;} .html<template> <qp-grid id="gridDetails" view.bind="Transactions" wg-container="Transactions_grid"> <field name="TaskID"></field> <field name="TaskID_description"></field> </qp-grid></template>
I am currently working on the Dunning Letter functionality in Acumatica.The requirement is to send different email notifications for each Dunning Letter level (for example, Level 1, Level 2, Level 3, etc.).Each Dunning Letter level should have: Its own email template Different email content and tone based on the severity of the overdue status The correct template selected and sent automatically when a Dunning Letter is generated for that specific level Each email should have Outstanding Amount in Dollars I want to understand the best approach to configure or customize Acumatica so that the system sends the appropriate email template corresponding to the Dunning Letter level.
Hi,I have a smart panel with unbound DAC with single record. There is a dropdown field in this smart panel grid. User can manually select a value from this dropdown field. The problem is the user selected value not getting when I click OK button. I tried with commitchange property. This is not working. When I assign default value through code that value will get assigned always.Any assistance would be greatly appreciated
Hello everyone,I'm having the following scenario: I’m having the following code related with the Shipments screen in which I’m supposed to have 2 grids a separate tab called “Truck Information”, the grids are one for the Truck Information and the other is for Related Purchase Receipt Information. What I’m trying to achieve is when there’s an existing truck information data, when the user selects that row, the linked PR;s with this truck should be automatically displayed (reloading the graph or better updating the cache if possible). At the moment it’s almost working but the user has to automatically refresh the Related PR’s grid using the actions refresh button and the idea is that to be automated. There’s an existing functionality made by Acumatica in another screen (Complete Bidding) and the tab with the same functionality is called Bidding Results. The idea is the same but I’m not able to automatically refresh or update visually the cache. The selection does work. I’m open for any a
I am working with the standard DAC ARRegister and need to change the logic of the calculated property SignBalance.Standard implementation: public virtual decimal? SignBalance{ [PXDependsOnFields(typeof(docType))] get { return ARDocType.SignBalance(_DocType); } set { }}My requirement is to have SignBalance calculated using custom logic, i.e. the getter should call my own method instead of ARDocType.SignBalance.
I have introduced a new custom AR Document Type.I am encountering an issue during the release process within the ARReleaseProcess graph. Specifically, the standard method CreateSelfApplicationForDocument fails when trying to insert an ARAdjust record for my custom document type.Here is the standard code logic where the error occurs:public virtual ARAdjust CreateSelfApplicationForDocument(ARRegister doc){ ARAdjust aRAdjust = new ARAdjust(); aRAdjust.AdjgDocType = doc.DocType; // My Custom DocType aRAdjust.AdjgRefNbr = doc.RefNbr; aRAdjust.AdjdDocType = doc.DocType; // My Custom DocType aRAdjust.AdjdRefNbr = doc.RefNbr; // Error occurs validating this // ... setting other fields ... aRAdjust.Released = false; // The error happens on this line: return (ARAdjust)ARAdjust_AdjgDocType_RefNbr_CustomerID.Cache.Insert(aRAdjust);} The Issue: When Cache.Insert(aRAdjust) is called, I get a PXSetPropertyException stating that the AdjdRefNbr cannot be found.It seems
I am trying to create a simple api handler as part of a customization using System.Collections.Generic;using System.IO;using System.Web;using Newtonsoft.Json;namespace SampleAPI{ public class SampleApiHandler : IHttpHandler { public bool IsReusable => false; public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; context.Response.Write("{\"status\":\"ok\"}"); } }}I published the customization and changed web.config <add name="SampleAPI" path="api/sampleApi" verb="POST" type="SampleAPI.SampleAPIHandler" resourceType="Unspecified" preCondition="integratedMode" /> But I am not able to call it, it times out, am I doing anything wrong?
Today i met an interesting case. When i assign into “Task ID” new value for display “Номер Замовлення” for example. And “PROJECT TASK” into “Замовлення”. Mobile brokes.Here language isn`t matter. If i write English words i get same result as i describe below.SM200540 You can place here value on your own.In old UI we have same WSDL sceme fieldName. Like on screen below Turned off MUIBut in modern UI fieldName Differs Turned on MUIas a result mobile markup brokes up and TASK ID disappears. So imagine if we have 2 languages, selector will be displayed only in 1?Please share your experience. How we can handle this localized names.
Hi everyone,I’m experiencing an issue while exposing a custom Generic Inquiry (GI) to the Acumatica mobile app.Here’s what I’ve done: I created a new GI based on the AMOrderType DAC and added two fields, including the key field Order Type and same Navigation. There is also a system GI (AM-OrderType) based on the same DAC, which includes all fields in its results grid. Both GIs work perfectly in the web UI. I tried both enabling and disabling the “Expose to Mobile Application” for both GIs and added them as new screens in a custom mobile project, mapping two fields for each (using WSDL → Result Container → Field Names). I also updated the Site Map with their respective screen IDs. After publishing, both screens appear under the “Other” tab in the Acumatica mobile app.However: The system GI displays data correctly. The custom GI shows the error: “Object reference not set to an instance of an object.” Additional details: Both custom and system GIs work fine when exposed in a
When I publish modernui files, in the typescript it goes to “src/screens/customScreen/customScreen/customScreen” but that screen doesn’t exist in the file locations for standard Acumatica screens, so I end up with an error ‘Cannot find module 'src/screens/customScreen/customScreen/customScreen' or its corresponding type declarations.’ Where should I point my typescript to?
I want to add a few fields to the Contacts screen on the Mobile App. I’ve successfully got 3 of them to show, but the City field won’t.I modified the CR3020PL GI to enable the Address1 field to be visible. I added the City field as well. When you view the GI, the fields are visible.I blacked out the email, address and phone number. This is my code to update the CR3020PLupdate screen CR3020PL { update container "Result"{ fieldsToShow = 6 containerActionsToExpand = 1 add field "City" add field "AddressLine1" add field "Phone1" add field "Email" remove field "JobTitle" remove field "Status" }}If I remove AddressLine1, it goes away, so I do believe my updates are working.I set the fieldsToShow to 10 and it still only shows per the screenshot.In the GI, you can see the fields are in the Results Grid. I had to enable AddressLine1 to make it visible on the Mobile app. Hopefully I am missing something simple.
Hi Everyone,I’m working on a customization where I need to add an action to the Sales Order line that behaves similar to the standard Add Related Item function. I already have a custom popup and a DAC that stores line-level kit component details. Now I want to extend this by adding the “Add Related Item” functionality inside my custom action.I’m looking for guidance on the correct approach: How can I call or reuse the existing “Add Related Item” logic from my custom action? Is there a way to trigger the same popup and selection logic that Acumatica uses in the standard action? If the standard behavior cannot be reused directly, what is the recommended pattern to rebuild this functionality for a custom grid action. Any examples or references of extending or overriding the Add Related Item action would be helpful. Screenshot to refer : This is my action in grid & I copy same field in action with same attribute but its not working.Thanks in advance for any suggestions or example
I have a custom smart panel with a grid inside it, and I need to focus the cursor on a specific field in the first row of this grid when the panel opens, as if I had clicked on that field. Does anyone know if this is possible to implement?To be more specific, let’s take the grid on the TASKS tab from the PM301000 screen as an example. Is it possible to make it so that when this tab is opened, the system automatically behaves as if the first row’s Rate Table column has been clicked, just like in the screenshot?
Hi,I have completed the initial steps for migrating from the Classic UI to the Modern UI and am currently working on Modern UI enhancements. However, I am encountering an issue where the Site Map screen continues to load indefinitely, making it inaccessible and preventing any updates or navigation. The same issue appears to affect Customization Projects as well.I would appreciate any guidance or suggestions you could provide to help resolve this.Thank you in advance. Premalatha N
I am encountering an issue with a custom dialog (Ask / Simple Dialog) that works correctly in the Web UI but does not behave as expected in the Mobile App.Screen PO302020 – Receive and Put Away Issue DescriptionI have implemented a custom Action Button that opens a dialog (popup) to display Adjacent Locations.The dialog works correctly in the web application, but in the mobile app, the dialog opens and displays data, however the OK (Save) button does not work. Actual Behavior (Mobile App) Dialog opens successfully Data is displayed in the list Clicking OK / Save does nothing Mobile Screen Customization Code update screen PO302020 { update container "HeaderView" { update layout "FooterLayout" { update layout "Line2" { add recordActionLink "AdjLocations" } } add recordAction "AdjLocations" { displayName = "Adjacent Locations" behavior = Void redirect = true redirectToDialog = "AdjacentLocationsDlg" } } add dialog AdjacentLocation
I created a new DAC and a new related graph.I tried adding a screen for that DAC/Graph.I went to Screens->Create Screen. A create screen form was presented.I provided the requested details, including the graph name.When I click on Create, the graph name field is cleared and is marked as an error that reads, "The graph already exists."I assume that this is a noobie’s error, so I would appreciate the guidance of the colleagues in this group.
We have a customization to a screen that needs to be upgraded to modern UI. The only thing that is different in the customization vs. the default screen is the graphType. This particular customization required us to create a completely new graph vs. a graph extension but no changes to screen layout.How would I create a Typescript extension that only changes the graphType value? I actually got this to work by just changing the default GL504500.ts file and compiling but that doesn’t feel like the right way to do this as it could get overwritten by future Acumatica updates.// #####################################################// C:\inetpub\wwwroot\AcumaticaCCS\FrontendSources\screen\src\screens\GL\GL504500\GL504500.ts// #####################################################import { PXScreen, createSingle, createCollection, graphInfo, PXPageLoadBehavior, PXView, PXFieldState, PXFieldOptions, linkCommand, columnConfig, PXActionState, gridConfig, GridPreset} from "client-controls";@graph
I am working with ARAdjust in Acumatica and need to apply adjustments for custom AR document types that are not included in the standard [ARInvoiceType.AdjdList].Currently, the field in the DAC is defined as:[PXDBString(3, IsKey = true, IsFixed = true, InputMask = "")][PXDefault("INV")][PXUIField(DisplayName = "Doc. Type", Visibility = PXUIVisibility.Visible)][ARInvoiceType.AdjdList]public virtual string AdjdDocType { get; set; } When I try to set AdjdDocType to my custom type, the PXSelector on AdjdRefNbr fails, because the selector only allows standard AR types.My goal is to extend the AdjdDocType field to accept custom document types while keeping ARAdjust functionality intact.What is the recommended approach in Acumatica for this? Can I safely extend the [ARInvoiceType.AdjdList], or is there another way to handle custom document types in ARAdjust?
I need to change the background color of rows on the Batch Payments screen (AP305000) based on a Boolean field added through an extension of the CABatchDetail DAC. I referred to a few community posts and attempted two different approaches, but neither worked as expected. I suspect the issue may be due to incorrect adaptation of the sample code to fit my specific requirement.I just need to fix one of following or something else to achieve the requirementApproach One: Adding a JS script.Following is JS script and related grid. I just add the following script in to the aspx file.<asp:Content ID="cont3" ContentPlaceHolderID="phG" runat="Server"> <script type="text/javascript"> function HighlightLines() { if (px_all && px_all["grid"] && px_all["grid"].rows) { let lines = px_all["grid"].rows.items; for (let i = 0; i < lines.length; i++) { let currentLine = lines[i]; if (!currentLine) continue; try { var isVendorVerified = currentLine.getCell("UsrIs
We are working with Acumatica Modern UI and would like to ask for guidance on a UI behavior question.We need to dynamically show or hide a tab based on the value of a specific field.The field can have one of two values: “SHA” or “ASH”.When the field value is “SHA”, the tab should be visibleWhen the field value is “ASH”, the tab should be hidden (and vice versa, if applicable)
When add row to grid have error:Object reference not set to an instance of an object.View:[PXCopyPasteHiddenView] [PXViewName(Messages.WorkOrders)] public PXSelect<AMProdWorkOrder, Where<AMProdWorkOrder.orderType, Equal<Current<AMProdItem.orderType>>, And<AMProdWorkOrder.prodOrdID, Equal<Current<AMProdItem.prodOrdID>>>>> WorkOrders; var wo = new AMProdWorkOrder { OrderType = prodItem.OrderType, ProdOrdID = prodItem.ProdOrdID, NbrUI = nbrUI, SubWorkOrder = $"{prodItem.ProductOrdID}-{nbrUI}", Date = dateRow.Date, WcID = dateRow.WcID, Capacity = dateRow.Capacity, PlanQty = dateRow.PlanQty }; wo = WorkOrders.Insert(wo);DAC: [Serializable] [PXCacheName(Messages.ProdWorkOrder)] public class AMProdWork
PXResultset<CSCalendarDate> calendarResults = PXSelect<CSCalendarDate, Where<CSCalendarDate.calendarID, In<Required<CSCalendarDate.calendarID>>>, OrderBy<Asc<CSCalendarDate.calendarID>>> .Select(Base, (object)calendarIDs); List<CSCalendarDate> calendarDates = new List<CSCalendarDate>(); foreach (PXResult<CSCalendarDate> res in calendarResults) { CSCalendarDate dateRow = res; calendarDates.Add(dateRow); }I have error at this in calendarResults row. Cannot create an abstract class.Its my DAC: [Serializable] [PXCacheName(Messages.CalendarDate)] [PXProjection(typeof(SelectBase<CSCalendarDate, LeftJoin<CSCalendarExceptions, On<CSCalendarDate.date, Equal<CSCalendarExceptions.date>, And<CSCalendarExceptions.workDay, Equal<False>>>>, Where<CSCalendarExc
I am facing an issue with a customization on the Acumatica 2025 R2 Receive and Put Away screen and would appreciate your guidance.Issue Description:I have added a custom Action Button on the Receive and Put Away screen. When the button is clicked, a popup window opens that displays a list of active locations in a grid with selection checkboxes.The expected behavior is that when I select multiple locations in the popup and confirm the action, all selected locations should be processed and set to inactive.Actual Behavior:When more than one location is selected, only the last selected location is being processed and inactivated. The previously selected locations are ignored.Expected Behavior:All selected locations in the popup grid should be processed together, and the inactive logic should apply to each selected record. Custom Code ReferenceBelow is the relevant customization code used for the popup and action button:using System;using System.Linq;using System.Collections;using System.C
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.