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 10/11/2006, 17h40   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Par défaut @prompt comme argument d'une fonction

Bonjour,
Je souhaiterais utiliser la fonction @prompt de BO comme argument d'une fonction créée sous SQL server et appelée via BO mais j'ai un message d'erreur "Synthaxe incorrecte vers ',' "
Pourtant cela fonctionne avec @Variable
Quel format de chaîne récupère-t'on par @Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free) quand l'utilisateurs sélectionne plusieurs valeurs ?
Dans le Reporter j'affiche Val1;Val2;Val3 mais je présume que l'ordre SQL interprété par BO doit être différent...
Merci de votre aide !
putéolien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2006, 17h45   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Au lieu de
Code :
ma_fonction equal @Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free)
tu pourrais tenter
Code :
ma_fonction IN @Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free)
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2006, 17h49   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
En fait je souhaite faire
MaFonction(@Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free))
où @Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free) est sensé être le paramètre d'entrée de la fonction...
putéolien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2006, 17h56   #4
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
hum dur...

Je pense qu'il te ramène une liste séparée par des guillemets ou des cotes mais surtout je ne pense pas que tu pourras appliquer ta fonction sur cette liste.

Les conditions dans BO sont ainsi : <objet> <opérateur> <valeur> donc à part en bricolant un objet particulier qui contienne déjà le prompt...

Tu arrives à passer une seule valeur à ta fonction ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2006, 18h00   #5
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Oui
J'arrive même à utiliser la fonction @Variable comme argument de ma fonction mais dans ce cas je ne peux saisir qu'une seule valeur d'entrée...
putéolien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2006, 18h14   #6
Invité de passage
 
Inscription : novembre 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 10
Points : 1
Points : 1
Pour info, la construction de l'objet est la suivante :
Clause WHERE
csecteurs LIKE (select fn_secteur(@Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free)))
La fonction doit renvoyer %Val1%Val2Val3%
Le tout est de trouver la valeur de @Prompt('Quel(s) Secteur(s)','A','Secteur\Code',multi,free) ...
putéolien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2006, 22h56   #7
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
J'ai fait pas mal de tests et je pense que c'est impossible de la manière dont tu veux le faire.

Voila ma théorie : ta fonction possède UN SEUL argument. Or quand tu sélectionnes plusieurs valeurs dans un prompt, BO exige une fonction OU un opérateur à plusieurs arguments (IN par exemple).

Donc tu ne peux pas espérer sélectionner une série de valeurs et que BO les passe comme un seul argument à ta fonction.

Par contre avec une fonction à N argument (3 dans ton cas, 1 pour val1, 1 pour val2 et 1 pour val3) ça marche très bien. Mais tu es limité en nombre d'arguments possibles, ce n'est pas flexible et ton utilisateur doit sélectionner les 3 valeurs unes par unes.

Tu nous diras ce que tu as trouvé, mais je pense qu'il est impossible de "tromper" BO en sélectionnant plusieurs valeurs et en le forcant à les insérer dans un seul argument.

A moins (peut-être) que l'argument de la fonction soit un tuple ou un objet de ce genre, qui est fait pour contenir plusieurs valeurs.

Autre question : est-ce possible de définir des fonctions à nombre d'arguments non limités ? Dans ce cas ça serait faisable.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 14h09   #8
Membre habitué
 
Inscription : mars 2006
Messages : 111
Détails du profil
Informations personnelles :
Âge : 49
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 111
Points : 116
Points : 116
Par défaut Utilisation d'une fonction dans un objet B.O.

Bonjour


Dans ton cas, le like ne fonctionnerait pas. je suis d'accord avec nuke_y. Il faut obligatoirement utiliser un IN

Dans le cas de confidentialité de données, j'ai créé une table d'utilisateur avec leur hiérarchie et suivant leur niveau hiérarchique, j'avais un champ FILTRE_HIERARCHIE qui mettait :

hiérarchie filtre
000000 %
010000 %
010100 0101%
060000 06%
060100 0601%
060103 060103%
080003 080003%

et ainsi de suite. Je n'utilisais pas de fonction mais j'aurais pu le faire.
Je peux ainsi utiliser l'objet de cette manière:

select ....
from ...
where hierarchie like (select FILTRE_HIERARCHIE from ...)

Essaye de te créer une table de transcodage si c'est possible.


Frédéric
frederic_s 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 15h07.


 
 
 
 
Partenaires

Hébergement Web