Chapitre 1 : le rôle du Designer d’Univers --L’architecture de BusinessObjects va permettre un accès aux différentes sources de données de l’entreprise, que ce soit des bases de données relationnelles, des serveurs OLAP ou des fichiers personnels à partir d’une couche sémantique « métier » qui contient les mots de vocabulaire métier de l’utilisateur. --BusinessObjects fournit à l’utilisateur trois concepts : L’Univers : • Vision partielle ou totale d’une base de données. • Dédié à un profil utilisateurs et à un besoin applicatif ou domaine précis. • Regroupe l’ensemble des Objets du domaine • Regroupement logique d’Objets de même thème (aucune correspondance physique dans la base), et à l’intérieur des Classes, des Sous-Classes peuvent être créées La Classe : Le Business Objet ou Objet du métier : • Elément le plus fin de l’Univers. • Permet de passer de données brutes à la manipulation d’informations : données concaténées, agrégées ou calculées. --Un Objet donne à l’Utilisateur une totale indépendance et il est caractérisé par un Nom et un écran d’Aide associée.La correspondance SQL de l’Objet, invisible pour l’Utilisateur, est définie par le Designer. --Le module Designer de BusinessObjects vous fournit un environnement totalement graphique et facilite la définition des « Univers » par l’utilisation du glisser-déplacer. -- les acteurs du BusinessObjects : Superviseur, Designer, Utilisateurs, Administrateur de Documents,...) -- Les principales phases d’un projet BusinessObjects sont : - Pré-étude : Identification de l’application cible par le Découpage du système d’informations en domaines fonctionnels - Analyse : Analyse des besoins utilisateurs, de l’existant (base de données), et du domaine fonctionnels, la Spécifications des Univers : conventions de nommage, organisation des objets... - Cycle de réalisation : le développement des Univers par la création des Univers : Jointures, Classes, Objets et Hiérarchies - Tests : Préparation pour le Déploiement des Univers par des tests (Service Informatique et groupe pilote), Finalisation, Documentation - Déploiement : Mise à la disposition et Déploiement des Univers par la formation, Déploiement, Support - Evolution : Enrichissement et Maintenance des Univers par des requêtes et Documents Utilisateurs, Modifications physiques des bases de données, Optimisation des performances Chapitre 2 : Créer un Univers avec l’assistant -- il y a deux types de méthode de création de l’Univers : -L’assistant : rapide, facile, automatique, point de départ pour l’univers complexe -Les outils du module Designer : graphique, intuitif, valeur ajouté, -- Les étapes de création d’univers en mode Assisté : il faut ouvrir une session Designer, authentification, puis cliquer sur l’icône de l’assistant - 1/Définition des Paramètres : nom de l’univers, les paramètres de connexion à une base de données (nom, mot de passe, chaine de connexion), et sélectionner la connexion à la BD, et définir aussi une stratégie (jointures, objets, et table) qui est optionnel - 2/Créer les Classes et Objets par défaut : Les Classes sont représentées sous forme de Dossiers et les Objets sous forme d’Icônes à l’intérieur des Classes - 3/Créer les indicateurs : Les Indicateurs sont des objets contenant des fonctions d’agrégat (Count, Sum, Min, Max) dans leur définition, et ils sont placé dans une classe spécifique appelée Indicateurs. Ex : (Chiffre d’affaires, Nombre de clients ...) - 4/L’Univers est créé : L’Assistant calcule et affiche : Le nombre de Classes, d’Objets, et de jointures créées. Et à la fin un message d’avertissement signale l’existence de boucles dans l’Univers. --Le module Designer représente l’Univers sous la forme de deux sous-fenêtres : La zone Univers, et la zone Structure. -- On peut compléter et enrichir notre Univers en définissant de nouveaux Objets, jointures, classes… Chapitre 3 : Créer un Univers étape par étape La définition des paramètres : -Définition : Un Univers est identifié par son nom et sa connexion à un SGBDR. Une description détaillée peut lui être associée Une connexion est un ensemble de paramètres permettant de se connecter à une base de données. Et qui est identifiée par son nom et son type : -Personnelle : spécifique à un utilisateur qui l’a créée et stockée dans le dossier LocData (fichier PDAC) - Partagé : Stockée par défaut dans le dossier ShData (fichier SDAC). - Sécurisé : Stockée dans le Référentiel, Le superviseur est celui qui attribue les droits sur ces connexions. Seul ce type de connexion autorise l’export d’Univers. -Résumé : visualise les informations générales sur l’Univers son auteur, contenu et date de mise à jour de l’Univers. -Stratégies : permettent de créer des objets et détecter les jointures et cardinalités sur les tables qui seront choisies pour construire l’Univers. -Restrictions : gère le contrôle d’accès aux ressources. -SQL : contrôle des requêtes et du SQL dans la définition de l’Univers. -Liens : permet la liaison dynamique avec d’autres Univers. Le choix des tables : Pour la sélection des tables il faut désactiver la création automatique des jointures, des cardinalités, des classes et des objets, activer le localisateur des tables qui affiche les tables de la BD précisée dans les paramètres de l’Univers, et puis organier les tables La commande Quadrillage du menu Affichage vous aide à aligner les tables dans la zone Structure. La commande Sauts de page du menu Affichage vous aide à voir comment les éléments se présentent sur une page. La création des jointures : -- Les tables sans jointures génèrent des produits cartésiens, et il est déconseillé de laisser dans un univers des tables isolées qui risquent de provoquer des produits cartésiens --Il y a quatre types de jointures : - Equi-jointure : repose sur l’égalité entre la colonne d’une table et la colonne d’une autre table. La même colonne est présente dans les deux tables. - Jointure externe : relie deux tables, dont l’une a des lignes qui n’ont pas de correspondance dans la colonne commune de l’autre table. La jointure externe traduit la cardinalité 0,1 ou 0, n. - Thêta jointure : repose sur un rapport autre que celui de l’égalité entre 2 colonnes : Comparaison de deux colonnes ou plus, utilisation de fonctions, utilisation de requêtes imbriquées - Auto-jointure : permet de définir une restriction au niveau de la table. La condition s’applique dès que la table est mise en jeu dans une requête. --Il y a trois méthodes de création de jointures : - création manuelle : Si l’option « Définir manuellement » est sélectionnée pour tracer un lien manuellement à partir d’une colonne d’une table vers la colonne d’une autre table ou aussi par la boîte de dialogue Editer une jointure -stratégie automatique : Si l’option « Extraire les jointures avec les tables » est sélectionnée -détection et création automatique des jointures : Si l’option « Extraire les jointures avec les tables » n’est pas sélectionnée. Cette commande n’a pas d’effet si vous avez sélectionné comme stratégie « Définir manuellement » -- la définition des cardinalités est tout à fait facultative. Les cardinalités permettront uniquement à l’assistant de proposer des solutions pour résoudre les éventuels problèmes de boucles dans le schéma. Détecter et résoudre les boucles : -- Une boucle est décrite lorsqu’il existe plusieurs chemins permettant d’aller d’une table A vers une table B -- La meilleure solution de résoudre une boucle est de créer deux Alias BusinessObjects qui vont permettre de casser la boucle. -- Un Alias est simplement un renommage logique d'une table sans aucune redondance physique d'information. -- Pour pouvoir détecter les alias, toutes les tables de la zone Structure doivent être préalablement reliées et les cardinalités doivent être définies. -- Il existe deux façons de créer des Alias : - Manuellement - Automatiquement : permet de détecter et d’indiquer automatiquement les tables qui provoquent des boucles et propose une liste d’alias à créer. -- Avant de passer à la création des nouveaux objets, il est impératif d’avoir résolu les problèmes de boucles par la création : - d’alias sur les boucles dues aux tables de libellés - de contextes pour le cas de boucles sémantiques - de raccourcis-jointures pour gérer les schémas dénormalisés La création des Classes et des Objets : --tous d’abord il faut vérifier si les jointures de l’Univers ont été correctement définies et les boucles du schéma relationnel de votre zone structure ont été résolues -- Une classe est un regroupement logique (métier) d’objets au sein d’un Univers et il peut contenir des objets de plusieurs tables physiques. Son objectif est de faciliter l’accès aux objets pour l’utilisateur qui construit sa requête, (environ 10 à 15 objets par classe mais jamais un seul objet dans une classe, 3 ou 4 niveau de classe au maximum et 5 au maximum de nombre de classes du même niveau). -- il y a deux types de classe : - classes d’entités : Ce sont les entités du système d’informations issues du schéma relationnel de la base concernée. Ils contiennent les Objets qui sont : les propriétés, identifiants, objets avec conditions, dates, conditions prédéfinies, et objets utilisant les fonctions spéciales du module. Ces Classes peuvent contenir des Objets ou des sous-Classes qui contiendront à leur tour des Objets. - classes d’indicateurs : contiennent des Objets calculés spécifiques du Métier se détachant du Modèle Physique (comptage, somme,…). Ces Classes contiennent des Objets de traitement de l’information et de consolidation (30% environ d’un Univers). Ces classes permettent de faire apparaitre les objets de calculs soit dans une seule classe, ou dans plusieurs classes groupés ou intégrer les comptages dans les classes d’entités -- Dans BusinessObjects, les identifiants permettent : - d’assurer l’unicité (pour éviter des regroupements par homonymie) - d’optimiser les conditions dans les requêtes -- pour l’analyse multidimensionnelle, l’objet a les qualifications suivantes : - Dimension : éléments clés pour les analyses des Utilisateurs et pour les dimensions de type Date, vous pouvez créer une Hiérarchie basée sur le temps. - Indicateur : contenant une information dérivée d’un calcul (Nombre de clients, Chiffre d'affaires, …). - Information : un complément d’information sur des Dimensions (numéro de téléphone, adresse,…). -- On peut définir une liste de valeurs associée à un objet sur le poste de l’utilisateur dans un fichier .lov dans un sous répertoire portant le nom de l’univers sous l’arborescence Userdocs. Cette liste de valeurs fait référence aux données de l’entreprise et aux données personnelles. Si la liste de valeurs est modifiée côté Designer, elle devra être exportée dans le référentiel afin d’impacter les utilisateurs lors de la manipulation de celle-ci. La création des Hiérarchies : Mettre en œuvre l’analyse multidimensionnelle -- Une Hiérarchie est un conteneur de Dimensions ; par exemple la Hiérarchie du nom Clients regroupera les Objets de type Dimension Pays, Région, Ville, Nom ... -- Les Hiérarchies représentent les axes d’analyse disponibles en mode exploration BusinessObjects offre deux possibilités d’analyses multidimensionnelles: -La rotation des Axes d’analyse (dimension) : permet à l’utilisateur d’analyser les informations sous des perspectives différentes. - L’Analyse Descendante : permet de naviguer au travers de niveaux hiérarchiques de détails. Chapitre 5 : Création d’objets dynamiques Le module Designer propose un groupe de fonctions spéciales, indépendantes du SGBDR cible, appelées “Fonctions@”, et l’utilisation de ces fonctions rend la définition des Objets dynamique et indépendante de la base de données. Qui sont : @Prompt : La fonction @Prompt permet de créer des Objets Interactifs, utilisée dans Select ou Where. Lors du déclenchement de la requête, une question sera posée à l’Utilisateur. Syntaxe : @Prompt (‘question’,’type de la réponse A, N ou D’, ‘lov‘, mono/multi, free/constrained) -lov (optionnel) : liste de valeurs associée (soit une seule valeur ‘val’ ou plusieurs {‘val1’,’val2’,...}, ou le nom d’un Objet ‘NomClasse\ NomObjet’) -Mono/multi (optionnel) : renseigner qu’une seule valeur \ plusieurs -free\constrained (optionnel) : une valeur au choix \ obligation @Variable : La fonction @Variable vous permet de faire référence à une valeur attribuée à un nom ou à une variable pour définir des Objets Syntaxe : @Variable (‘mavariable’) mavariable peut être des variables SQLBO ou des variables systèmes de BusinessObjects (BOUSER=’nom d’utilisateur BO ’, BOPASS=’son mot de passe’) et de SGBDR (nom de la base, mot de passe, chaîne de connexion,...), peut être aussi des variables SQLBO et avec nos propres variables, et peur être des variable d’objet interactif ou nos propre variable. @Select : La fonction @Select permet d’utiliser l’équivalent Select d’un Objet dans la définition de nouveaux Objets dans la définition de nouveaux Objets pour créer un lien dynamique entre les objets, la mise à jour de l’objet, et aussi pour décomposer la création d’objets complexes en objets plus Syntaxe : @Select (Nom de la Classe \ Nom de l’Objet) @Where : La fonction @Where permet d’utiliser l’équivalent Where d’un Objet dans la définition de nouveaux Objets. Syntaxe : @Where (Nom de la Classe \ Nom de l’Objet) @Script : La fonction @Script permet de récupérer les résultats d’un script exécuté dans le module Utilisateur. Syntaxe : @Script (‘variable’,’type’,’script name’) @Aggregate_Aware : La fonction @Aggregate_Aware permet de définir des Objets utilisés pour la navigation agrégée. Syntaxe : @Aggregate_Aware (argument1, argument2,...) Les tables d’agrégats se sont les tables qui contiennent des informations pré-calculées (chiffre d’affaire par année, par pays,…) utilisés pour optimiser les temps de réponse de certaines requêtes. L’utilisation : - Insérer la table d’Agrégats dans le schéma et définir les Jointures si nécessaire - Résoudre les éventuels problèmes de boucles en créant un contexte d’utilisation de la table d’Agrégats définissant uniquement les jointures sur les tables compatibles avec la table d’agrégats - Modifier l’objet en utilisant la fonction @Aggregate_Aware @Aggregate_Aware (Définition1, Définition2,...) du plus agrégé au moins agrégé -Définir les Objets incompatible et élaborer les requêtes Dans Reporter - Visualiser le SQL avant déclenchement Chapitre 5 : Approfondir les connaissances -- Les Univers dérivés sont des Univers qui ont des éléments en communs : paramètres, classes, objets, jointures, contextes,… servant de base pour la construction d’Univers plus personnalisés, et la modification d’un élément de l’Univers de référence implique la mise à jour dans les Univers dérivés. Dans l’utilité de partager des éléments communs entre plusieurs Designers. -- il existe trois approches d’Univers dérivé : - Noyau : Le ‘noyau’ contient les éléments communs en ajoutant des objets dans les univers fils et qui a une mise à jour automatique - maître : Le ‘maître’ contient tout, et les objets seront cachés et il y a un seul univers à maintenir - composant : Le ‘composant’ il a une vision global ou transversale d’un métier en Assemblant plusieurs univers -- Les conditions requises permettant de relier des Univers à l’Univers de référence sont les suivantes • Il repose sur la même base de données que l’Univers actif • Il est sécurisé (présent dans le Référentiel) • Les autorisations de liens sur cet Univers ont été attribuées • Il n’est pas verrouillé par un autre Designer • Il n’est relié à aucun autre Univers -- La liaison s’opère dans les paramètres de l’Univers à lier où vous devez indiquer l’Univers de référence, et par la suite Le designer pourra compléter son Univers : en insérant de nouvelles Classes et Objets ou en masquant des Classes et Objets provenant de l’Univers de référence -- Le dossier UNIVERSE : contient les fichiers *.unv de définition des Univers qui sont limités à 8 caractères pour la compatibilité entre plates-formes. -- Ressources Univers : 6 éléments peuvent être configurés avec la boîte de dialogue "Propriétés de l’Univers" pour répondre aux besoins d'un utilisateur ou d'un groupe précis. Les trois premiers éléments (la Définition de l’Univers, Contrôles, et options SQL) ont été définis par le Designer mais peuvent être modifiés pour les adapter à un utilisateur ou à un groupe. Seul un Superviseur peut renseigner les trois suivants (des restrictions sur des Objets « l’accès » et Lignes « limiter les lignes traitées », Correspondance de tables « substituer une table à une autre »). -- Les paramètres de contrôles : il y a 4 paramètres pour empêcher des requêtes excessives (nombre de lignes) ou des temps d'exécution trop long : (a) la taille maximum du résultat de la requête (nombre de lignes), (b) le temps maximum d'exécution de la requête, (c) un alerteur sur le coût estimé de la requête: fournit un message d'alerte à l'utilisateur si la requête excède les paramètres de temps spécifiés, dans le but de favoriser l'usage du batch (uniquement pour les bases de données qui le permettent), (d) la taille maximum des objets de type LONG : un objet de type Long peut avoir une taille entre 65000 et 4Go.