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.

 

Vus : 3653
Publié par C-quad : 36