jeudi 29 mai 2008

Aller plus loin avec l'add-in Excel de PPS-P

L'add-in Excel de PerformancePoint Planning permet de créer facilement de nombreux rapports et formulaires de saisies. Son utilisation est plutôt simple, il suffit en effet de sélectionner les éléments qu'on souhaite voir apparaître en colonnes, en lignes ou en filtres.
Cela dit, si vos rapports commencent à être d'une complexité grandissante, des croisements spécifiques en fonction des colonnes par exemple, cette interface peut ne plus s'avérer suffisante. Pas de panique, une solution existe pour créer tous les rapports dont vous pouvez avoir besoin.

Un exemple pratique, j'ai récemment voulu créer un rapport de la forme suivante:
La dimension "Entity" en lignes et les dimensions "Time", "TimeDataView" et "Scenario" en colonnes . La complexité venait du croisement spécifique des colonnes. (voir tableau ci-dessous)



Première tentative en utilisant l'interface de création de rapports. Je crée une nouvelle matrice, je sélectionne les dimensions, les membres de ces dimensions et la mesure. J'obtiens alors le tableau suivant.



On voit qu'on a des colonnes en trop puisque seules la valeur Actual de COMPARETOLASTYEAR (2008) et la valeur Budget de PERIODIC (2009) étaient demandées.

On peut alors avoir l'idée de changer le type de croisement pour ces colonnes.

Pour ce faire, cliquer sur "available actions for selected matrix" dans l'interface de paramétrage de la matrice. Choisir "Define Member Intersections for Colums" et modifier l'option "All intersections " au profit de "Column by Column".




On obtient alors le tableau suivant qui ne correspond toujours pas à ce qui est souhaité.




Heureusement, il existe une possibilité d'entrer soit même la formule MDX correspondant au rapport qu'on souhaite afficher. Par contre, cela nécessite de connaître les bases de ce langage de requêtage de cubes.
Pour rentrer votre requête, accéder aux propriétés de la Matrice, et la saisir dans la partie "User entered MDX".




Une nouvelle fenêtre vous permet de saisir les 4 différentes parties de la requête:


  1. With: Définition de sets ou membres nommés

  2. Columns: Sélection des sets à mettre en colonne

  3. Rows: Sélection des sets à mettre en ligne

  4. Where: Tuple faisant office de filtre

Remarque: une matrix étant propre à un model (Cube), il n'est donc pas possible de modifier la clause FROM de la requête.


Remarque 2: Je conseille vivement de tester sa requête dans Management Studio avant de la saisir dans la matrice, ça évite bien des surprises :-)




Une fois les changements sauvegardés, le rapport se met à jour dans la feuille Excel et ce coup ci on a le rapport souhaité.




Voilà donc une fonctionnalité qui peut débloquer bien des situations. Lorsque vous atteignez les limites de l'interface graphique de création de rapports, pensez au MDX.

jeudi 22 mai 2008

Bug sur les « Time Intelligence Post Filter Formula »

Il y a quelque temps, Christian Chea, un ami et collègue de Winwise, m'a fait part d'un problème qu'il rencontrait avec un Dashboard Monitoring qui contenait un filtre du type « Time Intelligence Post Filter Formula ». Il observait une différence de 1 jour entre la date sélectionnée dans le calendrier et la date réellement prise en compte par le système.
Par exemple, s'il choisissait dans le filtre (calendrier) la date du « 22 mai », le système comprenait « 21 mai ».

Après quelques recherches sur le net, je suis tombé sur le forum Technet sur lequel il était fait référence à ce problème. C'est un bug connu.

Une correction est prévue pour le SP1 (sorti à la fin de ce mois ci normalement)

En attendant, vous pouvez facilement contourner le problème en remplaçant la fonction Day par (Day+1) lorsque vous faîtes référence à ce jour là dans les formules utilisant le filtre.

mercredi 21 mai 2008

Choisir le bon type de Business Rule

Dans planning, quand on a construit ses premiers models, ses premiers rapports/ formulaires de saisies et ses premiers cycles de saisie, l'étape suivante consiste souvent à s'intéresser de plus près aux fameuses "Business Rules".

Une Business rule est à PPS-P l'équivalent des procédures stockées dans SQL Server. Elles servent à réaliser des calculs et des affectations de valeurs au sein des models ou même entre des models différents .

Il y a de multiples types de Business rules et il est vrai qu'au premier abord on peut être très facilement perdu devant tant de choix. Le but de ce post est donc de vous permettre de choisir le bon type de rule en fonction de la situation dans laquelle vous vous trouvez.

Cas 1: Vous souhaitez affecter une valeur dynamique à une cellule.
  • Definition: La valeur de la cellule sera calculée à la volée à chaque requête. Pour les personnes familières d'Analysis Services, la règle sera stockée sous la forme d'un script MDX au niveau du cube.


Le reste des business rules sont de type "procedural". C'est-à-dire que contrairement à celles du cas 1, les valeurs des cellules ne seront mises à jour suivant la définition de la rule que lorsque celle-ci sera explicitement exécutée (manuellement, job etc.) Et une fois mises à jour, les valeurs sont stockées dans la base et non pas calculées à la volée.

Cas 2: Vous souhaitez affecter à une cellule une valeur fixe ou dépendant de d'autres cellules du même model

  • Allocation
  • Assignment: Propose plus de types d'implementation que le type Allocation (NativeSQL et NativeMDXQuery)


Cas 3: Vous souhaitez affecter à une cellule une valeur dépendant des cellules d'un autre model

  • PushCrossModelAllocation: Définie au niveau du model source
  • PullCrossModelAllocation: Définie au niveau du model destination

Cas 4: Affecter une valeur à une variable

  • Variable: Change la valeur d'une des propriétés d'un model.

Cas 5: Exporter des données vers une application externe

  • Outbound

Cas 6: Réaliser des calculs financiers

Il existe des types de rules pré-définis dans PPS-P

  • Consolidation
  • Currency
  • Intercompany reconciliation


Attention, suivant le type du "rule set" au sein duquel vous placez la business rule, certains types peuvent être disponibles ou non.

mardi 20 mai 2008

Data Source sur un cube Planning

Ça y est, vous avez créé votre application PPS Planning et vous souhaiteriez maintenant utiliser le module Monitoring & Analytics pour faire du reporting dessus. Rien de plus simple me direz vous, vous ouvrez le Dashboard Designer, cliquez sur "New DataSource", vous choisissez le type "Analysis Services 2005", vous lui donnez un nom, vous choisissez le nom du serveur (localhost si vous travaillez directement sur le serveur en instance par défaut) et au moment de choisir votre DataBase dans le menu déroulant, surprise, votre application planning n'apparaît pas!





C'est bien dommage!! :)
Heureusement il existe une petite astuce pour y remédier.


Si votre base de données n'apparaît pas dans la liste déroulante c'est que le Dashboard Designer n'a pas les droits appropriés pour y accéder. C'est un application pool qui fait tourner cette application ce qui signifie que toutes les connexions à des sources de données se font en utilisant non pas vos credentials mais les credentials du compte sur lequel tourne cet application pool. Par défaut le compte utilisé est "Network Service". Un best practice voudrait qu'on crée un compte dédié sur le domaine qu'on l'affecte lors de l'installation de PPS-M&A.






Pour donner les droits appropriés à Network Service (Si c'est bien le compte sur lequel tourne l'application pool de votre Dashboard Designer), connectez vous au serveur Analysis Services hébergeant vos bases PPS-Planning.




Créez un nouveau rôle que vous pourriez par exemple baptiser "Admins".
Donnez à ce rôle tous les droits d'administration.




Dans l'onglet "Membership", ajouter l'utilisateur Network Service et validez la création du rôle.




Retournez dans votre Dashboard Designer et là, surprise, votre base de données Planning apparaît! Il ne vous restera alors plus qu'à choisir le cube (model) sur lequel vous désirez faire du reporting et à tester la connexion .



lundi 19 mai 2008

Saisie à des niveaux agrégés

Par défaut, dans un "model" (Cube) PerformancePoint Planning (PPS-P), la saisie à des niveaux agrégés est désactivée.

Prenons l'exemple d'une saisie sur un compte. Dans un formulaire créé avec l'Add-In Excel de Performance point, nous avons les différents pôles de la société Winwise (BI-Data, Collaboratif, GL et RIDA) en ligne et les mois de l'année 2007 en colonne. Les entités sont dans une hiérarchie avec Winwise comme racine et la liste des pôles de Winwise à la fois en enfants et en feuille. On voit que par défaut, seuls les niveaux feuilles (membres n'ayant pas d'enfants) sont ouverts à la saisie (en jaune sur le formulaire).





Or il peut être intéressant dans de nombreux cas de pouvoir saisir des valeurs directement à des niveaux agrégés (Affectation de coûts globaux par exemple).


Il y a donc, comme bien souvent, une bonne et une mauvaise nouvelle :-)

La bonne nouvelle c'est que c'est prévu dans PPS-P. Chaque model a une propriété "Enable input at all level" qui par défaut est à "false" mais qui peut également être changée à True.




La mauvaise nouvelle, c'est qu'une fois le premier enregistrement de votre model effectué, vous ne pourrez plus modifier cette propriété. Vous serez donc contraint d'en recréer un nouveau identique en terme de dimensions, assumptions etc. mais ayant cette fois ci la bonne propriété.


Lorsque vous aurez recréé votre model en pensant bien à modifier la propriété "Enable input at all level" à "True" juste après sa création et avant l'enregistrement de celui ci, vous pourrez alors réaliser des saisies à des niveaux agrégés.






Bienvenue!

Voilà maintenant 1 an que j'ai découvert cette fameuse solution PerformancePoint Server (PPS). D'abord en version "bêta" (CTP2, CTP3, CTP4) puis dans sa version finale.

Au cours de cette année, j'ai pu voir l'émergence de nombreux sites et blogs dédiés à PPS. Cependant, la plupart sont rédigés dans la langue de Shakespeare ce qui ne favorise pas nécessairement les utilisateurs francophones de la solution. D'où l'idée de créer un blog rédigé entièrement en français et dédié à ce nouveau produit de la chaîne BI Microsoft.

Ce site est principalement destiné aux personnes déjà familière de l'environnement PPS et de son vocabulaire: Application, Site, Model, Dimension, DataSource, KPI, Scorecard, Dashboard etc. Vous pourrez trouver ici des informations, des conseils et des astuces que je partagerai avec vous au fur et à mesure de mes découvertes.

Pour les néophytes, une petite présentation rapide du produit.
PerformancePoint Server 2007 est un maillon de la chaîne BI Microsoft qui repose sur le moteur de base de données relationnelles "SQL Server 2005" et le moteur de bases de données multidimensionnelles "Analysis Services 2005".
Cette solution comprend en réalité 3 modules complémentaires:

  • Planning: Élaboration budgétaire
  • Monitoring & Analytics: Tableaux de bords
  • Proclarity: Analyse multidimensionnelle


Pour plus d'informations fonctionnelles sur le produit, je vous invite à visiter sa page officielle sur le site de Microsoft:
http://office.microsoft.com/fr-fr/performancepoint/FX101680481036.aspxft.com/fr-fr/performancepoint/FX101680481036.aspx