
Customizing an ERP requires a specialized skill set and powerful tools to ensure quality and efficiency. For developers working with Acumatica ERP, building robust solutions that adhere to platform standards is critical for long-term success. Acuminator is an intelligent assistant that simplifies development, reduces errors, and accelerates project timelines.
This post will explore Acuminator’s core features, from static code analysis to productivity boosters like the Code Map. We will demonstrate how this free, open-source tool, maintained by Acumatica, transforms the development experience by integrating directly into your workflow. For development managers and partners, adopting Acuminator is a strategic move that enhances team productivity and code quality without any additional cost.
What Is Acuminator?
Acuminator is a Visual Studio extension that provides a suite of Acumatica-specific code analysis tools. It is an intelligent assistant that helps developers write better code by enforcing best practices directly within the IDE. It analyzes your C# code in real time, identifying common mistakes, offering instant fixes, and providing tools to navigate complex business logic.
By integrating Acuminator, development teams can streamline their workflows, improve code maintainability, and ensure customizations are built to last. Most importantly, it is a free, open-source project maintained by Acumatica, making it accessible to every developer in the ecosystem without impacting project budgets.
Key Productivity Features for Developers
Acuminator is designed to address the specific challenges of Acumatica development. Its features go beyond generic linting to provide context-aware assistance that makes a tangible difference in daily productivity.
Static Code Analysis with Diagnostics and Fixes
The heart of Acuminator is its powerful static code analysis engine, which delivers over 100 different diagnostics tailored to Acumatica-specific code patterns. It runs in the background, continuously scanning your code for deviations from Acumatica’s development standards. This proactive approach catches issues that are often difficult to spot manually, saving hours of debugging. For a complete list of diagnostics and brief descriptions, see the Acuminator diagnostics summary.
Acuminator identifies common errors such as:
- Incorrect Graph Action Signatures: Ensures that delegates for graph actions are defined with the correct parameters.
- View Delegate Typos: Catches misspellings in the names of view delegates, a frequent source of runtime errors.
- Improper Attribute Usage: Verifies that DAC properties have compatible database field attributes (e.g., PXDBString for a PXStringList).
- Localization Oversights: Flags hardcoded strings that should be localized using PXLocalizable, promoting multilingual support.
When Acuminator detects an issue, it provides a clear diagnostic message and often suggests a one-click code fix to resolve the problem instantly. This immediate feedback loop helps developers learn and apply best practices on the fly.
Code Coloring for Enhanced Readability
Acumatica’s code, with its heavy reliance on BQL, DACs, and attributes, can be visually dense. Acuminator improves code readability by applying distinct syntax highlighting to Acumatica-specific elements, including:
- Graphs and graph extensions
- DACs and DAC extensions
- DAC fields
- BQL queries, operators, and constants
- Graph actions
This visual separation makes it much easier to distinguish platform-specific constructs from standard C# code, allowing developers to scan and understand files more quickly. The color scheme is fully customizable within Visual Studio’s “Fonts and Colors” settings, so you can tailor it to your preferences.
Code Map: Visualize Your Business Logic
One of Acuminator’s standout features is the Code Map tool. This feature provides a high-level, structured overview of the Acumatica business logic within the currently active file. It presents a tree view of key components, making it incredibly easy to navigate complex graphs and DACs.
For a graph or graph extension, the Code Map displays:
- Views and their corresponding delegates.
- Graph actions and their delegates.
- Event handlers, neatly grouped by DAC type and field.
- Overridden members, including the Persist method.
For a DAC or DAC extension, it shows:
- Key fields with their attributes.
- A complete list of all DAC fields.
You can double-click any node in the Code Map to navigate directly to its definition in the code, and hovering over a node displays useful information about the corresponding code element in a tooltip. This feature is invaluable for understanding the structure of an existing class or quickly searching for the particular element of business logic.
BQL Formatting and Outlining
Business Query Language (BQL) is powerful but can become difficult to read, especially in complex queries. Acuminator includes a command to format selected BQL queries that can be accessed from the context menu in the code editor. Executing the “Format BQL” command formats the selected BQL statements according to best practices, improving readability and maintainability.
Additionally, Acuminator provides code folding for BQL queries and attributes. This allows you to collapse parts of a long BQL query, the entire BQL query, or an attribute declaration into a single line, reducing visual clutter and helping you focus on the surrounding logic.
The Clear Benefits of Using Acuminator
Integrating Acuminator into your development process delivers immediate and lasting advantages for both developers and their managers.
Accelerate Development and Reduce Errors
By catching errors as they happen and providing productivity tools like Code Map, Acuminator significantly speeds up the development cycle. Developers spend less time hunting for typos and more time building functionality. This increased efficiency translates directly to faster project completion and quicker delivery of value to your customers or stakeholders.
Improve Code Quality and Maintainability
Code that adheres to a consistent standard is easier to read, debug, and enhance. Acuminator acts as a quality gate, ensuring that all code conforms to Acumatica’s established best practices. This leads to a more stable and maintainable codebase, reducing the total cost of ownership over the long term.
Onboard New Developers Faster
Acuminator is an exceptional training tool. It provides new developers with real-time, contextual guidance on Acumatica-specific coding patterns. Instead of relying solely on documentation, they learn by doing, with the tool pointing out mistakes and explaining the correct approach. This helps new team members become productive members of the team far more quickly.
Getting Started with Acuminator
Installing and using Acuminator is straightforward. Because it is a Visual Studio extension, you can install it directly from the Visual Studio Marketplace.
- Open Visual Studio.
- Go to Extensions > Manage Extensions.
- In the search bar on the right, type “Acuminator”.
- Select the Acuminator extension from the search results and click Download.
- Close Visual Studio to allow the installer to run.
Once installed, Acuminator will automatically activate whenever you open a project that references Acumatica libraries. You can access the Code Map tool by navigating to View > Other Windows > Acuminator Code Map.
Conclusion
Acuminator is an indispensable tool for any serious Acumatica developer. It elevates the development experience by providing intelligent diagnostics, powerful navigation aids, and productivity-boosting features tailored specifically for the Acumatica platform. By enforcing best practices and automating common checks, it empowers developers to write higher-quality code more efficiently.
For businesses and partners, encouraging the use of Acuminator is a simple, no-cost way to enhance developer productivity, ensure project quality, and maximize the return on your investment in Acumatica. It is the smart choice for any team committed to building exceptional solutions on the Acumatica Cloud ERP platform.