Une timeline est un filtre temporel disponible dans Excel permettant de sélectionner une date précise ou une période pour naviguer facilement dans les données d’un cube. A l’arrivée, ça ressemble quelque chose comme ça :
Pour ce qui est du contexte, je suis en plein POC BI, limite hackathon, pour un client. Un cube tabulaire a été donc créé pour l’occasion et je souhaite en analyser les données rapidement. Depuis le projet Visual Studio, je clique sur le bouton qui va bien pour lancer l’analyse dans Excel 2016 et par la suite créer une timeline :
Mon cube est bien disponible dans Excel. Pour faciliter l’analyse des données dans le temps, rien de mieux qu’une Timeline pour naviguer : Menu Insert\Timeline
Problème : à mon grand étonnement Excel m’indique qu’aucun attribut de dimension ne possède le format date. J’obtiens le message d’erreur suivant : We can’t create timeline because report doesnt have field formatted as Date
Un peu déçue, je reviens à mon projet de cube tabulaire dans Visual Studio… Le projet référence bien un champ de type Date, SampleFullDate, dans la dimension Temps DimTime mais visiblement cela n’est pas suffisant :
Encore faut-il taguer la dimension Temps DimTime comme telle pour que l’implémentation soit complète, comme suit : clic droit sur la dimension Temps, Date et Mark As Date Table
En dernier lieu, reste à sélectionner le champ Date/Time concerné dans la dimension Temp DimTime, à savoir SampleFullDate :
On sauvegarde la solution (+check-in, +déploiement, +traitement au besoin) et on relance une analyse depuis Excel.
Excel me propose bien la dimension Temps DimTime en entrée de ma future Timeline :
Ma Timeline est enfin disponible pour une navigation friendly :
C’est plutôt simple mais avant de dénicher l’option au niveau de la dimension Temps, le cheminement a été un peu laborieux. Pour ceux que ça intéressent, voici la version de l’article en mode debug : après avoir tâtonné un moment, j’opte pour le “coup le fils à un ami”.
Ça tombe sur Sophie Bismuth la fameuse consultante BI de chez MS qui a initié le projet de parallélisme SSIS, une experte dans son domaine. Elle m’invite à me servir du cube tabulaire AdventureWorks pour tester l’ajout d’une Timeline. Cela fonctionne, sans rien à avoir à modifier dans la solution initiale.
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks-analysis-services
En deuxième étape, Sophie me suggère de jouer au jeu des différences, pour identifier toutes les propriétés nécessaires à l’activation d’une Timeline sur la base du fichier json Model.bim du cube tabulaire AdventureWorks et plus spécifiquement dans la section de la dimension Temps :
Contrairement à dataType (au niveau colonne), l’attribut dataCategory (au niveau dimension) n’est pas présent dans le json de mon cube tabulaire. Dans un premier temps, je l’ajoute à la main car depuis Visual Studio, nous ne parviennons pas à repérer l’option dans les propriétés de la dimension temps DimTime. Bref, la timeline est activable dans Excel sans erreur. Pendant ce temps là, Sophie est toujours au bout du fils…
Pour clôturer le sujet, j’annule ma mise à jour “Brico Dépôt” dans le fichier json. Retour au projet Visual Studio où je me résous à faire un clic droit sur ma dimension Temps DimTime, tout simplement… Date, allons voir plus loin… Ha tiens, si je la taguais comme une dimension Temps en cliquant sur l’option Mark As Date Table. Après avoir sauvegardé mon projet, j’ouvre à nouveau le fichier json Model.bim de mon cube tabulaire où cette fois je note bien la présence de l’attribut dataCategory. Dans Excel enfin, je peux bien ajouter une timeline sans erreur.