F.A.Q. Business-ObjectsConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 101, dernière mise à jour : 17 décembre 2014  Ajouter une question

 

Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum BO de www.developpez.com et de l'expérience personnelle des auteurs.

Elle pourra traiter de tout type de questions portant sur les technologies BusinessObjects. Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions et vous souhaitons une bonne lecture.

Un grand merci à Ricky81 pour sa veille technique, et ClaudeLELOUP pour sa relecture avisée.

L'équipe BO de Developpez.com


Sommaire Reporter / Desktop Intelligence (Client lourd) Conception d'un document BO (7)
précédent sommaire suivant
 

On appelle Document BO un fichier portant l'extension .rep (comme report) généré par le logiciel BusinessObjects.
Bien que l'on entende couramment j'ai fait un rapport BO, le terme approprié est document.

Un document BO peut être constitué d'un ou plusieurs Rapports BO.
Pour faire simple, les rapports correspondent aux onglets en bas de l'écran et sont au document ce que les feuilles de calcul sont au fichier Excel.

Un Rapport revêt généralement la forme de tableaux simples ou croisés et/ou de graphe(s).

Ces différents éléments sont alimentés par une ou plusieurs requêtes, appelées aussi Fournisseurs de données qui peuvent être indépendantes ou synchronisées entre elles.

