OSBI.FR - Open Source Business Intelligence

TechTip: Les rapports Jasper dans Pentaho

Pentaho est actuellement la seule et unique plate-forme décisionnelle OSBI capable de délivrer des rapports conçus avec 3 moteurs de reporting Open Source différents :

  • JasperReport & iReport : le moteur sans doute le plus puissant mais pas le plus simple à mettre en oeuvre, car fondamentalement il s’adresse à des développeurs Java (quoique…)
  • Eclipse BIRT : celui qui procure sans doute le meilleur rapport entre les fonctionnalités disponibles et l’ergonomie de conception
  • Pentaho Reporting : le moteur de rapport natif de Pentaho (ex « JfreeReport »). Depuis la v3.5, le Pentaho Reporting a sérieusement « refait son retard » par rapport à BIRT, même s’il reste encore moins intuitif et convivial. L’avantage est bien sûr que les rapports conçus avec Pentaho Report Designer sont gérés nativement par la plate-forme Pentaho. A noter une fonctionnalité géniale sans équivalent ailleurs : délivrer des rapports (« Live Reports ») à partir de données provenant d’un flux Kettle (PDI) sans aucun stockage temporaire de ces dernièresi dans une base de données.

Comme déjà indiqué dans un article précédent sur ce blog, une petite opération est à effectuer pour que Pentaho 3.5 puisse interpréter des rapports Jasper version 3.6.1 (dans une utilisation standard de Jasper)

1/ Télécharger JasperReport sur sourceForge: http://sourceforge.net/projects/jasperreports/files/1.jasperreports/

2/ Dézipper le fichier et récupérer les fichiers suivants

  • \jasperreports-3.6.1-project\jasperreports-3.6.1\dist\jasperreports-3.6.1.jar
  • \jasperreports-3.6.1-project\jasperreports-3.6.1\lib\iText-2.1.0.jar
  • \jasperreports-3.6.1-project\jasperreports-3.6.1\lib\jfreechart-1.0.12.jar

3/ Dans le répertoire d’installation du serveur Pentaho \…..\biserver-ce\tomcat\webapps\pentaho\WEB-INF\lib

  • Supprimer les fichiers jasperreports-2.0.5.jar, itext-1.5.2.jar et jfreechart-1.0.9.jar et les remplacer par les fichiers récupérés au point 2/.  Bien sûr un redémarrage du serveur est nécessaire…

La vidéo ci-dessous indique comment créer une Xaction pentaho permettant de publier un rapport Jasper sur le serveur :

9 Comments

  1. Bonjour,

    Dommage qu’il n’y ai pas le passage de paramètre dans la vidéo exemple… 🙂

    Car je rencontre un soucis notamment pour le passage d’un paramètre de type « liste à choix multiples » entre Pentaho Design Studio et un rapport .jasper.

    En effet, pour utiliser une clause « IN » dans la requête SQL de iReport il nous faut un paramètre de type java.util.Collection ou array alors que Pentaho Design Studio ne renvoi qu’un String…

    Si vous avez une solution à ce problème je serais bien preneur 🙂

    Merci d’avance et merci pour tout ce que vous mettez à disposition sur ce blog.

    Borowsky

  2. Bonjour

    J’avoue ne pas voir eu besoin (encore) de passer des paramètres multivalués de Pentaho vers un JasperReport 😉

    Cependant j’ai été amené à « affronter » la même demande avec Eclipse BIRT.
    J’avais trouvé une solution simple (une bidouille surtout) qui ressemble à de la « sérialisation/désérialisation »
    Voir ce post: http://www.osbi.fr/?p=635

    Bien sûr, tout ça n’est pas très propre: l’idéal est de travailler avec des objets java de type Array, List ou autre… Mais cela nécessite sûrement l’écriture d’un adaptateur java et modification des sources (ça m’embête toujours un peu pour les maj derrière)

    Dès que j’aurai un peu de temps, j’essaierai de regarder de + près comment on peut faire dans iReport…
    …Mais bon, le 1er qui trouve a gagné: l’idéal serait de publier la solution ici 😉

  3. Pour info, je viens de faire un rapport multivalué JasperReport dont les paramètres peuvent être passés directement depuis Pentaho
    Ca fonctionne bien (avec la même méthode utilisée pour BIRT)

    Xaction et fichiers jrxml/jasper dispos dans le zip suivant :
    http://docs.google.com/uc?id=0B84GL71-EryVZDczNGU1OTItZjM3Mi00OThlLTlmNGQtYTE2MjhhODg4ZDQy&export=download&hl=en

    Fonctionne sous JasperReports 3.7 et Pentaho 3.5.0

    Je ferai probablement une vidéo pour montrer la mise en place dès que j’aurai un peu de temps 😉

  4. Bonjour,

    j’ai suivi votre tuto sur les rapports jasper dans pentaho. j’utilise ireports 3.7.4 et pentaho CE 3.6.
    J’ai copié les 3 librairies comme expliqué, j’ai fait un restart du serveur pentaho. quand j’exécute le xaction, j’obtiens cette erreur:

    The Pentaho BI Platform reported an error while running an action sequence
    Possible Causes:
    RuntimeContext.ERROR_0035 – Action validation failed.
    Action Sequence:jasper1.xaction
    Execution Stack:
    EXECUTING ACTION: Jasper (JasperReportsComponent)
    Loop Index (1-based):N/A
    Error Time:mardi 29 mars 2011 16 h 51 CEST
    Error Type:ActionValidationException
    Session ID:rbaudchon
    Instance Id:093f8c1b-5a14-11e0-ae00-2bf30041fbc4
    Action Class:JasperReportsComponent
    Action Description:Jasper

    Quelle peut être la cause ?
    merci,

  5. Bonjour Rémi

    Dans la log d’erreur, je note le message « Loop Index (1-based):N/A » qui me laisse supposer que vous avez fait une boucle (exécution de plusieurs rapports Jasper), et il semble que c’est plutôt ça qui pose pb.
    Je me trompe peut-être, il faudrait peut-être analyser l’xaction dans le détail

  6. @s.decloix – Bonjour, merci de ce retour. Mon rapport est unique et fonctionne bien à dans ireport. J’interroge une base de donnée oracle.
    J’ai suivi la démo pour la construction du xaction et la seule différence se trouve au niveau de la connexion à la base de donnée. J’utilise un lien jdbc alors que vous utilisez un lien jndi. J’ai également ajouté le lien jdbc sur le serveur pentaho.
    Mon serveur pentaho se trouve sur un linux redhat, ma base de données sur un autre serveur, mais je ne pense pas que cela pose problème.

    Je regarderai mon xaction dès demain.

    merci encore.

    Rémi

  7. Bonjour,
    je viens de tester à nouveau en utilisant la base SampleData et cela fonctionne bien. Mon problème venait du lien vers ma base oracle.
    Le lien vers la bdd oracle était créé via PAC, mais cela ne fonctionnait pas.
    j’ai du modifier le fichier web.xml et ajouter la ressource-ref ainsi que dans le fichier pentaho.xml de mon tomcat.

    Rémi

  8. Bonjour,
    j’ai eu le meme probleme que Remi pour integrer jasper dans pentaho, j’ai essayé de modifier le fichier web.xml et pentaho.xml dans tomcat. Mais sa ne marche pas. J’ai besoin d’aide pour ces deux fichiers!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*