SlideShare a Scribd company logo
1 of 16
Download to read offline
1
Pentaho Ctools : tips & tricks
trucs et astuces pour le développement de vos dashboards
Pentaho
Présenté par Benoît Mouchard
2 2
Liste déroulante et « Tous »
● Besoin : filtrer ou non selon un élément id/libellé parmi une liste
provenant d'une table de référence
3 3
Liste déroulante et « Tous »
●
Requête du composant « select »Requête du composant « select »
Requête du tableau
4 4
Export Excel d'une query existante
● Ouvrir le fichier .cda correspondant au dashboard
● Sélectionner la query et remplir les paramètres , puis Query URL
●
5 5
Export Excel d'une query existante
On obtient l'url correspondant à la requête
http://mon_serveur/pentaho/plugin/cda/api/doQuery
?path=/chemin_solution/mon_cda.cda
&dataAccessId=tarteQuery
&paramparamFruit=-1
6 6
Export Excel d'une query existante
● Ajouter les paramètres suivants
&outputType=xls
&settingattachmentName=tartes.xls
➔ Url directement appelable depuis un lien
➔ Url appelable depuis l’extérieur avec une authentification par url 
7 7
Export des graphiques en images
● Les graphiques affichés dans les dashboards : format svg (dessin
vectoriel), un format standard mais nécessitant une conversion en
image pour être exploitable facilement
● Grâce au CGG (Community Graphics Generator), on peut générer
un script Javascript permettant la conversion
Shift + GShift + G
8 8
Export des graphiques en images
● Url générée
http://mon_serveur/pentaho/plugin/cgg/api/services/draw?script=
/chemin_solution/mon_gaph.js&outputType=png
● Ajouter les paramètres nécessaires au graphique
&paramparamFruit=-1
9 9
Export des graphiques en images
– Avantage:
● Facilité de mise en œuvre
● Url directement appelable depuis un lien
● Accès externe possible en authentification par url
– Limitation
● le script n'utilise pas le graphique affiché dans le dashboard en
svg, mais fait un nouveau rendu
→ les customisations codées ne sont pas reportées!
10 10
Export des graphiques en images
● Alternative : convertir le svg affiché à l'écran en image
– Avantage:
● Sauvegarde exacte du graphique affiché
– Inconvénient
● Développement spécifique nécessaire, avec utilisation de différentes
librairies Javascript
– Faire un rendu du svg dans un canvas Html ( librairie canvg
github.com/gabelerner/canvg )
– Convertir le canvas en Blob ( librairie canvas-toBlob.js
github.com/eboyjr )
– Sauvegarder le Blob en fichier ( FileSaver.js même auteur)
11 11
Exemple
https://drive.google.com/file/d/0BwocIDK0A2zXVXNtUllvcHNkTnM/view?usp=sharing
12 12
Filtres réutilisables
● Couramment nous avons plusieurs dashboards ayant des filtres
en commun. Les développer une seule fois et les réutiliser est un
gain de temps et gage de maintenabilité
● La solution Ctools : la création et utilisation de widget
13 13
Filtres réutilisables (widget)
● Créer un dashboard avec le
contenu nécessaire au filtre et
le sauvegarder en widget
● Syntaxe particulière au widget, toute référence à un paramètre, un
composant ou un élément HTML du widget doit-être de la forme :
${p:parameterName} , ${c:componentName}, ${h:htmlObject}
Le Principe
14 14
Filtres réutilisables (widget)
● Définir les paramètres accessible du widget
15 15
Filtres réutilisables (widget)
● Utiliser le widget dans le dashboard
Note : les widgets sont stockés dans /public/cde/widgets
16 16
Filtres réutilisables (widget)
● Communication dashboard ↔ widget
Dashboard
param1
param2
Dashboard
Widget
param1 = paramIn
param2 = paramOut
Listener sur paramIn
Listener sur param2

More Related Content

Similar to Pentaho Ctools : tips & tricks

Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Aurelien Navarre
 
Etendre le Web avec les Web Components
Etendre le Web avec les Web ComponentsEtendre le Web avec les Web Components
Etendre le Web avec les Web Componentscjolif
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0Olivier Pinette
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020Wiiisdom
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Olivier DASINI
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHPPierre MARTIN
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPKristen Le Liboux
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurMicrosoft Technet France
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2apratt72
 
Dévelopement extensions WordPress
Dévelopement extensions WordPressDévelopement extensions WordPress
Dévelopement extensions WordPressIZZA Samir
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...vlabatut
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipseISIG
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 

Similar to Pentaho Ctools : tips & tricks (20)

Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8
 
Etendre le Web avec les Web Components
Etendre le Web avec les Web ComponentsEtendre le Web avec les Web Components
Etendre le Web avec les Web Components
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020Decouvrez Les Dernieres Innovations Tableau 2020
Decouvrez Les Dernieres Innovations Tableau 2020
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
 
