Intégration de rapport BIRT dans une portlet
De nos jours, nous voyons de plus en plus d’applications riches sur le web et/ou autres portails webs nous permettant d’accéder rapidement à de l’information. Les besoins peuvent être divers et variés d’un domaine à un autre : par exemple, on pourrait imaginer dans un portail afficher la liste des soldes de chaque compte pour un directeur de banque ou bien on pourrait avoir un portail présentant la liste des achats effectués pour chaque magasin pour le PDG d’une compagnie de la grande distribution.
Ces exemples n’ont pas été choisis au hasard, ce sont des exemples spécifiques au domaine du Reporting. BIRT étant une de ces solutions les plus en vogue en ce moment, il serait intéressant de voir l’utilisation d’une telle technologie aux profits des portails webs constitués de portlets.
1. Solutions d’intégrations aux portlets :
Jusqu’à présent, il existe deux solutions pour intégrer BIRT au sein de portlets :
– l’intégration par IFrame/TagLib
– l’intégration embarquée dans une portlet
La première solution est l’intégration la plus simple et la plus facile à mettre en place, c’est ce que nous allons voir dans ce billet.
2. Installation du BIRT Web Viewer :
Le BIRT Web Viewer est un composant permettant de visualiser les rapports BIRT dans les formats (PDF, HTML, DOC, etc.). Nous pouvons, entre autre, le retrouver dans le BIRT Designer quand on désire effectuer un rendu de rapport et apporte des fonctionnalités pour les utilisateurs finaux telles que la pagination, l’export du rapport vers d’autres rendus, l’export des données (au format CSV), la navigation dans le rapport avec la Table des Matières et un écran de saisie des paramètres (si cela est nécessaire).
Ce composant est disponible sous forme de war afin de faciliter le déploiement vers un serveur ou sous forme “éclaté” si nous avons besoin de le customiser et de l’intégrer dans une application web.
Nous pouvons obtenir le Web Viewer en téléchargeant la BIRT Runtime sur le site d’Eclipse.
Une fois téléchargé, nous allons installer le Web Viewer sur un serveur d’application en déployant le birt.war situé dans la BIRT Runtime.
3. Intégration par IFrame :
La solution d’intégration la plus simple pour intégrer du BIRT est une intégration par IFrame. Quelque soit l’application web, il est très facile d’intégrer des rendus de rapports au sein de notre application, du moment que nous avons une page HTML (ou une JSP) et un BIRT Web Viewer d’installer sur un serveur d’application.
Une fois le BIRT Web Viewer installé, la suite est un jeu d’enfant. Dans le code HTML qui va vous permettre de générer la vue de votre portlet(JSP,page HTML, Portlet), il suffit d’intégrer une IFrame pointant sur votre BIRT Viewer exécutant votre rapport BIRT.
-
<iframe src=“http://localhost:8080/birt/frameset?__report=test.rptdesign” height=“600” width=“800”>
-
</iframe>
L’une des spécificités du BIRT Viewer est qu’il est possible de l’exécuter par URL. L’URL à appeler se compose de la manière suivante : http://[adresse_serveur]:[port]/[nom_birt_viewer_application]/frameset?__[param1]=[value1]
. Il suffit donc de passer dans l’URL le rapport à exécuter en tant que paramètre : __report=test.rptdesign
.
Note : le mot clé frameset permet de spécifier que l’on veut utiliser le web viewer.
D’autre part, il est aussi possible d’utiliser la Taglib “birt.tld” pour une intégration plus adéquate dans les pages JSP. Vous pourrez trouver cette TagLib au chemin suivant : {BirtWebViewerApplication}/WebContent/WEB-INF/tlds
L’utilisation de cette TagLib peut se faire de la manière suivante :
-
<birt:report id=“birtViewer” height=“600” width=“800” reportDesign=“test.rptdesign” />
4. Intégration embarquée :
Une autre idée serait d’embarquer directement une plateforme BIRT au sein d’une portlet. Cette procédure est décrite sur le Wiki d’Eclipse, je vais donc me contenter de relayer cette information.
Cependant, j’ai quelques commentaires à ajouter. Cette intégration complète et embarquée peut notamment servir pour une utilisation plus avancée de BIRT, ceci couplée à une utilisation des APIs BIRT, on pourrait imaginer des portlets puissantes en terme de reporting (exemple : paramétrage directement au niveau de la portlet pour ajouter des filtres, des tris ou la mise en surbrillance des données, etc)…
A noter que, contrairement à l’intégration par IFrame, il n’y a pas besoin de faire d’installer au préalable du BIRT Web Viewer, étant donnée que nous embarquons la solution BIRT dans l’application Web contenant la portlet.