Utilisation de variables XML avec des dimensions de filtre

Les rapports dynamiques ne dépendent pas d'une source de données en particulier. Ce sont des paramètres de rapport et des variables qui servent d'espaces réservés pour le cube et la connexion de données, ainsi que pour les dimensions.

Le concepteur d'un rapport dynamique ne peut pas savoir avec quelle base de données ou avec quelle structure de base de données le rapport sera utilisé. Il ne connaît pas non plus, par exemple, les dimensions (ni leur nombre) qui seront utilisées à des fins de filtrage. Si le rapport est destiné à un tableau de bord et si les dimensions de filtre sont destinées à la communication entre widgets, les valeurs sélectionnées à partir de chaque dimension de filtre doivent être stockées. Les dimensions étant inconnues, ce stockage ne peut pas s'effectuer en attribuant des variables et des paramètres individuels à chaque dimension. La solution consiste à stocker les valeurs de filtre dans une variable XML d'un format défini. Cette variable peut être affectée à un paramètre de rapport tuple et utilisée dans la communication entre widgets dans un tableau de bord.

Cette solution implique d'utiliser plusieurs formules SETPROPERTY dans plusieurs actions pour renseigner une variable XML unique.

Par exemple, les dimensions Produit et Période d'un rapport sont des dimensions de filtre. Les sélections de l'utilisateur à partir de ces dimensions sont transmises à des variables de rapport appelées rv_product et rv_period. Ces variables de rapport sont ensuite référencées par des formules SETPROPERTY pour renseigner une troisième variable de rapport appelée rv_XMLFilters.

Pour la dimension de filtre Produit, cette formule SETPROPERTY est utilisée dans une action Définir les paramètres :

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

Pour la dimension Période, cette formule est utilisée :

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

Lorsque les utilisateurs effectuent leurs sélections à partir des filtres Produit et Période, la variable XMLFilters est alimentée par les valeurs de rv_product et rv_period. Par exemple :

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

En affectant la variable XML à un paramètre de rapport tuple, les valeurs stockées dans la variable peuvent être utilisées pour la communication entre widgets si le rapport s'affiche dans un tableau de bord.