Introduction aspnet
Introduction aspnetIntroduction aspnet
Introduction aspnet
 
Présentation1
Présentation1Présentation1
Présentation1
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 
Dévelopement extensions WordPress
Dévelopement extensions WordPressDévelopement extensions WordPress
Dévelopement extensions WordPress
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 

More from ATOL Conseils et Développements

[Infographie] Dématérialisation des marchés publics : les nouveautés 2018
[Infographie] Dématérialisation des marchés publics : les nouveautés 2018[Infographie] Dématérialisation des marchés publics : les nouveautés 2018
[Infographie] Dématérialisation des marchés publics : les nouveautés 2018ATOL Conseils et Développements
 
Module Alfresco by Atol CD - Validation de la demande d'achat
Module Alfresco by Atol CD - Validation de la demande d'achatModule Alfresco by Atol CD - Validation de la demande d'achat
Module Alfresco by Atol CD - Validation de la demande d'achatATOL Conseils et Développements
 
WebRSA, la solution complète de gestion du Revenu de Solidarité Active
WebRSA, la solution complète de gestion du Revenu de Solidarité ActiveWebRSA, la solution complète de gestion du Revenu de Solidarité Active
WebRSA, la solution complète de gestion du Revenu de Solidarité ActiveATOL Conseils et Développements
 
La cartographie open source au service de vos applications métiers
La cartographie open source au service de vos applications métiersLa cartographie open source au service de vos applications métiers
La cartographie open source au service de vos applications métiersATOL Conseils et Développements
 
Modules pour le traitement des actes administratifs dématérialisés
Modules pour le traitement des actes administratifs dématérialisésModules pour le traitement des actes administratifs dématérialisés
Modules pour le traitement des actes administratifs dématérialisésATOL Conseils et Développements
 

More from ATOL Conseils et Développements (20)

RPA & automatisation by atolcd
RPA & automatisation by atolcdRPA & automatisation by atolcd
RPA & automatisation by atolcd
 
L'innovation au service de la filière agroalimentaire
L'innovation au service de la filière agroalimentaireL'innovation au service de la filière agroalimentaire
L'innovation au service de la filière agroalimentaire
 
Atol CD, une ESN aux valeurs fortes
Atol CD, une ESN aux valeurs fortesAtol CD, une ESN aux valeurs fortes
Atol CD, une ESN aux valeurs fortes
 
7 bonnes raisons de choisir Drupal 7
7 bonnes raisons de choisir Drupal 77 bonnes raisons de choisir Drupal 7
7 bonnes raisons de choisir Drupal 7
 
[Infographie]Les valeurs Atol CD
[Infographie]Les valeurs Atol CD[Infographie]Les valeurs Atol CD
[Infographie]Les valeurs Atol CD
 
Module Alfresco by Atol CD - Indexation des documents
Module Alfresco by Atol CD - Indexation des documentsModule Alfresco by Atol CD - Indexation des documents
Module Alfresco by Atol CD - Indexation des documents
 
Bien démarrer avec l'API de GeoServer
Bien démarrer avec l'API de GeoServerBien démarrer avec l'API de GeoServer
Bien démarrer avec l'API de GeoServer
 
Module d'administration déléguée dans Alfresco
Module d'administration déléguée dans AlfrescoModule d'administration déléguée dans Alfresco
Module d'administration déléguée dans Alfresco
 
[Infographie] Dématérialisation des marchés publics : les nouveautés 2018
[Infographie] Dématérialisation des marchés publics : les nouveautés 2018[Infographie] Dématérialisation des marchés publics : les nouveautés 2018
[Infographie] Dématérialisation des marchés publics : les nouveautés 2018
 
Module Alfresco by Atol CD - Validation de la demande d'achat
Module Alfresco by Atol CD - Validation de la demande d'achatModule Alfresco by Atol CD - Validation de la demande d'achat
Module Alfresco by Atol CD - Validation de la demande d'achat
 
WebRSA, la solution complète de gestion du Revenu de Solidarité Active
WebRSA, la solution complète de gestion du Revenu de Solidarité ActiveWebRSA, la solution complète de gestion du Revenu de Solidarité Active
WebRSA, la solution complète de gestion du Revenu de Solidarité Active
 
Une offre cloud basée sur des composants open source
Une offre cloud basée sur des composants open sourceUne offre cloud basée sur des composants open source
Une offre cloud basée sur des composants open source
 
La parallélisation au service de l'optimisation
La parallélisation au service de l'optimisationLa parallélisation au service de l'optimisation
La parallélisation au service de l'optimisation
 
La cartographie open source au service de vos applications métiers
La cartographie open source au service de vos applications métiersLa cartographie open source au service de vos applications métiers
La cartographie open source au service de vos applications métiers
 
[Infographie] Les enjeux de la facturation électronique
[Infographie] Les enjeux de la facturation électronique[Infographie] Les enjeux de la facturation électronique
[Infographie] Les enjeux de la facturation électronique
 
