Es kommt immer wieder vor, dass wir in Projekten gefragt werden, wie man benutzerabhängig gewisse Voreinstellungen in Berichten vornehmen kann. Mal sind es die Fokusprodukte, mal die VIP-Kunden – aber immer sind es keine festgelegten Auswahlen der Elemente sondern sie sollen benutzerabhängig sein. Wie man Berichte benutzerabhängig einstellt, zeigt dieser Blogbeitrag.
Vorbetrachtung
Es kommt immer wieder vor, dass wir in Projekten gefragt werden, wie man benutzerabhängig gewisse Voreinstellungen in Berichten vornehmen kann. Mal sind es die Fokusprodukte, mal die VIP-Kunden etc. aber immer sind es keine festgelegten Auswahlen der Elemente sondern sie sollen benutzerabhängig sein.
Oftmals sollen diese Einstellungen in genau einer Dimension erfolgen. Denkbar sind natürlich auch diverse Dimensionen, allerdings müsste das beschriebene Procedere dann für jede Dimension wiederholt werden.
Einstellungen müssten theoretisch auf jeder Ebene der Dimension/Hierarchie vorgenommen werden können. Bei der Auswahl eines Knotens sollen natürlich nicht alle Kind-Elemente des Knotens mit ausgewählt werden. Bei einer Parent-Child-Hierarchie haben wir kein Problem, da man auf jeder Ebene zurückschreiben bzw. Einstellungen vorhalten kann. Bei einer regulären Dimension muss man sich überlegen, wie man die Einstellungen für die Knoten schreibt.
Vorstellbar ist die Erweiterung der bereits bestehenden Dimension um jeweils ein Element, analog einer Parent-Child-Hierarchie. Dieses Vorgehen bedeutet einen gewissen Aufwand und eine Dopplung der Dimension, was die Komplexität des Datenmodells weiter erhöht. Nach Möglichkeit soll das vermieden werden. Deshalb wird die bestehende Dimension weiter verwendet und die gewünschte Funktionalität einem kleinen Kniff hergestellt.
Vorbereitung
Wir benötigen eine neue Dimension, die die Benutzer als Elemente enthält. Die zugrunde liegende Tabelle muss nur den Benutzernamen und die Domäne enthalten (Tipp: Die ID-Spalte nicht vergessen, sonst gibt es Schwierigkeiten, wenn man aus Versehen einen Benutzer doppelt in die Tabelle aufnimmt).
Der Dimensionsausbau ist „Standard“ und damit rasch angelegt.
Weiterhin benötigen wir für jede Ebene, die Einstellungen aufnehmen soll, eine eigene Measuregroup.
Die Measuregroups werden nur mit Benutzern und der Einstellungsdimension dimensioniert (im Beispiel habe ich die Kundendimension verwendet). Zu beachten ist, dass die Einstellungsdimension auf die jeweils richtige Ebene innerhalb der Measuregroup eingestellt wird, damit das Ganze funktioniert.
Gibt es bereits vorhandene Einstellungen, so kann man diese natürlich gleich einspielen. Der Clou ist aber die mögliche Pflege der Einstellung durch den Anwender oder einen Admin. Dazu muss für die Measuregroups nur das Rückschreiben aktiviert sein.
Nach dem Erzeugen der Measuregroups können wir uns die Zuordnungen einmal anschauen:
Problematisch für die Auswahlen sind die Zuordnungen auf den Verdichtungsebenen der Kennzahl „Default_PLZ“, wir wollen ja nur, dass das Element „Ansbach“ ausgewählt ist, „Süd1“ und „Süd“ stehen dagegen nicht zur Disposition.
Dazu erstellen wir einen neuen Analysewert „Defaultauswahl“ mit Hilfe des folgenden MDX:
Wenn man jetzt noch im Reiter „Dateneingabe“ die Option „Werte als Kontrollkästchen darstellen“ setzt, bekommt man eine elegante Darstellung der bereits vorhandenen Auswahlen:
Ist Rückschreiben aktiviert und auch gewollt, muss man die möglichen Eingaben auf die richtigen Analysewerte „umleiten“, da der Analysewert berechnet ist und selbst keine Eingaben aufnehmen kann. Dies wird mit der Einrichtung einer Wertweitergabe erreicht. Im einfachsten Fall könnte das so aussehen:
Die Wertweitergabe lässt sich beliebig erweitern, so dass zum Beispiel alle Kindelemente deaktiviert werden, wenn man eine Verdichtung aktiviert.
Der letzte Schritt
Zum Abschluss muss „nur“ noch der Bericht um die dynamische Elementauswahl erweitert werden.
Dazu wird in den Berichtseigenschaften im Filterkontext (DM5:Sichtkontext) für die Hierarchie die Default-Auswahl via MDX vorgenommen:
Achtung: Die Auswahl wird auf der Hierarchie vorgenommen, der Hinweis steht dann aber auf der Ebene Dimension!
Wenn man die Anwendung/Sitzung jetzt speichert und im Präsentationsmodus (DM5: Viewermodus) startet, werden die zuvor gewählten Elemente als Default-Auswahl angezeigt:
Alternativ kann man die Einstellung auch in den Ordnereigenschaften vornehmen, wenn die Auswahl für den gesamten Ordner gelten soll.