Understand the benefits of Supply Chain Management Software for your organization by breaking down the key features and taking an in-depth look at the markets
Learn accounts receivables automation benefits and best practices from readiness through to implementation. Introduction As businesses grow and scale, managing accounts receivables (AR) becomes increasingly
Learn how automation for 3PL companies helps them to overcome many of the issues facing the 3PL industry today. Introduction In recent years Third-Party Logistics
Learn how working with a D365 Supply Chain Consultant can improve the way your supply chain operates, from increasing efficiency to reducing operational costs and
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.
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.
The following script is created to demonstrate:
– 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!
Understand the benefits of Supply Chain Management Software for your organization by breaking down the key features and taking an in-depth look
Learn accounts receivables automation benefits and best practices from readiness through to implementation. Introduction As businesses grow and scale, managing accounts receivables
Learn how automation for 3PL companies helps them to overcome many of the issues facing the 3PL industry today. Introduction In recent
Discover how Avantiico helps you improve business processes, provide customers with a seamless experience and transform the way you do business.