PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

PV

  • Webservice : comment récupérer la réponse du Webservice ?
  • Syntaxe concernant les Webservices SOAP
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Permet d'exécuter un traitement sous condition de l'exécution d'une procédure, et en attendant cette exécution, continue d'exécuter le code en cours sans blocage. Ce type d'instruction est utilisé :
  • pour réaliser un appel asynchrone d'un Webservice SOAP.
  • Nouveauté 28
    pour appeler une procédure navigateur (avec une valeur de retour) depuis un champ Page WEBDEV.
  • Nouveauté 28
    pour appeler une procédure d'une fenêtre (avec une valeur de retour) depuis une page WEBDEV présente dans un champ Page WEBDEV.
Exemple
trackingSearch est un trackSearch
trackingSearchRes est un resultTrackSearch
trackingSearch.accountNumber = 99999999
trackingSearch.consigneesCountry = "FR"
trackingSearch.consigneesZipCode = "37100"
trackingSearch.sendersRef = "111111"
 
APRÈS trackingSearchRes = TrackingServiceWSService.trackSearch(trackingSearch) FAIRE
SI ErreurDétectée() ALORS
Trace("Echec de l'appel au service Web : " + ErreurInfo(errComplet))
SINON
Trace("Webservice correctement exécuté")
FIN
FIN
Syntaxe

Appel asynchrone d'un Webservice SOAP Masquer les détails

APRES <Résultat> = <Appel au Webservice SOAP> FAIRE
      <Code exécuté si réponse>
FIN
<Code exécuté après l'appel du Webservice SOAP>
<APRES> :
Signale le début du bloc d'instructions.
<Résultat> :
Résultat de l'exécution du Webservice SOAP.
<Appel au Webservice SOAP> :
Appel de la procédure permettant d'interroger le Webservice SOAP.
<Code exécuté si réponse> :
Code exécuté uniquement lorsque le Webservice SOAP aura été exécuté et aura envoyé la réponse.
<Code exécuté après l'appel du Webservice SOAP> :
Code exécuté directement après l'appel du Webservice SOAP (que le webservice SOAP ait répondu ou non).
<FIN> :
Signale la fin du bloc d'instructions.
Nouveauté 28
WINDEV

Champ Page WEBDEV : Appel d'une procédure navigateur de la page avec une valeur de retour Masquer les détails

APRES <Résultat> = <Champ WEBDEV>.Page.NomProcédure() FAIRE
<Code exécuté si réponse>
FIN
<Code exécuté après l'appel de la procédure>
<APRES> :
Signale le début du bloc d'instructions.
<Résultat> :
Résultat de l'exécution de la procédure navigateur de la page (affichée dans le champ Page WEBDEV).
<<Champ Page WEBDEV>.Page.NomProcédure()> :
Appel de la procédure liée au champ Page WEBDEV.
<Code exécuté si réponse> :
Code exécuté uniquement lorsque la procédure aura été exécutée et aura envoyé la réponse.
<Code exécuté après l'appel de la procédure> :
Code exécuté directement après l'appel de la procédure (que la procédure ait répondu ou non).
<FIN> :
Signale la fin du bloc d'instructions.
Nouveauté 28
WEBDEV - Code Serveur

Champ Page WEBDEV : Appel d'une procédure de la fenêtre (avec une valeur de retour) depuis une page Masquer les détails

APRES <Résultat> = MonChampHôte.NomProcédure() FAIRE
<Code exécuté si réponse>
FIN
<Code exécuté après l'appel de la procédure>
<APRES> :
Signale le début du bloc d'instructions.
<Résultat> :
Résultat de l'exécution de la procédure de la fenêtre contenant le champ Page WEBDEV.
<MonChampHôte.NomProcédure()> :
Appel de la procédure liée à la fenêtre depuis la page contenue dans le champ Page WEBDEV.
<Code exécuté si réponse> :
Code exécuté uniquement lorsque la procédure aura été exécutée et aura envoyé la réponse.
<Code exécuté après l'appel de la procédure> :
Code exécuté directement après l'appel de la procédure (que la procédure ait répondu ou non).
<FIN> :
Signale la fin du bloc d'instructions.
Remarques

Webservice : comment récupérer la réponse du Webservice ?

La réponse du Webservice peut être récupérée dans <Code exécuté si réponse>. Plusieurs syntaxe sont possibles :
  • Déclaration de la valeur de retour dans le bloc APRES ... FAIRE :
    Dans ce cas, le Webservice renvoie une variable de type wsRéponse. Cette variable doit être affectée explicitement dans une variable de type retour du service pour être manipulée.
    APRES x = Appel_Websevice() FAIRE
    // x est ici un wsRéponse, il faut l'affecter explicitement
    // dans une variable du type de retour du WebService
    Ret est un TypeWS = x
    // code exécuté après le retour du Webservice
    // .... = Ret
    FIN
    // code exécuté immédiatement
  • Déclaration de la valeur de retour en dehors du bloc APRES ... FAIRE :
    Dans ce cas, la variable de retour peut être manipulée directement.
    Ret est un TypeWS
    APRES Ret = WebServiceSansRetour() FAIRE
    // code exécuté après le retour du Webservice
    // .... = Ret
    FIN
    // code exécuté immédiatement

Syntaxe concernant les Webservices SOAP

  • Cette syntaxe est utilisable uniquement pour l'appel des Webservices SOAP.
  • Le paramètre <Code exécuté si réponse> s'exécute comme une procédure de type Callback quand le Webservice aura rendu la main.
  • Important : le code exécuté après l'appel au Webservice SOAP (après le mot-clé FIN) est exécuté dans le contexte du thread appelant. Si l'appel est effectué dans le thread principal, l'exécution d'une fonction d'attente (ThreadPause, Multitache, SignalAttend, ...) provoquera un interblocage (deadlock).
  • La gestion d'une éventuelle erreur lors de l'appel au Webservice SOAP se fait de manière standard en utilisant la variable WLangage ErreurDétectée. Par exemple :
    // Appelle le Webservice SOAP de vérification du numéro de TVA
    APRÈS MaRéponse = checkVat(sPays, sNumTVA) FAIRE
    // Si on a eu une erreur
    SI ErreurDétectée ALORS
    ...
    FIN
    FIN
Version minimum requise
  • Version 26
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire