Introducing Acumatica Cloud ERP: 2026R2
Technical discussions focused on Customizations for developers. See Low Code | No Code Forum for non-technical discussions
Recently active
Hi, I have written the logic to expose a UDF (UsrMACFWarehouse) on the Companies and Branches screen which works on my local site running via Modern UI, however once I export the customization package and import to my production site, the fields are not exposed but the project builds correctly.Can you please check the attached project on what could be the issue?
I want to add a box connotation (colored status field) to a customized stock screen (AR303000) in a customization project on 2026 R1.I created status-colors.scss and referenced it from my customization HTML:<template> <require from="./status-colors.scss"></require> <qp-fieldset id="fsLoyaltyProgram" view.bind="BAccount" caption="Loyalty Program" wg-container="BAccount_LoyaltyProgram"> <field name="UsrMembershipStatus" class="colored"></field> </qp-fieldset></template>The file shows on the Modern UI Files page at screens\AR\AR303000\extensions\status-colors.scss, and the customization publishes successfully. But at runtime the console throws:Uncaught (in promise) Error: Failed loading required CSS file: customizationScreens/Company/screens/AR/AR303000/extensions/status-colors.scssWhat I've already ruled out:Not the SCSS contents — fails the same way even with a trivial .colored { font-weight: bold; } and no @import. Not sta
Since the ConfirmShipment() method now has a new signature with ConfirmShipmentArgs replacing all the old parameters, how do I get the Action<SOOrderEntry, SOShipment> baseConfirmShipment? I need to call the base action but I don’t know how to get the PXAdapter or delegate needed to call it. Here’s what I have so far (the last code line ConfirmShipmentAction() is giving me errors)... public class PaymentValidationSOShipmentConfirmExt : PXGraphExtension<ConfirmShipmentExtension, SOShipmentEntry> { private void ValidateTotalEachSO(SOShipLine soShipLine, bool createShipment) {... ...} #region ConfirmShipmentAction public delegate IEnumerable ConfirmShipmentActionDelegate(PXAdapter adapter); [PXOverride] public IEnumerable ConfirmShipmentAction(PXAdapter adapter, ConfirmShipmentActionDelegate baseMethod) { // Custom Logic before var result = baseMethod(adapter); // Custom Logic aft
Hi all. I have multiselector attribute. I need show attribute value in my other view like this show in Attribute tab. For example: When valueID and description is fill i need show description, when description is null i need show valueID
Hello Acumatica Community,I'm currently attempting to implement the code shared from @Naveen Boga in this post Acumatica Community Post to enable the "CreatePDF" action through a Generic Inquiry, a Business Event, and an Import Scenario for what I'd envision as a type of bulk processing replacement. However, the action is not appearing in the Import Scenario. Am I missing something? How can I ensure that this action is available in that context?
Hi Everyone.I Developing webhook but while publishing i encounter error An error while processing the field: confirmShipmentAction from PX.Objects.SO.SOShipmentEntryand this my current setup. public async Task HandleAsync(WebhookContext context, CancellationToken cancellation) { #region Connection Setup PXDataRecord? record = PXDatabase.SelectSingle<AISCubiicConnectionSetup>( new PXDataField<AISCubiicConnectionSetup.userName>(), new PXDataField<AISCubiicConnectionSetup.tenantName>() ); string? userName = record.GetString(0); string? tenantName = record.GetString(1); string fullUsername = string.IsNullOrWhiteSpace(tenantName) ? userName : $"{userName}@{tenantName}"; #endregion using (new PXLoginScope(fullUsername)) { using (var jr = new JsonTextReader(context.Request.CreateTextReader())) { var payload = Serializer.Deserialize<ConsignmentsResponse>(jr)
Hello,We’ve been live on Acumatica for just over a month. One issue we’ve been encountering is the path to production process for customizations.Is it standard practice for Acumatica developers to publish code directly to the production environment and to test tenants instead of promoting code through the test environments to production after testing?
I'm trying to create a processing screen with a filter containing an Email Account selector and a grid below showing incoming emails for the selected account.Initially I tried using a PXProcessingJoin directly on CRSMEmail:public PXProcessingJoin<CRSMEmail, LeftJoin<BZPODocument, On<BZPODocument.messageID, Equal<CRSMEmail.messageId>>>, Where<CRSMEmail.mailAccountID, Equal<Current<EMailAccount.emailAccountID>>, And<CRSMEmail.isIncome, Equal<True>, And<BZPODocument.messageID, IsNull>>>> Emails;When I set grid's DataMember to this view, I got the following error:An unhandled exception has occurred in the function 'get_Item'. Please see the trace log for more details.undefined: Cannot read properties of null (reading 'elemByID')I then switched to using a PXProjection DAC based on CRSMEmail: [PXProjection(typeof(Select2<CRSMEmail,LeftJoin<BZPODocument, On<BZPODocument.messageID, Equal<CRSMEmail.me
I'm trying to dynamically change the display name of a DAC extension field based on another field value in the same extension, but PXUIFieldAttribute.SetDisplayName() does not update the UI even though the code executes.DAC Extension:public class LocationExt : PXCacheExtension<PX.Objects.CR.Standalone.Location>{ #region UsrGSTRegistration [PXDBString(16)] [PXUIField(DisplayName = "GST Registration")] public virtual string UsrGSTRegistration { get; set; } public abstract class usrGSTRegistration : PX.Data.BQL.BqlString.Field<usrGSTRegistration> { } #endregion}Inside RowSelected:PXUIFieldAttribute.SetDisplayName<LocationExt.usrGSTRegistration>( e.Cache, displayName);The code compiles correctly, the event hits during debugging, and displayName gets the expected value — but the label in the UI does not change.As a workaround suggested in another post in this community, I tried creating an unbound field to act as a dynamic label:#region UsrRe
I’m attempting to display an image from the currently selected detail line, beside the grid, and I cannot get it to work without database manipulation.The detail lines are a custom Photo record that have some details about the photo, and an image uploader shown in the element below. All on a simple form. This custom photo record is working as expected.<div id="divColumnC-Img" slot="B"> <qp-image-uploader id="ImageUrl" state.bind="Photo.ImgUrl" width="100%" height="100%" caption="Image"> </qp-image-uploader></div> Now, beside this other grid, I want to display the photo from the currently selected line. See below. However, it doesn’t load the image, and when I open developer tools I see this message on the console.“app.ts:222 GET http://localhost/<SiteName>/Shedworks%20Photo%20(PHO-00009110)/login_bg3.jpg 404 (Not Found)”qp-image-view element with the system generated value as the Image Url in the databaseHere’s that image viewer element. <div id="divCo
Hello,I am trying to add two custom fields (UsrMXFEPedimentoNbr and UsrMXFEImportDate) to the Line Details (Line Splitting) grid in the Shipments screen.Acumatica Version: 2025 R2SO302000 - Line Details panelFollowing the standard extension pattern, I created the .ts and .html files. However, when running npm build, I get an error stating that #grid-LineSplitting does not exist.After investigating, I noticed that SO302000_LineSplitting.html references a shared component: ../../../IN/common/line-splitting/panel-line-splitting/panel-line-splitting.html. Since the grid is defined in that shared template and not directly in the SO302000 main files, the compiler cannot resolve the after="#grid-LineSplitting" instruction. This is my code: SO302000_MyExtension.tsimport { placeAfterProperty, PXFieldOptions, PXFieldState } from "client-controls";import { SOShipLineSplit } from "src/screens/SO/SO302000/extensions/SO302000_LineSplitting";import { SO302000, SOShipment,Transactions, Packages } from
For example, in Generate Forecasts, AM502000, I need to bring in a cross reference to display since our reports all use cross refs for internal work. I’m comfortable enough with the no-code to bring in fields in “Add Data Fields”, but I’m stuck on this. From what I can gather, I’d be doing a graph extension, but I’m lost on the rest. Could someone either point me in the right direction for examples I can pull from, or can you tell me the process? Thanks much in advance. The ability to have a cross reference displayed will be game changing on many of our screens.
On the self service portal, when you open the Catalogue, you can select a Category which populates from the Item Sales Categories screen on the main site.We don’t want to display ALL categories. I added a custom field to the screen to indicate that we want to show the selected category on the portal. I think I found where the Categories selector is populated on the SSP.public class PXSelectCategoriesTree : PXSelectBase<INCategory>{ public PXSelectCategoriesTree(PXGraph graph) { this.View = CreateView(graph, new PXSelectDelegate<int?>(categories)); } public PXSelectCategoriesTree(PXGraph graph, Delegate handler) { this.View = CreateView(graph, handler); } private PXView CreateView(PXGraph graph, Delegate handler) { return new PXView(graph, false, new Select<INCategory, Where<INCategory.parentID, Equal<Argument<int?>>>, OrderBy<Asc<INCategory.sortOrder>>>(), handler); } internal IEn
We have developed a very powerful Approval Workflow that works on over 20 of Acumatica’s most used screens. Unlike other Approvals Workflows in the market that mostly manage AP Invoices, this workflow basically works on any screen that has Approval Map in Acumatica.Some of the benefits of this advance workflow are:The workflow allows to define multiple Approval Classes and Approval Routes.The workflow allows to Approve, Reject, Route, Skip and Complete any given document based on the permissions. Users who are part of the Approval Admin Role, can override the step.Approval chain can be set up at master record levels in combination with the Acumatica’s built in functionalities and used in transactional approval. For example if you are a construction company, you can setup your approvers on the projects and then use them for example in AP bills or subcontracts.,.. we support up to 10 level of Approvals at master record levels but can be increased if needed.All actions are permission base
Hi,I created one Processing screen with List of Vendors..After Processed selected records(3), All records(10) got vanished from the screen.If I refresh the grid/screen, then unprocessed records(7) are showing in the screen.How can I get unprocessed records automatically without refresh after processing??Thanks.
Hi everyone,Our team is ramping up on the new Acumatica UI and we're gathering training material to get everyone up to speed. We've already found the T290 course, which has been helpful.We're now looking for additional sources to round out our learning — anything that covers the new UI in depth. A few things we'd love pointers to:DevCon / Acumatica Summit sessions or recordings on the new UI Blog posts or article series YouTube channels or playlists Any other official or community-made content you'd recommendPlease let me know if you have something!
Hello, I am trying to customize the screen SP401000 which only appears in the modern portal. I created a typescript and html extension for that screen, and published via the project editor in the main instance. Once I go into the portal of that main instance, those fields don’t show up. Is there a different process for adding custom fields to the portal? When I did ctr+alt in that screen, the view uses the same CRCase database which those custom fields are located in.
I have my custom form.DAC: [Serializable][PXCacheName(Messages.CustomerStandingPOs)][PXPrimaryGraph(typeof(ABCustomerPOsMaint))]public class ABCustomerPOs : PXBqlTable, IBqlTable{ #region CustomerID public abstract class customerID : PX.Data.BQL.BqlInt.Field<customerID> { } [CustomerActive(Visibility = PXUIVisibility.SelectorVisible, DescriptionField = typeof(Customer.acctName), Filterable = true, Required = true)] [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)] public virtual Int32? CustomerID { get; set; } #endregion #region EffectiveDate public abstract class effectiveDate : PX.Data.BQL.BqlDateTime.Field<effectiveDate> { } [PXDBDate] [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)] [PXUIField(DisplayName = Messages.EffectiveDate, Required = true, Visibility = PXUIVisibility.SelectorVisible)] public virtual DateTime? EffectiveDate { get; set; } #endregion #region ExpiryDate public abstract class expiryD
Hello everyone,I have a customization package (A) that adds a grid tab to a custom screen from another package (B).In package A .ts file I’m referencing this custom screen but I need to know if there is a global variable or something to create a dynamic tenant name in the import URL:Example:import { CP301000 } from 'src/customizationScreens/{tenant_folder}/screens/CP/CP301000/CP301000'; Thanks in Advance!Alberto Bello
Hi Everyone.I am brand new to Acumatica and am starting off with the recommended tutorials.Running PhoneRepairShop tutorial - T190. Followed all the steps and published. Get this error: The view MasterView doesn't exist.[2026-06-01 10:12:09.401] Starting the website[2026-06-01 10:12:09.487] Plug-in InputData[2026-06-01 10:12:09.548] Error: The view MasterView doesn't exist.I’ve redone all the steps 3 times. All is correct.I also don’t see any errors in the log files.Can anyone offer any help or advice to help me get going please?Thanks in advance.
I am working on extending the Customer Location screen (AR.30.30.20) and need to add an Attributes tab similar to the one available on the Customers screen.Attributes derived from the customer class by customer. But value set in Customer Location screen
I have a custom field called UsrAlternateIDs which is added to the InventoryItem DAC. It is used as a separate way to search for IDs while using a selector on certain screens. This is how it is added to a screen as an example: This is done because I would like when the user types in in the selector it will also filter on this custom field. It’s already added to the selector grid and if you click on the selector’s magnifying glass it filters as I would like (this works both in the Classic and Modern UI): I would like to do the same filter without the user having to click on the magnifying glass to filter the item like it does on the Classic UI: In the Modern UI I can get the selector to work if you click on the magnifying glass: But it doesn’t if you just search without opening the selector’s grid: This is what I’ve tried to do which doesn’t seem to do much. Does anyone have any thoughts on how to best update this Classic UI functionality to Modern UI? Or should I do this a different wa
I am trying to generate a wrapper class (using ClassGeneratorForModernUI) for the ‘Companies’ screen (ScreenID = CS101500) for my automated testing, specifically adding support to run my tests in modern UI. When I try to do this, I get the following error in the GetScreensAsync method when calling the ‘response.EnsureSuccessStatusCode()’ line of code : "{\"title\":\"No container found for view `Taxes` in the Screen Schema for screen. Probably for the HTML element 'QP-GRID' with the Id 'gridTaxes' provided View Name is not declared in the TypeScript ViewModel.\",\"status\":500,\"traceId\":\"00-a0c78e6ac7d5d2392ff4be275189e8a7-c5d9514ac8bd0709-00\"}"This is a fresh acumatica instance with no customization projects published. I’m not sure if this is an existing bug or if there is a setting/feature I need to enable.
I am currently working on an integration where I need to extract data from various tables in Acumatica. Right now, my process heavily relies on using OData via Generic Inquiries (GIs) or configuring Contract-Based REST API Endpoints.While this works, it is becoming very inconvenient and hard to maintain. Every time there is a new requirement to get data from a new table, I have to go back into Acumatica, create a new GI (or add the table to an existing one), expose it, and publish the project.I am looking for a much more dynamic approach.My ideal scenario is to have a single API setup where I can just pass the target Table Name (e.g., SOOrder or InventoryItem) and the Fields I want to retrieve as parameters in the request, and have Acumatica return the data. I want to build/configure it just once and use it universally for any table in the future.Has anyone encountered this requirement before? Is there any alternative approach, hidden feature, or a more dynamic solution to achieve this
What am I doing wrong here? I have an inquiry screen with custom grid row colors depending on Production Order Status. The style is being applied, but there is no more slight color change to indicate the current focus/selected row/cell. See the GIFs. With GetRowCss custom highlighting Without custom highlighting import { Messages as SysMessages } from "client-controls/services/messages";import { createCollection, createSingle, PXScreen, graphInfo, PXPageLoadBehavior, handleEvent, CustomEventType, RowCssHandlerArgs, CellCssHandlerArgs } from "client-controls";import { SWProdPlannerLineFilter, SWProdPlannerLineView } from "./views";@graphInfo({ graphType: "PVBMFGCustomizations.SWProdPlannerInq", primaryView: "Filter", pageLoadBehavior: PXPageLoadBehavior.PopulateSavedValues })export class SW401010 extends PXScreen { Filter = createSingle(SWProdPlannerLineFilter); Details = createCollection(SWProdPlannerLineView); @handleEvent(CustomEventType.GetRowCss, { view: 'Details'}) getDetailsRowC
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.