Skip to main content

Accounting Implementation Classes Extracted to org.idempiere.acct

Accounting Implementation Classes Extracted to org.idempiere.acct

Accounting-related implementation classes have been moved out of iDempiere core into a dedicated bundle: org.idempiere.acct. This separation lays the groundwork for running iDempiere without the accounting engine in use cases where it is not needed.


What Changed

All accounting implementation classes (document posting logic, accounting schema handling, Doc_* classes, etc.) have been moved from core bundles into the dedicated org.idempiere.acct bundle.

AspectBeforeAfter
Accounting classes locationSpread across iDempiere coreConsolidated in org.idempiere.acct
Accounting engine dependencyAlways loaded - part of coreLoaded only when org.idempiere.acct is active
Running without accountingNot possiblePossible via Extension Manager (see limitations)
Plugin developers referencing acct classesResolved from coreMust declare dependency on org.idempiere.acct
Functional behavior (standard installs)UnchangedUnchanged — bundle is included by default

Who Is Affected

  • Standard implementations with accounting enabled: No action required. The org.idempiere.acct bundle is included and active by default. Behavior is identical to previous releases.
  • Implementations wanting to run without accounting: This is now slightly possible via the Extension Manager. Be aware of the known UI limitations listed below.
  • Custom plugin developers: If your plugin references any accounting implementation classes (e.g., org.compiere.acct.*, Doc_* classes), you must update your plugin to declare an explicit dependency on org.idempiere.acct.

Disabling Accounting via Extension Manager

It is now possible to disable the accounting engine by disabling the org.idempiere.acct bundle through the Extension Manager.

note

This is an advanced configuration intended for specialized deployments that do not require accounting: such as headless integrations, operational-only setups, or specific industry verticals.

To disable accounting:

  1. Log in to iDempiere as a System Administrator.
  2. Navigate to Extension Manager.
  3. Locate the org.idempiere.acct bundle.
  4. Disable the extension.
danger

Known limitations when accounting is disabled:

  • The Post button and all Accounting related tabs disappear from the UI after accounting is disabled.
  • If your implementation requires a button or an Accounting related tab - f.e. because you have a customization using that even without accounting - then you need to change the DisplayLogic of the element to remove or replace the @#ShowAcct@=Ypart, this can be done using "Window Customization".

Do not disable accounting in production environments unless you fully understand the impact on your implementation.


Impact on Custom Plugin Developers

If your plugin had a compile-time or runtime dependency on accounting implementation classes, you must update your MANIFEST.MF:

Require-Bundle: org.idempiere.acct

Rebuild your plugin and verify there are no missing class references. Plugins that do not declare this dependency will fail to compile or throw ClassNotFoundException at runtime when accounting classes are resolved.

tip

If your plugin only references model classes (e.g., MInvoice, MOrder) and does not directly invoke posting logic or Doc_* classes, no changes are needed.