Nos extensions SSRS design-time et runtime

Syntell existe depuis 1987 et a développée sa propre plate-forme BI  afin de pouvoir livrer des solutions appropriées à ses clients. Cette recette a bien fonctionnée et plusieurs de nos clients utilisent toujours notre plate-forme propriétaire (Axa, Alcan, Hydro Québec etc.).

Cependant, de plus en plus de clients (existants ou potentiels) veulent utiliser une plate-forme grand public (ex. Microsoft) tout en faisant affaire avec Syntell afin de profiter de notre expertise en BI.

La plate-forme qui s’est révélée la plus appropriée pour la réalisation de nos mandats est Microsoft SQL Server 2008. Celle-ci possède un engin de données (tables relationnelles), un serveur de cube (Analysis Services ou SSAS), un engin ETL (Integration Services ou SSIS) et un serveur de présentation (Reporting Services ou SSRS).

C’est de ce dernier qu’il est question dans cette entrée de blogue. Il faut comprendre que Syntell fait bien plus que de modéliser, valider, charger, optimiser les données pour ensuite les visualiser via une collection de rapports SSRS.

Nos tableaux de bord forment une application en soi où le contexte est maintenu d’un rapport à l’autre. Il ne s’agit pas d’avoir un rapport par indicateur et de les regarder un par un. Nous avons plutôt une approche (décrite brièvement ici) où le tableau de bord est une vue de haut niveau avec des alarmes. Celui-ci mêne à des analyses optimisées pour faire ressortir les cas intéressants selon l’indicateur (ex. temps supplémentaire). Ces analyses mènent vers des listes détaillée permettant d’obtenir la liste d’employés, produits, régions etc. qui ont créée cette situation hors norme. Le tout est accompagné par des analyses génériques (ex. top 10, analyse des variations etc.)

Nous avons développé des techniques permettant de produire des rapports techniquement complexes: choix de visions, de croisements et d’indicateurs qui affectent plusieurs zones de données (grilles ou graphiques). Cela évite d’avoir une prolifération de rapports et tout les efforts que cela implique au niveau de la maintenance. Pour plus de détails, voir mon entrée SSRS – Le nerf de la guerre c’est le contrôle de la requête.

La complexité technique pour mettre en place de telles solutions est plutôt élevée. Auparavant nous avions notre propre plate-forme BI et celle-ci avait été développée dans l’optique de créer ce type d’application. Reporting Services est une plate-forme exceptionnelle, développée par une équipe de 100+ personne et elle est plutôt facile à apprendre.

Cependant, pour développer le type de solutions que Syntell est habituée de livrer, Reporting Services a beaucoup de lacunes design-time et runtime.

Design-time

  1. Peu de réutilisation d’objets possible (ex. paramètres, variables, VB.Net etc.). Note: SQL Server 2008 R2 permet de définir des Shared Datasets.
  2. Impossible de mettre une expression pour le libellé des paramètres. Cela empêche la traduction complète des rapports.
  3. L’ordre des paramètres est déterminée par les dépendances entre ceux-ci.
  4. Pas d’assistance pour comparer des objets qui sont sensés être les même d’un rapport à l’autre (ex. fonction VB.Net, paramètre, Dataset etc.)
  5. La définition des actions avec beaucoup de paramètres est fastidieuse. Exemple, si le rapport de destination contient 20 paramètres et que la plupart portent le même nom que ceux du rapport courant il faut quand même tout saisir manuellement. Pas de copier / coller (sauf en allant dans le Xml).
  6. Le déploiement vers plusieurs sites SharePoint (ex. Français et Anglais) doit se faire en autant d’étapes qu’il n’y a de langues.
  7. Pas moyen d’effectuer une configuration spécifique lors du déploiement d’un rapport. Par exemple, supposons qu’une application comporte plusieurs modules et qu’un client ne le prend pas tous, comment déployer les rapports afin de réfléter l’absence de certains modules?

Runtime

  1. Impossible de formater les paramètres (libellé et liste).
  2. Pas de boutons radio pour les paramètres.
  3. Pas d’effet “rollover” sur les grilles. Cet effet est désirable pour regarder la valeur des différentes cellules sur la même ligne.
  4. Pas de contrôle de navigation (ex. menus déroulants).

Les limitations runtime ont été jugées inacceptable par nos concepteurs de produits tandis que la portion design-time relevait surtout du besoin d’obtenir des gains de productivité. Mais une fois qu’on a un outil design-time entre les main, cela ouvre un monde de possibilités.

C’est ainsi que sont né Syntell SSRS Report Builder et Syntell Client Side Extensions (SWS-RS).

Le premier est un add-in à Visual Studio et permet de pallier aux différentes lacunes de Business Intelligence Development Studio (BIDS). Avec le temps, l’outil a ajouté des fonctionnalités permettant la configuration de rapport (ex. via du code C#) sur demande ou lors du déploiement des rapports. Il permet aussi de configurer les paramètres spécifiques à nos extensions runtime.

image

clip_image002

Ce qu’il faut comprendre c’est que cet outil peut être utilisé même si les extensions runtime ne sont pas installées. Le RDL qu’il génère est compatible avec BIDS.

Notre produit runtime prend la forme d’une “feature SharePoint” (WSP) qui peut être activée site par site. Elle permet de faire des choses qui sont impossibles à priori avec la plate-forme de Microsoft.

Par exemple, réordonner et formatter les paramètres, créer des menus de navigation évolués, ajouter un effet “rollover” sur les grilles etc. Elle fonctionne en injectant du JavaScript dans la page afin d’apporter des transformations dynamiques.

Par exemple, un tablix affiché ainsi par SSRS vanille:

clip_image002[4]

Devient ceci via notre transformation de navigation:

clip_image002[6]

Bref, quand vient le temps de réaliser un projet sur la plate-forme de Microsoft, Syntell a des outils qui lui permet de livrer la solution plus rapidement (productivité) et même d’ajouter des fonctionnalités importantes qui ne sont pas offertes directement. Le menu de navigation est un ajout significatif et permet de transformer une série de rapports en une application intégrée.

Si vous avez des questions sur Syntell ou sur nos outils, n’hésitez pas à me contacter.

Une réflexion sur “Nos extensions SSRS design-time et runtime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s