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

Kontointelligenz für Dimensionen

Aus früheren Beiträgen kennen wir bereits die Unterschiede zwischen Fluss- und Bestandsgrößen (vgl. Blogbeitrag Bestandsbetrachtungen). Bestandsgrößen betrachten immer einen Zeitpunkt, so dass eine Summierung über die Zeit nicht korrekt wäre. Solche “semiadditive Analysewerte”, die nicht über alle Dimensionen einheitlich aggregiert werden, kommen in vielen Geschäftsszenarien vor. So wird etwa ein Measure, das die Menge des Lagerbestands darstellt, mit der Aggregationsfunktion “LastNonEmpty” versehen.

In diesem Blogbeitrag schauen wir uns den Aggregationstyp “ByAccount” in Verbindung mit einer Kontodimension an. Dabei handelt es sich um eine Dimension, deren Attribute eine Kontenliste für Finanzberichte darstellen.

Vorbereitung der Metadaten

Als Basis haben wir eine Datenbank mit einer Kontotabelle in einer Parent-Child-Struktur:

T_Dim_Account
Abb. 1: T_Dim_Account

Die Besonderheit für diese Dimensionstabelle ist, dass eine zusätzliche Attributspalte “account_type” definiert wurde. Diese Information wird später von SQL Server Analysis Services (SSAS) dynamisch in den jeweiligen Aggregationstyp umgewandelt. Während “Income” (Ertrag) und “Expense” (Aufwand) im Verlauf der Zeit summiert werden können, also den Aggregationstyp “Sum” tragen sollen, sind “Assets” (Aktiva) und “Liabilities” (Passiva) Bestandsgrößen und werden somit mit dem Aggregationstyp “LastNonEmpty” versehen.

Somit wird durch die Kontodimension die selektive Verwaltung des Aggregationsverhaltens von Konten hinsichtlich der Zeitdimension ermöglicht. Darüber hinaus trägt die Verwendung von Standardmechanismen zur Lösung der meisten nicht standardmäßigen Aggregationsprobleme bei, die normalerweise in Business-Intelligence-Lösungen für die Verarbeitung von Finanzdaten auftreten. Ohne derartige Standardmechanismen wären für eine Lösung dieser nicht standardmäßigen Aggregationsprobleme berechnete Elemente oder MDX-Skripte (Multidimensional Expressions) erforderlich.

Datenbank bearbeiten

Bevor die Kontointelligenz definiert wird, ordnet man Kontotypen den gewünschten Aggregationstypen zu, indem man über das Kontextmenü des Projektmappen-Explorers “Datenbank bearbeiten” aufruft und die Zuordnung vornimmt.

Dialog „Datenbank bearbeiten“
Abb. 2: Dialog „Datenbank bearbeiten“

Business Intelligence hinzufügen

Nachdem auf Basis der Kontotabelle in SSAS eine Parent-Child-Dimension angelegt wurde, muss im Dimensionseditor die Kontointelligenz definiert werden. Über den Menüpunkt “Dimension – Business Intelligence hinzufügen…” startet der “Business-Intelligence-Assistent”.

  • Erweiterung “Kontointelligenz definieren” auswählen:

Dialog: „Erweiterung auswählen“
Abb. 3: Dialog: „Erweiterung auswählen“

  • Quelltabellen-Kontotypen integrierten Kontotypen zuordnen:

Dialog: „Dimensionsattribute konfigurieren“
Abb. 4: Dialog: „Dimensionsattribute konfigurieren“

  • Integrierte Kontotypen Elementen des Kontotypattributs zuordnen:

Dialog „Kontointelligenz definieren“
Abb. 5: Dialog „Kontointelligenz definieren“

Beim Abschluss des Assistenten sind nun die verschiedenen Aggregatfunktionen ersichtlich:

Dialog „Assistenten abschließen“
Abb. 6: Dialog „Assistenten abschließen“

Die obigen Aggregationstypen wurden im vorherigen Abschnitt “Datenbank bearbeiten” den jeweiligen Kontotypen zugeordnet.

Eigenschaften der Dimension und der Dimensionsattribute

Zusätzlich müssen folgende Eigenschaften für die Dimension und für die Dimensionsattribute gesetzt werden:

  • Die Type-Eigenschaft der Dimension wird auf “Accounts” gesetzt.
  • Die Type-Eigenschaft des Parent-Attributs wird auf “Account” gesetzt.
  • Die Type-Eigenschaft des Schlüsselattributs wird auf “AccountNumber” gesetzt.
  • Die Type-Eigenschaft des AccountType-Attributs wird auf “AccountType” gesetzt.

Aggregationstyp “ByAccount”

Als Letztes wird im Cube-Editor der Aggregationstyp des gewünschten Analysewerts in den Eigenschaften von “Sum” auf “ByAccount” geändert.
Die obigen Kontotypen werden dann von Measures verwendet, deren Aggregationsfunktion auf “ByAccount” eingestellt ist, um die Funktion für das Aggregieren der Elemente dieser Dimension zu bestimmen.

Berichtsergebnis

Schaut man sich nun die Werte über einen Bericht im DeltaMaster an, dann ist es ersichtlich, wie sich die verschiedenen Aggregationstypen auf die Jahressumme auswirken.

Dialog „Time vs. Accounts”
Abb. 7: Dialog „Time vs. Accounts”