Teach Claude to Respect Acuminator — an MCP Server for Acumatica Customization

AI coding assistants are great at C# in general. They are… less great at Acumatica. Ask one to “add a DAC field” or “wire up a graph action” and you get plausible-looking code that quietly violates half a dozen framework conventions — missing [PXDBDefault], wrong PXSelectorAttribute overload, event handlers that compile but never fire. The assistant doesn’t know what it doesn’t know about the framework. Acumatica has a static analyzer for exactly this class of problem: Acuminator. It’s the Roslyn analyzer that ships with every release, encoding the conventions and yelling when you break them (PX1014, PX1030, PX1069, …). What was missing was a way to put Acuminator in front of an AI assistant so the assistant can check its own work without waiting for you to hit build. ...

April 22, 2026 · 3 min · Kyle Vanderstoep

Custom IExternalApplicationProcessor In Acumatica

In a relatively recent version of Acumatica, the “External Applications” screen was added, adding in an easy way to connect to OAuth 2.0 Applications. There is a relatively short list of “Types” of applications that can be used with this screen. But how would one perhaps add their own custom type to this drop-down list? In this blog post, I will show you how. IExternalApplicationProcessor, the interface that defines the class that handles the OAuth Processing, implements two important fields, TypeCode, which corresponds with the drop down value in the “Type” field, and TypeName which is the label that corresponds with the drop down value. ...

April 4, 2024 · 2 min · Kyle Vanderstoep

Creating a New Notification in Acumatica

I recently received a new request from a client who wanted additional notification functionality on the sales order screen. They manufacture items for their customers on a made-to-order basis. In the manufacturing process, every item must be sent off to a single vendor for the finishing step. Therefore, it is important for them to make sure that the vendor knows about all incoming sales orders and promise dates so they can plan accordingly. They wanted an action that would send an abbreviated sales order report off to that vendor. I will share with you how I did it. ...

March 1, 2024 · 3 min · Kyle Vanderstoep

Enabling Parallel Processing on Acumatica Processing Screens

Acumatica, positioned as a mid-market ERP, can be deployed for a wide variety of companies – large, medium, or small. As companies experience growth, the amount of data it needs to manage grows. However, in my experience developing custom code on the Acumatica platform, I find a significant number of organizations I work with punching above their weight when it comes to managing and processing data. Acumatica has a wide variety of processing screens to perform various tasks “en masse”, and additionally has a robust yet easy framework to follow for implementing your own processing screens. Out of the box, however, records are processed sequentially (1,2,3 etc.). Fortunately, it is possible to enable parallel processing for clients with large data processing requirements. ...

March 1, 2024 · 3 min · Kyle Vanderstoep

Enabling Acumatica's Modern UI

In this blog post, I will show you how to enable the developer preview of the new Acumatica UI, released in the 23R1 release. After enabling the UI, I will show you how one rebuilds the site so that after you make changes to files, you can take a look at the changes you have made during development. I have been exceedingly excited about the new Acumatica Modern UI and have been waiting with bated breath for it to be released. In Acumatica 23R1, released on 4/4/2023, it is finally available to preview. I am going to show you how to enable it so you can see it too. ...

March 1, 2024 · 3 min · Kyle Vanderstoep

Reusable ASPX Definitions

Introduction Acumatica has spent a lot of time thinking about making its xRP Framework as developer-friendly as possible. In many different places, efforts have been made to reduce code duplication and to provide quasi “object-oriented” methods for managing elements in the framework. One of those places I will demonstrate to you today is the definition of ASPX Pages. When one is writing custom ASPX pages in Acumatica ERP, the xRP framework allows for reused ASPX definitions to be referenced from a common file, instead of having to copy and paste a common control over and over across multiple pages. Imagine you have three pages, all with the same popup control. ...

March 1, 2024 · 2 min · Kyle Vanderstoep

Popup Layers in Acumatica Side Panels

Acumatica has a very powerful new tool UI Layout: Side Panels. You can see them in action on screens such as “Sales Orders”. You can both enter a Sales Order on the left panel, and check AR Aging on the right panel. But what if the right panel has an action that usually triggers a popup layer? For example of such an action, “Pay Bill” will redirect you to the payments adjustments screen with the bill you had open applied to it. If you don’t redirect properly, it can break the side panel. ...

July 31, 2023 · 1 min · Kyle Vanderstoep

Adding Activities and Tasks to a Custom Screen - 23R1

In Acumatica 23R1, the way you add activities and tasks to a custom screen has changed. You can see a demo of this functionality on the Customers (AR303000) Screen. In version 22R2 and earlier, all the functionality was wrapped into a single dataview: public CRActivityList<YourMainGraphDAC> ActivityList; In 23R1 however, this has now been replaced by two graph extensions: public class YourCustomGraph_ActivityDetailsExt_Actions : ActivityDetailsExt_Actions< YourCustomGraph_ActivityDetailsExt, YourCustomGraph, YourMainDAC> { } public class YourCustomGraph_ActivityDetailsExt : ActivityDetailsExt<YourCustomGraph, YourMainDAC, YourMainDAC.noteID> { } After adding those two graph extensions, you can also reference the following include file in your ASPX: ...

May 15, 2023 · 1 min · Kyle Vanderstoep

Using a Single 'B2C' Customer in the Acumatica Commerce Connector

The default behavior of the Acumatica commerce connector is to synchronize every customer from the external Ecommerce system. A lot of clients have expressed interest in keeping the customer data from cluttering their ERP and instead mapping all orders to a single “B2C” customer, with each order with an overridden shipto/billto address and contact. I will show you how to set up the entity mapping to make this occur. Assumption We need to use only one customer for all the B2C orders created in Shopify, the Customer ID is B2C, and the Customer Name is B2C customer. ...

April 14, 2023 · 1 min · Kyle Vanderstoep

Developer Preview of the New Modern UI

I have been exceedingly excited about the new Acumatica Modern UI and have been waiting with bated breath for it to be released. In Acumatica 23R1, released on 4/4/2023, it is finally available to preview. I am going to show you how to enable it so you can see it too. Step 1: Edit the web.config file Under the <Appsettings> tag of the web.config file, add the following: <add key=”EnableSiteMapSwitchUI” value=”true” /> ...

April 7, 2023 · 1 min · Kyle Vanderstoep