Retour

Croiser les dimensions issues de requêtes différentes dans un même tableau

Temps de lecture : 2 minutes

Version : SAP BusinessObjects 4.2

Application : Web Intelligence

Prérequis : Aucun

Procédure :

Dans ce tutoriel, découvrez comment utiliser les dimensions issues de requêtes différentes dans un même tableau.

Ouvrez un document Web Intelligence multi-requête et positionnez-vous sur un rapport. Dans notre exemple, voici les deux requêtes utilisées :

  • Requête 1 : Ville, Adresse, Code postal et Etat
  • Requête 2 : Ville, Longitude et Latitude

Afin de croiser nos données, il faut dans un premier temps fusionner les dimensions Ville issues des deux requêtes. Je souhaite dès à présent ajouter la longitude à mon premier tableau (de gauche) :

Après avoir réalisé la fusion, il est toujours impossible de croiser les dimensions, le message « Impossible de déposer ici – l’objet est incompatible » vous empêche de faire cela.

Dans l’exemple ci-dessous, nous ne pouvons pas récupérer la dimension Longitude avec les données de mon premier tableau :

Pour y remédier, il faut créer une variable de type Détails (ou Attribut) qui renvoie la dimension Longitude et dont la dimension associée est Ville. Ainsi, Longitude devient une information de Ville.

Astuce : Selon l’interface (Web Intelligence Rich Client, zone de lancement BI, Outil de Conception d’Information), l’élément de détail d’une dimension peut avoir une nomenclature différente. On retrouve le plus souvent les termes d’Attribut, Détails et Information.

Maintenant, glissez/déposez simplement la variable Long Ville précédemment créée.

Vous savez désormais comment utiliser des dimensions issues de requêtes différentes dans un même tableau.

Pour aller plus loin dans votre réflexion et faire les bons choix, téléchargez notre guide de migration qui vous aidera à définir votre trajectoire BI.

A l’issue de votre lecture, vous en saurez plus sur la méthode MOVE pour réussir votre migration :

Guide migration SAP BI 4.3

Laisser un commentaire

