Un petit post sur le wizard de “Business Intelligence” de BIDS. Avec cet assistant, il est possible de créer des membres calculés ajoutant des fonctionnalités dans un cube.
Dans les fonctionnalités régulièrement rencontrées, il y a tout ce qui touche à l’agrégation dans le temps ; par exemple, on peut citer les classiques YTD (Year-to-Date) ou YoY (Year-over-Year), etc.
Le wizard permet de créer automatiquement ces mesures dans la rubrique Time Intelligence
Seulement, il est important de savoir comment BIDS crée ces membres car elle est un peu atypique – ie. on (et j’en fais partie) peut créer différemment ces mesures.
Voici comment l’assistant procède :
- Il crée un nouvel attribut dans la dimension Temps. Cet attribut va contenir les différents calculs (YoY, YTD, etc.)
- Il crée par script les membres « virtuels » de cet attribut
- Il crée le script MDX avec les calculs via une instruction SCOPE
Cette façon de faire (l’utilisation de l’instruction SCOPE) permet de réduire les calculs à un slice uniquement (le membre ‘”virtuel” de la dimension temps). Cela optimise le cube mais ajoute une complexité dans sa définition (et donc une maintenabilité plus difficile).
Attention, le calcul est figé au moment de l’exécution du Wizard et donc des modifications du cube peuvent nécessiter une correction du script MDX généré.
L’avantage de cette solution est aussi dans l’utilisabilité qu’elle offre à l’utilisateur. En effet, si vous avez déjà beaucoup de mesures (même bien organisées dans les DisplayFolder), l’ajout des mesures calculées peut vite devenir ingérable. Cette façon de faire permet de déporter toutes ces mesures dans une dimension, offrant une matrice calculs/mesures.