Création d'Univers Business Objects : Boucles et paramétrage

Christian Manzoni

Deuxième partie du tutoriel : Comment paramétrer son Univers, insérer des tables, comprendre les jointures et les cardinalités ; résoudre de trois façons les boucles.

- Titre : Création d'Univers Business Objects : Boucles et paramétrage

- Auteur : Christian Manzoni

- Parution : 26 juin 2008

- Mise à jour : 24 mai 2020

- Licence : Copyright ® 2008 Christian Manzoni. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Introduction

- I. Paramétrage de l'Univers

- II. Les tables

- II-A. Ajout dans la structure

- II-B. Organisation

- III. Les jointures et les cardinalités

- III-A. Les jointures

- III-B. Les cardinalités

- IV. Les boucles

- IV-A. Définition

- IV-B. Résolution des boucles

- V. Exercices

- Conclusion

- Liens utiles

- Remerciements

Introduction

Cette deuxième partie vous permettra de créer votre Univers sans l'aide de l'assistant à contrario du premier tutoriel que je vous conseille de lire avant : Tutoriel : Introduction et concepts de B.O. et création d' Univers avec l'assistant. Nous aborderons le paramétrage de votre Univers et nous ajouterons des tables à votre structure. Afin de comprendre et résoudre les boucles nous tâcherons de définir les cardinalités qui seront les mieux adaptées à notre Univers.

I - Paramétrage de l'Univers

Définition : cette étape consiste à définir les paramètres généraux de notre Univers, à savoir son nom, sa chaîne de connexion à la base de données, le résumé de ses caractéristiques techniques, des restrictions en termes de volume et de temps d'exécution…

Pour cela vous pouvez utiliser l'assistant de création automatique d'Univers ou effectuer les différentes opérations de manière manuelle, suivant ce que nous allons détailler à présent.

Création d'un Univers sans l'assistant : Menu Fichier/Nouveau

Modifier la définition des paramètres d'un Univers : Fichier/Paramètre

L'onglet « Définition »

- Nom de l'Univers.

- Description de l'Univers qui apparaîtra sous le module BO.

- Connexion à la base de données : vous devez à ce niveau choisir une connexion à la base de données parmi celles déjà définies, ou en créer une nouvelle en passant par le choix du driver à utiliser pour se connecter à la base visée.

En cliquant sur les boutons Nouveau ou Modifier de la fenêtre de paramétrage de l'Univers, vous accédez à la fenêtre de définition de la connexion proprement dite qui comporte trois onglets.

L'onglet « Identification » vous permet de définir :

* le nom de cette nouvelle connexion ;

* le moteur SGBD ;

* le login et le mot de passe du compte SGBD ;

* la chaîne de connexion ;

* le type de connexion :

- sécurisée (les caractéristiques de la connexion sont stockées dans le domaine « Sécurité » du référentiel et se trouvent dans le fichier OBJECTS.LSI,

- partagée (les caractéristiques de la connexion sont stockées dans un répertoire partagé nommé SDAC.LSI,

- personnelle (les caractéristiques de la connexion sont stockées sur un répertoire personnel nommé PDAC.LSI.

Le bouton « Tester » permet de tester la connexion et renvoie un message d'erreur en cas d'échec. Il est aussi possible de gérer les connexions par le menu : Outils/Connexion.

L'onglet « Propriétés étendues » vous permet de définir :

* la durée de connexion ;

* le mode connexion asynchrone (disponible selon le SGBD) qui permet de libérer le poste client lors de l'exécution de la requête ;

* l'activation ou non de l'estimation du coût de la requête (Option Estimate Cost est à activer auparavant au niveau du SGBDR) ;

* la taille de « l'Array fetch » qui est l'unité de volume de données rapatrié par le serveur lors du rapatriement des données d'une requête.

L'onglet « Résumé » :

Cet onglet vous permet de garder une trace de l'évolution de l'Univers actif et affiche notamment le nombre de classes, objets, conditions, tables, contextes et hiérarchies contenus dans l'Univers.

Il vous permet aussi de connaître la date de création avec l'auteur, la date de modification et le nombre d'exports de l'Univers (Révision).

L'onglet « Stratégie » :

Cet onglet vous permet de spécifier les stratégies de création automatique d'objets, de jointures et de cardinalités.

* Objets

Les stratégies sur les objets créent de manière automatique des classes correspondant à vos tables ainsi que des objets correspondant aux colonnes de vos tables en remplaçant les '_' par des blancs. On peut définir sa propre stratégie de manière à récupérer les noms des tables et des colonnes dans n'importe quel autre dictionnaire comme d'un AGL.

* Jointures

Les stratégies de détection automatique des jointures (dépendant de votre SGBD) sont typiquement des stratégies de création par homonymie (équijointure sur deux colonnes de même nom), par utilisation de clés, ou par utilisation des contraintes d'intégrité de votre SGBDR.

* Tables

Lit la structure de la table à partir des tables Système.

Le choix d'activer ces stratégies se fait via le menu : Outil/Option/Base de données

L'onglet « Restriction »

Propose des options par défaut qui vous permettent de contrôler l'utilisation des ressources système. Le Superviseur peut surcharger tous ces paramètres pour un groupe d'utilisateurs.

* Limiter le résultat à : limite le résultat de la requête à un nombre défini de lignes. L'utilisateur est prévenu que sa requête lui retourne un résultat partiel.

* Limite de l'exécution à : limite le temps d'exécution de la requête. La requête est interrompue si elle dépasse la durée définie.

* Avertir si le coût estimé excède : si le temps d'exécution de la requête dépasse le temps défini, Business Objects demande à l'utilisateur s'il veut continuer ou abandonner la requête.

* Limiter les objets de type long à : si un objet de type long (texte long, blob…) est utilisé dans l'Univers, on peut spécifier le nombre maximum de caractères que l'on retourne à l'utilisateur.

L'onglet « SQL »

Cet onglet permet de restreindre certaines conditions de création et d'exécution de la requête (produit cartésien, opérateur ensembliste, sous-requête, contextes multiples).

L'onglet « Liens »

Cet onglet s'utilise pour la création d'Univers dérivés à partir d'un Univers de base. Cette notion est décrite dans un prochain tutoriel.

II - Les tables

II-A - Ajout dans la structure

Ajouts de tables :

Afin de pouvoir insérer les tables nécessaires dans la structure de l'Univers, on utilise le localiseur de tables. Dans cette fenêtre on peut :

* sélectionner plusieurs objets en maintenant la touche [Ctrl] ;

* glisser-déplacer les tables dans la structure ;

* visualiser le contenu de la table via le menu contextuel quand la table est sélectionnée ;

* visualiser les tables présentes dans la fenêtre Structure, elles sont mises en évidence par une coche verte.

Pour faire apparaître le localiseur de table : menu Insertion/Tables ou encore utiliser le bouton contextuel dans la fenêtre Structure.

Pour supprimer une table, la sélectionner puis : Menu Edition/Couper ou encore utiliser la touche de suppression.

II-B - Organisation

Organisation des tables

Le menu Affichage permet de modifier l'affichage de la fenêtre Structure avec notamment les commandes Mode Liste (ouvre trois volets supplémentaires) et Quadrillage qui donnent les résultats ci-dessus.

En ce qui concerne l'affichage des colonnes dans une table, vous pouvez choisir un des trois types suivants (pour passer d'un mode à l'autre, double-cliquez sur vos tables) :

* le mode par défaut qui affiche un maximum de huit colonnes par table ;

* le deuxième mode qui n'affiche plus que le nom de la table ;

* le troisième mode qui affiche les colonnes concernées par les jointures.

Vous disposez de plusieurs options pour personnaliser votre affichage : Menu Outils / Options / Graphiques

Il est également possible de visualiser le contenu des tables sélectionnées : Menu Affichage / Contenu des tables

III - Les jointures et les cardinalités

III-A - Les jointures

Méthode de création des jointures

* Par les stratégies

La jointure peut être générée automatiquement si elle correspond aux stratégies prédéfinies. Menu Outils/Détecter les jointures ou cliquer sur le bouton dans la barre d'outils.

* Définition graphique

En traçant la jointure de colonne à colonne dans la fenêtre Structure (par défaut une équijointure est créée par une action de glisser-déplacer).

* Par les commandes du menu

Édition des jointures entre les colonnes de tables en relation ainsi que des critères de comparaison. Cette opération s'effectue au travers d'une fenêtre qui est également utilisée pour modifier des jointures créées par les deux autres modes. Menu Insertion/Jointure. La barre de formule vous permet de modifier directement l'expression d'une jointure une fois cette dernière sélectionnée.

Modification des propriétés d'une jointure

On peut modifier une jointure par l'intermédiaire de la fenêtre ci-dessous soit par :

* un double-clic sur la jointure ;

* Menu Edition (après avoir sélectionné la jointure) / Propriété de la jointure ;

* un clic droit sur la jointure et Propriétés de la jointure.

Détail de la fenêtre :

* Colonne de tables en jointure.

Jointures externes (cases à cocher).

Affichage des cardinalités (détectées ou saisie manuelle).

Raccourci jointure (case à cocher).

Expression de la jointure (indispensable pour jointures complexes).

La touche « Editer » accède à la fenêtre permettant de modifier les propriétés de la jointure (opérateurs, fonctions prédéfinies…).

Les différents types de jointures

* Équijointure (1,n)

Ce sont les jointures les plus simples constituées de l'égalité de deux colonnes présentes dans les deux tables en jointure.

* Thêta-jointure

Ce terme regroupe les jointures sur deux colonnes reposant sur un rapport autre que l'égalité (inégalité, utilisation de fonctions, autojointures).

* Jointure externe (0,n)

Ce sont les jointures reliant deux tables qui permettent de rapatrier les lignes d'une des tables qui n'ont pas de relation avec les lignes de la deuxième table (attention au sens de la jointure externe).

* Raccouri jointure

Il s'agit d'un concept spécifique à Business Objects qui permet de créer une jointure entre deux tables sans passer par le chemin (le plus long) qui existe par ailleurs. Dans ce cas on ne crée pas de boucles. Ce concept est détaillé dans le chapitre sur la résolution des boucles.

III-B - Les cardinalités

Cardinalité d'une jointure

La cardinalité énonce le nombre minimum et maximum d'occurrences d'une entité B, pouvant être associées à une entité A. Le nombre minimum et maximum d'occurrences peut être égal à 0,1 ou n.

Définir la cardinalité d'une jointure n'est pas une opération nécessaire au bon fonctionnement de l'Univers, toutefois cela permet à Business Objects de proposer la création d'alias, comme nous le verrons plus loin.

Pour détecter les cardinalités des jointures sélectionnées : Menu Outils / Détecter les cardinalités ou cliquer sur le bouton dans la barre d'outils.

IV - Les boucles

IV-A - Définition

Définition des boucles

Une boucle est un ensemble de jointures telles qu'il existe plusieurs chemins pour passer d'une table à l'autre.

Problème posé par les boucles

Lors de la sélection des objets dans les analyses ultérieures, la sélection peut s'avérer ambiguë, mettant ainsi BO dans l'impossibilité de choisir un chemin. Ex. :

On peut voir avec cet exemple une ambiguïté concernant les objets Customer et Service.

IV-B - Résolution des boucles

Il existe trois méthodes pour résoudre les boucles :

* les alias ;

* les contextes ;

* les raccourcis jointures.

Détection des boucles : Menu Outils / Détection des boucles

Les Alias

Un alias est un nom logique affecté à une table, qui permet de lever les ambiguïtés quand cette table fait l'objet d'utilisations différentes. C'est une copie logique d'une table (cette notion peut s'apparenter aux alias SQL).

L'alias porte un nom différent de la table à partir de laquelle il a été créé. Les alias sont des vues créées au sein des Univers BO. En aucun cas ceux-ci ne sont créés dans votre base de données.

Création d'un alias

* Assistée par Business Objects (si les cardinalités sont définies)

Menu Outils / Détecter les alias et choisir les noms proposés ou renommer les alias avant de les créer.

* Manuelle

Sélectionner la table, puis menu Insérer / Alias ou clic droit de la souris sur la table. Puis choisir le nom proposé ou renommer et établir les jointures portant sur ces alias.

Les contextes

Un contexte est un ensemble de liens définissant un chemin continu et ouvert, c'est-à-dire non bouclant. Les contextes permettent de ne voir, lors d'une requête, que l'une des branches de la boucle. La création de contexte sert uniquement à résoudre un conflit de chemin découlant de l'existence d'une boucle.

Création d'un contexte

* Assistée par le logiciel (si les cardinalités sont définies)

Menu Outils / Détecter les contextes. Le module Designer affiche une boîte de dialogue vous proposant une liste de contextes que vous pourrez créer pour résoudre les boucles.

* Manuelle

Menu Insérer / Contexte et nommer le contexte, puis sélectionner les jointures retenues.

En mode liste, le troisième volet affiche le nom des contextes de votre Univers. Si vous sélectionnez un nom de contexte dans le volet contextes, ses jointures apparaîtront à l'écran. Pour supprimer un contexte, sélectionner le nom du contexte dans le volet Contexte puis appuyer sur la touche Suppr.

Le raccourci Jointure

Lorsque deux tables ne sont pas directement reliées entre elles par des jointures Business Objects, le raccourci jointure permet, à la génération de la requête SQl, de court-circuiter toutes les tables intermédiaires, en ne mettant en application que cette jointure particulière.

Pour mettre en œuvre un raccourci jointure, il suffit de cocher la case dans la fenêtre « propriétés de la jointure ».

La jointure apparaît en pointillés. (cette jointure particulière ne génère pas de boucles).

V - Exercices

- Créez un nouvel Univers sans utiliser l'assistant.

- Choisissez la connexion « Club ».

- Définissez les stratégies, renommage des colonnes, homonymie sélective et cardinalités par défaut.

- Changez les restrictions : 1000 lignes de résultat, 5 minutes d'exécution et 500 caractères.

- Sauvez votre Univers.

- En partant de l'Univers vierge que vous avez créé précédemment, insérez les tables suivantes dans la structure de l'Univers.

* Service (Service)

* Type de service (Service_line)

* Lignes de facture (invoice_line)

* Lignes de réservation (reservation_line)

* Vente (Sales)

* Réservation (reservations)

* Lieux de séjour (resort)

* Clients (customers)

* Pays (country)

* Villes (city)

* régions (region)

Résultat attendu :

- Ajouter la table : tranche d'âge (Age_group)

Établissez les jointures entre les tables décrivant la réalité suivante.

- Un client habite dans une ville.

- Une ville est rattachée à une région.

- Une région est rattachée à un pays.

- Une vente est rattachée à un client.

- Une ligne de facture est rattachée à une vente.

- Un service est rattaché à une ligne de facture.

- Un service est rattaché à un type de service.

- Un type de service est rattaché à un lieu de séjour.

- Un lieu de séjour est rattaché à un pays.

- Une réservation est rattachée à un client.

- Une ligne de réservation est rattaquée à une réservation.

- Un service est rattaché à une ligne de réservation.

- Un client appartient à une tranche d'âge.

Résultat attendu :

Définissez les cardinalités de votre Univers afin qu'il reflète la réalité suivante :

- Un client appartient à une seule tranche d'âge.

- Un client habite dans une seule ville.

- Une ville appartient à une seule région.

- Une région appartient à un seul pays.

- Une vente ou une réservation sont effectuées par un seul client.

- Une ligne de facture appartient à une seule vente.

- Une ligne de réservation appartient à une seule réservation.

- Une ligne de facture ou une ligne de réservation sont passées pour un seul service.

- Un service appartient à un seul type de service.

- Un type de service appartient à un seul lieu de séjour.

- Un lieu de séjour appartient à un seul pays.

Résultat attendu :

Détectez les boucles dans la structure de votre Univers et utilisez les trois méthodes afin de les résoudre

- Vérifiez que toutes les boucles sont résolues et sauvez l'Univers.

Conclusion

Cette deuxième partie plus pratique vous a immergé dans la création des Univers sans l'assistant et vous permet de résoudre les problèmes des boucles de trois façons différentes.

Dans Le prochain tutoriel : Définition et création des classes, propriétés des objets, créer des conditions prédifinies, utilisez les fonctions et comprendre les hiérarchies.

Liens utiles

Tutoriel : Débutez avec le Designer de Business Objects

Tutoriel : SQL Server 2005 Integration Services : Import/export Excel

Tutoriel : Introduction et concepts de B.O. et création d' Univers avec l' assistant

Business Objects : DE L'UTILISATION ÉTENDUE DES FONCTIONS DATE

SAP-BO

Remerciements

Un grand merci pour l'équipe BI de développez.com et particulièrement à Fleur-Anne Blain pour sa disponibilité, ses corrections orthographiques et ses précieuses informations.

Un Grand merci à Franck (avoir travaillé avec toi fut un honneur) encore merci et à bientôt.