De SAS Foundation à SAS BI : Comment créer son Dashboard KPI

| DATAMETRIC | datametric |

L'article détaille la mise en place d'un Dashboard KPI grâce aux trois outils SAS : SAS Base, SAS Enterprise Guide et SAS BI Dashboard. Ainsi selon la plate-forme de travail, le lecteur pourra concevoir des tableaux de bord synthétiques ayant un fort impact visuel et diffuser l'information au sein de l'entreprise.

Commentez ♪

- Titre : De SAS Foundation à SAS BI : Comment créer son Dashboard KPI

- Auteurs : DATAMETRIC, datametric

- Parution : 14 avril 2012

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2012 Stéphane COLAS. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Principe général des Dashboard KPI

- II-A. Les indicateurs

- II-B. Les éléments constitutifs d'un indicateur

- III. Développer son Dashboard avec SAS Foundation

- III-A. Procédure SAS associée à la génération des KPI

- III-B. Renseigner les valeurs à visualiser et les seuils

- III-B-1. Une première approche avec une saisie manuelle des KPI

- III-B-2. Récupérer les valeurs d'une table pour visualiser les KPI

- III-C. Les options à prendre en compte lors de la conception du programme

- III-C-1. Moteur de génération

- III-C-2. Profondeur du graphique

- III-C-3. Couleurs des segments

- III-C-4. Personnalisation de l'affichage

- III-D. Exemples de sortie

- III-D-1. Créer un premier Dashboard

- III-D-1-a. Détail du code

- III-D-1-b. Présentation du résultat

- III-D-2. Exploiter des valeurs issues de tables SAS

- III-E. Conclusion

- IV. Développer son Dashboard avec SAS Enterprise Guide dans un environnement BI

- IV-A. Prérequis

- IV-B. Créer un projet KPI

- IV-B-1. Conception d'un projet KPI

- IV-B-2. Personnalisation de l'affichage

- IV-C. Publication du rapport KPI

- IV-C-1. Publication d'un rapport statique

- IV-C-1-a. Ouverture dans l'add-in

- IV-C-1-b. Ouverture dans SAS Web Report Studio

- IV-C-2. Publication d'un rapport dynamique

- IV-D. Conclusion

- V. Développer son Dashboard avec SAS BI Dashboard

- V-A. Présentation de la page BI Dashboard

- V-B. Les éléments constitutifs d'un BI Dashboard

- V-C. Création d'un KPI

- V-C-1. Création de la source de données

- V-C-2. Création de l'échelle

- V-D. Création de l'indicateur

- V-D-1. Création de l'indicateur «Indicateur de vente sur les trois continents»

- V-D-2. Création de l'indicateur «Consommation CO² par type et nombre de véhicules»

- V-E. Création du Dashboard

- V-F. Appel du Dashboard dans une page du portail

- V-G. Personnalisation du Dashboard

- V-H. Conclusion

- VI. Conclusion : le choix entre les trois outils

- VII. Remerciements

- VIII. À propos de l'auteur

- IX. Liens

I - Introduction

L'article propose la mise en place des Dashboard KPI SAS au travers de trois outils de l'éditeur éponyme. Le terme «Dashboard» est souvent employé dans le monde du décisionnel pour parler de tableaux de synthèse présentant les indicateurs-clefs de l'activité (connus sous le sigle anglais KPI - Key Performance Indicator). Les Dashboard ont une réelle valeur ajoutée pour un travail de reporting en raison de leur aspect visuel et leur simplicité de mise en oeuvre.

Même si la désignation «tableaux de bord» répond à ce besoin, elle apparaît quelque peu galvaudée et regroupe désormais beaucoup de choses (tableaux volumineux, graphiques de toutes sortes) ce qui l'éloigne d'une notion de synthèse, très courte mais surtout visuelle, d'une activité telle que nous le verrons ici.

Nous poursuivrons donc la discussion en désignant les tableaux de présentation des KPI par «Dashboard» ou «Dashboard KPI».

Après une présentation générale des KPI, nous parlerons de la procédure de base fournie avec SAS 9.2 permettant de construire un graphique KPI sans utiliser de notions de métadonnées et de reporting Web. Il est conseillé de jeter un oeil à cette partie avant d'aborder les deux autres.

Dans une seconde partie, nous emploierons de nouveau cette procédure, mais au travers de SAS Enterprise Guide 4.3 et de l'add-in dédié à cette tâche. Cette partie permet de faire le pont entre SAS Foundation et le travail dans un environnement BI qui s'illustre par l'utilisation des métadonnées et des outils comme Web Report Studio.

Enfin, une troisième partie conclura la présentation avec la mise en place de ce même Dashboard grâce à l'outil SAS BI DASHBOARD accessible par une URL dans un environnement exclusivement BI.

Les exemples et illustrations ont été réalisés sur une plate-forme Windows 32 bits avec :

- SAS EBI 9.2 M3 ;

- SAS BI Dashboard 4.3 ;

- SAS Enterprise Guide 4.3 ;

- L'add-in Office 4.3.

Les mêmes résultats sont obtenus sur une plate-forme Unix et Windows 64 bits.

Les données employées sont celles de la table SASHELP.CARS, regroupant les valeurs de ventes et de consommation d'essence pour 488 modèles de voitures réparties selon leur fabricant et l'origine de fabrication.

II - Principe général des Dashboard KPI