-
  1. J’arrive à placer dans un rapport des dimensions provenant de plusieurs requêtes liées par une fusion de dimensions.
    Mais je n’arrive pas à placer des indicateurs. Le résultat est vide alors que l’indicateur est valorisé dans la requête dont il est issu.
    Y a t’il un moyen de procéder ?

    1. Bonjour,

      Pour que les indicateurs se valorisent correctement dans un tableau utilisant des dimensions issues de plusieurs requêtes, il faut fusionner les dimensions communes des différentes requêtes. Je vous invite à consulter notre tutoriel à ce sujet : https://japprendslabi.fr/sap/sap-bi-web-intelligence-fiori/fusion-de-dimension/

      Bonne journée.
      Romain CARRETERO

  2. Bonjour,

    Pour reprendre votre exemple, supposons qu’il existe plusieurs longitudes différentes pour une même ville.

    Dans ce cas la cellule accueillant la variable construite selon vos indications va afficher #VALEURMULTI

    Existe-t-il une solution qui permette d’afficher les différentes longitudes les unes sous les autres dans la même cellule plutôt que la mention #VALEURMULTI

    Merci

    1. Bonjour,

      En effet, dans votre cas il faudrait tenter de créer une variable sur la dimension ville de type attribut avec comme dimension associée la longitude.

      Romain CARRETERO

  3. Bonjour,
    J’ai deux requêtes (une qui provient d’un univers et l’autre d’un fichier xlsx), je désire les fusionner. Pour cela je dois créer une variable (Concatenation) ce me permettra d’eviter les Multiplevalues.
    Cela est-il possible ?
    Merci

    1. Bonjour,

      Je vous confirme qu’il est possible de réaliser des fusions de données à partir de variables.

  4. Bonjour,
    J’ai deux requêtes de fournisseurs différents dont le dénominateur commun doit être retravaillé via une variable. L’objectif est d’extraire toutes les occurrences qui sont dans la requête 1 et qui ne sont pas dans la requête 2 et vis et versa. Dans la 1er j’ai un objet code postal sur 6 caractères (ex : 075000) et dans la requête 2 j’ai un objet code postal sur 5 caractères (ex : 75000). Le mieux aurait été d’harmoniser à la source mais ce n’est pas possible. Une fois la variable créée et fusionnée afin d’être sur 5 caractères, et lorsque je veux faire apparaitre les valeurs présentes dans la req1 et pas dans la req2, BO complète toutes les valeurs. Voici le résultat que j’obtiens :
    REQ1 : valeur de la variable (Var_CP_5_car de type dimension) 75000 ; 75001 ; 75002
    REQ2 : valeur (75000 ; 76000 ; 77000)
    Fusion : Var_CP_5_car + REQ2.code postal
    Var_Filtre : si Var_CP_5_car = REQ2.code postal alors 1 sinon 0
    Résultat obtenu :
    – col 1 : Var_CP_5_car = 75000 ; 75001 ; 75002 ; 76000 ; 77000
    – col 2 : REQ2.code postal = 75000 ; 75001 ; 75002 ; 76000 ; 77000
    – Var_Filtre : 1 ; 1 ; 1 ; 1 ; 1
    => Hors je m’attendais à ne pas avoir les valeurs qui ne sont pas présent dans les requêtes respectives sachant que j’ai coché l’option « étendre les valeurs des dimensions fusionnnées »
    Comment est ce possible d’arriver au résultat suivant ?
    – col 1 : Var_CP_5_car = 75000 ; 75001 ; 75002 ; «  » ; «  »
    – col 2 : REQ2.code postal = 75000 ; «  » ; «  » ; 76000 ; 77000
    – Var_Filtre : 1 ; 0 ; 0 ; 0 ; 0

    1. Bonjour,

      Je ne pense pas que vous puissiez faire cela directement dans la document Web Intelligence car la fusion de dimension dans Web Intelligence correspond à une jointure interne en SQL (on ne travaille donc que les valeurs communes aux deux requêtes).
      En général, pour ce type de demande, nous utilisons une sous requête (lors de la création des requêtes) qui va nous permettre de sortir les codes postaux présents dans une requête mais pas dans l’autre. Malheureusement dans votre cas ceci n’est pas applicable étant donné la différence de format entre les codes postaux.

  5. Bonjour,
    si dans la requête 2 j’ai la ville de Denver, comment faire pour qu’il y ait une ligne qui apparaisse en plus alors que la ville de Denver n’est pas dans la requête 1?

    1. Bonjour,

      Dans les options du tableau, cocher l’option « Afficher les lignes avec des valeurs de dimension vides ».

      Bonne journée,

  6. Annule et remplace
    * Bonjour
    j’ai 3 dimensions code, dim1 et dim 2
    le code peut dépendre de la dim1 ou de la dim2 donc en fonction de la dimension j’ai un code différent .
    moi ce que je souhaite faire c’est dans un meme tableau afficher dim1 | code | dim2 | code
    comment je peux résoudre ce problème svp
    Je vous remercie par avance .

    1. Bonjour,

      Vous pouvez tenter de créer deux variables :
      Code1 = [Code] Dans ([Dim1])
      Code2 = [Code] Dans ([Dim2])

  7. Bonjour,
    Je souhaite avoir le nombre d’évement non conseutif d’une ville ou chaque évement a une date et une date de fin.

    Donnée d’entrée:
    Ville Evenement Date Debut Date Debut Nombre d’évement
    Toulouse Evt1 14/02/2022 20/02/2022 1
    Toulouse Evt2 21/02/2022 02/03/2022
    Toulouse Evt3 03/03/2022 08/03/2022
    Toulouse Evt4 12/03/2022 15/03/2022 1
    Marseille Evt1 10/02/2022 20/02/2022 1
    Marseille Evt2 25/02/2022 01/03/2022 1
    Marseille Evt3 02/03/2022 08/03/2022

    Rapport Final:
    Ville Nombre évement
    Toulouse: 2
    Marseille: 3

    Je n’arrive pas a avoir le nombre d’évement sans afficher le détal des dates et utiliser la fonction précédent pour comparer les 2 dates (début et fin)

    Est-il possible de faire ce calcul dans BO et comment faire?
    Merci de votre aide.

  8. Bonjour,
    J’ai beaucoup avancé grâce à vos tutos mais là, je suis vraiment coincé.
    J’ai une première requête avec
    – id lot
    – nbre produits
    et une deuxième requête avec
    – id lot
    – nbre produits
    – étape

    Sachant que dans la deuxième requête, les « nbre produits » sont différents de la première parce que pour chaque lot, nous avons potentiellement plusieurs étapes et que ces étapes conduisent à un « nbre produits »

    Pour exemple :
    Req 1 id lot=001 nbre produits=20
    Req 2 id lot=001 nbre produits=20 Etape=Conditionnement
    id lot=001 nbre produits=40 Etape=Fabrication (différentes étapes de fab)
    id lot=001 nbre produits=30 Etape=Expédition (différentes étapes d’expédition)

    J’ai fusionné les deux « id lot » mais je voudrais faire un tableau du type
    id lot | nbre_produits (req 1) | Cond (req 2) | Fab (req 2) | Expé(req 2)

    Et j’avoue que j’ai essayé beaucoup de choses sans succès.

    Si quelqu’un à une piste, je suis preneur.
    Merci d’avance.