ACUMATICA

Acumatica Customization Tutorial

February 20, 2024 15 min read

Introduction

Acumatica is a highly customizable ERP platform that allows businesses to tailor the system to their specific needs. Whether you need to add custom fields, create new screens, or implement complex business logic, Acumatica provides the tools to make it happen.

In this tutorial, we'll walk through the fundamentals of Acumatica customization, starting from creating a customization project to adding custom fields and business logic.

Creating a Customization Project

Start by creating a new customization project in Acumatica:

  1. Navigate to System > Customization > Customize
  2. Click Create New Project
  3. Enter a name and description for your project
  4. Select the appropriate site map level
  5. Click Save

Your customization project is now ready to accept changes. All customizations will be tracked within this project, making it easy to manage and deploy.

Adding Custom Fields

Custom fields allow you to capture additional information not included in the standard Acumatica fields. To add a custom field:

// Example: Adding a custom field to Customer
[PXString(50)]
[PXUIField(DisplayName = "Custom Field")]
public string UsrCustomField { get; set; }
public abstract class usrCustomField : 
    PX.Data.BQL.BqlString.Field { }

In the customization project editor:

  1. Select the Fields tab
  2. Choose the data access class to extend
  3. Click Add Field
  4. Configure field properties (name, type, display name)
  5. Save and publish the project

Customizing Screens

You can customize existing screens or create new ones. To customize an existing screen:

  1. Open the screen you want to customize
  2. Click Customize in the toolbar
  3. The Customization Project opens with the screen loaded
  4. Add/remove fields, change layouts, or add new sections
  5. Save and publish the changes

Screen customization options include:

  • Adding or removing fields
  • Reorganizing field layouts
  • Hiding or showing fields based on conditions
  • Adding new tabs or sections

Adding Business Logic

For complex business logic, you'll need to write C# code using graph extensions:

public class CustomerMaint_Extension : PXGraphExtension
{
    protected void Customer_RowPersisted(PXCache sender, 
        PXRowPersistedEventArgs e)
    {
        if (e.TranStatus == PXTranStatus.Completed)
        {
            var customer = (Customer)e.Row;
            // Custom business logic here
            // Send notifications, update related records, etc.
        }
    }
}

Common business logic implementations include:

  • Validating data before saving
  • Automating calculations
  • Triggering notifications
  • Integrating with external systems

Best Practices

  • Use customization projects - Keep all changes in projects
  • Test in development - Never deploy untested customizations
  • Document changes - Maintain documentation for future reference
  • Version control - Keep code in version control
  • Follow naming conventions - Use Usr prefix for custom fields
  • Consider upgrades - Design for easy upgrades

Summary

Acumatica customization provides endless possibilities for tailoring the ERP to your business needs. By following this tutorial, you've learned the fundamentals of customization projects, custom fields, screen customization, and business logic.

For more information, check out our other tutorials on DAC Extensions and Custom Screens.