Pour cela, BO met à notre disposition :

  • Des univers BO (Listes d'objets organisés en classes et sous-classes créées dans le module Designer).
  • Du SQL à la carte (Interrogation rédigée dans le langage approprié à la base de données sur laquelle il s'appuie).
  • Un fichier de données personnelles (fichier texte, Excel, dBase, xml).
  • Une procédure stockée (SGBD).
  • Une procédure VBA.
  • Un fournisseur de données xml.
  • Une source OLAP.

Mis à jour le 6 décembre 2007 Bruno2r

Pourquoi ?

Définir une variable offre des possibilités très pratiques.
Définir une variable consiste à nommer une formule pour en étendre les possibilités d'utilisation.

L'avantage principal : chaque nouvelle variable créée deviendra disponible ...

  • dans le gestionnaire de rapports
  • dans l'éditeur de formule
  • dans le choix d'un filtre
  • dans la fenêtre de rotation

Et lorsque ce sont des variables de type Dimension (par exemple le libellé d'un produit suivi de son code):

Les variables seront utilisables :

  • pour la création d'une section
  • pour l'ajout d'une rupture
  • pour la création d'un palmarès

Comment ?

Deux méthodes aboutissent au même résultat.

Méthode 1) Vous avez mis au point votre formule dans votre tableau (idéal pour débuter) :
Une fois votre formule mise au point dans sa colonne (si elle n'est pas sélectionnée, sélectionnez-la).
Il suffit alors de cliquer sur l'outil "Définir en tant que variable" ou Menu /Données / Définir en tant que variable.

Généralement vous aurez à choisir entre deux options :

  • Evaluer la formule dans son contexte (ce qui fige les contextes d'entrée et de sortie), voir dans la FAQ.
  • Garder la forme générique (la formule s'adaptera au niveau où elle sera utilisée).

Vous devrez ensuite lui attribuer un nom :

  • Pensez que c'est ce nom, et sous la forme que vous aurez choisie, qui apparaitra en entête de colonne.

Méthode 2) Vous voulez la créer directement :

Procédez de la façon suivante :
  • Menu Données / Commandes Variables...
  • Cliquez sur Ajouter.
  • Dans l'onglet Définition donnez un nom, choisissez le type d'objet (Dimension, Information, Indicateur).
  • Dans l'onglet Formule, mettez au point votre formule.
  • Puis validez.


Enfin, et pour terminer, vous pouvez dans la fenêtre listant les variables non seulement en Ajouter, mais aussi en Supprimer et surtout les Editer pour les corriger.

Mis à jour le 9 décembre 2007 Bruno2r

Pourquoi ?

Par défaut, lorsque vous créez un fournisseur de données, BO le nomme Requête 1 sur Nom de l'univers.
Une seconde requête sur le même univers sera nommée Requête 2 sur Nom de l'univers, et ainsi de suite.

Cela présente plusieurs inconvénients :

  • Lorsque vous avez plusieurs requêtes, il devient difficile de savoir à quoi elle se rapportent, donc de les distinguer.
  • Lorsque ces différentes requêtes ont des objets en commun, le nom de ces objets d'ans l'entête des tableaux est suivi du nom du fournisseur de données entre parenthèses.
  • Il devient alors difficile de gérer la largeur des colonnes affichant ANNEE (Requête1 sur Univers).
  • Lorsque ces objets communs apparaissent dans l'éditeur de requêtes, dans le gestionnaires de rapports ou dans la fenêtre de rotation, vous avez la possibilité de les trier par fournisseur d'accès.


Prenez donc la peine de renommer vos fournisseurs de données en gardant à l'esprit que le libellé choisi apparaitra en entête de colonne et selon la forme graphique que vous aurez choisi Minuscule ou Majuscule.
Comment ?

Pour renommer les fournisseurs de données procédez de la façon suivante :

  • Menu Données
  • Commande Gestionnaire de données ...
  • Sélectionner la première requête.
  • Allez sur l'onglet Définition.
  • Sélectionnez son nom actuel.
  • Tapez le nom distinctif que vous voulez lui donner (Ventes, Effectifs, Absences, Budget ....).
  • Sélectionnez les requêtes suivantes et répétez l'opération.
  • A la fin seulement Validez.

Mis à jour le 27 janvier 2008 Bruno2r

Définition de Titre dynamique :

Un titre est dynamique si, une fois réalisé, vous n'avez plus à le corriger pour qu'il reste adapté à l'évolution des données de votre rapport.
Pour cela il convient d'en repérer les éléments variables et de les automatiser à l'aide d'une formule pour s'assurer de leur mise à jour.

Méthode :

Les éléments variables d'un titre peuvent être divers :

  • Références temporelles - date(s), année(s) ou périodes de référence.
  • Indicateur principal d'activité - chiffre d'affaires, niveau de dépenses, nombre de pièces produites ...
  • Périmètre d'observation - échelle de l'étude, localisation de l'activité.


Ces éléments peuvent être récupérés :

  • Dans les propriétés du document, c'est notamment le cas du nom de l'auteur.
  • Dans la requête lorsqu'il s'agit de la réponse à une invite.
  • Parmi les variables représentant les objets ou créées par vous.


La partie fixe d'un titre étant, par définition, un texte, elle devra toujours être encadrée de double-guillemets.
Les éléments variables, s'ils s'appuient sur des données numériques ou des dates seront convertis en texte pour permettre la concaténation de l'ensemble. L'opérateur de liaison entre les éléments est le & ou car( 38 ) .

Concaténation simple de données texte :

EVOLUTION DE L'ACTIVITÉ DU SERVICE ACHATS

Dans ce titre, la partie soulignée représente les éléments fixes.
ACHATS représente le nom du service étudié c'est la partie variable qui doit s'adapter selon le critère choisi dans la requête.

Le libellé du titre nous indique que ce rapport ne concerne qu'un seul service (DU SERVICE).
Si le critère est déterminé par une invite, la formule suivante permettra de récupérer la réponse qui a été faite au moment du rafraîchissement.

Code : Sélectionner tout
= RéponseUtilisateur(FournisseurDeDonnées([Variable]) , "Quel service ?")
où [Variable] est n'importe quelle variable de la requête portant l'invite (permet de déterminer le fournisseur de données plutôt que de le désigner par son nom qui peut être modifié)
et "Quel service ?", le texte de l'invite dont vous voulez récupérer la réponse.

Pour obtenir le titre complet on complètera la formule en ajoutant la partie fixe.

Code : Sélectionner tout
="ÉVOLUTION DE L'ACTIVITÉ DU SERVICE " & RéponseUtilisateur(FournisseurDeDonnées([Variable]) , "Quel service ?")
Ce titre est dynamique, le nom du service se mettra à jour chaque fois qu'une réponse différente sera donnée à l'invite "Quel service ?"

Mais il peut être amélioré.
En effet, lorsque l'on parle d'évolution de l'activité, on doit préciser la période observée.
Lors de la conception de la requête, nous avons précisé les années que nous voulions prendre en compte (ici Objet ANNEE Dans Liste(2005;2006;2007)).

Il nous faut donc mentionner la période retenue dans le titre afin d'obtenir l'affichage suivant :

ÉVOLUTION DE L'ACTIVITÉ DU SERVICE ACHATS DE 2005 A 2007

La formule suivante permettra de récupérer les bornes 2005 et 2007 en ajoutant les mots de liaison

Code : Sélectionner tout
1
2
3
= " DE " & Min([ANNEE]) & " A " & Max([ANNEE]) 
que l'on ajoutera à la formule de titre précédente 
= "ÉVOLUTION DE L'ACTIVITÉ DU SERVICE " & RéponseUtilisateur(FournisseurDeDonnées([Variable]) , "Quel service ?") & " DE " & Min([ANNEE]) & " A " & Max([ANNEE])

Mis à jour le 12 décembre 2007 Bruno2r

On appelle filtre complexe tout filtre faisant l'objet d'un test logique (au résultat booléen vrai ou faux) par opposition avec le filtre simple qui compare des valeurs.

Pour cela il suffit de :

  • Clic droit de la souris en dehors des tableaux (sur le fond blanc).
  • Formater les filtres.
  • Sélectionner global (application à tous les objets du rapport) ou le tableau concerné.
  • Cliquer sur le bouton Ajouter.
  • Choisir la variable Date qui subira le filtre.
  • Cliquer sur le bouton Définir.
  • Ouvrir la classe des Fonctions Date.
  • Double clic sur la fonction MoisEntre(date1,date2).
  • Se positionner avant la virgule pour indiquer le paramètre Date1.
  • Sélectionner la variable Date à tester.
  • Se positionner après la virgule pour indiquer le paramètre Date2.
  • Double clic sur la fonction DateActuelle() en version Xi ou DateCourante() pour ceux qui sont en V5 ou V6 !!!
  • Double clic sur l'opérateur <= et saisir 12.
  • Valider par OK.
  • Sortir des filtres par OK.

Les dates des 12 derniers mois sont filtrées

Mis à jour le 12 décembre 2007 Bruno2r

Problème :

Code : Sélectionner tout
<période> = RéponseUtilisateur(FournisseurDeDonnées(<Variable de la requête>), "Question posée")
BO refuse le filtre et demande une réponse booléenne

Comment faire ?
En revanche, si on crée une variable testpériode à l'aide d'une des formules suivantes

Code : Sélectionner tout
= Si(RéponseUtilisateur(FournisseurDeDonnées( <Année> ) ,"Quelle période ?") = <Annéeemois> ) Alors 1 Sinon 0
Code : Sélectionner tout
= Si(EnNombre(RéponseUtilisateur(FournisseurDeDonnées( <Année> ) ,"Quelle période ?")) = <Annéeemois> ) Alors 1 Sinon 0
Code : Sélectionner tout
<testpériode> = 1
Cerise sur le gateau :
Ca marche aussi pour les alerteurs, ce qui permet de mettre en gras les lignes correspondant à la période choisie par l'utilisateur dans le tableau affichant toutes les périodes

Mis à jour le 14 juillet 2008 Bruno2r

Pour poser des filtres complexes qui ne sont pas acceptés dans BO comme :

Code sql : Sélectionner tout
[variable1]>[variable2]
ou

Code sql : Sélectionner tout
[variable]=(max([variable]) IN ([month]))
Il faut créer une variable qu'on filtrera sur la valeur 1 ou 0 dont la formule est :

Code sql : Sélectionner tout
=IF(condition a tester;1;0)

Mis à jour le 10 juillet 2013 EmmanuelleC

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2016 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique Business Intelligence