Einführung
Sicher ist jedem die Funktion zur Skalierung einer Kennzahl in DeltaMaster bekannt, zu finden in den Analysewerteigenschaften der jeweiligen Kennzahl auf der Registerkarte Formatierung.
Hier gibt es die Möglichkeit, die Skalierung einer Kennzahl durch Eingabe einer Zahl zu ändern. Wird in diesem Feld z. B. der Wert 1000 angegeben, wird die Kennzahl anschließend in allen Analysen von DeltaMaster in Tausend angezeigt, d.h. der ursprüngliche Wert der Kennzahl wird durch 1.000 geteilt. Soll die Kennzahl nun in Millionen dargestellt werden, muss in den Analysewerteigenschaften der Kennzahl die Skalierung wieder geändert werden, diesmal auf den Wert 1.000.000. Statt bei jeder Änderung immer wieder die Analysewerteigenschaften zu öffnen, wäre es eleganter, eine zentrale Einstellmöglichkeit zu haben, mit deren Hilfe auf Knopfdruck die Änderung der Skalierung vorgenommen werden kann.
Ein Lösungsansatz dafür wäre, ähnlich der Hilfsdimensionen Kumulation und Periodenansicht, eine zusätzliche Dimension Maßfaktor zur Verfügung zu stellen, über die der DeltaMaster-Anwender die Möglichkeit hat, die entsprechende Skalierung auszuwählen. Der folgende Blogbeitrag soll die Schritte, die dafür notwendig sind, etwas genauer beleuchten.
Vorarbeiten
Zur Erstellung der neuen Dimension Maßfaktor wird eine relationale Tabelle mit den Informationen zu den verschiedenen Skalierungen benötigt. Diese Tabelle kann z. B. T_S_Massfaktor heißen und die folgenden Spalten und Inhalte aufweisen.
Die Spalte Massfaktor_ID enthält einen eindeutigen Schlüssel für das jeweilige Skalierungselement, die Spalte Massfaktor_Name den sprechenden Namen und die Spalte Faktor den Wert durch den später die Kennzahl geteilt werden soll.
Modellierung
Um ein vorhandenes Datenbankmodell zu erweitern oder ein neues zu erstellen, nutzen wir
DeltaMaster Modeler, kurz Modeler.
Im Bericht Dimensions des Modelers wird eine neue Dimension mit dem Namen Maßfaktor angelegt. Für diese Dimension darf kein Eintrag im Feld TopLevelCaption angegeben werden, da eine Summierung der Skalierungselemente keinen Sinn ergibt.
Im Bericht Levels wird eine Hierarchieebene mit dem Namen Maßfaktor für die neue Dimension definiert. Hier sollte im Feld „Name Usage“ der Eintrag Name gewählt werden, denn die eindeutige ID des Skalierungselementes ist für den Anwender in der Regel uninteressant. Das Feld „Long Name Attr“ sollte aus dem gleichen Grund mit dem Wert „-“ belegt werden.
Als nächstes werden im Bericht „Level Source Columns“ die Quelltabelle und die Quellspalten für die Schlüssel- und Namensspalte der Maßfaktor-Dimension definiert.
Der Faktor, durch den später die Kennzahl bei entsprechender Auswahl eines Skalierungselementes der neuen Dimension Maßfaktor geteilt werden soll, wird in einem Attribut gespeichert. Dafür wird ein neues Attribut „Faktor“ für die Hierarchieebene Maßfaktor angelegt. Der Datentyp muss numerisch sein, im gezeigten Beispiel Integer.
Im Bericht „Level Attribute Source Columns“ wird als Quellspalte die Spalte Faktor der Quell-TabelleT_S_Massfaktor definiert.
Theoretisch sind die vorgenommenen Definitionen ausreichend, um mit Modeler eine neue Dimension in einer OLAP-Datenbank zu erstellen. Da die Dimension aber noch keinem Würfel bzw. keiner Measuregroup zugeordnet wurde, wäre sie anschließend in DeltaMaster nicht sichtbar. Um die Dimension sichtbar zu machen könnte sie den vorhandenen Measuregroups einfach zugeordnet werden, so wie die Dimensionen Kumulation und Periodenansicht. Dies hätte jedoch zur Folge, dass für die neue Dimension eine Quellspalte in den Quelltabellen der Faktendaten vorhanden sein, bzw. zu jedem Datensatz ein fest definierter Wert 1 angegeben und in den neu erstellten Faktentabellen gespeichert werden müsste. Das ist in diesem Fall nicht notwendig. Es ist vielmehr ausreichend, eine neue Measuregroup anzulegen
und dieser nur die neu definierte Dimension Maßfaktor zuzuweisen.
Bei der Definition der Measuregroup sollte für die Spalten „Create Table“ und „Create Proc“ der Eintrag „-“ gewählt werden, denn die neue Measuregroup wird nur benötigt, um die Dimension Maßfaktor sichtbar zu machen. Die Einträge bewirken, dass keine Faktentabelle und auch keine Befüllungsprozedur für die definierte Measuregroup erstellt werden. Da die Measuregroup keine Daten enthält, wird im Bericht „MeasureGroup Source Tables“ von Modeler keine Quelltabelle angegeben.
Somit muss auch keine Quellspalte für die Dimension Maßfaktor im Bericht „MeasGrp Dimension Source Columns“ angegeben werden.
Im Bericht „MeasGrp Measures“ wird für die neue Measuregroup eine Kennzahl mit dem Namen „Maßfaktor_Dummymeasure“ angelegt. Diese Kennzahl wird nicht für Analysezwecke benötigt und sollte deshalb in der Spalte „Visible?“ über den Eintrag „-“ unsichtbar gesetzt werden, damit sie später in DeltaMaster nicht angezeigt wird. Die Definition einer Quellspalte im Bericht „MeasGrp Measure Source Columns“ ist für diese Kennzahl nicht erforderlich.
Abschließend wird mit Hilfe von Modeler die OLAP-Datenbank neu erzeugt.
Ergebnis
Nach der erfolgreichen Erzeugung der OLAP-Datenbank kann mit DeltaMaster das Ergebnis kontrolliert werden. Im Fenster Sicht sollte nun zusätzlich zu den anderen Dimensionen die neue Dimension Maßfaktor sichtbar sein.
Der Inhalt der Dimension kann im Dimensionsbrowser angezeigt werden. Hier werden die anfangs in der Tabelle T_S_Massfaktor angelegten Elemente dargestellt.
Um nun die neue Dimension zur Steuerung der Skalierung der im Modell befindlichen Kennzahlen nutzen zu können, muss für alle relevanten Kennzahlen in den Analysewerteigenschaften das Feld Skalierung um folgenden MDX-Eintrag erweitert werden:
[Maßfaktor].[Maßfaktor].CurrentMember.Properties(“Faktor”,TYPED).
Über diesen Eintrag wird das Attribut „Faktor“ des aktuell ausgewählten Elementes der DimensionMaßfaktor ausgelesen und als Faktor der Funktion Skalierung übergeben, also bei „kein“ -> 1, bei „Tsd.“ -> 1.000 und bei „Mio.“ -> 1.000.000.
Der Option „TYPED“ muss zwingend angegeben werden, damit der Wert des Attributes „Faktor“, wie im Bericht „Levels“ von Modeler definiert, als Zahl übergeben wird. Standardmäßig werden Attribute als Text zurückgegeben, was im genannten Einsatzszenario zu einem Fehler führen würde.
Wichtig: Es sollte beim Eintragen des MDX-Befehls genau auf Groß-/Kleinschreibung geachtet werden, sonst wird kein gültiges Ergebnis zurückgeliefert und die Skalierung der Kennzahl ändert sich nicht.
Um dem Anwender kenntlich zu machen, welche Skalierung aktuell aktiv ist, sollte im Feld „Einheiten“ in den Analysewerteigenschaften der Kennzahl auf der Registerkarte „Allgemein“ zusätzlich der folgende Eintrag vorgenommen werden:
{[Maßfaktor].[Maßfaktor].CurrentMember}.
Hierdurch wird der Name der Kennzahl um die Bezeichnung des aktuell gewählten Skalierungsfaktors ergänzt (in der folgenden Abbildung an der Kennzahl Umsatz exemplarisch dargestellt).