IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

4D Discussion :

Envoyer erreur soap


Sujet :

4D

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 14
    Points
    14
    Par défaut Envoyer erreur soap
    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 ?

  2. #2
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    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

  4. #4
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    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.
    Si ce n'est pas le cas merci de bien vouloir détailler ta question.

    Cordialement,
    Philippe

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    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

  6. #6
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    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....

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    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.

  8. #8
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    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

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    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)

  10. #10
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    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
    C'est bien ce que je disais,
    il y a une erreur dans ta logique de test,

    c'est comme si tu faisais :

    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")
    A titre personnel je préfère les tests avec "au cas ou"
    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...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] erreur SOAP
    Par bdaboah dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/06/2008, 11h24
  2. Envoyer un Soap dans Excel et mettre l'acquittement dans une cellule
    Par akdmks dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/02/2008, 17h35
  3. [reportnet] Erreur Soap
    Par zahui_eric dans le forum Cognos
    Réponses: 1
    Dernier message: 04/05/2007, 16h42
  4. Réponses: 1
    Dernier message: 23/04/2007, 10h23
  5. [Serlvet] Erreur SOAP
    Par Julaie95 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/07/2006, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo