TM1 Principle Element Name Dilemmas

There are dilemmas when using Skeys, ID # and Name in conjunction with creating a Principal Element Name and/or  Aliases.  With TM1, all elements within a dimension have to be unique, regardless of level.  The Principal Element Name is the name of the element that has to be consistent.  You can have several Aliases, which are alternate names of the elements; however, the Alias names have to be unique too.  Another nuance is that since you can load data using either the Principal Element Name or the Alias, you have to keep the uniqueness between the two as well.  For example:

TM1 principle element name

So what you really would prefer is ID # as the Principal Element Name and then the Name as the Alias if there is the possibility that the Name will change.  That way, if there is a Name change down the road, you just change the Alias and all the data remains in the same place.   Here is an example:

TM1 principle element name

Some companies incorporate Skeys in their data warehouses.  This is not a problem; however, you need to be aware of the usage of the element, as using Skey for the Principal Element Name and/or the Alias can cause some confusion.  We will use the dimension of Customer_Account to illustrate this point.  Let’s say we have a Skey, Customer Account # (ID#) and Name for each customer.  First off, you could potentially have a duplicated Skey and Customer Account # that affects two different customers, which would put you in the “crisscross” situation above with Dimension_X.

TM1 principle element name

So the above looks fine and dandy so far….

But two years later, you have more customers and Bob has grown his business.  Now your data generates a new Skey for Bob’s company name change, which becomes this:

TM1 principle element name

You now have the problem where the Skey has “crisscrossed” the Principal Element Name and the Alias Name.  Plus, you did not really want a new data point to hit.  Since Bob’s company still has Customer Account # 1000, you just wanted to change the Alias Long Name to handle his name change.  In this case, you would want the Customer Account# to be the Principal Element Name, the Customer Name for the Alias and to ignore the Skey.

TM1 principle element name