
This article will cover advanced x++ to show how developers can serialize financial dimensions to create a default dimension surrogate key from a series of financial dimensions.
In Microsoft Dynamics AX 2012 the financial dimensions are stored as a 64bit integer surrogate key in the database. For example, the following financial dimension combination of BusinessUnit = 001, ItemGroup = Service in AX it is represented as 22565424233. For example, an integration or import process may require a combination of financial dimensions to be serialized in order to save this information in Microsoft Dynamics AX.
There have been significant changes in how financial dimensions are stored in Microsoft Dynamics AX 2012 versus previous versions, and this blog post can assist developers who are not familiar with Microsoft Dynamics AX 2012 financial dimension architecture. This blog explains how this can be used, using a simple import routine. Please refer to my other post about How to Deserialize a Default Dimension in Microsoft Dynamics AX 2012.
Financial dimensions are stored as a 64bit integer surrogate key in the database. When reading/importing financial dimensions it is necessary to create this 64bit integer surrogate key to be stored in the database. This blog explains some of the common Microsoft Dynamics APIs available to save/create a default dimension surrogate key. I’ve created a simple job to demonstrate this.
In this example, we will be working with the financial dimensions of a customer and we will be reading its financial dimensions out of a CSV file and we are filling out the default dimensions in AX.
Figure 1: Customer Default Dimensions

These financial dimensions are stored in the SQL database as a 64 bit integer, right now for customer US-001 there are no financial dimensions, thus we have the DefaultDimension field equal 0.
Figure 2: DefaultDimension Value

Figure 3: Data model of dimension framework in AX 2012

The following script is created to demonstrate:
Figure 4: Sample AOT Job

Figure 5 & 6: This is how the Customer form looks after running the job:


The following Microsoft API’s are used:
– The DimensionAttributeValueSetStorage class is used to iterate through all the financial dimensions in the DefaultDimension.
– The DimensionAttributeValue table is used, this stores a link to the VALUE of the financial dimension we want to display, for example a department or cost center number. This is usually linked via a surrogate key, e.g. DimensionAttibuteValue.EntityInstance is a surrogate key to the exact record we wish to display.
– The DimensionAttribute table is used, this stores information so we can understand the TYPE of financial dimension. This stores the object ID of the view or tabled used as backing entity, e.g. 11765 = DimAttributeOMDepartment
– The DimensionAttribute record contains a “ValueAttibute” field, which is the field id in the backing entity view that stores the VALUE of the financial dimension, this is a natural key, for example a department ID (e.g. Department 10).
Thanks for reading this blog, let me know if you liked it or if you want to hear about something else in my next post!
The post Serializing Financial Dimensions in Microsoft Dynamics AX 2012 – Default Dimensions appeared first on Avantiico.

Like
Report
*This post is locked for comments