CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Benutzerabhängige Auswahl von Elementen

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).

Abbildung 1 Tabelle

Abbildung 1: Tabelle

Der Dimensionsausbau ist „Standard“ und damit rasch angelegt.

Abbildung 2 Dimensionsausbau

Abbildung 2: Dimensionsausbau

Weiterhin benötigen wir für jede Ebene, die Einstellungen aufnehmen soll, eine eigene Measuregroup.

Abbildung 4 Measuregroups

Abbildung 3: Measuregroups

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.

Abbildung 4 Measuregroups

Abbildung 4: Measuregroups

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:

Abbildung 5 Zuordnung

Abbildung 5: Zuordnung

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:

Abbildung 6 Analysewert

Abbildung 6: Analysewert

Wenn man jetzt noch im Reiter „Dateneingabe“ die Option „Werte als Kontrollkästchen darstellen“ setzt, bekommt man eine elegante Darstellung der bereits vorhandenen Auswahlen:

Abbildung 7 Defaultauswahl

Abbildung 7: Defaultauswahl

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:

Abbildung 8 Analysewerteigenschaften

Abbildung 8: Analysewerteigenschaften

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!

Abbildung 9 Default-Auswahl definieren

Abbildung 9: Default-Auswahl definieren

Abbildung 10 MDX-Editor

Abbildung 10: MDX-Editor

Wenn man die Anwendung/Sitzung jetzt speichert und im Präsentationsmodus (DM5: Viewermodus) startet, werden die zuvor gewählten Elemente als Default-Auswahl angezeigt:

Abbildung 11 Default-Auswahl

Abbildung 11: Default-Auswahl

Alternativ kann man die Einstellung auch in den Ordnereigenschaften vornehmen, wenn die Auswahl für den gesamten Ordner gelten soll.