DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / SOAP
  • Propriétés spécifiques à la description des variables de type wsRéponse
  • Fonctionnement
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
wsRéponse (Type de variable)
En anglais : wsResponse
Le type wsRéponse permet d'obtenir :
  • le code source XML complet de la réponse d'un Webservice.
  • la valeur des différentes parties de la réponse d'un Webservice (cas des Webservices renvoyant plusieurs réponses).
Les caractéristiques de ce type peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
Pour un Webservice qui renvoie 2 réponses (et pas une réponse structurée)
wsRep est un wsRéponse = WSProcedure()
Trace(wsRep["partie1"].sousElement1)
Trace(wsRep["partie2"].sousElement2)
Pour un Webservice dont on veut récupérer tout le XML de réponse (et le XML envoyé)
// WSDL du Webservice :
// http://www.webservicex.net/globalweather.asmx?WSDL
 
// Variable du type du paramètre de la fonction du Webservice
paramGetWeather est un GlobalWeather.GetWeather
paramGetWeather.CityName = "Paris-Aeroport Charles De Gaulle"
paramGetWeather.CountryName = "France"
 
// Variable du type de retour de la fonction du Webservice
resGetWeatherResponse est un GetWeatherResponse
// Au lieu de faire :
// resGetWeatherResponse = GetWeather(paramGetWeather)
// Utilisation d'une variable "wsRéponse" pour récupérer tout le XML résultat et
// une variable "wsRequête" pour récupérer tout ce qui a été envoyé à la fonction du Webservice
wsRep est un wsRéponse
wsReq est un wsRequête
// Possible de forcer le timeout HTTP de la requête : exemple HTTPTimeOut(10*1000)
wsRep = GlobalWeather.GetWeather(wsReq,paramGetWeather)
SI ErreurDétectée ALORS
// Il est possible de récupérer tout le XML renvoyé avec : wsRép.SourceXML
Erreur(ErreurInfo(), ...
"------------------- Détails  de la requête XML envoyée : ", wsReq.SourceXML, ...
"------------------- Détails de la réponse XML reçue : ", wsRep.SourceXML)
 
SINON
// Puis affectation à la variable du type de retour de la fonction du Webservice
resGetWeatherResponse=wsRep.Valeur
// Si le résultat n'est pas celui attendu,
// il est possible d'avoir tout le XML résultat avec wsRép.SourceXML
//trace(resGetWeatherResponse.GetWeatherResult..Valeur)
 
xmlMeteo est un xmlDocument = XMLOuvre(resGetWeatherResponse.GetWeatherResult..Valeur, ...
depuisChaîne)
SI ErreurDétectée ALORS
Erreur(ErreurInfo())
SINON
SI xmlMeteo.CurrentWeather.Status..Texte~="Success" ALORS
Info("Ville : " + xmlMeteo.CurrentWeather.Location, ...
"Heure : " + xmlMeteo.CurrentWeather.Time, ...
"Vent : " + xmlMeteo.CurrentWeather.Wind, ...
"Visibilité : " + xmlMeteo.CurrentWeather.Visibility, ...
"Température : " + xmlMeteo.CurrentWeather.Temperature, ...
"Point de rosée : " + xmlMeteo.CurrentWeather.DewPoint, ...
"Humidité : " + xmlMeteo.CurrentWeather.RelativeHumidity, ...
"Pression : " + xmlMeteo.CurrentWeather.Pressure)
SINON
Erreur(resGetWeatherResponse.GetWeatherResult, ...
"---------------------- Détails de la réponse XML reçue :", wsRep.SourceXML)
FIN
FIN
FIN
Remarques

Propriétés spécifiques à la description des variables de type wsRéponse

Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type wsRéponse :
Nom de la propriétéType manipuléEffet
PartieRéponseTableauPermet d'obtenir le code XML correspondant à la réponse spécifiée.
Il est également possible d'utiliser directement la notation :
Nom_Variable_wsRéponse["Nom_de_la_réponse"]
Cette propriété est disponible en lecture seulement.
SourceXMLBinaire / BufferSource XML reçue du serveur.
Cette propriété est disponible en lecture seulement.
ValeurChaîne de caractèresRenvoie le code XML correspondant à la première partie de la réponse.
Cette propriété est disponible en lecture seulement.

Attention : Si le Webservice ne renvoie qu'une seule réponse, il est conseillé de conserver la syntaxe suivante :
res est un TypeRetour = WSProcédure()

Fonctionnement

Le type wsRéponse permet d'avoir le source XML complet de la requête envoyée pour la consommation du Webservice.
La fonction SOAPPrépare donne déjà l'information dans le cas général, mais pas lorsque le Webservice nécessite :
En pratique, l'appel traditionnel d'une fonction :
RéponseWebservice = FonctionWebservice(Param1, Param2)
pourra être remplacé par :
MaRequête est un wsRequête
RéponseWebservice = FonctionWebservice(MaRequête, Param1, Param2)
Il est alors possible d'avoir dans un buffer le source XML intégral de la requête avec le code suivant :
MaRequete..SourceXML
Cette fonctionnalité est parfois utile en phase de mise au point et nécessaire pour obtenir certaines certifications.
Version minimum requise
  • Version 18
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale