Parent hierarchy & Top level
Hello fellow Anaplanners,
I have a query, I was going through an existing model and where I saw there are multiple composite hierarchy built having just 2 lists. i.e one is parent list (say 'X') and another is child list (say 'Y').
Now here in first list 'X' (which is parent for the other) there is only 1 member 'All X members'.
The second list 'Y' is configured to have List 'X' as its parent. this list have 10 members.
Now, I saw they have created 'Top Level' (say 'all items') for this list 'Y' .
so, here List 'Y' has both a Parent hierarchy and Top level.
I am unable to understand what was the logic behind same, as both parent hierarchy and top level are achieving the same purpose.
My question in this case are as follows:
1. is there any benefits of having both Parent hierarchy and Top level in a child list?
2. say if the parent list is just require to have 1 member, as here we have the case, does it require to be built as a composite list? they could have just create it as a flat list having a top level.
3. which is best option here, to have parent list or just to have top level. if we are going to look it performance wise?
Thanks in advance!!
1. There is no benefit. In fact, having Parent Hierarchy takes precedence over the Top Level.
2. Yes, they could have. If a list is a large list then it is better to have Parent rather than Top Level but if it is small then Top level was probably ok. They would have created this way based on the requirements they would have received - probably there was a need to do Top Down approach or Probably parent hierarchy might grow bigger, more than one, nobody could tell why they built the way they did.
As I mentioned in Point 2, having Parents for children where the list is large performs better than the ones where you have Top Level set for Large lists.
Hope that helps,
@Misbah has covered all the points but I'd like to add in point #2.
When you have top level instead of one parent, you have the ability to aggregate all values of child into the top level which is not true in the case of having only one parent.
Having one parent instead of a top level, leaves room to add orphan child which can be added without giving any parents. Have a look at the attached screenshot and observe the summary:-
You can see that the orphan child isn't considered when aggregating on Parent 1 Level.
Now, let's remove the parent 1 and add a top level in the same list:-
Observe how All child is aggregating all values whereas Parent 1 was only aggregating its child values only.
I hope, it added some insights to understand more about having Top Level vs Only one Parent.
you have got few answers here but I would like to put my understanding here.
1. Ideally no, but there is only one benefit.
for 2nd & 3rd question.
I will try to explain the purpose of Parent and Top level. It is not same when you have one parent and 10 children and top level, one parent and 10 Children.
The purpose/need of Parent is to aggregate values within module by your summary method and purpose of Top level is to aggregate values between modules and aggregation happens by your source module summary method.
when you want to fetch the data from a module with list (X) to a module without list (X), it will throw error that List (X) does not have built in top level.
And also speaking on performance, when you use SELECT on top level, it is efficient and it is inefficient when you use SELECT on Parent of that list to bring values from List (X).
Ideally, at initial phase of model, Top levels are not configured. it should be configured as and when the aggregation needed between the modules.
If you want to understand more on how performance is associated with Entities. I would recommend to watch this video. https://www.youtube.com/watch?v=c1fXpqB16y4
Thanks @ManjunathKN @ShubhamCh @Misbah for all your valuable comments. It does help me to understand the concept and purpose here.0