Dynamics NAV Dimensions Sets
Let’s take a look with an example from the Cronus Data. This is Sales Order 101005 from Cronus Canada Inc. Here we see the dimensions for the Line, the header has the same dimensions set.Here’s the resulting G/L Register.
We can see that when I posted the invoice I generated 6 (G/L entries 2225 through 2230 inclusive, when I look at the “Ledger Entry Dimensions” for these entries I see a pattern..
This is because prior to NAV 2013 each G/L Entry would have a unique record created per Dimension specified. So for each dimension specified we get one entry per G/L Entry for a total of 30 Ledger Entry Dimensions.
If we take the same Sales Order in NAV 2013 Cronus we can see it has exactly the same dimensions.
Now when I post the order and look at G/L Registers we see 6 Entries generated 2072 to 2077 inclusive.
This time instead of seeing a Ledger Entry Dimension record per Dimension per G/L Entry we see a link to a new record called a “Dimension Entry Set” which has one Dimension Set ID (16) and the 5 Dimensions
And to link the G/L Entries to the Dimension set we see a new field on the G/L Entry table called “Dimension Set ID”
This is great work, instead now of having 5 sets of identical data we now have one set of data. For the bigger user of dimensions this is a considerable improvement not only in the database size, but performance.
I’ve done a little digging under the hood (which could be the subject of a future blog) and discovered that the design and implementation of the dimension system is very smart indeed.
In the above example we can see that Dimension Set ID 16 references these 5 specific dimensions, if I was to use the same dimensions again the system is smart enough to figure out that I have this combination in a Dimension Set already, and cough up the ID 16 instead of creating a new Dimension Set.
To go one step further instead of using filtering to calculate the Dimension Set ID the Dimension Management Codeunit uses a “Tree-Structure” for performance purpose; this is a bit like what the SQL DBMS does when tracking down indexes.
All in all I am very impressed with this improvement; it’s been thought out and implemented well. Good Job.
Answer some basic questions about your company and your requirements, and find out what products would fit your business.