|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() |
C'est encore moi... ^_~
Bon alors voilà, comme on n'est rien que des feignants d'informaticiens, on essaye au maximum d'avoir des choses en raccourcis: les requêtes réutilisées sont importées, les infos réaffichées sont en template etc. Maintenant je voudrais faire encore "pire" J'ai un service qui change une donnée dans une table: je saisis dans une fenêtre, puis ça envoie un service aveugle qui update. Ensuite le service redirige sur une fenêtre de confirmation. maintenant je voudrais appeler le service aveugle depuis une autre fenêtre (facile) mais je veux qu'il redirige ailleurs: on va se le faire en jscript (je vois pas comment d'autre.) Donc en fait je cherche la variable d'environnement "page précédente" pour renvoyer systématiquement sur la page où était l"utilisateur avant de changer sa donnée. J'ai rien trouvé, et pourtant y'en a des XMLC_Params...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : novembre 2002 Messages : 243 ![]() |
Tu peux peut-être te servir de Request.Referer
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
Ou bien en affectant à la valeur de contexte NextAction le nom de la prochaine fenêtre à afficher ...
Context.Values['NextAction'] := 'MAFENETRE'
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() |
Hum excusez mon ignorance, mais après une petite recherche, request.referer semble être du php... Ca se fait en js aussi? Parce que je ne me vois pas trop ajouter du php dans mon xsl...
Quand à la next action, j'ai dit que je voulais, à partir du même service, appeler soit une fenêtre, soit une autre, or next action c'est une fenêtre appelée après le service et c'est tout, me semble-t-il.
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() |
Citation:
Citation:
Consiédrons une fenetre A et une fenêtre B qui doivent appeler un service C qui doit appeler soit une fenetre D soit une fenetre E si tu tapes http:\\madllbin\madll\ServiceC?NextAction=FenetreD ou http:\\madllbin\madll\ServiceC?NextAction=FenetreE Dans ce cas là, tu as bien un seul service C, et en fonction de NextAction, tu est redirigé sur la fenêtre D ou E Est-ce clair ??
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
||
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() |
Waow bravo pour la réactivité
Oui, effectivement je comprends ce que tu veux dire. Mais le problème, c'est que je veux: Si A appelle C, C appelle A Si B appelle C, C appelle B Or dans ton exemple comment je peux prévoir à l'avance? Dans ce que tu présentes, je vois 2 boutons type submit dans C => retourner à A et retourner à B, mais j'aurais voulu que ça soit transparent pour l'utilisateur... En plus c'est idiot ce que je dis, de toute façon il n'y a pas de bouton pour quitter la fenêtre, puisque je suis dans un service aveugle...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : novembre 2002 Messages : 243 ![]() |
Pour request.referer tu fais MonServiceAppelant = Context.GetValue('Request.Referer'). Et oui c'est dans le context comme pas mal de chose.
Si tu peux faire planter ton application, tu aura un log et tu verras ce qui était dans le context à ce moment là |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() |
Attention, je parle du 'NextAction' !! Cette valeur de contexte est utilisée dans le FrameWork. Tu n'as rien à faire de plus que d'initialiser cette valeur de contexte et automatique ton appli lancera le service du nextaction.
Donc, pas de code supplémentaire à faire ....
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#9 | ||||
|
Nouveau Membre du Club
![]() |
Ok je commence à voir un peu le truc.
Bon après 2 ou 3 problèmes bien bêtes (Hé il exécute pas mon code??? Ok faudrait peut-être enlever le symbole commentaire... J'en suis là: Code :
Parce que ça ne fonctionne pas: il m'affiche un xml: Code :
...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
||||
|
|
00
|
|
|
#10 | |
|
Nouveau Membre du Club
![]() |
Citation:
Le framework je ne sais même pas ce que c'est: je suis allée trainer dans l'appendice 9 (http://xmlrad.com/Manual/Appendix09/) et j'ai trouvé des mots réservés, ok mais bon l'endroit où aller chercher ces mots...?
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : novembre 2002 Messages : 243 ![]() |
Le framework c'est tout ce qui fait que tu peux développer des applis avec XMLRAD. Dans le répertoire e-delos\XMLComponents\Source tu as un certain nombre de fichiers pascal qui constituent le framework.
Pour ton code ça semble correct. As tu essayer de le mettre dans before ou after XMLGRAM ? |
|
|
00
|
|
|
#12 | |
|
Nouveau Membre du Club
![]() |
Heu si je fais before XMLGRAM il ne va pas executer mon service aveugle, puisque dans ce service j'ai juste un XMLGRAM...?
J'ai mis en after XMLGRAM, et alors là c'est du fun de chez fun: Citation:
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : novembre 2002 Messages : 243 ![]() |
Pour que le xmlgram ne soit pas exécuté il faut faire Skip. Le fait de renseigner NextAction ne va pas bloquer l'exécution du xmlgram mais simplement renseigner le framework sur l'action à exécuter lorsque le service aura été traité. As tu vérifié le valeur de Request.Referer ? Ton traitement est juste mais que se passe-t-il si par hasard Request.Referer n'est pas l'une de tes fenetres ?
|
|
|
00
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() |
Ok pour le skip.
En fait, en théorie il me semblait que le service aveugle m'affichait un xml, enfin c'est ce que j'avais pu constater avant de renseigner nextAction, donc si Request.Refere valait autre chose, il devrait me renvoyer mon xml, pas une erreur? Enfin je vais faire un else pour être sûre edit: Ok tu avais raison, effectivement il m'envoie toujours la valeur par défaut. D'où ma question: est-ce que vous êtes bien sur de votre Request.referer, parce qu'apparemment il ne contient pas le nom de ma fenêtre, ou alors j'ai raté une étape... Et sinon pour les archives, le code exact est Code :
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
||
|
|
00
|
|
|
#15 | ||||
|
Membre éclairé
![]() |
Je pense qu'on peut faire ca par xsl vite fait, sans avoir a faire des tests sur le referer, ce qui est un peu compliqué et pas très sûr. En plus, faut taper du code, beurkbeurk
Dans tes formulaires, il suffit de rajouter un champ style : Code :
Lorsque celui-ci va valider son <form>, il appellera le service aveugle (disons business service) en lui passant dans le champ NextAction le nom du service depuis lequel il vient. Il sera donc redirigé directement sur ce formulaire là. Au passage, il n'est necessaire de passer ce champ NextAction que lorsque tu veux rediriger vers un autre formulaire que celui déclaré par défaut dans ton business service. Tu peux faire la meme chose avec un simple lien hypertexte : il suffit de passer le parametre directement dans l'URL appellée, par exemple : Code :
Avec cet exemple, tu verras qu'en cliquant sur le premier lien, tu reviens sur la NextAction par défaut (celle configurée dans XMLRAD pour le service ServiceAveugle) et qu'en cliquant sur le 2eme lien, tu reviendras sur le service Ping.
__________________
Nicolas |
||||
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() |
Heu attends j'ai dû mal m'exprimer.
C'est un service aveugle qui doit rediriger sur A ou B, donc je n'ai pas de xsl... La redirection sur le service aveugle, c'est effectivement un lien hypertexte. Pour passer de l'aveugle à la form A, c'est le NextAction du service. Or maintenant j'appelle le service aveugle depuis A ou B et donc je voudrais que ce service aveugle renvoie sur A ou B selon la provenance. Tes explications étaient claires au niveau du principe, mais sans xsl je ne vois pas comment faire...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() |
c'est dans le XSL de la form de départ qu'il faut que tu le fasses.
la form de départ appelle alors sont service "aveugle" (= BusinessService). une fois executé ce XMLService, le NextAction est alors pris et on revient sur la form appelante. si ce n'est pas ca redéfini de facon plus clair ton problème. ( en décomposant bien les étapes)
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() |
Ok tu veux dire que je dois dire à ma form aveugle de revenir sur ma form d'appel?
Si c'est ça, ben c'est là que je suis embêtée: je ne sais pas quelle est la form de départ, puisque c'est soit A, soit B qui a appelé le service aveugle C...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#19 | ||
|
Futur Membre du Club
![]() Inscription : janvier 2003 Messages : 18 ![]() |
Bonjour EJ,
Citation:
Pour toi A et B représentent des fiches disposant de formulaire. Dans ces 2 formulaires met en place un hidden comme proposé par nicolas.cogi Citation:
bon test delicatessen2 |
||
|
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() |
Oui en fait je n'avais pas très bien compris, mais j'ai eu des éclaircissements depuis.
Merci néanmoins pour ta réponse qui finit de régler le problème...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com