Business Object – DesignerDMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 1 / 55 Business Object – Designer I. La création d’une connexion...............................................................................................................................4 II. La définition des paramètres de l’univers.......................................................................................................6 A. Création d’un nouvel univers : Définition........................................................................................................6 B. Résumé..............................................................................................................................................................7 C. Stratégies..........................................................................................................................................................8 Les stratégies sont utilisées soit à l’importation des tables, soit à la création des objets de l’univers...............8 D. Restrictions.......................................................................................................................................................9 E. SQL.................................................................................................................................................................10 F. Liens...............................................................................................................................................................11 G. Enregistrement de l’univers...........................................................................................................................12 III. La création de la structure.............................................................................................................................13 A. La sélection des tables....................................................................................................................................14 B. Les jointures : création et caractéristiques....................................................................................................17 1. Création manuelle des jointures..................................................................................................................18 2. Définition des jointures...............................................................................................................................19 3. Affichage des jointures en mode liste.........................................................................................................21 4. Détection automatique des jointures...........................................................................................................22 5. Détection automatique des cardinalités.......................................................................................................23 C. Le traitement des boucles...............................................................................................................................24 1. Les deux causes de boucles.........................................................................................................................25 A............................................................................................................................................................................25 B............................................................................................................................................................................25 2. Exemple de boucle de type 1.......................................................................................................................26 3. Exemple de boucle de type 2.......................................................................................................................27 4. Les alias.......................................................................................................................................................28 A.............................................................................................................................................................................28 5. Les contextes...............................................................................................................................................29 6. Détection automatique des boucles.............................................................................................................31 D. Les cas particuliers........................................................................................................................................32 1. Le raccourci jointure...................................................................................................................................32 2. Les relations réflexives................................................................................................................................33 IV. La création de la couche sémantique............................................................................................................34 A. La création des classes et des sous-classes....................................................................................................34 B. La création des objets.....................................................................................................................................37 1. Onglet Définition.........................................................................................................................................38 2. Onglet Propriétés.........................................................................................................................................39 3. Onglet ‘Avancées’.......................................................................................................................................41 C. Donner un sens à un objet..............................................................................................................................42 D. Les hiérarchies de temps................................................................................................................................43 E. Les fonctions @..............................................................................................................................................44 DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 2 / 55 Business Object – Designer 1. La fonction @Prompt..................................................................................................................................45 2. La fonction @Select....................................................................................................................................46 3. La fonction @Where...................................................................................................................................47 4. La fonction @Variable................................................................................................................................48 5. La fonction @Aggregate_aware.................................................................................................................49 6. La fonction @Script....................................................................................................................................49 F. Les conditions prédéfinies..............................................................................................................................50 G. Les indicateurs...............................................................................................................................................51 H. La navigation agrégée...................................................................................................................................53 1. Principe........................................................................................................................................................53 2. Démarche....................................................................................................................................................53 3. Réalisation...................................................................................................................................................54 4. Test..............................................................................................................................................................54 I. Les hiérarchies................................................................................................................................................55 DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 3 / 55 Business Object – Designer I. La création d’une connexion Comme nous l’avons vu dans le module utilisateur, l’utilisation d’un univers passe par la mise en place de la couche middleware entre l’univers et la base de données. Cette couche middleware comporte deux éléments : la source et la connexion. La création de la connexion ne peut s’effectuer qu’à partir de l’environnement client : Designer. Etape 1 : • La création d’une connexion s’effectue à partir du module Designer : Outils>Connexions... • Cliquer sur le bouton ‘Ajouter’. Etape 2 : • Choisir le type de middleware (un seul possible de par l’installation de BO). • Cliquer sur le bouton DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 4 / 55 Business Object – Designer Etape 3 : • Donner un nom à la connexion (exemple : COURS BO) • Choisir le moteur de SGBD/R • Choisir la source de données dans la liste déroulante. • Choisir le type de connexion personnelle, et tester impérativement la connexion. • Retour sur la première fenêtre (étape 1) : terminer en cliquant sur ‘OK’ DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 5 / 55 Business Object – Designer II. La définition des paramètres de l’univers Une connexion étant maintenant créée, il convient de définir les paramètres du nouvel univers. Pour cela sélectionner dans le menu : Fichier >> Nouveau ou touches de raccourci CTRL + N. La fenêtre Paramètres de l’univers apparaît. Si l’univers existe déjà et ouvert, cette fenêtre est accessible par le menu Fichier >> Paramètres A. Création d’un nouvel univers : Définition • Donner un nom à l’univers (35 caractères maximum). • Donner une description de l’Univers. Cette description sera visible par l’utilisateur de l’univers lorsqu’il choisira une source de données dans un document. • Dans la liste déroulante des connexions, choisir la connexion précédemment créée. Le lien entre l’univers et la connexion est établi. Cette boîte de dialogue offre également la possibilité de créer une nouvelle connexion, de modifier une connexion existante ou de tester la connexion courante. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 6 / 55 Business Object – Designer B. Résumé L’onglet résumé est très utile dans le cadre d’un déploiement à grande échelle permettant au superviseur de visualiser par exemple des informations sur la création, les modifications et leurs auteurs respectifs. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 7 / 55 Business Object – Designer C. Stratégies Les stratégies permettent de faciliter et d’accélérer la création d’un Univers. Le module Designer propose des stratégies basées sur des scripts SQL permettant de : • créer des objets (par défaut : renommage des colonnes), • détection automatique des jointures, • détecter automatiquement les cardinalités. Les stratégies sont utilisées soit à l’importation des tables, soit à la création des objets de l’univers. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 8 / 55 Business Object – Designer D. Restrictions Lorsque les utilisateurs se connectent à un Univers, vous pouvez avoir contrôlé l’accès aux ressources en limitant : • le nombre de lignes de résultat de la requête, • le temps d’exécution de la requête, • La taille maximum des objets de type long. Vous pouvez également faire afficher un message si le temps estimé d’exécution d’une requête dépasse le nombre de minutes spécifié. A noter : Avec ODBC, la limite de temps n’est pas respectée car le test de durée est effectuée au retour des premières données. Pour le nombre de lignes limitées, si le résultat contient plus de lignes, il sera tronqué. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 9 / 55 Business Object – Designer E. SQL L’onglet SQL permet de paramétrer la génération du SQL lors de l’élaboration des requêtes : • la gestion des sous-requêtes, • l’utilisation des opérateurs ensemblistes, • l’utilisation des opérateurs complexes, • la génération d ’ordres SQL multiples pour chaque contexte, • la génération d ’ordres SQL multiples pour chaque indicateur, • la sélection de contextes multiples. • le produit cartésien : en général, le mettre à ‘Interdire’. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 10 / 55 Business Object – Designer F. Liens Cet onglet permet d ’établir des liaisons entre univers. A partir d’Univers séparés, des liens sont établis de l’univers en cours de construction vers d’autres univers existants. L’infocentre de la DPMAT fonctionne suivant ce principe, afin de limiter la taille de chaque univers. Cliquer enfin sur le bouton’OK’ pour prendre en compte les paramètres définis. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 11 / 55 Business Object – Designer G. Enregistrement de l’univers Vous pouvez maintenant enregistrer l’Univers dans le dossier par défaut : Universe. Pour cela sélectionnez le menu Fichier >> Enregistrer sous… ou touche de raccourci F12. Le fichier créer a pour extension .unv . DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 12 / 55 Business Object – Designer III. La création de la structure La création de la structure d’un Univers est l’étape fondamentale, travail de conception par excellence. Cette création consiste à déclarer les tables nécessaires à cet Univers, définir les jointures utilisées par ces tables et résoudre des éventuels problèmes liés au fait que le système va devoir générer automatiquement du SQL. L’étape suivante consistera à convertir cette structure, dont la lecture n’est accessible qu’aux concepteurs, en une présentation orientée vers le métier des utilisateurs : la couche sémantique (cf. partie 4 de ce document). Dans le module Designer, un Univers comporte une fenêtre séparée en 2 parties : • la partie objets de l’Univers destinée à accueillir la couche sémantique (voir plus loin) • le partie structure de l’Univers destinée à contenir les tables, jointures… qui vont permettre de décrire l’Univers (partie droite). Objets structure DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 13 / 55 Business Object – Designer A. La sélection des tables Les tables qui font partie de la structure de l’Univers doivent être sélectionnées dans la source. Il faut pour cela utiliser le localisateur de tables. Pour l’activer :double-cliquer dans la fenêtre structure ou cliquer sur l’icône ou sélectionner le menu Insertion >> Tables Le localisateur de table, description : • a : nom de la source de données • b : nom d’une table • c : nom et type d’un attribut d’une table • d : signe - permet de cacher les attributs de la table • e : signe + permet de visualiser les attributs de la table Pour positionner les tables dans la fenêtre structure, utiliser la souris (double-clic ou cliquerglisser) ou le clavier (touches SHIFT + flèches). Les tables sont insérées avec leurs attributs dans la structure. Les jointures ne sont mises en place que si l’option a été sélectionnée. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 14 / 55 Business Object – Designer Les tables sélectionnées apparaissent dans la fenêtre structure. La technique du glisser/déplacer est pratique pour disposer les tables dans cette fenêtre. Pour obtenir un affichage propre et compact, cliquer sur le bouton de la barre d’outils ou sélectionner le menu Affichage >> Réorganiser les tables. Le menu Affichage >> Quadrillage aide à aligner les tables dans la fenêtre structure. Le menu Affichage >> Sauts de page aide à voir comment les éléments se présentent sur une page. Les loupes permettent d ’avoir une vision micro ou macroscopique de la structure. Il existe trois façons d’afficher les colonnes (attributs) dans une table. • Par défaut une table affiche n colonnes maximum. Une table dont l’affichage est partiel contient (…) • Si on clique sur cette table , une barre de défilement apparaît . • Double-cliquer sur la table affiche la table sans attributs . • Double-cliquer de nouveau affiche la table avec uniquement les attributs de jointures. (NB : ici il n’y en a pas puisque aucun n’a encore été défini, voir plus loin). Attention : si vous le faites après avoir mis en place les relations et positionné les tables, le shéma obtenue peut être boulversé. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 15 / 55 Business Object – Designer Le menu contextuel de la fenêtre structure s’obtient par clic droit dans une zone libre de la fenêtre. Il permet d’accéder à certaines options déjà vues, comme l’affichage des tables. D’autres options, comme l’affichage du nombre de lignes (enregistrements) d’une table sont disponibles. Le menu contextuel d’une table s’obtient par clic droit sur une table. Il permet d’accéder à certaines options déjà vues. D’autres options, comme l’affichage du contenu d’une table sont disponibles. Remarque importante : il est possible par ce menu de renommer une table. Cette option ne doit être utilisée que si la table a été renommée au niveau physique, donc de la base de données. Dans le cas contraire, il n’y aura plus cohérence entre l’Univers et la source de données. Pour supprimer des tables de la fenêtre structure, sélectionner la table et couper (menu Edition) ou supprimez (touche Suppr) DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 16 / 55 Business Object – Designer B. Les jointures : création et caractéristiques Paramétrage graphique : cliquer sur le menu Outils >> Options pour faire apparaître la boîte de dialogue Options. L’onglet Graphiques de cette boîte de dialogue permet de personnaliser notamment l’apparence des jointures et des cardinalités dans la fenêtre structure. La case à cocher Meilleur côté permet au système de dessiner les jointures de la façon la plus courte et correcte possible (sans passer derrière une table par exemple). Il existe par ailleurs 4 types de jointures : • équi-jointure : égalité entre la colonne d’une table et la colonne d’une autre table. • jointure externe : les occurrences d’une table n’ont pas de correspondance dans l’autre table (cas des cardinalités 0,1 et 0,n). • thêta jointure : repose sur un rapport autre que celui de l’égalité entre deux colonnes (comparaisons, fonctions, requêtes imbriquées) • auto-jointure : permet de définir une jointure entre attributs d’une même table. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 17 / 55 Business Object – Designer 1. Création manuelle des jointures La façon la plus élémentaire de créer une jointure est de faire glisser le pointeur de la souris d’un attribut vers un autre. Pour tracer manuellement une jointure depuis la colonne d’une table vers la colonne d’une autre table : • positionner le curseur de la souris sur la colonne de la première table (le curseur se transforme alors en une main) , sans que la table ne soit déjà sélectionnée; • faire glisser le curseur, qui se transforme en crayon, jusqu’à la colonne de la deuxième table ; • relâcher la souris. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 18 / 55 Business Object – Designer 2. Définition des jointures Pour éditer une jointure, double-cliquer dessus. La fenêtre Editer la jointure s’ouvre. • Les deux zones du haut présentent les tables et la liste de leurs attributs. • La liste déroulante permet de définir le type de jointure (égalité, différence, comparaisons). • La case à cocher ‘Jointure externe’ permet de définir des cardinalités minimales égales à zéro. • Le bouton ‘Détecter’ permet de définir automatiquement les cardinalités. • La case à cocher ‘Raccourci jointure’permet d’optimiser une requête en créant une jointure redondante entre une table ‘ fille ’ et une table ‘ grand-mère ’. • Le bouton ‘Editer…’ permet de construire des requêtes complexes (cf. page suivante) NB : l’expression SQL de la jointure apparaît dans la zone inférieure de la boîte de dialogue. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 19 / 55 Business Object – Designer Cliquer sur le bouton permet de construire des jointures complexes. La fenêtre Définition SQL de la jointure s’ouvre et permet de construire une requête complexe à partir des attributs des tables et en utilisant des opérateurs et des fonctions qui peuvent euxmême porter sur ces attributs. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 20 / 55 Business Object – Designer 3. Affichage des jointures en mode liste Cliquer sur le bouton structure. permet d’afficher les jointures en mode liste dans la fenêtre DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 21 / 55 Business Object – Designer 4. Détection automatique des jointures Cliquer sur le bouton pour activer la détection automatique des jointures ou sélectionner le menu Outils >> Détecter les jointures. La détection se fera selon la stratégie définie par la boîte de dialogue Paramètres de l’Univers. Remarque importante : la stratégie par défaut est fondée sur l’homonymie : BO déclare les jointures entre attributs portant le même nom. Si vous utilisez la détection automatique, pensez à supprimer les jointures inutiles et ajouter celles qui portent sur des attributs de noms différents. Rappel : pour ouvrir cette boîte de dialogue, sélectionner le menu Fichier >> Paramètres... Il est fort probable que vous aurez des jointures inutiles, voire inexactes. Si vous utilisez la détection automatique, il faudra impérativement vérifier les jointures une à une. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 22 / 55 Business Object – Designer 5. Détection automatique des cardinalités Cliquer sur le bouton pour activer la détection automatique des cardinalités ou sélectionner le menu Outils >> Détecter les cardinalités. La ou les jointures à traiter doivent être préalablement sélectionnées. Les cardinalités seront dessinées selon ’option choisie sur l’onglet Graphiques de la boîte de dialogue Options. Rappel : pour ouvrir cette boîte de dialogue, sélectionner le menu Outils >> Options... DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 23 / 55 Business Object – Designer C. Le traitement des boucles Qu’est-ce qu’une boucle ? Une boucle est décrite lorsqu’il existe plusieurs chemins permettant d’aller d’une table A vers une table B. Selon le chemin emprunté, il est aisé de comprendre que le résultat obtenu ne sera pas le même. Il faut donc résoudre ce problème, de sorte que le chemin soit ‘ forcé ’ et que le résultat de la requête soit sans ambiguïté pour l’utilisateur de l’Univers. Exemple : DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 24 / 55 Business Object – Designer 1. Les deux causes de boucles Il existe deux schémas de principe et leurs dérivés dans lesquels on trouve des boucles. • Boucle de type 1 : la table B a une grand-mère accessible par deux chemins différents. A une occurrence de B, on associe deux occurrences de A, différentes selon le chemin emprunté. Il y a un sommet unique : A. • Boucle de type 2 : deux tables différentes ont des tables mères communes. Il y a deux sommets : A et B. De façon plus générale, aux sommets A et B sont associées deux listes plus ou moins complexes (plusieurs tables entre les sommets). A A B 1 B 2 DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 25 / 55 Business Object – Designer 2. Exemple de boucle de type 1 Le sommet de la boucle est ici la table pays, du fait que lieu de séjour (Resort) et client (Customer) sont liés à pays (Country) , qui peut être différent. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 26 / 55 Business Object – Designer 3. Exemple de boucle de type 2 Les sommets de la boucle sont ici client (Customer) et service (Service), dû au fait que ces entités ont deux listes associées : celle des réservations et celle des ventes. En effet, la base de données est en mesure de traiter deux fonctions différentes : la réservation de services par un client et la vente de services à un client Demi-boucle Réservations Demi-boucle Ventes DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 27 / 55 Business Object – Designer 4. Les alias Un alias est un renommage logique de table sans redondance physique d’information. A A’ B Pour créer un alias, sélectionner la table concernée puis sélectionner le menu Insertion >> Alias… ou cliquer sur l’icône ou clic droit sur la table et menu Insérer un alias... Saisir le nom de la table alias dans la fenêtre : DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 28 / 55 Business Object – Designer 5. Les contextes Un contexte correspond à un domaine fonctionnel de l’Univers. Ainsi, pour aller de la table A vers la table B, il peut être possible d’employer deux chemins différents correspondant chacun à un contexte, selon que l’on veuille par exemple un résultat sur les ventes ou un résultat sur les réservations. L’utilisateur choisira alors son contexte au moment de l’exécution de la requête pour créer un rapport. Les contextes permettent de traiter les boucles de type 2 sans les casser. A B A B Pour créer un contexte, sélectionner le menu Insertion >> Contexte… ou cliquer sur l’icône ou clic droit dans la fenêtre structure et menu Insérer un contexte… Important : les contextes se définissent sur l’ensemble du schéma et non pas uniquement sur le sous-ensemble comportant la boucle. Il faut donc d’abord sélectionner toutes les jointures de la structure (touches de raccourci Ctrl + A ). Dans la fenêtre Nouveau contexte qui apparaît, cliquer sur le bouton ‘Détecter’ Donner un nom au contexte (ou modifier le nom par défaut). Le système détecte automatiquement les tables faisant partie du contexte. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 29 / 55 Business Object – Designer Pour visualiser un contexte, passer en mode liste en cliquant sur ou sélectionner le menu Affichage >> Mode liste Le troisième volet affiche le nom des contextes de l’Univers. Si un contexte est sélectionné dans ce volet, ses jointures apparaissent en inverse vidéo. Pour supprimer un contexte, sélectionner son nom dans le volet Contextes et appuyer sur la touche Suppr. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 30 / 55 Business Object – Designer 6. Détection automatique des boucles Les outils de Business Objects permettent de détecter automatiquement les boucles du schéma. Pour cela, cliquer sur l’icône de la barre d’outils. La fenêtre Détection des boucles apparaît alors. Cette détection est complétée par la détection automatique d’alias. Le bouton ‘Insérer un alias’ devient alors actif. Les boucles non traitées par alias le sont par détection automatique de contexte en cliquant sur l’icône ‘Contextes candidats’. La détection automatique d’alias peut se faire aussi en cliquant sur l’icône . La fenêtre Alias Candidat apparaît, avec à gauche les tables qui nécessitent un alias et à droite une proposition de noms d’alias à créer. Il est possible de renommer le nom proposé, puis cliquer sur ‘Créer’ pour ajouter la table alias. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 31 / 55 Business Object – Designer D. Les cas particuliers 1. Le raccourci jointure Dans certains cas il sera intéressant de dénormaliser le modèle afin par exemple d’améliorer les performances du système (en diminuant le nombre de jointures). La clé primaire de la table A deviendra alors clé étrangère dans la table C. A1 A A1 B1 B B1 Si vous déclarez la jointure entre A et C cela ressemble fort à une boucle. Pour éviter que le système ne détecte cette boucle, il faut cocher la case Raccourci jointure de la fenêtre d’édition de cette jointure (voir vue suivante). Pour créer un raccourci jointure, ouvrir la fenêtre Editer la jointure. Rappel : menu Insertion >> Jointure ou icône de la barre d’outils. Sélectionner la case à cocher ‘Raccourci jointure’. Attention : omettre de cocher cette case dans le cas du raccourci jointure va causer une détection de boucle inappropriée par le système. Il serait erroné de résoudre cette boucle par alias ou contexte. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 32 / 55 Business Object – Designer 2. Les relations réflexives La jointure entre la table des clients et son alias parrain permet de traduire une relation réflexive. Un client a 0,1 parrain et un parrain 0,n clients. Attention : la table parrain, créée après les contextes, n’appartient donc à aucun de ceux-ci. Il faut donc l’insérer dans les contextes existants. Pour cela éditer le contexte et cliquer sur la jointure adéquate pour la rajouter au contexte. Opérer de la sorte pour tous les contextes. Pour éditer un contexte : passer en mode liste, clic droit sur le nom du contexte et menu Propriétés du contexte... DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 33 / 55 Business Object – Designer IV. La création de la couche sémantique L ’étape précédente à consisté à créer la structure d’un Univers. Cette création a permis de déclarer les tables nécessaires à cet Univers, de définir les jointures utilisées par ces tables et de résoudre des problèmes liés au fait que le système va devoir générer automatiquement du SQL. Ce chapitre présente l’étape suivante qui consistera à convertir cette structure, dont la lecture n’est accessible qu’aux concepteurs, en une présentation orientée vers le métier des utilisateurs : la couche sémantique. Cette appellation a fait l’objet d’un brevet déposé par la société Business Objects. A. La création des classes et des sous-classes Le but des classes est de : • regrouper les objets afin d’organiser l’Univers, • ajouter un niveau logique supplémentaire au sens d’un objet (*), • permettre une navigation conviviale et intuitive pour les utilisateurs. Il existe deux types de classes : • Les classes d’entités : ce sont des dossiers permettant de regrouper par thème des objets du système d’information. Ces objets peuvent être des dimensions, des informations ou des indicateurs (attention : ne pas confondre avec objet au sens Merise du terme). Ces classes peuvent contenir des sous-classes qui contiendront à leur tour des objets. • Les classes d’indicateurs : elles permettent de regrouper plus distinctement les objets calculés (remarque : il n’est pas obligatoire ni indispensable de placer un objet calculé dans une classe d’indicateurs). (*) : par exemple l’objet date de la classe des réservations n’a pas la même signification que l’objet date de la classe des ventes. Classes d’entités Classes de conditions prédéfinies DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 34 / 55 Business Object – Designer La fenêtre Univers donne une représentation hiérarchique des classes et des objets de l’Univers. L’utilisateur visualise cette fenêtre lorsqu’il crée ses requêtes. Les icônes en forme de dossiers représentent les classes. A l’intérieur des classes, on trouve des objets ou des sous-classes. Il existe trois types d ’objets : • dimension : correspond à un attribut d’une table ou d’une requête portant sur un ou plusieurs attributs. • information : permet de définir un composant de dimension. Elle a les mêmes caractéristiques que la dimension mais ne peut pas être utilisée pour l’analyse multidimensionnelle. • indicateur : correspond à un objet résultant d’un calcul ou d’une opération de traitement. (Rappel important : la valeur d’un indicateur sera fonction du contexte où il se trouve et des objets du résultat). Classe Dimension Information Indicateur DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 35 / 55 Business Object – Designer Il existe plusieurs possibilités pour créer une classe : • utiliser le menu Insertion >> Classe… ou Insertion >> Sous-classe… , • cliquer sur l’icône de la barre d’outils, • clic droit dans la fenêtre de l’Univers puis menu Insérer une classe… , • cliquer-glisser d’une table de la structure vers la fenêtre de l’Univers. La classe est alors créée avec tous les attributs de la table en dimensions : la table devient alors une classe et tous les attributs de cette table deviennent des dimensions. Dans tous les cas la fenêtre Editer les propriétés de Classe1 apparaît. Saisir le nom de la classe et une aide contextuelle qui sera très pratique pour les utilisateurs de l’Univers. Une classe peut être renommée (35 caractères maximum, avec caractères spéciaux et espaces). DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 36 / 55 Business Object – Designer B. La création des objets Comme pour les classes il existe plusieurs méthodes pour créer un objet. La plus simple consiste à cliquer sur un attribut de table de la fenêtre structure et de faire glisser cet attribut dans la classe voulue de la fenêtre Univers. Pour créer des objets plus complexe, vous pouvez après avoir sélectionné une classe : • cliquer sur l’icône de la barre d’outils, • utiliser le menu Insertion >> Objet… , • faire un clic droit sur la classe et sélectionner le menu Insérer un objet… Dans les trois derniers cas la fenêtre Editer les propriétés de Objet1 s’ouvre (voir shéma suivant). Pour ouvrir cette fenêtre après la création d’un objet, double-cliquer sur l’objet. Il est alors possible de modifier ses propriétés. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 37 / 55 Business Object – Designer 1. Onglet Définition La définition d’un objet est donnée par : • son nom (possibilité de renommage) : recommandé pour donner un nom « métier » à l’objet; • sa description : aide associée qui permet de compléter le libellé de l’objet, pour l’utilisateur ; • son type : alphanumérique, numérique, date… ; • son équivalent SELECT : clause Select de l’objet qui apparaîtra dans le SQL ; • son équivalent WHERE : clause Where de l’objet qui apparaîtra dans le SQL ; En cliquant sur les doubles flèches à droite des zones Select et Where, on accède aux fenêtres d’édition des clauses en question (voir plus loin dans le chapitre). Le bouton ’Tables’ permet de voir les tables qui entrent en jeu dans la définition de l’objet. Le bouton ‘Analyser’ permet de vérifier l’exactitude de la définition de l’objet (utile dans les cas complexes). DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 38 / 55 Business Object – Designer 2. Onglet Propriétés Cet onglet permet de spécifier la qualification d’un objet et de lui associer une liste de valeurs (case ‘Associer une liste de valeur’ cochée par défaut). La qualification d’un objet est importante en vue de l ’analyse multidimensionnelle. Ces qualifications sont : • Dimension: élément clé pour les utilisateurs. Pour les dimensions de type Date, il sera possible de créer une hiérarchie (voir plus loin). • Indicateur : contient une information dérivée d’un calcul. Pour les indicateurs, une boîte de fonctions est affichée. Le sélection d’une fonction agrégera les données relatives à cet objet en mode analyse ascendante. • Information : objet dépendant d’une dimension, donnant un complément d’information sur cette dimension. Elle n’intervient pas en analyse multidimensionnelle. Un choix de dimension associée s’affiche. Il suffit de la sélectionner dans la liste déroulante. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 39 / 55 Business Object – Designer Dans les propriétés, il est possible d’associer une liste de valeurs à un objet (*.lov). Cette liste est générée par une requête à partir des données de la base. L’utilisation d’une liste de valeurs sera très utile pour les utilisateurs lorsqu’ils souhaiteront poser des conditions dans leurs requêtes (par défaut toutes les valeurs sont prises en compte pour l’objet en question). Le bouton ‘Rétablir’ donne un nom par défaut, crée une requête simple. Le bouton ‘Editer’ ouvre l’éditeur de requêtes, permettant de créer une requête plus élaborée, avec le code et le libellé par exemple. Ces deux fonctions sont également accessibles par le menu Outils >> Liste de valeurs... Il est possible de donner un nom plus parlant à cette liste de valeurs. Le fichier .lov aura le même nom. Plusieurs objets peuvent avoir la même liste de valeur. Par exemple, les pays de séjour et pays de résidence auront la même liste de valeur ‘Pays’. En général, on crée la liste de valeur, on la nomme et on accorde uniquement le rafraîchissement à l’utilisateur. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 40 / 55 Business Object – Designer 3. Onglet ‘Avancées’ Les propriétés avancées permettent de spécifier un niveau de sécurité d’accès, les conditions d’utilisation de l’objet dans les requêtes et pour les objets Date, le format des informations stockées dans la base de données. Dans le cas d’une distribution sécurisée (utilisation du référentiel Business Objects), le designer peut attribuer un niveau de sécurité à un objet en correspondance avec un niveau de sécurité attribué à un utilisateur (module Supervisor). Pour chaque objet il est possible de désactiver les conditions d’utilisation de l’objet : • Résultat, • Condition, • Tri. Par défaut ces trois options sont actives. La fonctionnalité Format de la base de données permet la saisie de valeurs au format du poste client. Si le format date est différent de celui de la base spécifié dans la définition de l’objet, une conversion au format base de donnée sera faite lors de la génération du SQL. En général, les conditions ne sont pas posées sur un champ texte s’il est possible sur le code associé, pour des raisons évidentes de performances et d’utilisation éventuelle d’index. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 41 / 55 Business Object – Designer C. Donner un sens à un objet Il est possible d ’élaborer des objets complexes en leur donnant un sens précis. Cela revient à renseigner l’équivalent Where de la zone de la fenêtre Editer les propriétés de Objet1. Tout ce qui est saisi dans cette zone est introduit dans la clause WHERE du SQL généré, derrière un AND qui suit les clauses de jointures. Conséquence : tout ce qui est écrit dans l’équivalent WHERE doit avoir la forme générale d’un prédicat. SELECT EquivalentSelect1, EquivalentSelect2, …,EquivalentSelectN FROM table1, table2, …, tableN WHERE conditions de jointures AND EquivalentWhere1 AND EquivalentWhere2 … EquivalentSelect1 à N sont les textes des équivalents select des objets du rapport. EquivalentWhere1 à N sont les textes des équivalents where des objets du rapport. Table1 à N sont déterminées automatiquement par le système en fonction de la clause SELECT. Les conditions de jointures respectent la définition de chaque jointure de la structure. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 42 / 55 Business Object – Designer D. Les hiérarchies de temps Lors de la création de dimensions de type Date, il est possible de créer une hiérarchie automatique basée sur le temps. L’équivalent SQL de ces objets est généré dynamiquement lors de l’exécution de la requête dans le module utilisateur. Pour compléter la définition des objets de type Date, le concepteur peut utiliser les fonctions de transformation de dates du SGBDR choisi. NB : cette possibilité n’est offerte que si vous accédez à une base de données Access. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 43 / 55 Business Object – Designer E. Les fonctions @ Le module Designer propose un groupe de fonctions spéciales, indépendantes du SGBDR cible, appelées Fonctions @. Elles peuvent être utilisées dans les équivalents Select et Where et permettent de définir des objets dynamiques en réutilisant les définitions d’autres objets. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 44 / 55 Business Object – Designer 1. La fonction @Prompt Cette fonction permet de créer des objets interactifs. Lors de l’exécution de la requête, un message sera soumis à l’utilisateur sous forme d’invite. Elle est utilisée dans les équivalents Select ou Where des objets. Sa syntaxe est la suivante : @Prompt(‘message’,’type’,[lov],[mono/multi],[free/constrained]) Les éléments entre crochets sont facultatifs mais les virgules restent obligatoires. - message : texte d’invite - type : ‘A’, ‘D’, ou ‘N’ pour indiquer le format de la réponse.(‘N,NN’ pour un chiffre et deux décimales) - lov : Permet de préciser une liste de valeurs proposées au choix de l’utilisateur. {‘valeur1’, ‘valeur2’} ou ‘classe\objet’. Il ne peut s’agir d’un nom d’attribut. - mono/ multi : permet de préciser si l’invite ramènera une ou plusieurs valeurs. - free/constrained : Permet d’imposer ou non la réponse de l’utilisateur. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 45 / 55 Business Object – Designer 2. La fonction @Select Cette fonction permet de créer des objets dynamiques en utilisant la définition de l’équivalent SELECT d’autres objets existants. Sa syntaxe est la suivante : @Select(nom de la classe\nom de l’objet) DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 46 / 55 Business Object – Designer 3. La fonction @Where Cette fonction permet de créer des objets dynamiques en utilisant la définition de l’équivalent WHERE d’autres objets existants. Sa syntaxe est la suivante : @Where(nom de la classe\nom de l’objet) Objet dynamique DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 47 / 55 Business Object – Designer 4. La fonction @Variable Cette fonction permet de créer des objets en faisant référence à un nom ou à une variable. Sa syntaxe est la suivante : @Where(‘ma variable’) Cette variable peut être : • une variable de Business Objects : BOUSER, BOPAS…) ; • une variable SQL BO ; • une variable personnelle. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 48 / 55 Business Object – Designer 5. La fonction @Aggregate_aware Cette fonction permet de créer des objets utilisés pour la navigation agrégée. D’utilisation complexe, elle fera l’objet d’un paragraphe particulier ( H ). 6. La fonction @Script Cette fonction permet de récupérer les résultats d’un script exécuté dans le module utilisateur. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 49 / 55 Business Object – Designer F. Les conditions prédéfinies Ces objets sont particulièrement utiles car ils permettent de retranscrire d’une part le vocabulaire métier de l’utilisateur de l’Univers (il peut être difficile pour un utilisateur de traduire une condition dans une requête) et d’autre part des conditions couramment utilisées. Pour créer une condition prédéfinie : • se positionner dans la partie Conditions de la fenêtre objets; • sélectionner la classe dans laquelle la condition sera insérée ; • cliquer sur l’icône de la barre d’outils ou menu Insertion >> Condition… • saisir le nom de la condition ; • double-cliquer sur l’objet : la fenêtre d’édition des propriétés apparaît ; • saisir l’équivalent Where de l’objet. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 50 / 55 Business Object – Designer G. Les indicateurs Ces objets utilisant généralement une ou plusieurs fonctions de groupe (sum, count, avg, min , max…) correspondent à une règle de gestion qui prendra tout son sens en fonction de l’association avec d’autres objets. Il s’agit de sémantique dynamique. Ces objets, qualifiés d’indicateurs, correspondent à l’intersection ou la projection d’une règle de gestion sur des axes d’analyse. Il est très important d’associer une description aux indicateurs, comme par exemple la méthode de calcul, l’unité d’expression, la règle de gestion… Ainsi, la description qui en est faite par le concepteur au profit des utilisateurs doit être très complète : règle de calcul, unité utilisée, objets auxquels on peut l’associer … La fonction de projection d’un indicateur indique quel doit être le comportement de celui-ci en cas de regroupement des occurrences du résultat. L’indicateur est toujours de type numérique, c’est une information calculée à partir des règles de gestion (exple : le Chiffre d’Affaire). Il prend valeur en fonction des objets auxquels il est associé : DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 51 / 55 Business Object – Designer Comparaison des SQL générés : Moyenne d’âge des clients (projection) SELECT Service_Line.service_line, Customer.age FROM Reservations, Reservation_Line, Customer, Service, Service_Line WHERE ( Customer.cust_id=Reservations.cust _id ) AND ( Reservation_Line.res_id=Reservati ons.res_id ) AND ( Reservation_Line.service_id=Servic e.service_id ) Moyenne d’âge des clients (avg) SELECT Service_Line.service_line, avg (Customer.age) FROM Reservations, Reservation_Line, Customer, Service, Service_Line WHERE ( Customer.cust_id=Reservations.cust _id ) AND ( Reservation_Line.res_id=Reservatio ns.res_id ) AND ( Reservation_Line.service_id=Servic e.service_id ) AND ( Service.sl_id=Service_Line.sl_id ) GROUP BY Service_Line.service_line 3 occurrences : la moyenne d’âge pour chaque type de service Résultat identique L’opération moyenne est effectuée par le SGBD cible. Le nombre d’occurrence est plus faible. L’indicateur ne sait pas se comporter en cas de regroupement supplémentaire (fonction de projection inconnue) mais peut être complété par n’importe quelle fonction de projection . SQL généré AND ( Service.sl_id=Service_Line.sl _id ) Information 47 occurrences (une par client d’un issues de la source type de service) comportant l’âge du client. Il n’y a que trois types de service. Résultat obtenu 3 occurrences : la moyenne d’âge par type de service Commentaires L’opération ‘moyenne’ est effectuée par Business Object. En contrepartie, le volume de données transferées est plus important. Si un autre regroupement intervient dans le rapport, le comportement de l’indicateur est connu par sa fonction de projection. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 52 / 55 Business Object – Designer H. La navigation agrégée La navigation agrégée se base sur l’utilisation de la fonction @Aggregate_Aware dans la définition des indicateurs. 1. Principe Dans de nombreux cas, les bases de données contiennent des tables contenant des agrégats. En général, il s‘agit d’informations calculées que le concepteur a choisi de mémoriser plutôt que de les calculer à chaque fois. Ainsi, la table Region_Sline (à inclure dans l’univers) contient le CA des ventes pour une région et un type de service (en visualiser le contenu) et ce pour tous les couples région, type de service. Or, cette information peut être calculée simplement par Business Object à l’aide d’un indicateur. Mais ce calcul peut être pénalisant en temps sur des plus gros volumes de données. MCD Absentes du modèle Valeurs calculées : règles de gestion MLD 1 : créer un attribut dans une table (voir créer la table) 2 : calculer par l’application (exple de BO via les indicateurs) La navigation agrégée consiste à définir un indicateur qui laissera au système le choix entre le calcul de chaque valeur de l’indicateur ou l’utilisation d’une valeur issue d’une table d’agrégats. Le choix sera effectué par le système en fonction des objets associés à l’indicateur. 2. Démarche. Construire les indicateurs. Insérer la table d’agrégats dans la structure de l’univers. Mettre en place les jointures et les caractériser. Pour résoudre la boucle crée, mettre en place un nouveau contexte ne comportant que la nouvelle table et celles qui lui sont hiérarchiquement supérieures (pères, grand pères etc.) - Modifier l’indicateur comportant la fonction @Aggregate_Aware et les deux méthodes de calcul. - Définir la navigation agrégée. Il s’agit de définir les objets compatibles avec la navigation agrégée : ceux qui pourront utiliser les valeurs présentes dans la table d’agrégats. Ces objets sont issus des seules tables hiérarchiquement supérieures à la table d’agrégats. - DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 53 / 55 Business Object – Designer 3. Réalisation - Ajouter la table Region_Sline dans la structure de l’univers - Créer manuellement les jointures - Region_Sline.sl_id = Service_Line.sl_id - Region_Sline.region_id = Region.region_id - Détecter les cardinalités de ces jointures - Créer le contexte « Ventes agrégées » contenant les tables Pays de séjour (alias de country) Resort Service_Line Region_Sline Region Country. Pour cela, sélectionner les jointures et utiliser le menu insérer contexte. - Créer l’indicateur. Nous le nommerons Agr CA des ventes pour le distinguer du précédent. - Equivalent select @Aggregate_Aware (Region_SLine.sales_revenue,@Select (Indicateurs\CA des ventes)) Remarques : Indicateurs\CA des ventes peut être remplacé par sa définition si vous souhaitez le supprimer au lieu de le masquer. Le membre de gauche de la fonction @Aggregate_Aware est utilisé en priorité : il faut y placer les éléments de calcul agrégés. - Fonction de projection Somme - Définir la navigation agrégée. - Outils navigation agrégée - Sélectionner la table contenant les agrégats (Region_Sline) et rendre incompatibles tous les objets de l’univers en cochant les classes. - Rendre compatibles (en les décochant) les seuls objets définis à partir des tables du contexte agrégé (Pays de séjour, lieu de séjour, Type de service, Pays de résidence, Région, CA des ventes et Agr CA des ventes. 4. Test Pour tester le bon fonctionnement de la navigation agrégée, nous allons comparer plusieurs rapports. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 54 / 55 Business Object – Designer I. Les hiérarchies La hiérarchie personnalisée permet de hiérarchiser les dimensions indépendamment de l’ordre dans lequel elles sont créées. Par le menu outil hiérarchies, le concepteur a la possibilité de créer des hiérarchies personnalisées. Le bouton créer permet d’ajouter une classe de hiérarchie. Par le bouton ajouter, vous pouvez insérer dans cette classe les objets de type dimension de l’univers. Les boutons monter et descendre permettent de gérer l’ordre des dimensions dans une classe. ATTENTION, l’utilisateur ne disposera que d’une hiérarchie : la personnalisée ou celle par défaut selon la case cochée. DMSI/ANALYSE le 11/10/2009 BO Utilisateur Page 55 / 55