Permet de paramétrer le format de la valeur retournée par le serveur SOAP WINDEV au programme client SOAP. Par défaut, le serveur SOAP WINDEV retourne uniquement des données simples (par exemple chaîne de caractères, entier, booléen, ...).
La fonction SOAPEncodeRésultat permet de renvoyer au client SOAP des types spécifiques au protocole SOAP.
Attention : Cette fonction ne peut être utilisée que dans une application WINDEV de type "Serveur SOAP".
RENVOYER SOAPEncodeRésultat(5, SOAPTypeEntier)
// Idem que RENVOYER 5 utilisé dans le code du serveur SOAP.
RENVOYER SOAPEncodeRésultat(maVariable, "montype")
Syntaxe
<Résultat> = SOAPEncodeRésultat(<Valeur à encoder> , <Type> [, <Espace de nommage> [, <Style d'encodage>]])
<Résultat> : Chaîne de caractères
Valeur encodée selon les paramètres spécifiés.
<Valeur à encoder> : Chaîne de caractères
Valeur à encoder selon les paramètres spécifiés.
<Type> : Constante ou chaîne de caractères
Type du résultat à retourner. Peut être :- une chaîne de caractères pour préciser un type spécifique.
- un type prédéfini SOAP (voir les notes)
<Espace de nommage> : Chaîne de caractères optionnelle
Espace de nommage (appelé aussi "NameSpace") de la valeur à renvoyer.
<Style d'encodage> : Chaîne de caractères optionnelle
Style d'encodage de la valeur (appelé aussi "EncodingStyle"). Ce paramètre peut correspondre à tout espace de nommage défini dans le WSDL.
Remarques
Renvoyer une valeur du serveur SOAP WINDEV vers un client SOAP
Par défaut, pour renvoyer une valeur depuis un serveur SOAP WINDEV, il est possible d'utiliser le mot-clé
RENVOYER dans les différentes fonctions du serveur SOAP.
Par exemple :
RENVOYER 5
RENVOYER "Chaîne résultat"
Pour renvoyer des types spécifiques (différents des types WINDEV), il est nécessaire d'utiliser la fonction
SOAPEncodeRésultat.
Par exemple :
RENVOYER SOAPEncodeRésultat(5, SOAPTypeEntier, "urn:monNameSpace")
Remarque : La ligne de code suivante :
SOAPEncodeRésultat("valeur", "type", "espace", "style")
génère une enveloppe de réponse du type :
<NOMPROJETResponse xmlns="espace de nommage de NOMPROJETResponse" SOAP-ENV:encodingStyle="style">
<NOMPROJETResult xmlns:ns2="style" xsi:type="ns2:type">valeur</NOMPROJETResult>
</NOMPROJETResponse>
Renvoyer un résultat en ne lui appliquant pas d'encodage
La fonction
SOAPEncodeRésultat utilisée sur un serveur SOAP WINDEV permet de renvoyer un résultat en lui appliquant un "encodage". Mais il est également possible de renvoyer une chaîne directement, sans que cette chaîne soit encodée. Dans ce cas, il faut que la chaîne XML soit valide et contienne au moins une des deux sous-chaînes ci-dessous :
- "xmlns:"
- </return>. Dans ce cas, le code XML doit être encadré par les balises <return> et </return>. Ces balises doivent être enlevées lors de la réception du résultat.
Attention : Le XML est sensible à la casse : seule la balise </return> en minuscules est reconnue.
Du côté client, il est nécessaire d'utiliser la fonction
SoapDonneRésultat avec la constante
SoapRésultatXML.
Types prédéfinis SOAP
Les types SOAP pouvant être utilisés sont les suivants :
| |
Constante | Type |
---|
SOAPTypeBinaireBase64 | Binaire |
SOAPTypeBinaireHexa | Binaire hexadécimal |
SOAPTypeBooléen | Booléen |
SOAPTypeChaîne | Chaîne de caractères |
SOAPTypeChaîneNormalisée | Chaîne de caractères sans retour chariot (RC) et sans tabulation (TAB) |
SOAPTypeDécimal | Tout nombre sans limite |
SOAPTypeEntier | Entier compris entre - 2 147 483 648 et + 2 147 483 647) |
SOAPTypeEntierCourt | Entier court |
SOAPTypeEntierCourtNonSigné | Entier court non signé |
SOAPTypeEntierIllimité | Entier (sans limite) |
SOAPTypeEntierLong | Entier long |
SOAPTypeEntierLongNonSigné | Entier long non signé |
SOAPTypeEntierNégatif | Entier négatif (sauf 0) |
SOAPTypeEntierNonNégatif | Entier non négatif |
SOAPTypeEntierNonPositif | Entier non positif |
SOAPTypeEntierNonSigné | Entier non signé |
SOAPTypeEntierPositif | Entier positif (sans 0) |
SOAPTypeOctet | Octet |
SOAPTypeOctetNonSigné | Octet non signé |
SOAPTypeRéel | Réel |
SOAPTypeRéelDouble | Réel double |
SOAPTypeURL | Adresse URL |
Composante : wd280com.dll