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

20 Jan

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:

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:

Choix du type de rapport

Je choisis un type simple pour commencer.

La perspective contient plusieurs vues:

La perspective BIRT

La perspective BIRT

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.

Le connecteur JDBC

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

Choix des colonnes d'un fichier csv

JDBC : Selection des données par requête SQL(et tout un tas d'autres fonctions)

Pour un fichier XML: possibilité de filtrage par XPath. Bien vu.

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

Joindre les posts(venant de JDBC) et les utilisateurs(venant du fichier XML)

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:

Attribut un data à un élément du rapport

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

Sans aucune mise en page...

...et il est possible de faire un peu tout ce que l'on veut, si l'on a du goût...

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:

Le rapport dans le viewer Web

Grace au viewer, des fonctionnalités sont automatiquement ajoutées il est possible d’exporter les données (cvs) et de les convertir:

Les formats d'export du rapport à partir du viewer

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:

Paramètre de rapport

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

Le paramètre de request

– dans le viewer, voilà le résultat:

Popup de filtrage

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

2 thoughts on “J’ai testé pour vous: BIRT – happy BIRT day…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *