BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels» enseignée à l Université de Technologie de Compiègne. Pour ce faire, ce document sera divisé en deux parties : Une partie théorique présentant l outil BIRT, Une partie pratique dans le but de le prendre en main, par la création d un exemple de rapport. I PARTIE THEORIQUE Présentation BIRT est un outil open-source qui a été développé par la fondation Eclipse. C est donc un plugin qu il est possible d installer à partir de l IDE Eclipse (voir http://www.eclipse.org/birt/phoenix/build/ pour l installation). Comme son nom l indique, BIRT est un outil nous permettant de faire du «Reporting», c est-à-dire qu il nous permet d accéder à des données, les extraire, effectuer des traitements sur celles-ci et les mettre en forme par la création de rapports. BIRT a la particularité de nous permettre d intégrer ces rapports à des applications Web, plus particulièrement celles de type Java J2EE. Pour ce faire, BIRT est composé de différents éléments : BIRT Report Designer : Perspective Eclipse utilisée pour la création de modèles de rapports. Ces modèles de rapport créés sont sauvegardés au format XML. Design Engine : Ce module implémente les fonctions permettant la création et l édition de modèles de rapports que l on effectue via la perspective Eclipse (Report Designer). L API Design Engine (DE API) englobe ces fonctionnalités qui peuvent être utilisées par la suite dans le code Java d une application Java J2EE. C est ce module qui est utilisé par Report Designer pour sauvegarder les modèles de rapport au format XML. Report Engine : Ce module utilise les modèles de rapports créés via Report Designer ainsi que les données qu on lui fournit afin de générer les rapports. L API Report Engine (RE API) implémente cette fonction de génération afin qu elle puisse être intégrée directement à du
code Java d une application Java J2EE. Ce module est utilisé par la suite par le module BIRT Viewer pour exécuter les rapports et en avoir un rendu visuel. Charting Engine : Ce module est utilisé pour mettre en forme et générer des diagrammes, soit au sein d un rapport, soit de manière autonome. Ces diagrammes peuvent être intégrés directement à une application Java J2EE grâce à l API Chart Engine (CE API). Cette API est utilisée par Design Engine et Report Engine pour l intégration de diagrammes aux rapports. BIRT Viewer : Ce module permet d avoir un rendu visuel d un rapport après qu il ait été généré. Il permet également l export de ces rapports sous différents formats (ex :.pdf,.html,.doc etc.). Etapes de création d un rapport Nous allons maintenant voir les étapes importantes à réaliser pour la création d un rapport. 1 Les données a) Data Source Dans un premier temps, il est nécessaire de renseigner où il faut aller chercher les données à mettre en forme dans notre rapport (ex : XML, Base de données relationnelle, fichier Excel etc.). Ceci se fait grâce à la création d une Data Source, qui va faire la connexion à notre source de données. b) Data Set Une fois cette connexion effectuée, il faudra créer ce qu on appelle des «Data Sets», pouvant être traduit par «Jeux de données». Ces Data Sets peuvent être vus comme des requêtes effectuées sur notre ou nos sources de données dont la connexion a été rendue possible par les Data Sources, afin d extraire les données désirées. Par exemple, ces requêtes peuvent être faites directement en SQL si la source de données est une base SQL, ou bien par la création de filtres implémentant certaines conditions d extraction. La création de Data Sets nécessite parfois l utilisation de traitements métier. 2- Traitements métier Certaines fois, il arrive que les données telles qu elles existent ne sont pas présentées de la manière dont on le voudrait. C est pourquoi il est nécessaire d ajouter des traitements métier lors de la création des Data Set afin de rendre les données utiles à l utilisateur. Dans notre cas, nous présenterons deux principaux outils permettant d effectuer ces traitements métiers, que l on utilisera dans notre partie pratique : Computed columns : C est une colonne dont les données insérées ont été calculées à partir d une autre colonne de données. Nous pourrons en voir un exemple dans la partie pratique proposée par la suite. Filtering : Le «filtering» est l action consistant à créer des filtres. Leur utilité est rendue évidente lorsque l on extrait des données venant de sources de données telles que les fichiers plats sur lesquels il n est pas possible d effectuer de requêtes telles qu on le ferait sur une base de données SQL.
3- Mise en forme des données Nos données étant maintenant extraites de la manière dont on le souhaite, la mise en forme de celles-ci peut maintenant être effectuée, via l interface graphique (Report Designer) d Eclipse. Pour ce faire, il existe différents composants graphiques («items») que l on peut inclure au modèle de rapport : Images, Tableaux, Diagrammes, Listes Les propriétés de ces éléments peuvent être modifiées si souhaité (ex : ajouts de styles, formatage des données etc.). 4 Prévisualisation du rapport Une fois la modélisation terminée, il est possible de visualiser le résultat produit au format désiré (PDF, HTML ) grâce au BIRT Viewer se chargeant d exécuter le rapport. 5- Déploiement Le rapport étant créé, il peut être mis en exploitation en le déployant sur un serveur d applications Web J2EE dans lequel le moteur d exécution Report Engine a été installé. Ainsi, le rapport pourra être accessible via une URL où il est possible de transmettre des paramètres tels que le format de génération souhaité. II PARTIE PRATIQUE Pré-requis Pour la réalisation de ce TP, il est nécessaire que le logiciel BIRT ait été installé au préalable (http://www.eclipse.org/birt/phoenix/build/). Objectif Ce TP, se déroulant sous la forme de tutoriel, a pour objectif de vous faire découvrir un aperçu des fonctionnalités de l outil de Reporting BIRT sur l IDE Eclipse. Pour ce faire, nous réaliserons notre premier rapport en utilisant comme source de données, un fichier CSV contenant la liste des différents départements français accompagnés de leur population (cf. figure 1).
Figure 1 - Aperçu de la structure du fichier CSV Le sujet En utilisant le fichier CSV comme source de données, nous souhaitons obtenir un rapport affichant les 5 départements les plus peuplés, classés dans l ordre décroissant des populations. Une colonne «Rang» sera créé à partir de la colonne représentant la population des départements, représentant le classement de chaque département. Aperçu du résultat à obtenir : Figure 2 - Résultat attendu Etape 1 Création du projet et du rapport Création du projet 1) Sélectionner File New Project.
2) Dans le dossier «Business Intelligence And Reporting Tools», sélectionner «Report Project» and cliquer sur Next. 3) Donner un nom au projet et cliquer sur Finish. Création du rapport 1) Sélectionner File New Report. 2) Dans la boite de dialogue qui s affiche, sélectionner le projet préalablement créé, entrer le nom du rapport et cliquer sur Next. 3) Dans la fenêtre qui apparaît, il nous est proposé d utiliser ou non un template, définissant un modèle de base de rapport. Dans notre cas, nous partirons de zéro en choisissant «Blank Report». Cliquer sur Finish. Etape 2 Création d une Data Source Notre rapport étant créé, nous allons maintenant créer une Data Source. Pour rappel, une Data Source est un élément que BIRT utilise pour effectuer la connexion à une base de données ou autres supports de données (ex : CSV). Dans notre cas, nous souhaitons que notre Data Source fasse le lien avec notre fichier CSV répertoriant les départements. Avant de créer la Data Source, il est nécessaire de copier le fichier CSV à la racine du dossier du projet que l on a créé, dans le workspace utilisé par votre Eclipse. Pour créer la Data Source, effectuer les opérations suivantes : 1) Sélectionner la vue «Data Explorer», cliquer droit sur le nœud Data Sources et sélectionner New Data Source. 2) Dans la boite de dialogue, différents types de connexion sont proposés. Notre but est d effectuer la connexion à un fichier CSV, nous devons donc sélectionner «Flat File Data Source». 3) Donner un nom à la Data Source (ex : «CSV Departements») et cliquer sur Next. 4) Sélectionner «Enter file URI» et renseigner le chemin amenant au fichier CSV désiré. 5) Dans la partie «Select flatfile style», sélectionner «SSV» (Semicolon Separated Values) et non pas «CSV», les séparateurs n étant pas des virgules. 6) Décocher «Use first line as column name indicator, le fichier ne possédant pas de noms de colonnes sur la première ligne, puis cliquer sur Finish. Etape 3 Création d un Data Set Pour rappel, un Data Set peut être vu comme une requête que l on effectue pour extraire les données souhaitées. La requête peut être effectuée directement en SQL lorsque la source de données est une base SQL, ou bien par l intermédiaire de filtres définissant certaines conditions d extraction.
C est donc par la création de notre Data Set que nous allons définir notre volonté de faire le classement des départements en fonction des populations, et que nous allons extraire les 5 départements les plus peuplés. Les étapes sont les suivantes : Création du Data Set et sélection des colonnes à extraire 1) Dans la vue «Data Explorer», cliquer droit sur «Data Sets» et sélectionner «New Data Set». Une boite de dialogue apparaît. 2) Sélectionner la Data Source que l on souhaite utiliser, à savoir celle que l on a créée et donner un nom au Data Set (ex : «Department Rank»). Cliquer sur Next. 3) Dans la page qui apparaît, il nous est demandé de sélectionner les colonnes que l on souhaite extraire. Le fichier ne comportant pas de noms de colonnes, celles-ci ont été automatiquement nommées «COLUMN_1, COLUMN_2, COLUMN_3». Dans notre cas, nous souhaitons toutes les afficher : cliquer sur le bouton «>>». Puis cliquer sur Finish. Une nouvelle fenêtre de dialogue s affiche, nous permettant d éditer notre Data Set avant de finaliser sa création. C est ici que nous définirons notre nouvelle colonne «Rang», classant les départements par nombre d habitants, ainsi que les filtres nous permettant de n extraire que les 5 départements les plus peuplés. 4) Avant toute chose, dans la page «Output Columns» de la boite de dialogue, éditer chacune des colonnes en double cliquant sur la colonne concernée : leur donner des noms significatifs en remplissant le champ «Display Name», et modifier le type de COLUNM_3 en le mettant en «integer» afin que notre classement soit calculé à partir de valeurs numériques et non des chaînes de caractères. 5) Nous pouvons vérifier que notre extraction s est bien effectuée en cliquant sur le bouton «Preview Results» du menu de gauche. Création de la colonne «Rang» La colonne «Rang» est une colonne qui est calculée à partir d une autre colonne, à savoir la colonne représentant le nombre d habitants. Cela correspond donc à la création d une «Computed Column». 1) Dans le menu de gauche, sélectionner «Computed Columns», puis cliquer sur le bouton «New». 2) Donner un nom à la colonne (ex : «Rang»). Définir le type des données de la colonne (ici «Integer») et l agrégation que l on souhaite faire, à savoir «RANK». 3) Il faut maintenant sélectionner la colonne sur laquelle on va effectuer les calculs. Dans le champ «Expression», cliquer sur le bouton «fx». Dans la nouvelle boite de dialogue, double-cliquer sur la colonne représentant la population à partir de la catégorie «Available Data Sets», correspondant aux nombres d habitants. Cliquer sur OK. 4) Dans le champ «Ascending», entrer la valeur «0» signifiant que nous souhaitons faire le classement dans l ordre décroissant des valeurs, puis cliquer sur OK.
5) Vérifier que la colonne «Rang» est maintenant bien créée en cliquant sur «Preview Results». Création d un filtre Il ne reste plus qu à extraire uniquement les 5 départements les plus peuplés. Pour ce faire, cliquer sur le bouton «Filters» du menu et sur le bouton «New». Dans la boite de dialogue qui s affiche nous devons définir la condition. Deux méthodes sont possibles : 1) Filtrer les 5 valeurs de nombres d habitants les plus élevées : a. Sélectionner la colonne des populations. b. Sélectionner la fonction «Top n», permettant d obtenir les n valeurs les plus élevées. c. Définir n à 5. 2) Filtrer les 5 plus basses valeurs de la colonne «Rang» pour obtenir les rangs 1,2,3,4 et 5 : a. Sélectionner la colonne «Rang». b. Sélectionner la fonction «Bottom n», permettant d obtenir les n valeurs les plus basses de la colonne classement. c. Définir n à 5. Vérifier que le filtre fait son travail avec le bouton «Preview Results» puis cliquer sur OK. Etape 4 Mise en forme des données Nos Data Source et Data Set étant créés, nous allons maintenant mettre en forme nos données en utilisant la vue «Palette» où se trouvent tous les «items» aidant à la construction du rapport. 1) Donner un titre à notre rapport en faisant glisser sur celui-ci, par exemple, un item «Label». Puis donner un nom. 2) Nous souhaitons créer un tableau pour stocker nos données. Faire donc glisser un item «Table» sur le rapport et définir le nombre de colonnes (ici, 4) et laisser «Number of Details» à 1 car on ne souhaite qu un seul niveau de détail pour chaque ligne (une seule valeur par cellule). Cliquer sur Finish. 3) Retourner sur la vue «Data Explorer» et faire glisser dans chaque cellule de la ligne «Detail Row» chaque colonne du Data Set que l on a créé, que l on souhaite afficher, à savoir toutes. 4) Chaque cellule de la ligne «Header Row» est automatiquement remplie par un nom par défaut qu il est possible de modifie, constituant l entête du tableau. 5) Nous allons maintenant mettre en place un tri de notre tableau de sorte que les données s affichent dans l ordre du classement. Pour ce faire effectuer les opérations suivantes : a. Survoler le tableau et cliquer sur le bouton «Table» qui apparait. b. Dans la vue «Property Editor», sélectionner l onglet «Sorting». c. Cliquer sur le bouton «Add» pour définir sur quoi nous allons faire le tri.
d. Dans le champ «Key», sélectionner dans le menu déroulant la colonne concernée, à savoir la colonne «Rang» et sélectionner «Ascending» dans le champ «Direction» pour effectuer un tri dans l ordre croissant des classements. Puis cliquer sur OK. 6) Modifier le style du tableau si souhaité en utilisant l onglet «Properties» de la vue «Property Editor» en dessous de la zone de modification du rapport. Etape 5 Générer le rapport Le rapport est maintenant prêt à être généré. Pour ce faire cliquer sur le bouton indiqué sur la figure 3, ou cliquer sur le bouton «Run» de la barre de menu, sélectionner «View Report» et le type de fichier à générer. Vous pouvez alors observer le fruit de votre travail! Figure 3 - Générer le rapport Remarque : Si «Web viewer» ne fonctionne pas, effectuer la manipulation suivante : Sélectionner Window Preferences et dérouler l arborescence de «Report Design». Cliquer sur «Preview» et cocher la case «Always use external browsers». Votre rapport est maintenant finalisé et est prêt à être déployé sur votre serveur d application. Sources http://www.eclipse.org/birt/phoenix/ http://wiki.eclipse.org/birt http://dsilvera.developpez.com/tutoriels/business-intelligence/utilisation-birt/