Le Blog de C-quad

SpagoBI – Premier tableaux de bords

Nous avons vu précédemment comment installer et configurer l’accès à une base de données, nous allons donc pouvoir nous attaquer à la création de nos premières restitutions : les tableaux de bords.

Pré-requis

Pour pouvoir créer des tableaux de bords ou tout autre objet sur SpagoBI, il est préférable d’utiliser le « Studio ».  Vous pouvez télécharger le Studio pour Linux ou le Studio pour Windows. Le studio va vous permettre de créer entre autre les fichiers « template ». Il est tout à fait possible de les écrire aussi à la main, mais il est tout de même plus aisé de le faire avec le studio.

Lancer « SpagoBI – Eclipse Plateform ». Nous allons créer un nouveau projet : Fichier -> Nouveau -> Autre -> SpagoBI -> SpagoBI Project.

Nous déclarons maintenant notre serveur. Déplions l’item « Resources » afin de faire apparaitre l’item « Server » sur lequel nous allons faire un clic droit afin de pouvoir créer un nouveau serveur.

Nous voila prêt à créer notre premier tableau de bord.

Création d’un tableau de bord

On va commencer par créer un nouveau « DataSet » sur lequel le tableau de bord se basera.

Je crée le dataset « Ventes_par_pays » via l’interface web qui contient la requête suivante :

select s.store_country
sum(f.store_sales) as store_sales, sum(f.store_cost) as store_cost, sum(f.unit_sales) as unit_sales
from sales_fact_1998 f
inner join store s on (s.store_id = f.store_id)
inner join sales_region r on (s.region_id = r.region_id)
group by   s.store_country ;

Nous pouvons maintenant aller dans le Studio et faire un clic droit sur « Sbi_Analysis ». Nous choisissons « DashBoard » :

Sélectionner le document créé et faire un clic droit « Deploy »

On défini ensuite le nom du document ainsi que le dataset sur lequel il est basé.

Direction l’interface graphique :

 Comme vous pouvez le constater, nous n’avons que très peu la main sur l’organisation du tableau. Cette fonctionnalité permet pour moi surtout d’afficher le résultat d’une requête « proprement ». Mais je suis peut être passé à coté de quelque chose au niveau du paramétrage.

Je vous fais un rapide aperçu des autres possibilités de restitutions avec la requête utilisée :

Les colonnes en trois dimensions :

La requête utilisée :

select  concat(fname,' ',lname) Customer_Name,    
        round(rand()*100,2) Effort_Index,
    round(rand()*100,2) Competitiveness,
    round(rand()*100,2) Cost_Optimization,
    round(rand()*100,2) Health
from customer
where customer_id < 5;

Et son rendu graphique en utilisant columns3d.lzx.swf:

L’aiguille de compteur :

La requête utilisée :

select concat(fname,' ',lname) as serie, round(rand()*100,2) as value
from customer
where customer_id =1;

Le rendu en utilisant rot.lzx.swf :

Sur le modèle du tableau de bord ci dessus, il est possible de faire le même type de restitutions avec plusieurs aiguilles.

Le compteur multi-aiguilles :

Malheureusement le compteur avec plusieurs aiguilles n’est pas disponible dans la liste de choix dans le Studio. Il vous faudra donc créer le template vous même. Voici le template que j’ai utilisé :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DASHBOARD movie='/dashboards/multirotation.lzx.swf' >
 <DIMENSION width='400' height='400' />
 <CONF>
  <PARAMETER name='minValue' value='0' />
  <PARAMETER name='maxValue' value='100' />
  <PARAMETER name='lowValue' value='33' />
  <PARAMETER name='highValue' value='66' />
  <PARAMETER name='numNeedles' value='4' />
  <PARAMETER name='xSerieAttributeName ' value='serie' />
  <PARAMETER name='value1' value='profits' />
  <PARAMETER name='value2' value='ventes' />
  <PARAMETER name='value3' value='SAV' />
  <PARAMETER name='value4' value='salaires' />
  <PARAMETER name='colorNeedle1' value='red' />
  <PARAMETER name='colorNeedle2' value='blue' />
  <PARAMETER name='colorNeedle3' value='aqua' />
  <PARAMETER name='colorNeedle3' value='yellow' />

  <PARAMETER name='multichart' value='false'/>
  <PARAMETER name='numCharts' value='1' />
    <PARAMETER name='orientation_multichart' value='vertical'/>
    <PARAMETER name='colorTitleSerie' value='purple' />
    <PARAMETER name='sizeTitleSerie' value='12' />
    <PARAMETER name='displayTitleBar' value='true' />
    <PARAMETER name='title' value='Exemple de graphique a 4 aiguilles' />
    <PARAMETER name='colorTitle' value='purple' />
    <PARAMETER name='sizeTitle' value='14' />
    <PARAMETER name='legend' value='true'/> 
 </CONF>

   <DRILL document="chtHistorySalesDirec">
    <!-- possible types for param: RELATIVE, ABSOUTE-->
      <PARAM name="param1" type="RELATIVE"  value="$F{serie}"/> <!-- parameter from db-->
      <PARAM name="paramStat" type="ABSOLUTE"  value="parametro statico"/> <!-- static parameter -->
  </DRILL>

  <DATA url='/servlet/AdapterHTTP?ACTION_NAME=GET_DATASET_RESULT'></DATA>

</DASHBOARD>

La requête utilisée :

SELECT 'Titre du graphique' as serie, 
       'profits' as value1, 'ventes' as value2, 'SAV' as value3, 'salaires' as value4, 
        20 as profits, 80 as ventes, 12 as SAV, 7 as salaires 
from dual;

Comme vous pouvez le constater la requête est structurante pour le rendu. Le texte retourné pour la colonne « serie » sert de Titre au graphique, et les libellés stockés dans value[1-4] servent dans la légende.

Voici le rendu en utilisant multirotation.lzx.swf :

Je pense qu’il est possible de créer des modèles de graphiques différent les fichiers « lzx.swf » sont en effet le fruit d’un logiciel libre : OpenLaszlo. Je n’ai par contre pas trouvé de tutoriel sur la possible création de nouveaux modèles pour SpagoBI.

 

2 réponses à to “SpagoBI – Premier tableaux de bords”

  • Yoni:

    Salut,
    super petit tuto, je l’ai suivi et obtenu des résultats sympathiques.

    Quelques remarques:
    – préciser que l’interface web correspond au portail de SBI (par défaut http://localhost:8080/SpagoBI), et que le menu de création d’un Data Set se trouve dans « Ressources/Jeu de données » (pas évident au début).
    – préciser que la création de DataSets via SBI Studio n’est malheureusement pas possible (la création et le déploiement de templates pour Tableaux de bord/Dashboards marche elle très bien, cependant la fonction « Deploy » ne semble pas marcher avec SBI 2.7).
    – préciser qu’il faut que la 1ère colonne de la requête soit renseignée dans le template de type « Live table » et que les 2 premières colonnes de la requête soient renseignées dans le template de type « Columns 3D » (les colonnes > 2 n’apparaîtrons-pas sur le graphe).

    Merci pour ton blog!

  • Voilà, j’ai installé, configuré et maintenant je suis tes tutos avec intérêt ! Super travail !!!

    Merci encore !

Laisser un commentaire