Hi everyone,
I'm working on a Business Central SaaS v27.4 implementation and I need to confirm whether the following behavior is by design or a known limitation.
---
SCENARIO
When running 'Post Inventory Cost to G/L' (Source Code: INVTPCOST), BC generates a G/L entry that posts to two accounts simultaneously:
• Account A (e.g., a COGS-type account)
• Account B (e.g., an Inventory Balance Sheet account)
Both accounts have different Default Dimension values configured for the same dimension (let's call it DIM1):
• G/L Account A → Default Dim DIM1 = VALUE_A
• G/L Account B → Default Dim DIM1 = VALUE_B
The originating document line carries DIM1 = VALUE_A.
Default Dimension Priorities for INVTPCOST are configured as:
• Priority 1: G/L Account (Table 15)
• Priority 2: Item (Table 27)
---
OBSERVED BEHAVIOR
After posting, BOTH G/L Entries end up with DIM1 = VALUE_A.
G/L Account B does not pick up its own Default Dimension value (VALUE_B).
---
EXPECTED BEHAVIOR
Since G/L Account has Priority 1 in the Default Dimension Priorities, I would expect each G/L Entry to resolve its DIM1 value from its own Default Dimension configuration:
• G/L Entry for Account A → DIM1 = VALUE_A
• G/L Entry for Account B → DIM1 = VALUE_B
---
ROOT CAUSE HYPOTHESIS
My understanding is that the posting engine (Codeunit 12) builds a single Gen. Journal Line with a single Dimension Set ID derived from the Value Entry. That same Dimension Set ID is then stamped on ALL resulting G/L Entries, regardless of the destination account.
This means Default Dimension Priority resolves conflicts at the Gen. Journal Line level (before insertion), but has no effect at the individual G/L Entry level (per destination account).
---
QUESTIONS
1. Is this a confirmed architectural limitation of BC? Specifically, that a single Gen. Journal Line carries one Dimension Set ID applied to all resulting G/L Entries regardless of the destination account?
2. Does Default Dimension Priority for INVTPCOST only act at the Gen. Journal Line level and NOT per individual G/L Entry?
3. Has anyone found a standard configuration workaround that allows two G/L Entries in the same INVTPCOST posting to carry different values of the same dimension — without blocking other posting operations on those accounts?
4. Is the only viable solution an AL extension subscribing to OnBeforeInsertGLEntry in Codeunit 12, reading each account's Default Dimension and overriding the Dimension Set ID before insertion?
Any insight from the community or Microsoft engineers would be greatly appreciated.
Thank you!