DATAMEMBER in SSAS Parent-Child-Hierarchien

17. September 2010

Standardmäßig sind Parent-Child-Hierarchien in Analysis Services so eingestellt, dass der DATAMEMBER jedes Parent-Knoten in einem Client angezeigt wird.

image

Dieser DATAMEMBER ist ein zusätzlicher Knoten, der nur für die Parent-Knoten angezeigt wird. Er enthält die Werte, die in der Dimension genau gegen diesen Knoten geschlüsselt sind. Im Gegensatz dazu zeigt der Parent-Knoten Team1, die Summe aller Unterknoten inklusive seines DATAMEMBER-Knoten an.

Organisation Summe Beschreibung
Team1 1000 Summe von allen Unterknoten + eigenen DATAMEMBER
Team1(DATAMEMBER) 100 eigener DATAMEMBER
Team2 500  
Team3 400  

Über das Property MembersWithData kann man die Sichtbarkeit der DATAMEMBER in Clients steuern. NonLeafDataVisible sorgt dafür, dass der DATAMEMBER angezeigt wird. Setzt man das Property auf NonLeafDataHidden wird der DATAMEMBER für Clients ausgeblendet.

image 

Lässt man sich nun mit einem Client den Cube anzeigen, so erhält man folgende Ansicht:

Organisation Summe
Team1 1000
Team2 500
Team3 400

Diese Ansicht kann für einen User sehr verwirrend wirken, trotz der korrekten Werte.

Wenn man weiß, dass Werte immer nur auf Blätter des Hierarchiebaumes geschlüsselt werden (nie auf einen Parent), dann macht es Sinn die DATAMEMBER auszublenden. Sollte dies nicht der Fall sein, muss man mit seinen Usern abstimmen, welche Darstellung erwartet und bevorzugt wird.

Hinweis: Bei einer nicht aggregierbaren Parent-Child-Dimension werden die Werte nur auf den DATAMEMBER geschlüsselt (Es wird ja nicht aufsummiert). Sollte man die DATAMEMBER unsichtbar manchen, kann man deshalb auch nicht über die Parent-Child-Hierarchie browsen.

Zugriff per MDX

Per MDX ist der Zugriff auf einen unsichtbarem DATAMEMBER aber weiterhin möglich. Dies erreicht man indem man die DATAMEMBER-Funktion verwendet:

   1: Dimension.Hierarchie.CURRENTMEMBER.DATAMEMBER

Benennung des Datamember

Den DATAMEMBER kann man abweichend von den anderen Knoten benennen. Dies geschieht über das Property MembersWithDataCaption.

Zum Beispiel erhält man mit folgendem Wert:

   1: * (Wert)

die folgende Hierarchie-Ansicht:

image 

* ist das Platzhalter für den Namen des Parent

(Wert) ist in diesem Beispiel der String der an den DATAMEMBER angehängt wird