[Infographie] La business intelligence open source
[Infographie] La business intelligence open source[Infographie] La business intelligence open source
[Infographie] La business intelligence open source
 
Module Suggest Box pour Alfresco
Module Suggest Box pour AlfrescoModule Suggest Box pour Alfresco
Module Suggest Box pour Alfresco
 
Modules pour le traitement des actes administratifs dématérialisés
Modules pour le traitement des actes administratifs dématérialisésModules pour le traitement des actes administratifs dématérialisés
Modules pour le traitement des actes administratifs dématérialisés
 
Connecteur GED Alfresco / iParapheur Libriciel
Connecteur GED Alfresco / iParapheur LibricielConnecteur GED Alfresco / iParapheur Libriciel
Connecteur GED Alfresco / iParapheur Libriciel
 
Module Alfresco Tableau de pilotage by Atol CD
Module Alfresco Tableau de pilotage by Atol CDModule Alfresco Tableau de pilotage by Atol CD
Module Alfresco Tableau de pilotage by Atol CD
 

Pentaho Ctools : tips & tricks

  • 1. 1 Pentaho Ctools : tips & tricks trucs et astuces pour le développement de vos dashboards Pentaho Présenté par Benoît Mouchard
  • 2. 2 2 Liste déroulante et « Tous » ● Besoin : filtrer ou non selon un élément id/libellé parmi une liste provenant d'une table de référence
  • 3. 3 3 Liste déroulante et « Tous » ● Requête du composant « select »Requête du composant « select » Requête du tableau
  • 4. 4 4 Export Excel d'une query existante ● Ouvrir le fichier .cda correspondant au dashboard ● Sélectionner la query et remplir les paramètres , puis Query URL ●
  • 5. 5 5 Export Excel d'une query existante On obtient l'url correspondant à la requête http://mon_serveur/pentaho/plugin/cda/api/doQuery ?path=/chemin_solution/mon_cda.cda &dataAccessId=tarteQuery &paramparamFruit=-1
  • 6. 6 6 Export Excel d'une query existante ● Ajouter les paramètres suivants &outputType=xls &settingattachmentName=tartes.xls ➔ Url directement appelable depuis un lien ➔ Url appelable depuis l’extérieur avec une authentification par url 
  • 7. 7 7 Export des graphiques en images ● Les graphiques affichés dans les dashboards : format svg (dessin vectoriel), un format standard mais nécessitant une conversion en image pour être exploitable facilement ● Grâce au CGG (Community Graphics Generator), on peut générer un script Javascript permettant la conversion Shift + GShift + G
  • 8. 8 8 Export des graphiques en images ● Url générée http://mon_serveur/pentaho/plugin/cgg/api/services/draw?script= /chemin_solution/mon_gaph.js&outputType=png ● Ajouter les paramètres nécessaires au graphique &paramparamFruit=-1
  • 9. 9 9 Export des graphiques en images – Avantage: ● Facilité de mise en œuvre ● Url directement appelable depuis un lien ● Accès externe possible en authentification par url – Limitation ● le script n'utilise pas le graphique affiché dans le dashboard en svg, mais fait un nouveau rendu → les customisations codées ne sont pas reportées!
  • 10. 10 10 Export des graphiques en images ● Alternative : convertir le svg affiché à l'écran en image – Avantage: ● Sauvegarde exacte du graphique affiché – Inconvénient ● Développement spécifique nécessaire, avec utilisation de différentes librairies Javascript – Faire un rendu du svg dans un canvas Html ( librairie canvg github.com/gabelerner/canvg ) – Convertir le canvas en Blob ( librairie canvas-toBlob.js github.com/eboyjr ) – Sauvegarder le Blob en fichier ( FileSaver.js même auteur)
  • 12. 12 12 Filtres réutilisables ● Couramment nous avons plusieurs dashboards ayant des filtres en commun. Les développer une seule fois et les réutiliser est un gain de temps et gage de maintenabilité ● La solution Ctools : la création et utilisation de widget
  • 13. 13 13 Filtres réutilisables (widget) ● Créer un dashboard avec le contenu nécessaire au filtre et le sauvegarder en widget ● Syntaxe particulière au widget, toute référence à un paramètre, un composant ou un élément HTML du widget doit-être de la forme : ${p:parameterName} , ${c:componentName}, ${h:htmlObject} Le Principe
  • 14. 14 14 Filtres réutilisables (widget) ● Définir les paramètres accessible du widget
  • 15. 15 15 Filtres réutilisables (widget) ● Utiliser le widget dans le dashboard Note : les widgets sont stockés dans /public/cde/widgets
  • 16. 16 16 Filtres réutilisables (widget) ● Communication dashboard ↔ widget Dashboard param1 param2 Dashboard Widget param1 = paramIn param2 = paramOut Listener sur paramIn Listener sur param2