Un Dashboard KPI a pour objectif de présenter sur une page, les indicateurs-clefs de suivi de l'activité d'une société. On souhaitera par exemple rapidement voir où se situe le chiffre d'affaires du mois par rapport aux objectifs, le volume de vente par rapport à des seuils de performances, etc.

L'intérêt est d'avoir un visuel fort permettant de comprendre rapidement l'activité.

Pour cela, la plupart des outils du commerce proposent des éléments tels que des jauges, des accélérateurs ou des feux tricolores. SAS n'est pas en reste et a développé le même principe pour sa plate-forme BI, mais également pour les utilisateurs de plate-forme FOUNDATION, qui souhaitent donner un impact visuel fort à leur reporting.

II-A - Les indicateurs

Voici les objets que l'on peut manipuler à cet effet :

L'objectif est donc de visualiser un indicateur d'activité. Chaque indicateur, que nous nommerons souvent KPI, pourra être présenté avec une image telle une jauge ou un cadran. À cela s'ajoutent des seuils et des objectifs qui se présenteront sous la forme de barres, de flèches ou de segments de couleur.

II-B - Les éléments constitutifs d'un indicateur

Dans l'article, nous parlerons de valeur actuelle, seuils et valeur cible. Ce sont ces trois notions qui sont essentielles aux Dashboard :

1. La valeur actuelle est la valeur à suivre pour un indicateur donné. Par exemple, le chiffre d'affaires du mois est la valeur actuelle ;

2. On pose ensuite des seuils permettant de mesurer dans quel segment, la valeur actuelle se situe ;

3. Enfin la valeur cible sert à afficher un objectif.

Les couleurs sont personnalisables comme nous le verrons ainsi que l'apparition de symboles pour les valeurs actuelles et cibles telles que des aiguilles dans les compteurs ou des marques sur les jauges.

III - Développer son Dashboard avec SAS Foundation

Ce chapitre montre que les Dashboard peuvent être développés et diffusés sans plate-forme BI SAS. On retrouve ici le fonctionnement traditionnel de SAS dans lequel le programmeur génère un document Web ou Office et le met à disposition sur le réseau ou le pousse par mail vers les décideurs.

Ce chapitre permet également d'introduire plus précisément les représentations des indicateurs que l'on retrouvera plus tard au travers de SAS Enterprise Guide du SAS BI Dashboard.

III-A - Procédure SAS associée à la génération des KPI

La procédure sous SAS permettant de développer les Dashboard est la proc GKPI.

Elle permet de définir le type de KPI comme présenté dans le tableau suivant puis de définir la qualité du graphique. Ainsi, selon le souhait de présentation, un indicateur-clef prendra telle ou telle forme.

Désignation dans la procédure

Description

dial

Le cadran présente la valeur actuelle et des seuils. Le centre du cadran est de la même couleur que le segment qui contient la valeur réelle.

Speedometer

Des pointeurs indiquent des seuils. Des niveaux de couleurs viennent ajouter une autre information. L'accéléromètre peut être plein, en demi-cercle ou un quart de cercle.

Vtrafficlight/htrafficlight

Contient une lumière par segment de valeur. Le segment contenant la valeur actuelle est en couleur. Le fait que les valeurs limites ne sont pas affichées peut fausser la présentation.

Vslider/hslider ; vbullet/hbullet

Barre séparée par des seuils. La valeur est indiquée par un niveau (bullet) ou une flèche (slider)

Elle prend ensuite en paramètre les valeurs de l'indicateur et les bornes délimitant les segments de valeurs.

III-B - Renseigner les valeurs à visualiser et les seuils

La procédure accepte des valeurs entrées directement avec le code et ne sait pas lire une table.

III-B-1 - Une première approche avec une saisie manuelle des KPI

La procédure GKPI ne lit pas directement une table comme le font les autres procédures. Il s'agit ici de renseigner directement la valeur actuelle, la valeur cible et les seuils.

Par exemple, si l'on souhaite un cadran avec l'affichage du chiffre d'affaires du mois, de l'objectif et de quatre seuils, il faut fournir six valeurs manuellement ou par des macros-variables.

Ainsi, nous aurons à mettre :

proc gkpi mode=raised;
dial actual=32
bounds=(0 21 46 65 79)
/ target=23

Pour afficher ceci :

On y voit :

1. La valeur actuelle est paramétrée avec actual=32. Elle est symbolisée avec une flèche au sein des segments ; il faut noter également que la couleur du cadran central change en fonction du segment dans lequel se trouve la valeur actuelle ;

2. Les seuils des segments valorisant la valeur actuelle, paramétrée avec bounds=(0 21 46 65 79) ;

3. La cible, symbolisée par la flèche noire plus petite que la flèche de la valeur actuelle, est paramétrée avec target=23 ;

Pour le moment, cette procédure ne peut pas lire une table, ce qui représente une limite que SAS devra combler.

III-B-2 - Récupérer les valeurs d'une table pour visualiser les KPI

Un programmeur SAS comprendra rapidement que si des valeurs doivent être reprises d'une table, elles le seront au travers de macros-variables pour contourner cette limitation. La valeur cible devrait quant à elle provenir des directions métiers, car il est rare (mais possible) de trouver les objectifs de la société dans une base de données. Enfin pour les seuils, soit ils sont renseignés en accord avec les métiers, soit le statisticien déterminera des seuils grâce aux quartiles par exemple.

Pour illustrer cela, l'exemple suivant va calculer la valeur moyenne des ventes des voitures américaines depuis la table SASHELP.CARS. Les seuils seront déterminés dynamiquement avec des mesures statistiques liées au montant des factures.

Avec le code suivant commenté, un graphique est alors généré :

proc summary data=sashelp.cars;    /*Une proc Summary permet de calculer des indicateurs statistiques de ventes */
where origin ="USA" ;    /*Restriction aux États-Unis */
var invoice;
output out=cars mean=v_act Q1=s1 median=s2 Q3=s3 max=s4;    /*Calcul de la moyenne et des quartiles et de la valeur maximale */
run;

data _null_;
set cars;    /*Les statistiques sont enregistrées dans les macros-variables */
call symputx (  '_act' , v_act);    /*La valeur actuelle est dans &_act */
call symputx ( '_s1' , s1);    /*Le premier quartile est dans &_s1 */
call symputx ( '_s2' , s2);    /*La médiane est dans &_s2 */
call symputx ( '_s3' , s3);    /*Le troisième quartile est dans &_s3 */
call symputx ( '_s4' , s4);    /*La valeur maximale est dans &_s4 */
run;

proc gkpi mode=raised;
dial actual=&_act    /*Les macros-variables sont exploitées */
bounds=(&_s1 &_s2 &_s3 &_s4 ) /
format="dollarx8.0"    /*Un format Dollar est appliqué aux valeurs */
label="Niveau de facturation aux USA";    /*Un libellé est créé sur le KPI */
run;
quit;

Le résultat est celui-ci.

La valeur actuelle de 25 949 $ se retrouve dans le second segment de valeurs ce qui amène une couleur centrale jaune.

Les ventes moyennes sont supérieures à la médiane ce qui est plutôt positif (le nombre de voitures chères se vendant plutôt plus que les voitures peu onéreuses). On constate par contre qu'il y a un énorme écart entre le seuil du troisième quartile et le prix de la voiture le plus élevé.

III-C - Les options à prendre en compte lors de la conception du programme

Les options suivantes permettent d'améliorer le rendu des graphiques.

III-C-1 - Moteur de génération

Tout d'abord, l'image générée par la procédure ne peut qu'exploiter un moteur JAVAIMG. On posera donc en premier lieu :

Goptions device = javaimg ;

Ce moteur graphique permet de générer des images au format Portable Network Graphics (PNG). Ce format assez récent remplace le format GIF assez avantageusement lorsqu'il s'agit de diffuser des images sur le Web avec une palette de couleurs étendue et un fond transparent.

Il est possible dans ce cas d'utiliser un ODS HTML ou ODS RTF pour regrouper différents indicateurs. Chacun d'entre eux allant générer une image en plus de la page Web.

Ainsi le code suivant génère un fichier KPItest.html pour une sortie. Les images seront stockées dans F:\temp car le PATH est spécifié, autrement le fichier HTML et les images iraient dans C:\Program Files\SAS\SAS Foundation\9.2 (là où le moteur SAS est installé).

ods html path="F:\temp" (url=none) file='KPItest.html' style=listing;

III-C-2 - Profondeur du graphique

La procédure permet de définir si l'objet sera en deux ou trois dimensions. La valeur RAISED permet de créer un graphique en trois dimensions :

Proc GKPI mode=raised ;

III-C-3 - Couleurs des segments

Les couleurs sont par défaut les suivantes : rouge, orange, jaune, jaune-vert, vert. Si quatre segments sont utiles seulement, le jaune est supprimé.

Couleur RGB

Valeur hexadécimale

Red

cxD06959

Orange

cxE1A05D

Yellow

cxF1DC63

Yellow-Green

cxBDCD5F

Green

cx84AF5B

Grey

cxb2b2b2

Les jeux de couleurs SAS/GRAPH sont de toute façon supportés par la procédure.

L'étape COLORS=() permet de spécifier l'ordre des couleurs utilisées. En spécifiant la couleur GREY, le graphique sera en noir et blanc.

L'étape ACTIVECOLORS = () permet de forcer la couleur du segment dans lequel se trouve la valeur actuelle. Elle n'a pas besoin de contenir une couleur par segment. Cette étape n'est pas souvent utilisée.

III-C-4 - Personnalisation de l'affichage

Le tableau suivant résume les possibilités offertes pour modifier l'apparence du graphique. Il faut prendre garde à éviter les valeurs décimales, car cela peut alourdir la lecture.

Option

Description

AFONT=

Police de la valeur actuelle

AVALUE | NOAVALUE

Affiche ou non la valeur actuelle

BFONT=

Police pour les seuils

BVALUE | NOBVALUE

Affiche ou non les seuils

FORMAT

Format SAS donné aux valeurs

LABEL=

Libellé à afficher en haut du graphe (256 caractères)

LFONT=

Police du libellé en haut du graphe

LOWBOUND| LOWBOUNDARY

Indique comment la couleur de la valeur actuelle doit être affichée lorsqu'elle coïncide avec le seuil. La couleur du segment précédent est utilisée avec la valeur LOWBOUND

NAME=

Nom du fichier généré. Par défaut c'est graph.png

TARGET=

Valeur cible pouvant être comparée à la valeur actuelle

Parmi les options générales applicables aux graphiques SAS, certaines fonctionnent avec la proc GKPI

Option

Description

TITLE, FOOTNOTE

Étapes pour les titres et pieds de page

BORDER, VSIZE, HSIZE, XPIXEL, YPIXEL, IBACK, CBACK, CTEXT, HTEXT, FTEXT

Options graphiques (GOPTIONS)

III-D - Exemples de sortie

Avec tous ces éléments, il est donc possible de générer un premier exemple de Dashboard KPI.

III-D-1 - Créer un premier Dashboard

Nous partons sur des valeurs imposées afin de produire un fichier HTML rapidement. Il s'agit ici de constater la facilité de mise en oeuvre et l'impact visuel de cette représentation. Le même Dashboard pourra être produit à partir d'une table et l'utilisation des macros-variables.

Ce sont six indicateurs qui seront représentés dans une page HTML créée avec l'ODS HTMLPANEL pour obtenir un tableau avec les indicateurs. Cet ODS est dédié à la création de tableaux regroupant des informations au format HTML.

III-D-1-a - Détail du code

Nous utiliserons les éléments techniques suivants :

/* Les options graphiques : elles définissent le moteur graphique et la taille en pixels de chaque indicateur  */
Goptions device=javaimg xpixels=200 ypixels=200 ;

/* Les options de la sortie HTMLPANEL : ces options associées à cet ODS permettent de définir le nombre de colonnes et la taille des bordures
par des macros-variables qui sont ensuite exploitées dans le tagsets.
Le lecteur curieux pourra se référer à la documentation en ligne */
%let panelcolumns = 3;
%let panelborder = 1;
%let embedded_titles = no;

/* Une sortie HTMLPANEL : les éléments constituants de cet ODS permettent de spécifier où enregistrer les fichiers.
On spécifie l'annulation des titres et pieds de page graphiques  */
ods tagsets.htmlpanel
path = "c:\temp"
body = "paneltest.html" (title="Principaux indicateurs de suivi")
nogtitle
nogfootnote;

/*La définition du panneau de l'ODS : l'étape Event permet de démarrer la création du tableau  */
ods tagsets.htmlpanel event=panel(start);

/* Les indicateurs : au coeur sont placés les indicateurs avec diverses options d'affichage */
proc gkpi mode=raised;
/*RAISED fournira un graphique en trois dimensions */

speedometer actual=3000 bounds=(0 2000 4000 10000) / target=2000
/*Un accélérateur est utilisé pour les revenus mensuels. En plus des seuils, une valeur cible est affichée */

lfont=(f="Calibri" height=.5cm)     /*La police du libellé est définie */
format="eurox8.0"    /*Les valeurs sont en euros */
Label="Revenus du mois";    /*Un titre est donné au KPI */
run;

proc gkpi mode=raised;
speedometer actual=-.05 bounds=(-.1 -.05 0 .05 .1) / target = .05
format="percent5.1"    /*Les valeurs sont en pourcentage */
lfont=(f="Calibri" height=.5cm) label="Croissance trimestrielle";
run;

proc gkpi mode=raised;
hslider actual=-6.7 bounds=(-10 -5 0 5 10) /    /*Une barre à seuil est utilisée */
colors=(cxB2B2B2 cxB2B2B2 cxB2B2B2 cxB2B2B2)    /*Le KPI sera en gris */
activecolors=(cxD06959 cxE1A05D cxBDCD5F cx84AF5B)    /*Le segment contenant la valeur actuelle prendra une couleur spécifique */
lfont=(f="Calibri" height=.5cm) label="PBIT";
run;

proc gkpi mode=raised;
trafficlight actual=598 bounds=(1500 900 600 0) /    /*Un feu tricolore est utilisé */
colors=(green yellow red)  noavalue    /*La valeur actuelle n'est pas affichée */
lfont=(f="Calibri" height=.5cm) label="Conquête client";
run;

proc gkpi mode=basic;
speedometer actual=12 bounds=(0 25 50 100) /    /*Un accéléromètre est utilisé */
colors=(cx84AF5B cxF1DC63 cxD06959)
lfont=(f="Calibri" height=.5cm) label="Churn";
run;

proc gkpi mode=raised;
dial actual=.46 bounds=(0 .23 .46 .65 .79 1) /    /*Une jauge est utilisée */

target=.9  nolowbound  format="percent8.0"
/*Une valeur cible est affichée. Si la valeur actuelle est sur un seuil,
le rond central prendra la couleur du segment supérieur. Le format des données est en pourcentage */

afont=(f="Albany AMT" height=.5cm)    /*La police de la valeur actuelle est définie */
bfont=(f="Albany AMT" height=.4cm)     /*La police des seuils est définie */
lfont=(f="Calibri" height=.5cm) label="Potentiel de conquête globale";
run;

/*La fermeture de l'ODS : le tableau HTML est fermé */
ods tagsets.htmlpanel event=panel(finish);
ods _all_ close;

III-D-1-b - Présentation du résultat

Le résultat est le suivant. L'ODS HTMLPANEL a permis de créer un tableau avec trois colonnes. C'est le nombre de procédures qui déterminera le nombre de cellules dans ces trois colonnes. Un titre est ajouté à la page HTML puis chaque procédure voit son résultat affiché dans une cellule.

1. Résultat de : body = "paneltest.html" (title="Principaux indicateurs de suivi")

2. L'aiguille présente la valeur actuelle

3. La flèche présente la valeur cible

4. La valeur actuelle est formatée en euros

5. La valeur actuelle formatée en pourcentage

6. La valeur actuelle est dans le premier segment. Celui-ci est donc colorisé

7. Les segments voient leur couleur inversée par rapport au visuel par défaut

