Acumatica Customization Tutorial
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:
- Navigate to System > Customization > Customize
- Click Create New Project
- Enter a name and description for your project
- Select the appropriate site map level
- 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:
- Select the Fields tab
- Choose the data access class to extend
- Click Add Field
- Configure field properties (name, type, display name)
- Save and publish the project
Customizing Screens
You can customize existing screens or create new ones. To customize an existing screen:
- Open the screen you want to customize
- Click Customize in the toolbar
- The Customization Project opens with the screen loaded
- Add/remove fields, change layouts, or add new sections
- 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.