Problem:
When a dimension is created in Business Central, it is assigned a SystemId
(e.g., 6e590b5b-b0ee-ef11-9345-7c1e522171eb
).
In the Dimension Value table (349), each record also includes a Dimension Id
, which should match the SystemId
from the Dimension table (348).
When a dimension value is created manually, the Dimension Id
is correctly populated and matches the corresponding dimension's SystemId
. This means the link between dimension and dimension value is maintained not only via the Dimension Code, but also via the Dimension Id (GUID).
However, when using Master Data Synchronization to sync these two tables, the Dimension Id
in the Dimension Value table is not correctly filled. Instead, it defaults to 00000000-0000-0000-0000-000000000000
.
This causes problems when using the standard Business Central API to retrieve dimension values. The API uses the Dimension Id (GUID) — not the Dimension Code — to establish the relationship. As a result, the data returned via the API is incomplete or incorrect. Also within the retrieved data, the dimension code is not visable.
Solution:
After speaking with someone from Microsoft support, I learned that the Dimension Id
field is considered obsolete and should no longer be relied upon or expected to be populated. Therefore, fixing this field in the synchronization process is not necessary.
However, since the API still depends on the Dimension Id
to return related dimension values, it should be updated or extended to also support filtering or linking by Dimension Code to ensure consistency and usability.