Vous consultez actuellement l'aide de la version:

Présentation

AEM Forms permet aux auteurs de formulaires de simplifier et améliorer le remplissage de formulaire en appelant les services Web depuis un champ de formulaire adaptatif. AEM Forms prend en charge les services Web décrits dans le WSDL (Web Services Description Language) 1.1 avec le style document/littéral et des points de fin SOAP.

Pour appeler un service Web, vous pouvez créer une règle dans l’éditeur visuel ou spécifier un script JavaScript en utilisant l’API guidelib.wsdlUtils.invokeWebService dans l’éditeur de code de l’éditeur de règles.

Ce document aborde la manière d’écrire un script Javascript en utilisant l’API guidelib.wsdlUtils.invokeWebService pour appeler un service Web. 

L’API guidelib.wsdlUtils.invokeWebService

L’API guidelib.wsdlUtils.invokeWebService appelle un service Web depuis un champ de formulaire adaptatif. La syntaxe API se présente comme suit :

guidelib.wsdlUtils.invokeWebService (wsdlPath, invokeData, successHandler, faultHandler, callbackData)

L’API requiert les paramètres suivants.

Paramètre Description
wsdlPath Chemin d’accès HTTP au service Web WSDL.
invokeData Structure fournissant des détails sur l’opération de service web. Consultez la structure d’invokeData pour plus d’informations.
successHandler Gestionnaire de service Web à contacter en cas d’appel du service Web réussi.
faultHandler Gestionnaire de service Web à contacter en cas d’échec de l’appel du service Web.
callbackData Données à rendre disponibles après appel de successHandler et errorHandler.

La structure d’invokeData

La structure d’ invokeData dans l’API guidelib.wsdlUtils.invokeWebService spécifie les détails de l’opération de service Web à exécuter. La syntaxe de la structure se présente comme suit.

var invokeData = {
operationName, 
input, 
inputRoot, 
soapActionURI, 
serviceEndPoint, 
namespace, 
port
}

La structure d’ invokeData spécifie les détails suivants concernant l’opération de service Web.

Paramètre Description
operationName Nom de l’opération de service Web à exécuter.
input Entrée dans l’opération de service Web au format JSON. Assurez-vous qu’il ne comprend pas l’entrée racine. L’API guidelib.wsdlUtils.invokeWebService utilise le nom de l’opération comme entrée. Si l’entrée racine est différente du nom de l’opération, utilisez le paramètre inputRoot.
inputRoot (facultatif) Entrée racine, si elle est différente de operationName.
soapActionURI (facultatif) URI pour l’en-tête HTTP de SOAPAction. S’il n’est pas présent dans le fichier WSDL, l’API télécharge le fichier WSDL depuis le serveur et utilise la valeur de l’élément de port.
serviceEndPoint (facultatif) La propriété de l’emplacement de l’élément soap:address du port requis. S’il n’est pas présent dans le fichier WSDL, l’API télécharge le fichier WSDL depuis le serveur et utilise la valeur de l’élément de port.
namespace (facultatif) Espace de noms correspondant au schéma WDSL. S’il n’est pas présent dans le fichier WSDL, l’API télécharge le fichier WSDL depuis le serveur et utilise la valeur de l’élément de port.
port
(facultatif)
Nom du port spécifié dans le fichier WSDL. Si les paramètres port, soapActionURI et namespace ne sont pas présents dans le fichier WSDL, l’API recherche le port (SOAP uniquement) auquel cette opération est transmise. Si cette opération est déjà mise en œuvre dans plusieurs ports, la fonction échoue.

Remarque :

Certains paramètres dans la structure d’invokeData sont indiqués comme étant facultatifs car ils téléchargent et analysent WSDL pour récupérer les informations requises. Toutefois, pour de meilleures performances de l’opération, pensez à définir des paramètres facultatifs.

Exemple de script pour appeler un service Web

L’exemple de script suivant utilise l’API guidelib.wsdlUtils.invokeWebService pour appeler l’opération de service Web getZipInfo. Cette opération utilise le code postal comme entrée et renvoie la ville et l’état correspondants. Si l’opération de service Web ne trouve pas d’informations, un gestionnaire d’erreur renvoie le message impossible d’obtenir les informations du code postal.  

var wsdlPath = 'http://www.example.com/ZIPInfo?WSDL';
var input = '{"zipCode" : "232423"}';
var invokeData = {};
invokeData.operationName = 'getZipInfo';
invokeData.input = input;
invokeData.soapActionURI = 'http://www.example.com/ZIPInfo';
invokeData.serviceEndPoint = 'http://www.example.com/ZIPInfo.asmx';
invokeData.port = 'ZIPInfoSoap';

successHandle : function (serviceOutput) {
    var outputJSONObj = JSON.parse(serviceOutput);
                // use outputJSONObj["City"]
                // use outputJSONObj["State"]
},

errorHandler : function () {
                window.alert ('could not get the ZIP information');
},

var myData = {'param' : 'value'};
guidelib.wsdlUtils.invokeWebService (wsdlPath, invokeData, successHandler, errorHandler, myData);

Considérations lors de l’utilisation des services Web

Gardez à l’esprit les points suivants lors de l’appel des services Web depuis des formulaires adaptatifs :

  • Vous pouvez appeler les services Web qui sont écrits dans WSDL 1.1 avec le style document/littéral et des points de fin SOAP.
  • Les services Web nécessitant une authentification ne sont pas pris en charge actuellement.
  • Les opérations de services Web utilisant des arguments provenant de plusieurs espaces de noms ne sont pas prises en charge.
  • N’incluez pas l’élément racine dans la structure d’entrée.  

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne