Rule "1.05-03": Article 1, Chapter 5, and Rule 3 – “Avoid using List Properties” List Properties are same as line items but have many limitations, so keep it simple and have one place for calculations i.e., Module line items. This goes against P and A of PLANS if you wish to create list properties.
Here is how it was done in Pre Planual Era: Whenever there was a need to have an attribute to the lists we used to create list properties.
What is wrong with this method? There are lot of disadvantages of using list properties. A few listed below
It is to be believed that list properties have a negative impact on the model performance especially on the model opening times.
There is no floating formula editor in list properties – meaning you cannot activate the formula bar and use point and click.
You cannot filter upon any list items or any property items/values in Lists
Here is how it should be done in Planual Way: Create a System Module for each list wherever you have properties associated to the lists. This will be a centralized place to store the attributes of the lists. It is worth to mention that these system modules should not have additional dimensionality – No Time, No Versions, no other lists.
Exceptions: There are 5 exceptions that have been given by Planual where you can use List Properties and here is the detailed explanation about all these exceptions
1.05-03a Reference module line items: This exception is given because there might be cases or scenarios where you want to refer the module line items into list properties. For example Display Names of Numbered lists are being driven by Module Line Items
1.05-03b Numbered Lists and related actions: Actions like ASSIGN need to have list properties in place before you start using this function. Read more Assign
1.05-03c Exports: When you want to take any export from Anaplan list properties can be used as an export labels. Let’s see the difference when we export with both these options
Without Row Labels – By default list Name will be available in the labels
Here is the output file
With all Row Labels i.e., Name, Code and List Property called Order
Here is the output file
4.1.05-03d Conditional Dashboard Navigation: In Classic Dashboard list properties are used to help navigate from one dashboard to another. For example basis the Order list property value different dashboards are being opened up
Thanks @Misbah That post includes a heavy dose of information 👌
I do have a question though. I was told the reason why we should replace using list properties with system modules is that when we load the model, line items in modules are calculated and stored in the memory, however, list properties are only calculated when we actually reference the list, causing performance delay. Is that correct? if not, then what is the correct reason.
I think you are right. Any calculation that happens within Anaplan happens in memory (as far as I know) and with lists there is a delay.(I didn't mention the reason though) Overall, it should have been there in point 1 of "What's wrong with this method section?"
I'm full-heartedly against using list properties for all the reasons you mentioned above that are concerned with audibility. I just wanted to confirm the performance explanation I have received regarding loading into memory. Appreciate the clarification
Yes, there could be performance impacts if the properties are formatted as numbers as they will always aggregate as you cannot turn summaries off. Also, you are adding to the overall size of the list, the first thing that is built on model open. Also, if you have subsets defined, you are directly impacting the size of the lists as you are duplicating the properties for every subset.