Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2010, 18h39   #1
Membre régulier
 
Avatar de schkrumble
 
Inscription : mai 2008
Messages : 134
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France

Informations forums :
Inscription : mai 2008
Messages : 134
Points : 86
Points : 86
Par défaut Incompatibilité de variables issues de 2 requêtes

Bonjour,

Je cherche à créer une requête me permettant d'identifier les incohérences entre deux bases de données.
Pour faire simple, j'ai des projets, enregistrés dans une base, auxquels on a affecté des codes analytiques, et que l'on a exportés dans une seconde base, mais il a pu arriver que des modifications aient été apportées à certains codes analytiques APRES l'export. Je veux identifier ces cas.

Voici comment je m'y suis pris :
  1. Je crée une première requête sur un premier univers (correspondant à ma première base de donnée) et je ramène 2 champs :
    ID_Projet1 ; Code_Analytique1
  2. Je crée une deuxième requête sur un deuxième univers et je ramène 2 champs :
    ID_Projet2 ; Code_Analytique2
  3. Je crée un objet de type information Info_Code_Analytique1 =<Code_Analytique1> et lié à la dimensions ID_Projet1.
  4. Je crée un objet de type information Info_Code_Analytique2=<Code_Analytique2> et lié à la dimensions ID_Projet2.
  5. Je lie les dimensions ID_Projet1 et ID_Projet2.
  6. Je crée un tableau unique avec trois colonnes :
    ID_Projet1 ; Info_Code_Analytique1 ; Info_Code_Analytique2
Jusque là ça marche. J'ai un joli tableau avec plein de lignes et je peux constater qu'il y a quelques lignes où mes codes analytique diffèrent.
La seconde étape consiste à filtrer les seules lignes où il y a des incohérences, c'est là que je flanche :

Lorsque j'essaie une formule
= Si (<Info_Code_Analytique1>=<Info_Code_Analytique2>) Alors "OK" Sinon "Erreur"
BO me renvoie ce message d'erreur :
Les variables utilisées dans la formules ne sont pas compatibles. (DMB0008)

Quelqu'un a une idée ?
schkrumble est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 23h53   #2
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 274
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 274
Points : 5 674
Points : 5 674
Bonjour,

Ce n'est pas évident, car la technique de passer par des objets de type information est en fait une parade pour contourner ce message d'erreur justement...

Il est possible que lors d'une opération sur ces éléments BO retourne au niveau le plus haut, à savoir les dimensions, et que par conséquent l'erreur est retournée.

Néanmoins, ce que tu peux tester, c'est de laisser l'un des deux libellés en dimension (il n'est d'ailleurs pas nécessaire que les deux soient en information pour que ça fonctionne) pour effectuer ta comparaison... Mais c'est sans garantie.

Une toute autre solution pourrait consister à utiliser l'opérande "utiliser les résultats d'une autre requête" pour identifier tes différences.

Par exemple, si tu veux repérer les noms qui sont différents dans ta requête 2, il te suffit de créer ta requête 2 de la façon suivante :

Objets du résultat :
ID, Nom, etc...
Conditions :
Nom Pas Dans Liste ---> Requête 1 . Nom

Ceci, bien sûr, à condition que la requête 1 ne ramène pas plus de 1000 résultats.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 09h27   #3
Membre régulier
 
Avatar de schkrumble
 
Inscription : mai 2008
Messages : 134
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France

Informations forums :
Inscription : mai 2008
Messages : 134
Points : 86
Points : 86
Citation:
Envoyé par TomDuBouchon Voir le message
Bonjour,
ce que tu peux tester, c'est de laisser l'un des deux libellés en dimension (il n'est d'ailleurs pas nécessaire que les deux soient en information pour que ça fonctionne) pour effectuer ta comparaison... Mais c'est sans garantie.
j''avais testé : échec
Citation:
Envoyé par TomDuBouchon Voir le message
Une toute autre solution pourrait consister à utiliser l'opérande "utiliser les résultats d'une autre requête" pour identifier tes différences.

