Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Designer
Designer Forum d'entraide Designer (création d'univers, etc.)
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 30/04/2008, 16h35   #1
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Par défaut [BO Xi R2] Univers et Procédures stockées

Rebonjour à tous (oui je pose beaucoup de questions...)

jusque là je devais migrer d'anciens rapports qui avaient comme fournisseur de données du SQL à la carte. Il y avait pas mal de filtres, et le SQL tapait sur une table qui était actualisée grâce à une procédure PL/SQL, cette procédure était jusque là appelée dans une appli VB qui permettait de faire de la planification sous BO V5. La planification étant basée sur un numéro de demande, ce nudem était ensuite passé en paramètre au sql à la carte.

Bref j'ai pu fusionner le tout dans le rapport, après avoir modifié un peu le pl et avoir mis cela dans le SQL à la carte :
Code :
1
2
3
4
5
6
7
8
BEGIN INFOBO.dgs_xi (
@variable('1. Service(s) ("3000" ou "3000; 3015; ...") ?'),
@prompt('2. Date début de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@prompt('3. Date fin de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
'A',
@variable('BOUSER'),
:returnset);
END;
Ca marche nickel, je n'ai même pas eu besoin de refaire les filtres, vu que je renvoi les données formatées de la même manière.

Le souci c'est que j'ai un rapport (trèèèèès gros), mais celui-ci tape sur des univers, la requête était faite à partir de l'éditeur de requête (Objets et classes)
Donc j'ai tenté de faire comme pour les autres rapports (ben ouai avec un peu de chance...) en insérant l'appel à la procédure dans l'éditeur de requête cette fois-ci (là où on peut lire la requête générée). mais lors de l'exécution j'ai une erreur :

Citation:
Exception: DBD, ORA-06550: Ligne 1, colonne 22 :
PLS-00103: Symbole "" rencontré à la place d'un des symboles suivants :

( ) - + case mod new not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable>
table avg count current exists max min prior sql stddev sum
variance execute multiset the both leading trailing forall
merge year month DAY_ hour minute second timezone_hour
timezone_minute timezone_region timezone_abbr time timestamp
interval date
<a string literal with character set specification>

State: N/A
Donc là je suis bien embeté....
D'une ça ne fonctionne pas. Et si ça ne fonctionne pas, je ne vois pas pour le moment comment je peux faire..

En gros il faudrait au pire refaire le rapport (mais alors là j'en ai pour 3-4 jours avec les erreurs en plus), en mettant cette fois-ci comme fournisseur de données la procédure comme je le veux et en refaisant tous les filtres....

A l'aiiiiide je me noie....

Merci
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 18h11   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Bonsoir,
Une question .... c'est quoi ça ?
Code :
1
2
@variable('1. Service(s) ("3000" ou "3000; 3015; ...") ?'),
peux tu essayer
Code :
1
2
 
@variable('1. Service(s) (3000 ou 3000; 3015; ...) ?'),
C'est tout aussi explicite comme libellé d'invite et ça ne pertubera pas Oracle.
__________________
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 01/05/2008, 13h39   #3
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Effectivement les guillemets n'apportent rien, je vais tester sans. (Il me semble que j'avais déjà essayé mais à voir).
Bon aujourd'hui pas de BO c'est le 1er mai !!

Merci

Affaire à suivre....
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 15h11   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Citation:
Envoyé par Demangef Voir le message
Effectivement les guillemets n'apportent rien, je vais tester sans. (Il me semble que j'avais déjà essayé mais à voir).
Bon aujourd'hui pas de BO c'est le 1er mai !!

Merci

Affaire à suivre....
Dommage le serveur aurait de super temps de réponse
__________________
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 02/05/2008, 08h51   #5
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Salut à tous,

Donc j'ai testé sans les guillemets, mais j'ai toujours la même erreur.

Il faut bien comprendre que j'insère le code de lancement de la procédure cette fois-ci dans l'éditeur de requête, pas dans le SQL à la carte !
Sur ce rapport, le fournisseur est un univers, et donc je modifie le sql qui à la base tape sur les univers.

C'est au moins accepté par BO ce que je tente ??

Merci
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 09h10   #6
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
J'ai du mieux. Enfin je crois...

J'ai inséré ceci cette fois :

Code :
1
2
3
4
5
6
CALL INFOBO.bas_xi (
@prompt('1. Service ?'),
@prompt('2. Date début de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@prompt('3. Date fin de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@variable('BOUSER'),
:returnset)
Donc ici je n'ai qu'une seule instruction, ça passe déjà mieux mais :
Citation:
Erreur de syntaxe dans une variable (QP0018)
Si je fais :

Code :
1
2
3
4
5
6
CALL INFOBO.bas_xi (
@variable('1. Service ?'),
@prompt('2. Date début de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@prompt('3. Date fin de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@variable('BOUSER'),
:returnset)
J'ai :

Citation:
Exception: DBD, ORA-01008: Toutes les variables ne sont pas liées
State: N/A
Yé cherche encore...
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 09h15   #7
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Citation:
Envoyé par Demangef Voir le message
Salut à tous,

Donc j'ai testé sans les guillemets, mais j'ai toujours la même erreur.

Il faut bien comprendre que j'insère le code de lancement de la procédure cette fois-ci dans l'éditeur de requête, pas dans le SQL à la carte !
Sur ce rapport, le fournisseur est un univers, et donc je modifie le sql qui à la base tape sur les univers.

C'est au moins accepté par BO ce que je tente ??

Merci
Oui si tu as les droits pour c'est à dire Modifier le SQL autorisé.
Code :
1
2
3
4
5
6
7
8
BEGIN INFOBO.dgs_xi (
@variable('1. Service(s) ("3000" ou "3000; 3015; ...") ?'),
@prompt('2. Date début de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@prompt('3. Date fin de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
'A',
@variable('BOUSER'),
:returnset);
END;
C'est normal que le type de donnée ne soit pas renseigné dans tes @prompt ?
__________________
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 02/05/2008, 09h19   #8
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Citation:
Error Messages Explained 73
Syntax error in variable. (QP0018)
Cause This error occurs when one of the objects in the query contains an @Prompt
or an @Variable that is incorrectly defined in the universe.
Action The universe designer needs to redefine the @Prompt or @Variable in the
universe with Designer.
Syntax of @Prompt
The syntax of the function is as follows:
@Prompt(‘message’,[‘type’],[lov],[MONO|MULTI],[FREE|CONSTRAI
N])
where
• message is the text of a message within single quotes.
• type is one of the following: ‘A’ for alphanumeric, ‘N’ for number, or ‘D’ for
date.
Data Access Error Messages 5
• lov can be either:
• a list of values enclosed in brackets (each value must be within
single quotes and separated by commas); or
• the name of a class and object separated by a backslash and within
single quotes.
• MONO means that the prompt accepts only one value.
MULTI means that the prompt can accept several values.
• FREE refers to free input as opposed to CONSTRAIN, which means that
the end user must choose a value suggested by the prompt.
Note: The last four arguments are optional. However, if you omit an
argument, you must still enter the commas as separators.
Syntax of @Variable
The syntax of the function is as follows:
@Variable(‘myname’)
where myname can be one of the following:
• The text of an interactive object previously created with the @Prompt
function; i.e. the first argument entered in the @Prompt function.
• A BusinessObjects system variable such as BOUSER. These variables
represent respectively the user name and password forming the user
identification. System variables also exist for the connection to the
RDBMS.
For more information on the correct syntax for defining @Prompt or
@Variable, refer to the Designer’s Guide.
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 09h23   #9
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Citation:
Envoyé par Bruno2r Voir le message
C'est normal que le type de donnée ne soit pas renseigné dans tes @prompt ?
Ils le sont :
'jj/mm/aaaa', avec les fournisseur SQL à la carte, cela passe.
En fait j'utilise cette méthode, car l'entrée de la procédure est en DATE. Cela permet à l'utilisateur de rentrer la date de cette façon :
Citation:
01/12/2007
au lieu de :
Citation:
01/12/2007 00:00:00
J'ai testé avec un 'D', mais j'ai :
Citation:
Exception: DBD, ORA-01008: Toutes les variables ne sont pas liées
State: N/A
Et précision encore, la procédure que j'utilise est INFOBO.bas_xi et non pas dgs_xi.
Le call doit donc être :
Code :
1
2
3
4
5
6
CALL INFOBO.bas_xi (
@variable('1. Service ?'),
@prompt('2. Date debut de periode (jj/mm/aaaa) : ','D',,Mono,Free),
@prompt('3. Date fin de periode (jj/mm/aaaa) : ','D',,Mono,Free),
@variable('BOUSER'),
:returnset)
Je me demande s'il accepte le returnset.
Ou si ce n'est pas un problème de variable non initialisée.
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 09h32   #10
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Elle marche cette requête en manuel sans type de donnée dans le prompt ?
__________________
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 02/05/2008, 09h36   #11
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Si tu parles de :

Code :
1
2
3
4
5
6
7
8
BEGIN INFOBO.dgs_xi (
@variable('1. Service(s) ("3000" ou "3000; 3015; ...") ?'),
@prompt('2. Date début de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
@prompt('3. Date fin de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
'A',
@variable('BOUSER'),
:returnset);
END;
Oui, cela passe lorsque c'est appelé dans le SQL à la carte. Je génère des rapports grâce à ça.

J'ai pompé cela sur un forum anglophone.
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 09h45   #12
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Citation:
Oracle/PLSQL: ORA-01008 Error

--------------------------------------------------------------------------------
Error:
ORA-01008: not all variables bound
Cause:
You tried to execute an SQL statement that contained substitution variables where all variables were not bound.
Action:
The options to resolve this Oracle error are:
In OCI, try using an OBIND or OBINDN call to substitute the values.
Apparement il faudrait que les variables soient initialisées.

Je ne capte pas trop pourquoi l'appel fonctionne dans le SQL à la carte mais pas dans l'éditeur de requête....

Donc pour faire un point j'en suis là :
Code :
1
2
3
4
5
6
CALL INFOBO.bas_xi (
@variable('1. Service ?'),
@prompt('2. Date debut de periode (jj/mm/aaaa) : ','D',,Mono,Free),
@prompt('3. Date fin de periode (jj/mm/aaaa) : ','D',,Mono,Free),
@variable('BOUSER'),
:returnset)
qui me retourne lors de la vérification :
Citation:
Exception: DBD, ORA-01008: Toutes les variables ne sont pas liées
State: N/A
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 09h57   #13
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Je m'excuse d'insister mais je ne comprends toujours pas la syntaxe de tes prompts
Code :
@prompt('2. Date début de période (jj/mm/aaaa) : ','jj/mm/aaaa',,Mono,Free),
Moi j'aurais fait
Code :
@prompt('2. Date début de période (jj/mm/aaaa) : ','D',,Mono,Free),
Enfin je vien d'essayer ça marche aussi donc c'est pas ça
__________________
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 02/05/2008, 10h01   #14
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6

Oui je comprend ton désaroi

Mais sache que j'utilise cela dans le SQL à la carte, non pas dans l'éditeur de requête.
Comme je l'ai dit :
j'utilise cette méthode, car l'entrée de la procédure est en DATE. Cela permet à l'utilisateur de rentrer la date de cette façon :
01/12/2007
au lieu de :
01/12/2007 00:00:00

Sinon il faudrait toucher à un fichier PRM (champs USER_INPUT_DATE) je crois...

Mais le problème n'est pas là, j'ai cette fois standardisé en utilisant 'D', et j'ai le message d'erreur pré-cité.

Je me demande si on peut vraiment appeler une procédure avec l'éditeur de requête...
Demangef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 10h25   #15
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Je ne crois pas que cela soit possible dans une requête basée sur l'univers ...
Il faudrait passer
__________________
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 02/05/2008, 10h25   #16
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Je ne crois pas que cela soit possible dans une requête basée sur l'univers ...
Il faudrait passer en
__________________
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 02/05/2008, 10h25   #17
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Je ne crois pas que cela soit possible dans une requête basée sur l'univers ...
Il faudrait passer en SQL
__________________
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 02/05/2008, 10h25   #18
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Je ne crois pas que cela soit possible dans une requête basée sur l'univers ...
Il faudrait passer en SQL à
__________________
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 02/05/2008, 10h25   #19
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 185
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 185
Points : 2 724
Points : 2 724
Je ne crois pas que cela soit possible dans une requête basée sur l'univers ...
Il faudrait passer en SQL à la carte
__________________
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 02/05/2008, 10h27   #20
Invité régulier
 
Inscription : avril 2008
Messages : 36
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 36
Points : 6
Points : 6
Bon ben je suis comme qui dirait dans le caca...

Le soucis, c'est qu'il y a plein de filtres et de formules, mais ceux-ci utilisent le fournisseur basé sur l'univers.
Or si je met du SQL à la carte, je dois modifier/refaire TOUTES ces variables (si on veut les filtres pointent sur l'adresse du fournisseur, non pas vers la valeur, le nom) !!!
Donc j'aurais beau nommer le fournisseur SQL à la carte de la même manière, les formules utiliseront toujours le fournisseur univers.

En plus le SDK pour les macro est hyper limités, notamment sur la récupération des élements du document...

Tu n'as pas une idée pour faire la transition vers le SQL à la carte en douceur ?? (pitié pitié )

Zen zen, il fait beau les oiseaux chantent...
Demangef 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 00h06.


 
 
 
 
Partenaires

Hébergement Web