Bonjour,
Je voudrais gérer les codes erreurs dans un services web(serveur) sous 4D.
J'utilise la fonction ENVOYER ERREUR SOAP qui me génere un message erreur mais elle ne m'interrompt pas le traitement.
Pouvez vous m'aider ?
Bonjour,
Je voudrais gérer les codes erreurs dans un services web(serveur) sous 4D.
J'utilise la fonction ENVOYER ERREUR SOAP qui me génere un message erreur mais elle ne m'interrompt pas le traitement.
Pouvez vous m'aider ?
Bonjour,
quel traitement veux tu interrompre ?
Celui du client je suppose ?
auquel cas jette un oeil sur :
http://doc.4d.com/4D-Langage-12.1/We...479672.fr.html
hth
FiF
Bonjour,
Oui je veux interrompre le traitement du client au cas ou des informations sont manquantes. Si il manque un nom ou une adresse, je veux retourner un message lui stipulant les champs incorrectes.
J'ai regarder ton lien. Ce sont des messages préfaits ?
cdlt,
Kevin
Mhhh, en regardant l'historique de tes messages j'ai cru comprendre que ton client n'était pas fait avec 4D. Si c'est bien le cas tu aurais du préciser on aurait gagné du temps et des ressources.Bonjour,
Oui je veux interrompre le traitement du client au cas ou des informations sont manquantes. Si il manque un nom ou une adresse, je veux retourner un message lui stipulant les champs incorrectes.
J'ai regarder ton lien. Ce sont des messages préfaits ?
cdlt,
Kevin
Si ce n'est pas le cas merci de bien vouloir détailler ta question.
Cordialement,
Philippe
En effet, j'utilise 4D comme serveur.
En ce qui concerne le client, j'utilise soapUI pour le moment.
Le but du service web est de créer des contrats. Je passe donc des informations client (numero, nom, prenom,...) à 4D depuis soapUI.
Je voudrais donc gérer mes codes erreur et ce en utilisant la fonction ENVOYER ERREUR SOAP de 4D.
ex : envoyer erreur soap(SOAP erreur client ;"Il manque le nom du client").
Ce message s'affiche dans soapUI mais n'interrompt pas le traitement. Le contrat ce génere donc sans le nom du client.
J'espère avoir été assez précis.
Kevin
ok,
si je comprends bien, les contrats sont générés par 4D serveur à partir des informations envoyés par un client SoapUI.
C'est le serveur qui renvoi une erreur si il manque une info et il indique que c'est une erreur due au client.
On peut supposer que dans 4D le traitement s'arrête là puisque il y a un test qui renvoie l'erreur donc le contrat ne devrait pas être généré.
En ce qui concerne le client il faut que tu fasses également un test pour voir si le serveur n'a pas renvoyé une erreur.
On sort là du cadre de 4D....
Oui mais avec TRACE, on voit bien que le traitement continue même s'il passe dans la fonction envoyer erreur.
Le client est pour l'instant soapUI mais ce n'est que pour faire les tests. En réalité, l'application cliente est celle d'un prestataire. Je n'est donc pas la main sur leur application pour le moment car ils sont en fase de développement.
trace sur 4D serveur ?
si c'est le cas, l'algorithme devrait ressembler à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 C_TEXTE($1;vt_return;vt_search) DECLARATION SOAP($1;Est un texte ;SOAP entrée ;"vt_search") DECLARATION SOAP(vt_return;Est un texte ;SOAP sortie ;"vt_return") CHERCHER([clients];[clients]nom=$1) au cas ou : (Enregistrements trouves([clients])=1) vt_return:="ok" : ($vt_search="") ENVOYER ERREUR SOAP(SOAP erreur client ;"Paramètre incomplet") : (Enregistrements trouves([clients])#1) ENVOYER ERREUR SOAP(SOAP erreur client ;" Client inconnu") : (Vrai) ENVOYER ERREUR SOAP(SOAP erreur client ;"Requête incomprise") Fin de cas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 C_TEXTE(cheminContrat) C_TEXTE(cheminCourrier) DECLARATION SOAP(nomTelePro;Est un texte ;SOAP entrée ;"nomTelePro") DECLARATION SOAP(numAdh;Est un texte ;SOAP entrée ;"numAdh") DECLARATION SOAP(nomAdh;Est un texte ;SOAP entrée ;"nomAdh") DECLARATION SOAP(prenomAdh;Est un texte ;SOAP entrée ;"prenomAdh") DECLARATION SOAP(adresseAdh;Est un texte ;SOAP entrée ;"adresseAdh") DECLARATION SOAP(code_postal_Adh;Est un texte ;SOAP entrée ;"code_postal_Adh") DECLARATION SOAP(villAdh;Est un texte ;SOAP entrée ;"villeAdh") DECLARATION SOAP(telephoneAdh;Est un texte ;SOAP entrée ;"telephoneAdh") DECLARATION SOAP(dateNaissanceAdh;Est un texte ;SOAP entrée ;"dateNaissanceAdh") DECLARATION SOAP(numMutuelleEmetteur;Est un numérique ;SOAP entrée ;"numMutuelleEmetteur") DECLARATION SOAP(nomMutuelleEmetteur;Est un texte ;SOAP entrée ;"nomMutuelleEmetteur") DECLARATION SOAP(adresseMutuelleEmetteur;Est un texte ;SOAP entrée ;"adresseMutuelleEmetteur") DECLARATION SOAP(codePostalMutuelleEmetteur;Est un texte ;SOAP entrée ;"codePostalMutuelleEmetteur") DECLARATION SOAP(villeMutuelleEmetteur;Est un texte ;SOAP entrée ;"villeMutuelleEmetteur") DECLARATION SOAP(TelephoneMutEmetteur;Est un texte ;SOAP entrée ;"TelephoneMutEmetteur") DECLARATION SOAP(jourPrelevementMutuelleEmetteur;Est un texte ;SOAP entrée ;"jourPrelevementMutuelleEmetteur") DECLARATION SOAP(periodicite;Est un texte ;SOAP entrée ;"periodicite") DECLARATION SOAP(numeroContrat;Est un numérique ;SOAP entrée ;"numeroContrat") DECLARATION SOAP(tabBenef;Est un tableau texte ;SOAP entrée ;"tabBenef") DECLARATION SOAP(cheminContrat;Est un texte ;SOAP sortie ;"cheminContrat") DECLARATION SOAP(cheminCourrier;Est un texte ;SOAP sortie ;"cheminCourrier") CHERCHER([OPTION_GARANTIE];[OPTION_GARANTIE]id=numeroContrat) Si (Enregistrements trouves([OPTION_GARANTIE])=0) ENVOYER ERREUR SOAP(SOAP erreur client ;"Numéro de contrat invalide") Fin de si cheminCourrier:=WEB_generer_courrier ($id_courrier;$origine;id_contrat;nomTelePro;numAdh;nomAdh;prenomAdh;adresseAdh;code_postal_Adh;villAdh;telephoneAdh;dateNaissanceAdh;numSecuAdh;nombreAyantDroits;numMutuelleEmetteur;nomMutuelleEmetteur;adresseMutuelleEmetteur;codePostalMutuelleEmetteur;villeMutuelleEmetteur;TelephoneMutEmetteur;jourPrelevementMutuelleEmetteur;periodicite) cheminContrat:=WEB_generer_contrat ($id_courrier;$origine;id_contrat;nomTelePro;numAdh;nomAdh;prenomAdh;adresseAdh;code_postal_Adh;villAdh;telephoneAdh;dateNaissanceAdh;numSecuAdh;nombreAyantDroits;numMutuelleEmetteur;nomMutuelleEmetteur;adresseMutuelleEmetteur;codePostalMutuelleEmetteur;villeMutuelleEmetteur;TelephoneMutEmetteur;jourPrelevementMutuelleEmetteur;periodicite)
C'est bien ce que je disais,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Si (Enregistrements trouves([OPTION_GARANTIE])=0) ENVOYER ERREUR SOAP(SOAP erreur client ;"Numéro de contrat invalide") Fin de s
il y a une erreur dans ta logique de test,
c'est comme si tu faisais :
A titre personnel je préfère les tests avec "au cas ou"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 si(1#2) alerte("un est différent de deux") fin de si alerte("un est égal à deux")
car outre le fait de lister plusieurs cas possibles d'erreur (ce que tu ne fais pas) le break après le test est induit...
D'accord ca marche très bien avec un "au cas ou".
Je te remercie pour ton aide et le temps que tu a consacrer à mon cas.
Cordialement,
Kevin
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager