J’ai testé pour vous: BIRT – happy BIRT day…

Birt (Business Intelligence and Reporting Tools) est une perspective Eclipse permettant de faire du reporting. Il permet donc:
- d’explorer différents types de données et de les agréger,
- d’insérer une logique métier dans les cubes de données,
- de créer des présentations pour ces données (rapports ou graphiques),
- de publier dans une webapp les rapports au format web.
Le but final est donc de construire des rapports au format web afin de présenter des données de divers provenances.
Le nécessaire
Afin de travailler avec BIRT, il faut:
- un Eclipse avec la perspective BIRT,
- un Tomcat pour pour publier la webapp,
- un driver JDBC pour exploiter une base de données (le mien: mysql).
Afin de faire la présentation, je vais me baser sur la base de données contenant mes données de WordPress (avec lequel je construis ce blog, en fait…).
Présentation de l’IDE: le plugin Eclipse
La perspective utilisée s’appelle « Report Design ». La première chose a faire est de créer un projet BIRT en faisant « new > Business Intelligence and Reporting Tools > Report Project », puis, d’y ajouter un nouveau rapport: « new > Business Intelligence and Reporting Tools > Report Project ».
Après avoir renseigné le nom et fait « next », plusieurs types d’architectures sont proposées:
Je choisis un type simple pour commencer.
La perspective contient plusieurs vues:
La vue Palette: contient les différents composants à insérer dans le rapport et les outils de manipulations.
La vue Outline: customiser pour explorer graphiquement le contenu du rapport (qui est en fait un fichier xml).
La vue Property Editor: les propriétés du document mais aussi la gestion des évènements et les filtres qui peuvent être ajoutés.
La vue Data Explorer: permet de gérer les différentes sources de données.
L’éditeur: gérer les composants, la présentation globale, les scripts à insérer et liés à des évènements, la source et surtout l’onglet de prévisualisation.
Afin de manipuler les données, BIRT fonctionne en deux étapes:
- créer des sources de données
- fabriquer des sets de données(manipulées, agrégées), qui vont être la contenu de nos rapports.
Les sources de données: Data Source
le Dans la vue Data Explorer, faire un clic droit sur Data Source et New Data Source. Il est possible de sauvegarde ces paramètres, car le data source concerne UN rapport et donc, si l’on veut réutiliser les paramètres, il faut les sauvegarder(profile de connexion). Plusieurs types sont possibles:
Base de données
Choisir « JDBC Data Source ». Rajouter le driver jdbc associé au type de SGBD avec le bouton « Manage Driver » et renseigner les différents champs nécessaires à la connexion à la base.
Fichiers plats et xml
Faire même mais choisir « Xml Data Source » et un fichier ou « Flat File Data Source » et un répertoire contenant les fichiers.
WebService et Script
C’est là que ça devient vraiment marrant: soit taper sur un webservice, soit un classe java. Autant dire qu’il n’y aucune limite.
La transformation des données: Data Transforms
Une fois les sources référencées, il faut les exploiter pour préparer les jeux de données à afficher dans le rapport. Pour cela, toujours dans la vue Data Explorer, faire un clic droit sur Data Set et « New Data Set »:
D’autre part, il est possible de fusionner les data set: dans la vue Data Explorer, faire un clic droit sur Data Set et « New Join Data Set »:
Et ainsi de suite…
Il est bien sur possible de faire tout un tas de manipulation sur ces sources(filtrer, classer, évincer, sélectionner les colonnes etc…) par l’interface graphique.
Création des rapports: Presentation
Là encore, c’est plutôt assez puissant, car il est possible de faire…tout ce que l’on veut!
Pour cela, il faut partir d’un data set, et le sélectionner dans la vue Outline:
- Choisir un élément du rapport(ici un tableau), ajouter la source (un dataset) et faire glisser les éléments du dataset situé dans à l’endroit désiré (une cellule « detail », c’est à dire entre l’entête et le pied de tableau de la colonne concerné),
- Rajouter les titres de colonnes.
Le résultat est obtenu dans un browser en cliquant sur l’onglet Prewiew du rapport:
Il est encore possible d’effectuer un nombre important de modification sur les éléments du tableau(tri, filtre…) à ce niveau.
D’autres types sont évidement possibles. Par exemple, deux graphiques en partie haute et un tableau croisé en partie basse etc…
Publication des rapports
Pour cela, il suffit:
- de télécharger le BIRT Viewer Engine,
- d’ajouter le répertoire WebViewerExample dans le répertoire webapp de Tomcat,
- de rajouter le jar du driver JDBC dans le répertoire lib si necessaire,
- de copier le fichier rapportPosts.rptdesign du rapport à la racine,
- de démarrer Tomcat,
- d’aller à l’url http://localhost:8080/WebViewer/frameset?__report=rapportPosts.rptdesign
Grace au viewer, des fonctionnalités sont automatiquement ajoutées il est possible d’exporter les données (cvs) et de les convertir:
Utilisation avancée
Les filtres dynamiques
Il faut:
- ajouter les filtres au rapport (la saisie sera demandé à l’utilisateur si obligatoire): champs déroulant, combobox, texte libre…,
- utiliser ces filtres dans la query du DataSet (si nécessaire: exemple si un rapport et un graphe, des variables pourront être utilisées pour le graphe et d’autres pour le rapport).
- dans la vue Data Explorer, faire un clic droit sur Report Parameter et faire New Report Parameter. Donner un nom et un texte d’aide:
- dans le dataset utilisé pour faire le rapport, faire clic droit et Edit Data Set. Dans « parameter », faire « new » et lié la variable au paramètre de rapport précédent:
- dans le viewer, voilà le résultat:
Remarque:le deuxième bouton en partant de la gauche permet de faire réapparaitre les filtres.
Conclusion
Je n’ai pas pu tout voir mais voici ce que je pense après ces quelques tests de BIRT:
Les problèmes:
- comment gérer les droits d’accès aux rapports et notamment les droits sur les données?
- Eclipse se met à lagguer abondamment après un certain temps, voir même plante, c’est vite chiant,
- quelques problèmes lors de l’utilisation des filtres, notamment sur les listes déroulantes.
Les atouts:
- sources de données éclectiques,
- possibilités d’agrégation de données infinies,
- philosophie de construction (on est pas perdu: c’est le rapport qui contient tout le process de A à Z, dans un seul fichier),
- création des rapports faciles (l’IDE est bien conçue) et extrêmement puissante, il est possible de faire à peut près tout ce que l’on veut et faire des rapports vraiment beaux,
- possibilité d’agir avec javascript sur les rapports,
- export de données dans nombre de formats,
- facilité de mise en place et rapidité d’apprentissage.
Donc, hormis quelques petits soucis de confort et la sécurité à se faire soit même, BIRT est un très bonne outil, facile à utiliser et très puissant, que je conseillerai. De plus, il est suivi par l’équipe d’Eclipse. Je pense qu’il peut répondre à un nombre très important de besoins en reporting des entreprises.
PS: du fait que je sois né le 20/01, le jeu de mots dans le titre du post est, en fait, de très grande qualité…















Abonne toi au flux Rss, je sens que les prochains tickets vont te plaire…
Mon premier com sur ton blog. Je crois que je vais être fan
Eric