XML-Variablen mit Filterdimensionen verwenden

Dynamische Berichte hängen nicht von einer bestimmten Datenquelle ab. Stattdessen werden Variablen und Berichtsparameter als Platzhalter für die erforderliche Datenverbindung bzw. den erforderlichen Cube sowie für die Dimensionen verwendet.

Der Entwickler eines dynamischen Berichts weiß nicht, mit welcher Datenbank oder Datenstruktur der Bericht verwendet wird und kennt auch z. B. die Anzahl der Dimensionen sowie die Filterdimensionen nicht. Wenn der Bericht in einem Dashboard verwendet werden soll und die Dimensionen der Widget-Kommunikation dienen sollen, müssen die aus jeder Filterdimension ausgewählten Werte gespeichert werden. Da jedoch die Dimensionen nicht bekannt sind, kann dies nicht durch Zuweisen individueller Variablen und Parameter zu einer Dimension erfolgen. Die Lösung besteht darin, die Filterwerte in einer XML-Variablen eines bestimmten Formats zu speichern. Diese Variable kann einem Tupel-Berichtsparameter zugewiesen und zur Widget-Kommunikation auf einem Dashboard verwendet werden.

Die Lösung umfasst die Verwendung von mehreren SETPROPERTY-Formeln in mehreren Aktionen, um eine einzelne XML-Variable zu füllen.

In einem Bericht seien z. B. die Dimensionen Product und Period die Filterdimensionen. Die Auswahl des Benutzers aus diesen Dimensionen wird an die Berichtsvariablen namens rv_product und rv_period übergeben. Dann werden diese Berichtsvariablen von SETPROPERTY-Formeln referenziert, um eine dritte Berichtsvariable namens rv_XMLFilters zu füllen.

Für die Filterdimension Product wird diese SETPROPERTY-Formel innerhalb einer Aktion Parameter setzen verwendet:

=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Product]","Unique",ReportVariables.rv_product.text).

Für die Dimension Period wird folgende Formel verwendet:

=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Period]","Unique",ReportVariables.rv_period.text)

Wenn Benutzer in den Filtern Product und Period ihre Auswahl treffen, wird die Variable XMLFilters mit den Werten aus rv_product und rv_period gefüllt. Beispiel:

<Table><Row name="[Period]"><Property name="unique" value="[Period].[All Years].[2012]" /></Row><Row name="[Product]"><Property name="unique" value="[PRODUCT].[All Tires].[Special Offers]" /></Row></Table>

Durch Zuweisen der XML-Variable zu einem Tupel-Berichtsparameter könnten die von der Variablen gespeicherten Werte für die Widget-Kommunikation verwendet werden, wenn der Bericht in einem Dashboard angezeigt werden würde.