Par exemple, si tu veux repérer les noms qui sont différents dans ta requête 2, il te suffit de créer ta requête 2 de la façon suivante :

Objets du résultat :
ID, Nom, etc...
Conditions :
Nom Pas Dans Liste ---> Requête 1 . Nom

Ceci, bien sûr, à condition que la requête 1 ne ramène pas plus de 1000 résultats.
Cette solution supposerait aussi que mes deux requête tapent sur le même univers, non ?
schkrumble est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 09h53   #4
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 274
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 274
Points : 5 674
Points : 5 674
Non, pas nécessairement
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 10h01   #5
Membre régulier
 
Avatar de schkrumble
 
Inscription : mai 2008
Messages : 134
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France

Informations forums :
Inscription : mai 2008
Messages : 134
Points : 86
Points : 86

peux-tu décrire la manip ? parceque là je ne vois pas trop comment on peut faire...
schkrumble est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 10h04   #6
Futur Membre du Club
 
Homme David TRICQUET
Développeur décisionnel
Inscription : avril 2009
Messages : 35
Détails du profil
Informations personnelles :
Nom : Homme David TRICQUET
Localisation : France

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : Finance

Informations forums :
Inscription : avril 2009
Messages : 35
Points : 19
Points : 19
Salut,

Alors c'est un peu de la bidouille, mais effectivement lorsque tu travailles sur des dimensions (ou informations) de requêtes différentes, ce message apparaît.

Est-ce que tu peux essayer la formule suivante (ou la variable) :
=Comparer(Max.(<Info_Compte_1>) ,Max.(<Info_Compte_2>))

En la déclarant comme indicateur ?

Ensuite tu devrais pouvoir faire un alerteur ou un filtre sur la valeur 0 retournée par ta variable ....
daz93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 10h50   #7
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 274
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 274
Points : 5 674
Points : 5 674
En fait, il n'y a pas de manipulation particulière...
Lorsque tu saisis ta condition "Nom" Pas dans Liste, ensuite dans l'opérande tu choisis "Sélectionner les résultats d'une autre requête". Après tu n'as plus qu'à choisir la requête concernée, puis l'objet à comparer.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 14h19   #8
Membre régulier
 
Avatar de schkrumble
 
Inscription : mai 2008
Messages : 134
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France

Informations forums :
Inscription : mai 2008
Messages : 134
Points : 86
Points : 86
Citation:
Envoyé par TomDuBouchon Voir le message
En fait, il n'y a pas de manipulation particulière...
Lorsque tu saisis ta condition "Nom" Pas dans Liste, ensuite dans l'opérande tu choisis "Sélectionner les résultats d'une autre requête". Après tu n'as plus qu'à choisir la requête concernée, puis l'objet à comparer.
OK, autant pour moi, je confondais avec "créer une sous-requête".
Ceci dit ça ne résout pas complètement mon problème puisque mon souci de correspondance ne se pose pas sur un seul objet mais sur une association entre deux objets.
Peut-être qu'en créant un objet qui soit la concaténation de deux autres...


Citation:
Envoyé par daz93 Voir le message
Salut,

Alors c'est un peu de la bidouille, mais effectivement lorsque tu travailles sur des dimensions (ou informations) de requêtes différentes, ce message apparaît.

Est-ce que tu peux essayer la formule suivante (ou la variable) :
=Comparer(Max.(<Info_Compte_1>) ,Max.(<Info_Compte_2>))

En la déclarant comme indicateur ?

Ensuite tu devrais pouvoir faire un alerteur ou un filtre sur la valeur 0 retournée par ta variable ....
Piste intéressante...
En m'y prennant de la sorte je peux effectivement faire un alerteur et même mettre en place un tri.
Mais si je veux faire filtre BO me renvoie cette erreur : Impossible d'utiliser un agrégat dans filtre complexe
domage ça marchait presque !
schkrumble est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h22.


 
 
 
 
Partenaires

Hébergement Web