8. La valeur actuelle est sur le seuil. Le rond central prend la couleur du segment supérieur

III-D-2 - Exploiter des valeurs issues de tables SAS

Ces premiers développements vous ont intéressés ? Si vous souhaitez approfondir le sujet, je vous invite à prendre contact avec l'auteur pour obtenir l'article au complet.

III-E - Conclusion

En conclusion, la proc GKPI permet de créer des Dashboard très facilement afin de restituer une information importante dans un espace restreint. Inutile dans ce cas d'opter pour une plate-forme BI si l'on souhaite diffuser cette page par ses propres moyens.

La procédure ne permet pas de lire une table donc il est nécessaire de définir les valeurs soit manuellement, soit avec un programme SAS qui renverra les valeurs souhaitées au travers de macros-variables.

IV - Développer son Dashboard avec SAS Enterprise Guide dans un environnement BI

L'objectif de cette deuxième partie est de construire un projet EG générant un Dashboard KPI. Tout comme la première partie, ce sont des KPI qui seront présentés dans une seule page pour obtenir un suivi d'activité synthétique.

La différence majeure porte sur le mode de diffusion des résultats. Il devient possible de diffuser largement le travail réalisé, grâce au référentiel de SAS BI.

SAS Entreprise Guide est l'outil dédié aux programmeurs dans un environnement SAS BI. En plus de programmes de qualification des données et d'analyse statistique il permet également de créer des applications stockées ou des rapports visibles depuis SAS Web Report Studio et de l'add-in Office. Grâce à ces deux fonctionnalités, nous illustrerons comment utiliser SAS Enterprise Guide pour mettre à disposition un Dashboard KPI depuis une procédure stockée dans le portail SAS et dans un rapport au format SRX pour SAS Web Report Studio et l'add-in SAS dans PowerPoint.

IV-A - Prérequis

La proc GKPI est accessible par un add-in qu'il convient de télécharger sur le site de SAS à l'adresse suivante : http://support.sas.com/kb/36/180.html.

Il convient tout d'abord de télécharger la dll correspondant à sa version de SAS Enterprise Guide puis de renommer obligatoirement la dll après l'avoir déposée dans un répertoire accessible par l'outil.

Dll au téléchargement

Dll exploitable par EG

fusion_36180_8_sas.dll

SAS.Tasks.Examples.GKPI.dll

fusion_36180_9_sas.dll

SAS.Tasks.Examples.GKPI43.dll

Depuis Enterprise Guide, il est alors nécessaire de déclarer cette dll depuis le menu Outils > Add-in.

L'assistant est alors correctement chargé :

L'assistant est accessible dans les add-in :

IV-B - Créer un projet KPI

Nous allons utiliser SAS Enterprise Guide pour concevoir un Dashboard KPI et le publier directement sur la plate-forme SAS. Nous allons voir que le rapport généré peut être statique (non actualisable) ou dynamique. Dans ce dernier cas, le rapport présentera les données rafraîchies à chaque ouverture du rapport sans avoir à le publier à nouveau.

IV-B-1 - Conception d'un projet KPI

Nous avons besoin d'une table de données contenant la valeur actuelle et la valeur cible d'un indicateur. Pour cela, calculons en premier lieu la moyenne des ventes par origine : à partir de la table CARS, constituons un petit projet qui calcule la moyenne des ventes par origine (1) des constructeurs puis nous transposons la table pour obtenir un indicateur par origine (2).

La valeur des ventes moyennes en Asie est donc de 22 602 $.

