Skip to main content

Acuminator Version 4.0.1 Release

  • February 12, 2026
  • 0 replies
  • 0 views

snikomarov36
Acumatica Employee
Forum|alt.badge.img

Hi everyone,

We are pleased to announce that the new Acuminator 4.0.1 has been released.

This is a hotfix release that addresses feedback that we received after the release of Acuminator 4.0.0. It includes several targeted improvements and bug fixes. You can download Acuminator from its page on Visual Studio Marketplace:
https://marketplace.visualstudio.com/items?itemName=Acumatica.Acuminator

Alternatively, you can download Acuminator and the Acuminator Console Runner tool from GitHub: https://github.com/Acumatica/Acuminator/releases/tag/v4.0.1

Full release notes with the complete change list are available here:
https://github.com/Acumatica/Acuminator/releases/tag/v4.0.1

 

Highlights

  • New PX1039 diagnostic (ISV Mode only)
    New rule that forbids usage of the "PX" namespace and its sub-namespaces for ISVs, OEMs, partners, and other external developers. These namespaces are reserved for Acumatica internal use. This diagnostic is enabled only when ISV Mode is turned on in Visual Studio: "Tools -> Options -> Acuminator -> General -> Enable additional diagnostics for ISV".
     
  • Acuminator Console Runner: --non-interactive flag
    New --non-interactive command-line flag to the Acuminator Console Runner. By default, Console Runner supports interactive cancellation via Ctrl + C. The new flag disables interactive cancellation, making Acuminator Console Runner better suited for non-interactive CI/CD environments (for example, Azure Pipelines).
     
  • PX1065 improvements (missing BQL fields in DACs)
    Significant reduction of redundant alerts for DAC extensions and derived DACs. Previously, the PX1065 diagnostic always displayed errors for DAC extensions and derived DACs if their base DAC had a DAC field with a missing BQL field. As a result, for some DAC extensions Acuminator displayed a lot of alerts about issues in the base DAC. This was reported by several extension authors as distracting. Thus, the PX1065 diagnostic was changed to report problematic DAC fields from the base DAC only if they are customized by the DAC extension or overridden by the derived DAC.
  • Improved detection for fully unbound DACs
    Adds new heuristics that significantly reduce false positives in  PX1036, PX1069, and PX1110  diagnostics. A DAC is now considered fully unbound based on these rules:

    - A DAC with no DAC fields, or only unbound fields, is always fully unbound.
    - A DAC marked with PX.Data.PXVirtualAttribute is always fully unbound (even if it has DB-bound fields).
    - A DAC marked with PX.Data.PXProjectionAttribute, PX.Data.PXAccumulatorAttribute, or any other attribute derived from PX.Data.PXDBInterceptorAttribute is always considered DB-bound (even if it has only unbound fields).
    - A DAC with a DB-bound NoteID field is considered fully unbound if NoteID is the only DB-bound field and all other DAC fields are unbound.

Additional Fixes

  • Fixed the detection of view delegates in graphs and graph extensions to correctly recognize delegates in rare cases.
  • Improved support for PXOverride-related diagnostics and code fixes when customizing members that use ref, out, in, and ref readonly parameters and return types.
  • Fixed false positives:
    PX1000 for PXOverride methods that override action delegates of graph actions.
    PX1023 for DAC fields using PX.Data.PXDBPackedIntegerArrayAttribute.
  • Improved documentation for PX1079, PX1080, and PX1101 diagnostics.

Acknowledgements

Thank you to everyone who contributed to making this release possible, including:

  • Ekaterina Androsova for the help with Acuminator documentation and release notes.
  • Vladimir Panchenko for reviews and help with the Acuminator release process.
  • Andrey Budaev and Build team for the help with the Acuminator release process.
  • Dmitrii Naumov, Evgeny Afanasiev, and Stanislav Lesin for useful information about the current Acumatica Framework rules and best practices.
  • Everyone else who helped and may not have been mentioned above