mercredi 2 avril 2014

Simulation avec Web Intelligence

Simulation d'un prêt immobilier avec Web Intelligence

L'objectif de cet article est de montrer une fonctionnalité bien cachée de Web Intelligence. Il ne s'agit pas d'une simulation au sens large comme le font les outils spécialisés, mais plutôt d'une possibilité de faire plusieurs scénarios en jouant sur des paramètres variables.

Pour illustrer notre exemple, nous allons nous basons sur une simulation que tout le monde connaît. Il s'agit de la simulation d'un prêt immobilier.
A partir de cet exemple, vous pouvez vous inspirer pour explorer d'autres simulations.

Pour faire notre simulation nous allons utiliser la formule suivante :

Avec :
K : Le montant emprunté en €
t : Le Taux Effectif Global annuel
n : La durée de l'emprunte en mois (nombre de mensualités)
m : La mensualité à payer en €
Les frais de dossier et d'assurance ne seront pas pris en compte.

Pour faire cette simulation dans Web Intelligence, nous allons utiliser les contrôles d'entrée (input control) disponibles à partir de la version BO XI.

Création des variables : 
Nous allons d'abord commencer par créer les variables qui permettront de faire les différents calculs.
Les variables à créer sont :


Avec :
Capital : montant emprunté, peut être initialisée à 200 000 par exemple :

Durée : durée du prêt en années, peut être initialisée à 12 par exemple :

Taux : TEG annuel, peut être initialisée à 4% par exemple (c'est 4 et non pas 0,04) :

v_Durée_mois : pour convertir la durée en nombre de mois :

v_Taux_Pourcentage : pour convertir le taux en décimales (0,04) :

Mensualité : la mensualité calculée selon la formule citée ci-dessus :

Intérêts : calculés comme suit :

Avec ces variables nous obtenons le résultat suivant :

Maintenant nous allons créer les contrôles d'entrée qui nous permettront de modifier les paramètres Capital, Durée et Taux et de calculer la mensualité et les intérêts.

Les contrôles d'entrée à créer sont de type curseur simple :

Contrôle d'entrée sur la variable Capital :

Contrôle d'entrée sur la variable Durée :

Contrôle d'entrée sur la variable Taux:

Et voici le résultat :

Si l'on modifie le capital :

Et si l'on modifie la durée :
Et si l'on modifie le taux :

Et voilà, vous êtes prêts maintenant à aller demander un prêt à votre banque :)



lundi 31 mars 2014

SAP BO Web Intelligence : Nouveautés (SAP BI4) et bonnes pratiques


A propos de SAP BO Web Intelligence :

SAP BO Web Intelligence est un outil de reporting permettant aux utilisateurs d’extraire et d’analyser des données de bases de données ou de cubes OLAP sans avoir à connaître de langage informatique. C’est un outil orienté ‘métier’, il a été créé de manière à ce que l’utilisateur n’ait besoin que de la connaissance de son métier pour accéder aux données. Ainsi, l’utilisateur peut définir lui-même ses requêtes à l’aide d’une structure (univers) s’approchant au plus près de son langage métier, à condition bien sûr que cette structure soit bien conçue et définie.
Les données peuvent provenir de plusieurs sources (dans la version BI4) : d’univers sur des bases de données relationnelles ou OLAP, de fournisseurs de données personnelles tels que des fichiers csv ou Excel, de requêtes reposant sur des SAP InfoCubes ou de services Web.
Il est également possible de se connecter à la source de données HANA afin de profiter des avantages du calcul en mémoire.
Les fonctionnalités de reporting et d’analyse sont très variées : Tableaux, graphiques, filtre, tri, palmarès, exploration des données, mise en forme conditionnelle, interactivité entre les composants du même rapport ou entre les rapports.

Les nouveautés de Web Intelligence dans la suite SAP BI 4.0 par rapport à la version XI :

La suite SAP BI4 est venue avec plusieurs nouveautés par rapport aux versions précédentes. Nous allons nous limiter aux nouveautés apportées sans Web Intelligence. Voici quelques-unes.

Nouvelles sources de données

-          Intégration avec SAP BW :
-          Fichiers Excel et texte :
-          Sans source de données :

Volet de prévisualisation du résultat de la requête :

Dans l’éditeur de création des requêtes, un nouveau volet est ajouté qui permet de prévisualiser les résultats de la requête :
             


Nouvelle ergonomie :

3 modes d’utilisation :

Structure à onglet :

Nouveaux graphiques et mise en relation d’éléments :

          

Accès aux fournisseurs de données :

               

Propriétés :

Les propriétés des objets d’un document (tableau, section, graphique, cellule) ont été améliorées. Il est maintenant plus facile de modifier l’apparence et le comportement de ces objets.
Exemples :
Propriétés d’un tableau :
                      

Propriétés d’un graphique :
                     

Autres : 

        Copier/Coller :
        Il est possible de copier un élément d’un document vers un autre document, même les fournisseurs de           données
        Masquer les colonnes :
        Il est possible de masquer les colonnes d’une manière simple ou selon une condition
        Plier / Déplier :
        La possibilité de plier/déplier horizontal qui n’était disponible que dans Deski mais pas seulement en               Rich Internet Application (pas en mode html)

        Création des open doc :
        Une nouvelle interface a été ajoutée pour simplifier la création des open doc

Les nouveautés de Web Intelligence dans la suite SAP BI 4.0 par rapport à la version 4.0 :

Figer les entêtes : 

Les Entêtes de tableaux, lignes et colonnes peuvent être figés :



Personnalisation des palettes de couleurs :

Il est possible de personnaliser les palettes de couleurs et des les assigner dans les graphiques 

Fusion des dimensions :

Les dimensions peuvent être fusionnées directement via le panneau des objets disponibles.

Plier/Déplier en mode html :

Maintenant il est possible de plier/déplier un tableau en mode html :

Graphes Cascades :

Ce type de graphe permet de représenter l’évolution d’un indicateur dans le temps, en analysant les facteurs positifs et négatifs qui impactent cette évolution.


Autres :

  • Possibilité d'afficher la liste de valeurs d'un objet sélectionné dans l'éditeur de formule
  • Possibilité de n'actualiser qu'une seule requête dans l'éditeur de requête
  • Query stripping est supporté pour les sources de données relationnelles (dans 4.0 ce n'était possible que pour les requêtes Bex)

Bonnes pratiques :

Nous allons aborder quelques bonnes pratiques à respecter dans la création d'un document Web Intelligence.


Charte graphique : 

une charte graphique est indispensable pour créer des documents cohérents et respectant la charte de l'entreprise. Avant de démarrer les développements il faut toujours la demander. Si aucune charte graphique n'a été définie il faut dans ce cas proposer une.


Règles de nommage :

Document : 
Donner un nom significatif au document et à tous les onglets le composant. Ce nom doit être défini avec et validé par la MOA.
Exemple de règle : AAA_BBBB_Description

  • AAA : Abréviation définissant le nom du domaine ou du projet
  • BBBB : Abréviation définissant la catégorie du document (Exemple : CA pour le chiffre d'affaires, CLI pour client...)
  • Description : Zone libre pour nommage du document (mais doit être significatif)

La taille maximum du nom : 50 caractères pour éviter l'affichage de noms trop longs sur le portail)

Fournisseurs de données : 
Chaque fournisseur de données doit avoir un nom qui reflète l'utilisation des données qu'il récupère.

Variables : 
Utiliser un préfixe pour chaque variable. Exemple var_ ou v_ ou v.
Cela permettra d'identifier rapidement les variables créées dans le rapport et de les différencier des objets de l'univers.

Les objets du document : 
Chaque objet du document (tableau, graphique, ..) doit avoir un nom significatif. Ceci facilitera la manipulation de ces objets (dans le positionnement relatif par exemple).
Préfixer le nom de l'objet par son type, Exemples : t. pour les tableaux, g. pour les graphiques.

Propriétés du document : 

Utiliser les propriétés du document pour donner plus d'informations : 
                 Description : peut contenir une description synthétique du document
                 Mots clés : les mots clés importants pour faciliter la recherche


Page d'accueil : 

Avoir une page d'accueil (un onglet accueil) qui explique le document.
Cette page d'accueil est principalement utile pour les documents complexes.
Le contenu de cette page est à définir et valider avec la MOA
Cette page peut contenir : 
- Le nom, la description, la version du document
- Le nom de l'auteur
- Des règles de gestion
- Les univers utilisés
- Les filtres et les invites
...

Template : 

Il est recommandé de définir un template avant de démarrer les développements.
Il est possible de définir plusieurs templates. Chaque template répond à un mode de reporting donné. Exemple : on peut définir un template pour le format paysage et un autre pour le format portrait.
On peut aussi y appliquer tous les éléments de la charte graphique.
Tous les rapports doivent se baser ensuite sur ces templates.
Ceci permettra 
- De respecter la charte graphique
- D'avoir une cohérence globale dans tous les rapports
- De gagner en temps de développement.

Format des cellules : 

Nombre : 
- Le format du nombre doit être défini et pas laissé en format standard(affichage en milliers ou sans, séparateur et nombre de décimales). 
- Le format doit être en cohérence avec la langue (pour le séparateur de décimales par exemple).
- Eviter le format standard et choisir un format personnalisé. ça marche mieux après un export vers Excel.

Date : préciser le format des dates. ce format doit être en adéquation avec le format utilisé dans l'entreprise. idem pour les date/time.

Alignement : bien définir l'alignement des différents types de données
Exemple : les nombres doivent avoir un alignement à droite tandis que les textes doivent avoir un alignement  à gauche.

Pourcentage : 
- Le nombre de décimales doit être défini
- Le symbole % doit être affiché (au niveau de l'entête de la colonne par exemple)

Points divers : 

  • Sélectionner les objets de telle façon que le SQL généré donne un ordre hiérarchique des tables. Cela facilitera l'optimisation de la requête.
  • Eviter de ramener des objets qui ne seront pas utilisés dans le rapport. Chaque objet inutilisé est une perte de performance.
  • Chaque variable qui contient un calcul comportant une division doit avoir une condition SI dénominateur <> 0 Alors Objet. Cela permet d'éviter l'affichage de #DIV/0.
  • Eviter de faire des calculs imbriqués sur plusieurs lignes dans une variable. Avant de créer une usine à gaz, il vaut mieux voir avec le designer de l'univers s'il n'y a pas moyen de faire plus simple dans l'univers (ou dans l'alimentation de la table).
  • Penser à cocher l'actualisation du rapport à l'ouverture dans les propriétés du document
  • Penser à cocher l'affichage des doublons dans les propriétés d'un tableau. Ceci permet de ne pas masquer les erreurs de doublons.
  • Utiliser le mode structure pour manipuler les rapports complexes ou contenant beaucoup de données
  • Cocher 'fusionner automatiquement les dimensions' dans les propriétés du document
  • Eviter de cocher 'suppression des doublons' dans les propriétés du document. Si l'option est cochée cela générera un disctinct dans le SQL, ce qui n'est pas bon pour les performances. S'il faut supprimer des doublons, c'est dans l'alimentation qu'il faut le faire et non pas dans le rapport.
  • Purger tous les fournisseurs de données avant de publier le rapport sur le serveur.