À l'aide de l'assistant fraîchement téléchargé, nous générons trois KPI pour chacune de ces valeurs et obtenons trois rapports au format SRX. Pour rappel, le format SRX est un format de sortie SAS que les outils SAS peuvent ouvrir (du moins les applications Web et l'add-in).

L'illustration suivante permet de présenter l'interface de l'assistant de création de l'un de ces KPI. Cet assistant est basé en réalité sur la proc GKPI. Par conséquent, on retrouve les éléments vus au premier chapitre qui cette fois-ci sont mis à disposition avec des listes déroulantes et des boîtes de saisie.

1. La valeur actuelle prend la variable v_act_Asia

2. Un cadran est utilisé

3. La valeur actuelle présentée utilise une police Albany AMT de taille 10

4. Le format DOLLAR6.0 est appliqué aux valeurs

5. Un libellé mentionne l'origine

Le lecteur avisé remarquera immédiatement que les seuils ne sont pas renseignés. C'est un choix ici, mais le programmeur peut renseigner les valeurs sans toutefois les prendre dans une table comme il a été fait avec la valeur actuelle.

À noter que cet assistant possède une particularité intéressante lorsque les seuils sont laissés vides. Il analyse la valeur actuelle et impose des valeurs de seuils dans le code généré. Le code suivant illustre le travail fait dans l'assistant pour déterminer des seuils a priori. Cette partie n'est malheureusement pas modifiable.

Dès lors que les sorties .srx sont créées, nous les regroupons dans un rapport. Cette fonctionnalité de SAS Enterprise Guide permet de créer des documents en regroupant des sorties.

Une fois que l'on clique sur OK, le rapport est généré et visible au niveau du flux de processus dans «Rapports personnalisés»

Nous visualisons le rapport en cliquant dessus:

IV-B-2 - Personnalisation de l'affichage

L'assistant permet de personnaliser les couleurs et les polices des valeurs présentées.

1. La valeur RAISED permet de créer un graphique en trois dimensions. La taille du KPI peut être modifiée également. Cela correspond à l'option MODE= et aux options VSIZE et HSIZE.

2. Police, couleur et taille de la valeur actuelle. Cela correspond à l'étape AFONT=.

3. La couleur par défaut des segments est modifiable. Cela correspond à l'étape COLORS=.

4. Police, couleur et taille du libellé du KPI. Cela correspond à l'étape LFONT=.

5. Police, couleur et taille des segments. Correspond aux étapes BFONT=.

6. Police, couleur et taille du libellé en pied de page. Cela correspond à une étape spécifique FOOTNOTE.

7. Format (type et longueurs) SAS donné aux valeurs. Correspond à une étape FORMAT.

Le programmeur pourra obtenir d'autres informations en passant la souris sur chaque mot-clef de la procédure visible dans l'onglet Code.

Enfin, la mise en page de ce rapport peut être modifiée. Par exemple, ici nous redimensionnons le logo DATAMETRIC.

IV-C - Publication du rapport KPI

Quelle stratégie de publication faut-il alors adopter ?

Soit ce rapport de synthèse est publié en l'état et reste non modifiable, soit il est publié en tant que rapport dynamique et lorsque les valeurs sont modifiées dans la table source, l'actualisation de ce rapport répercutera ces changements.

Nous verrons que l'inconvénient du rapport statique est d'obliger le programmeur à relancer le projet et sa publication pour actualiser les données. L'inconvénient du rapport dynamique est la non-conservation de la mise en page initiale.

Ces points sont abordés dans les titres suivants.

IV-C-1 - Publication d'un rapport statique

La publication statique est réalisée de façon très simple puisqu'il s'agit de publier le rapport directement en utilisant l'assistant de publication :

La première étape consiste à choisir le référentiel

La deuxième étape permet de nommer (1) et sauver le rapport dans le référentiel (2)

La troisième étape montre que les données sont figées.

La génération est faite en cliquant sur «Terminer» et un journal d'exécution permet de savoir si une erreur est intervenue.

Le rapport est alors accessible depuis les applications Web (comme Web Report Studio) ou l'add-in.

IV-C-1-a - Ouverture dans l'add-in

Nous illustrons l'appel depuis l'add-in SAS dans PowerPoint et sauvons le rapport en tant que «Rapport sur les ventes moyennes par origine.pptx».

Lors de l'appel du rapport dans PowerPoint, les trois KPI ne conservent pas la même place que dans Enterprise Guide. Il suffit alors de les déplacer selon les souhaits de présentation.

L'actualisation par la suite ne modifiera plus leur emplacement.

IV-C-1-b - Ouverture dans SAS Web Report Studio

Cette fois, le rapport conserve la mise en page.

IV-C-2 - Publication d'un rapport dynamique

Ces premiers développements vous ont intéressés ? Si vous souhaitez approfondir le sujet, je vous invite à prendre contact avec l'auteur pour obtenir l'article au complet.

IV-D - Conclusion

Depuis SAS Enterprise Guide il est donc possible de générer des Dashboard KPI grâce à un nouvel assistant à installer sur le poste client.

Ce rapport peut être publié en version statique pour conserver la mise en page réalisée dans Enterprise Guide. Dans ce cas, les données ne peuvent être actualisées qu'au travers une nouvelle publication du rapport.

Autrement, le rapport peut être publié en version dynamique ce qui permet d'actualiser les données, car le rapport est lié à une procédure stockée. Malheureusement, la mise en page du rapport est perdue. Seuls les titres de chaque procédure sont conservés. Cela s'explique par la non-prise en compte de la conception de l'objet Rapport par la procédure stockée. Celle-ci en effet aurait dû générer du code similaire à celui de l'ODS HTMLPANEL lors de la création de la procédure stockée pour que les textes et les logos restent en place dans un tableau.

Une astuce pour contourner ce problème serait de générer ces KPI indépendamment les uns des autres et de les organiser ensuite dans MS Office. Par contre, la modification ne peut être faite dans SAS Web Report Studio. Il faudra alors s'intéresser à SAS BI Dashboard pour obtenir un résultat à la hauteur de nos attentes dans les applications Web.

V - Développer son Dashboard avec SAS BI Dashboard

Nous avons vu que la proc GKPI permettait de construire des Dashboard KPI, mais sans parvenir à lire une table directement. Sous Enterprise Guide nous avons vu qu'une table de synthèse doit être créée pour pouvoir utiliser l'assistant «Custom KPI» ; la génération de rapport dynamique perd malheureusement sa mise en page hormis dans Excel.

Nous allons voir maintenant que l'application SAS BI Dashboard est une application complète permettant de maîtriser toute la chaîne de création, depuis la lecture d'une table de détail jusqu'à la création d'une page Web dédiée au Dashboard dynamique.

V-A - Présentation de la page BI Dashboard

Nous partons du résultat généré pour les utilisateurs pour mieux comprendre ce qui sera créé dans le BI Dashboard.

La table utilisée est SASHELP.CARS. Nous présentons un état des ventes moyennes par origine et nous en profitons pour ajouter un second KPI sur la consommation en CO² par type de voiture ; la taille de la bulle correspond au nombre de véhicules par type afin de mieux comprendre si les voitures polluantes sont en plus grand nombre par rapport aux voitures moins polluantes (on remarque que les voitures hybrides sont très polluantes, mais représentent de loin une minorité).

Techniquement, la page du portail de notre utilisateur est liée à un portlet spécifique pour BI Dashboard. Ce portlet permet d'appeler un Dashboard KPI créé dans l'application BI Dashboard.

Nous allons donc voir comment l'application BI Dashboard permet de réaliser un Dashboard à partir d'un ou plusieurs KPI appelés «indicateurs ". La page du Dashboard permettra alors de les réunir comme présenté précédemment.

V-B - Les éléments constitutifs d'un BI Dashboard

Nous avons vu tout au long de cet article qu'un KPI se compose d'une donnée actuelle, d'une cible et de seuils. Ici le principe reste le même et s'étoffe de nouvelles fonctionnalités.

Les éléments constitutifs d'un KPI dans cette application sont :

1. Une source de données : une table, une Information Maps, une requête SQL ou une procédure stockée. Détaillée ou non, la source de données fournit les valeurs à afficher et reste entièrement manipulable par l'utilisateur ;

2. Une échelle : elle présente les segments de valeurs pour lesquels on définit les seuils.

En reprenant notre première illustration, le premier KPI visible dans la capture d'écran lit la table SASHELP.CARS pour calculer les moyennes de ventes par origine. Ce même KPI utilise une échelle de valeurs en trois parties (et donc trois couleurs) pour démarquer trois segments de valeur :

- 5 000-25 000 en rouge ;

- 25 000-40 000 en jaune ;

- 40 000-60 000 en vert.

Dans l'illustration suivante, on peut voir que les objets sont créés indépendamment les uns des autres. Chacun d'entre eux possède une icône spécifique. Nous verrons en effet que ces éléments constitutifs peuvent être employés dans plusieurs KPI : il est possible de créer plusieurs échelles de seuils et de choisir laquelle utiliser lors de la création d'un KPI.

Détaillons ces éléments.

Les sources données :

- Consommation CO².imx ;

- Données sur CARS.imx.

Les échelles :

- Echelle de CO².rdx ;

- Echelle sur les valeurs de vente.rdx.

Les KPI :

- Indicateur de vente sur les trois continents.idx : c'est notre KPI (1) ;

- Consommation CO² par type et nombre de véhicules.idx : C'est notre KPI (2).

V-C - Création d'un KPI

Voyons en détail chacun de ces éléments en ouvrant SAS BI Dashboard et en construisant nos indicateurs.

Nous cliquons sur "Gérer les Tableaux de bord" pour débuter.

Nous allons détailler la méthode de création d'un KPI dans l'ordre suivant :

1. Création de la source de données ;

2. Création d'une échelle ;

3. Création de l'indicateur KPI en lui-même à partir de ces précédents éléments.

V-C-1 - Création de la source de données

Cette fois-ci la source de données utilisée est une table de détail. C'est au travers de l'interface que l'on choisira comment les données doivent être agrégées pour être présentées par la suite. L'avantage par rapport à l'add-in Enterprise Guide ou la proc GKPI réside dans la possibilité de manipuler la source de données de détail et d'en demander une agrégation à la volée.

Pour notre exemple, calculons la moyenne des ventes par origine. Depuis l'interface de SAS BI Dashboard, nous créons de «nouvelles données d'indicateur» nommées «Données sur CARS ".

Nous prenons les données dans une table et arrivons dans l'assistant de création de la source de données.

1. Nous prenons la table CARS ;

2. Nous décochons toutes les variables sauf ORIGIN et INVOICE ;

3. La variable ORIGIN est la variable de regroupement (GROUP BY SQL) ;

4. La variable INVOICE sera moyennée ;

5. Le tableau de mise en correspondance est mis à jour par le bouton ;

6. Les variables sélectionnées sont affichées ;

7. Les libellés sont passés en français ;

L'objet résultat «Données sur CARS.imx» est sauvegardé dans les métadonnées, dans le répertoire «Sur CARS»

V-C-2 - Création de l'échelle

La seconde étape consiste à créer les segments de valeurs appelés ici, les échelles.

L'échelle que nous créons est nommée «Echelle sur les valeurs de vente»

1. Nous choisissons un type de jauge en forme de cadran. L'utilisateur pourra choisir parmi une très large palette de formes

2. la seconde étape consiste à renseigner les seuils. Par défaut, la mention dans la colonne «intervalle du code» affecte une couleur spécifique selon que l'on est au-dessous, au-dessus ou dans la cible.

L'objet échelle nommé «Echelle sur les valeurs de vente.rdx» est enregistré dans le même répertoire des métadonnées que les données.

V-D - Création de l'indicateur

L'indicateur permet de visualiser ses données avec les échelles. Nous créons nos deux indicateurs à partir des sources de données et des échelles.

V-D-1 - Création de l'indicateur «Indicateur de vente sur les trois continents»

1. L'indicateur a pour titre «Indicateur de vente sur les trois continents» ;

2. Nous choisissons un type d'affichage en forme de KPI ;

3. Le type de jauge est un cadran dynamique ;

4. Nous allons rechercher les données créées précédemment ;

5. Nous reprenons l'échelle créée sur les valeurs de vente ;

Il faut noter ici que si d'autres échelles avaient été mises à disposition, l'une d'entre elles aurait pu être exploitée.

Pour finir la création de l'indicateur, l'écran suivant permet de spécifier les derniers éléments

1. L'indicateur est redimensionnable à la souris ou par un menu ;

2. Le style de la jauge SATIN est choisi. D'autres formes sont mises à disposition ;

3. La variable ORIGIN est spécifiée pour créer automatiquement, autant de cadrans que d'origines des véhicules ;

4. L'échelle de valeurs est choisie explicitement avec les ventes moyennes. La source de données aurait pu contenir d'autres valeurs ;

5. Le titre de chaque cadran utilise les modalités de la variable ORIGIN.

L'indicateur est enregistré dans les métadonnées avec les autres objets.

V-D-2 - Création de l'indicateur «Consommation CO² par type et nombre de véhicules»

Ces premiers développements vous ont intéressés ? Si vous souhaitez approfondir le sujet, je vous invite à prendre contact avec l'auteur pour obtenir l'article au complet.

V-E - Création du Dashboard

Lorsque les KPI ont été conçus, il faut les regrouper dans un Dashboard. Cette dernière étape permet donc de placer sur une page les KPI afin qu'ils puissent être affichés au travers d'une interface Web.

L'utilisateur composera sa feuille à partir des indicateurs précédemment définis et pourra positionner et redimensionner les objets.

Une fois que le Dashboard nommé «KPI sur les ventes des voitures» est sauvegardé dans un espace partagé, les utilisateurs pourront l'appeler depuis le portail SAS.

V-F - Appel du Dashboard dans une page du portail

Lorsque l'utilisateur doit composer une page contenant un Dashboard, il doit ajouter une page et un portlet SAS BI Dashboard Portlet.

Le Dashboard nommé «KPI sur les ventes des voitures» est choisi. La page est rafraîchie avec ce Dashboard et l'utilisateur n'a qu'à s'y référer pour suivre l'évolution des indicateurs-clefs de la société. Aucune autre espèce de manipulation n'est nécessaire puisque chaque indicateur est basé sur une source de données interrogée périodiquement.

V-G - Personnalisation du Dashboard

Voici un ensemble d'éléments permettant de personnaliser le Dashboard et de gérer les alertes et les liens avec d'autres objets.

- Modification de la mise en page ;

- Affichage des titres de l'indicateur ;

- Ajout d'un texte ou d'une image ;

- Créer une interaction avec un autre objet SAS ;

- Créer des alertes selon les valeurs.

Ces premiers développements vous ont intéressés ? Si vous souhaitez approfondir le sujet, je vous invite à prendre contact avec l'auteur pour obtenir l'article au complet.

V-H - Conclusion

La mise en place d'un Dashboard KPI avec l'application Web permet cette fois-ci de lire une source de données de détail et de restituer des rapports Web qui se mettront à jour automatiquement avec les données.

Les avantages de cette application portent sur les points suivants :

- un plus grand nombre de représentations graphiques est à disposition ;

- il est possible de lier un objet (un indicateur par exemple) à d'autres objets tels qu'une application stockée, un indicateur, une map, une URL, une page du portail, un rapport, un tableau de bord ;

- il est possible de paramétrer des alertes ;

- ni le programmeur ni l'utilisateur n'ont à se soucier de la fraîcheur des données ;

- la conservation de la mise en page est assurée.

Les inconvénients sont :

- les échelles ne sont pas paramétrables ;

- il faut installer ADOBE FLASH PLAYER sur le poste.

VI - Conclusion : le choix entre les trois outils

Lorsqu'un utilisateur a la possibilité de développer avec la proc GKPI, de concevoir des projets EG avec l'add-in KPI ou qu'il possède le SAS BI Dashboard, le choix peut s'avérer compliqué.

En effet, la souplesse du code associé à l'aisance de publication donnée avec Enterprise Guide peut inciter le programmeur à privilégier cette méthode. Il faut alors préparer les données en amont et réfléchir à la meilleure méthode pour rafraîchir les données et livrer les rapports. C'est en effet sur ce point que SAS Enterprise Guide pose problème, car la mise en page des rapports dynamiques n'est pas conservée. Il faudra ajouter un ODS HTMLPANEL dans la procédure stockée générée à partir du projet pour retrouver une mise en forme plus agréable que des KPI les uns derrière les autres.

SAS BI Dashboard offre une excellente alternative avec de réelles fonctionnalités de partage et d'interactivité. Cette application complètement autonome propose bien de construire un rapport synthétique avec de multiples représentations et permet en outre aux utilisateurs d'interagir avec l'élément. Sans aucune connaissance du code SAS, la diffusion sur le Web couplée à une mise à jour des indicateurs en fonction des sources de données en fait un outil professionnel pour la diffusion d'informations.

VII - Remerciements

J'adresse tous mes remerciements à Claude LELOUP et jacques_jean de l'équipe de rédaction "Developpez.com" pour le temps qu'ils m'ont accordé pour la correction et l'amélioration de cet article.

VIII - À propos de l'auteur

Stéphane COLAS dirige DATAMETRIC www.datametric.com, société qu'il a fondée en 2002 pour proposer un ensemble de services autour du CRM analytique et dans le choix et la mise en oeuvre d'environnements BI. D'abord statisticien, puis consultant et maintenant expert et enseignant à Paris-Dauphine, il mêle désormais des actions de conseil en architecture, support utilisateurs et de formations personnalisées auprès des équipes métier ou informatique.

IX - Liens

http://support.sas.com/documentation/cdl/en/graphref/63022/HTML/default/viewer.htm#a003163556.htm

http://support.sas.com/kb/36/180.html

http://support.sas.com/kb/41/200.html

http://www.bi-notes.com/2011/11/sas-bi-web-report-studio-dashboard/