Parent dimension sets

So far, I have been explaining everything based on one dimension set, consisting of Department and Cost Center dimensions. We created a hierarchy and rules for some ledger accounts and free text invoice.

Now we control combinations “Department - Cost Center”, and don’t care about Purposes – any purpose is valid in any situation. Still, if we wanted to control Purpose without dependency on any other dimension, we would have to create another dimension set, specify Purpose as its one and the only component, then create a one-level hierarchy and all needed rules. Our dimension sets would not intersect in this case, so whenever we validate Purpose – one dimension set would be used, and when we validate Department or Cost Center – than another one would work.

But let’s imagine that the Purpose dimension should also depend on another dimension, say, Cost Center. And although Cost Center is already controlled by DepCC dimension set, we may create another dimension set (that will consist of Cost Center and Purpose dimensions), create a hierarchy and eventually a rule that will control ledger accounts, journals etc.

So, open the Dimension Sets form and create another record in the upper grid, setting “Set” field to “CCPurp”, and “Description” to “Cost Center and Purpose ”. Then, open Dimension tab-page. As you can see, only one dimension is available to select from (because the other two are already used in another set). Move Purpose from the “Available dimensions” list to “Selected dimensions”. Good. But we need Cost Center dimension as well. So, open Parent tab-page. We have to tell the system, what dimension set we would like to share a dimension with. Here, we select “DepCC” dimension set, then mark Cost Center in the appeared list of dimensions, and finally press Ctrl+S to save the record. After you press Yes in a confirmation dialog, the dimension set is saved, having Cost Center as the first priority dimension, and Purpose as the second priority:

From now on, the Cost Center dimension is controlled by two sets!

So, if we had a rule for a ledger account in each of the two sets, then only Cost Centers valid for both rules would be available for entry.

Let’s check this behavior. As you may see in my first post about dimension sets, the “110180 - Petty cash” ledger account has a rule for “Department – Cost Center” dimension set, and according to this rule the dimension entry for this account is controlled with DepCC1 dimension set hierarchy. Let’s imagine that we would like to apply new restriction onto this account:

· Only Cost Centers 1020 and 3010 are valid;

· For Cost Center 1020 - only Purpose M010 is valid, and for Cost Center 3010 – only Purposes starting with ‘P’ are valid.

So, we have to create a dimension set hierarchy for “CCPurp” set. In the Designer, it should eventually look like this:

Now, mark Check checkbox and then mark Simulate checkbox.

The hierarchy has no duplicate errors. Press the enabled Update button and close the designer. On the “Dimension sets” form, mark the hierarchy as Approved and then open the “Dimension Set Rules” form.

Now, in the “Dimension Set Rules” form create a Collection named “Accounts”, and select the just created hierarchy:

And finally, create a record in the lowest grid, setting a dimension set rule for the Petty Cash ledger account:

(As you might notice, the Hierarchy value is automatically substituted – it is just copied from the collection setup. You may select another hierarchy for a detailed rule, if you wish.)

So, the ledger account 110180 has two rules now – one per dimension set.

Let’s create a new General journal and create a journal line, setting Account to 110180. If you consequently opened lookup form for each of the Dimensions now, you would see 2 values for Department, 2 for Cost Center and 6 for Purpose. But, set Cost Center to 3010 and check the lookups again. You can see the difference: only one department is valid from now on.

And only purposes starting with ‘P’ are selectable.

This is the result of intersection of the two rules: all the 3 dimensions are validated together for the ledger account 110180.

Of course, it is also possible to create one dimension set consisting of all the 3 dimensions, and then create a 3-level hierarchy. But if there were dozens or even hundreds of dimension values in the system, then the number of valid combination would be so huge, that the hierarchy simulation would take several hours (if not days!). It is much more convenient to have several small sets (linked together through shared dimension) and several small hierarchies for these sets.

And this is it about the parent dimension sets.