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 03/01/2008, 23h28   #1
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Par défaut [BO 5.1.9] Pb Filtre Complexe

Bonsoir à tous,

J'ai un petit problème au niveau d'un filtre complexe qui est paramétrer en global.

Si je créer un filtre complexe sur une dimension provenant d'une requête sql :

=<FormatCocli> <> "IFC " => Cela Fonctionne
=Gauche(<FormatCocli>, 5) <> "IFC " => Cela Fonctionne

Maintenant, supposons que je créer une variable qui a pour formule ="IFC ", les formules ci dessous fonctionnent aussi :

=<FormatCocli> <> <MaSociete> => Cela Fonctionne
=Gauche(<FormatCocli>, 5) <> <MaSociete> => Cela Fonctionne

Le problème est que ma variable <MaSociete>, qui est une dimension dans bo provient en réalité d'une requête sql et que je n'arrive pas à formater cette dernière afin de faire fonctionner correctement le filtre complexe.

J'ai beau essayer les fonctions relatives au caractères, rien y fait...

Quoi que je fasse, la comparaison ne fonctionne pas, cela me renvoie un type de variable imcompatible...

Avez-vous une petite idée sur mon problème ?

Merci pour votre aide.
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 23h38   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Il n'y a pas d'heure pour les braves, bonsoir.
Je pense
  • Qu'il faut que tu nous montre ce fameux SQL
  • Qu'il faut que tu vérifies dans le gestionnaire de données le type d'objet des deux termes de l'inégalité (dimensions sans doute)
  • Que tu compte le nombre de caractères de chacune des variables ou leur différence
Peut être cela nous fournira t il une piste
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 00h02   #3
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Salute Bruno2r,

Un truc hyper bizarre, c'est je viens de tester à nouveau et que cela fonctionne !

J'ai tapé la formule de ma variable <MaSociete> en tant que chaîne ="IFC "
Puis j'ai mis comme formule dans le filtre complexe
= <FormatCocli> <> <MaSociete>

Une fois cette opération réalisée, j'ai modifier ma variable <MaSociete> en remplaçant ma chaîne de 5 caractères "IFC " par ma variable de type dimension provenant de la requête sql et cela fonctionne nickel !

Par contre quand j'édite la formule du filtre complexe, malgrés que cela tourne bien, j'ai le message "variables de types imcompatibles".

Est-ce un bug ?

J'ai 2 requêtes, la première ramène pas mal d'info mais je ne peux y ajouter la condition qui m'éviterai de faire le travail du filtre complexe car ma première requête passe de 20 secondes à 6 minutes ! (Via odbc hyperfile)
J'ai essayé avec des requêtes imbriqués et avec plusieur types de conditions, c'est toujours aussi long !

J'ai donc une deuxième requête qui elle me ramène la variable <SOCIETE> à partir de laquelle je fais le tri dans BO.

Voici les 2 requêtes :

SELECT t1.naf, t1.cocde, t1.cocli, t2.coder, t2.echeance, t2.dat, t3.nbj1, t3.nj1, t3.nbj2, t3.nj2, t3.fdm
FROM affaire t1, echeanc t2
LEFT JOIN reglem t3 ON t2.coder = t3.coder
WHERE cocde = t2.cocde and t1.qteafrest > 0 AND t1.etataf <> 'S'


SELECT AUTREVAL AS SOCIETE
FROM PARAM
WHERE COPAR='CODEFOU'


Si je rajoute donc dans la requête 1 au niveau du where la condition and t1.cocli <> 'iFC' par exemple, je passe donc de 20 secondes à 6 minutes !

Cette condition me permettrai pourtant d'éviter la seconde requête et le tri complexe dans bo !

Cela fonctionne mais c'est pas le top !!!

Encore merci pour ta réactivité !

C'est fous !
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 00h31   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Bon je ne suis pas familiarisé avec hyperfile
et bossant dans Oracle je n'écris pas mes jointures comme ça
Mais es tu sûr de ton SQL ?
Code :
1
2
3
4
 SELECT t1.naf, t1.cocde, t1.cocli, t2.coder, t2.echeance, t2.dat, t3.nbj1, t3.nj1, t3.nbj2, t3.nj2, t3.fdm
FROM affaire t1, echeanc t2 
LEFT JOIN reglem t3 ON t2.coder = t3.coder
WHERE cocde = t2.cocde AND t1.qteafrest > 0 AND t1.etataf <> 'S'
Je ne comprends pas tes jointures
3 tables
affaire t1
echeanc t2
reglem t3
equijointure t1 t2 par codcde
jointure externe t2 t3 ?

par ailleurs peux tu faire
Code :
1
2
3
4
5
6
7
FROM 
(select * from affaire 
where cocli <> 'iFC'    and qteafrest > 0 AND etataf <> 'S') t1,
echeanc t2 
 LEFT JOIN reglem t3 ON t2.coder = t3.coder
WHERE cocde = t2.cocde
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 06h55   #5
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Salut Bruno2r,

Il faut se coucher de temps en temps ...
Je dois partir toute la journée (repas de fin d'année....)
J'ai rapidement essayé ta requête mais elle ne passe pas.
L' interpreteur de requête ne reconnaît pas le from en début de code.

J'ai testé plusieurs requêtes et c'est la seule qui fonctionne assez rapidement et qui me ramène des informations cohérentes ...

Sinon pour la requête c'est bien ça.

De retour ce soir, je testerai avec plus de temps.

@ ce soir et merci pour ton aide
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 09h57   #6
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Salut,
Mais non pas le from en début de sql
select ...... from ....
c'était juste pour corriger le "après from" mais bien sûr le select reste le même
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h05.


 
 
 
 
Partenaires

Hébergement Web