Vous consultez actuellement l'aide de la version:

Introduction

Vous pouvez utiliser des services Web dans AEM Forms pour remplir les champs d’un formulaire. 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. Supposons que vous souhaitez afficher les prévisions météorologiques hebdomadaires du code postal indiqué par l’utilisateur. Vous pouvez créer une règle pour utiliser un service Web existant pour extraire les données de prévisions météorologiques puis effectuer le rendu des données dans le formulaire.

Vous pouvez définir l’URL du service directement lorsque vous créez une règle ou préconfigurez un service Web dans CRX pour rendre le service Web disponible dans l’éditeur de règles comme élément du menu. Cet article explique comment préconfigurer un service Web dans CRX avec des paramètres spécifiques d’entrée et de sortie pour le rendre disponible dans l’éditeur de règles. 

Pour créer cette règle dans l’éditeur de règles, voici les conditions préalables :

  • Un formulaire adaptatif avec les objets de formulaire appropriés : un objet de formulaire chacun pour les paramètres d’entrée et un objet de formulaire chacun pour afficher les paramètres de sortie (ici un seul pour afficher les prévisions météorologiques)
  • Préconfigurer le service Web dans CRX avec les paramètres d’entrée et de sortie

Le scénario de cet article utilise le service Web de météo de www.cdyne.com. Pour en savoir plus sur le service Web de météo, consultez le document des spécifications du service Web de météo.

Vous pouvez également charger directement le fichier Weather_WSDL.zip joint dans CRX pour que cet exemple fonctionne. 

Telechargement

Installer un service Web dans CRX pour l’éditeur de règles

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. Suivez les étapes ci-dessous pour préconfigurer un service eb dans CRX pour l’éditeur de règles :

  1. Accédez à http://[server]:[port]/[ContextPath]/crx/de et connectez-vous en tant qu’administrateur.

  2. Dans le dossier /apps, créez un nœud (ici, GetCityForecastByZIP).

    Remarque :

    Créez le nœud de service Web dans le dossier /apps. Par défaut, les services web peuvent être installés dans les dossiers des applications et des bibliothèques. Toutefois, l’administrateur peut configurer un ou plusieurs emplacements dans CRX où les utilisateurs de formulaires adaptatifs peuvent configurer les services web. Ceci peut être nécessaire, car les utilisateurs risquent de ne pas pouvoir accéder aux dossiers des applications et des bibliothèques dans CRX. Pour plus d’informations, voir Configuration de l’emplacement du service Web dans CRX.

    1. Faites un clic droit sur le dossier d’applications et sélectionnez Créer > Créer un nœud.

    2. Nommez le dossier (ici, GetCityForecastByZIP), assurez-vous que le type de nœud est nt:unstructured, puis cliquez sur OK.

    3. Cliquez sur Enregistrer tout.

  3. Ajoutez les propriétés suivantes au nœud que vous venez de créer (ici, GetCityForecastByZip) et cliquez sur Enregistrer tout :

    Propriété Type Description Valeur
    guideComponentType Chaîne
    Une constante spécifiant la configuration identifiée en tant que service Web fd/af/webServices
    url Chaîne URL du service Web que vous installez http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL
    jcr:title Chaîne Le nom du service Web tel qu’il s’affiche dans le menu déroulant de l’éditeur de règles Météo hebdomadaire d’une ville
    opération Chaîne L’exploitation du service Wweb configuré
    GetCityForecastByZIP
  4. Créez les sous-nœuds suivants de type nt:unstructured sous le nœud du service Web (ici, GetCityForecastByZip) et cliquez sur Enregistrer tout :

    • entrée
    • sortie
  5. Sous le nœud nommé entrée, créez des sous-nœuds pour chacun des paramètres d’entrée que vous souhaitez préconfigurer. Dans le scénario de service Web de météo, créez un nœud pour que l’utilisateur puisse saisir le code postal comme entrée.

    Suivez les étapes ci-dessous pour créer un nœud pour le paramètre d’entrée :

    Remarque :

    Si vous n’ajoutez pas de nœud d’entrée, l’objet du formulaire et la règle sont renseignés avec les paramètres d’entrée du service Web.

    1. Faites un clic droit sur le nœud nommé entrée et sélectionnez Créer > Créer un nœud.

    2. Saisissez le nom du nœud enfant (ici Code postal) et cliquez sur OK.

    3. Ajoutez les propriétés au nœud enfant. Dans le scénario de service Web de météo, ajoutez les propriétés suivantes au nœud enfant et cliquez sur Enregistrer tout :

       Propriété Type Description Valeur
      id Chaîne
      Id du paramètre d’entrée comme dans le service Web
      Code postal
      jcr:title
      Chaîne Le nom du paramètre d’entrée tel qu’il apparaîtra pour l’utilisateur Code postal
      defaultValue Chaîne Valeur par défaut du paramètre 
      90028
      masquer
      Booléen Masquer le paramètre ?
      False

      Remarque :

      Si la propriété de masquage est définie sur true, vous devez définir la valeur de la propriété defaultValue, car l’utilisateur n’est pas en mesure d’afficher le paramètre d’entrée et de fournir une valeur.

  6. Sous le nœud nommé sortie, créez des sous-nœuds pour chacun des paramètres de sortie que vous souhaitez inclure dans votre configuration et qui s’affiche pour l’utilisateur.

    Suivez les étapes ci-dessous pour créer un nœud (ici, date de la météo) pour le paramètre de sortie :

    Remarque :

    Si vous n’ajoutez pas de nœud de sortie, l’objet de formulaire et la règle sont renseignés avec tous les paramètres de sortie dans le service Web.

    1. Faites un clic droit sur le nœud de sortie et sélectionnez Créer > Créer un nœud.

    2. Nommez le nœud enfant (ici, date de la météo) et cliquez sur OK.

    3. Ajoutez les propriétés au nœud enfant.

      Dans le scénario de service Web de météo, ajoutez les propriétés suivantes au nœud enfant et cliquez sur Enregistrer tout :

      Propriété Type Description Valeur
      id Chaîne
      ID du paramètre de sortie comme dans le service Web. ID est sensible à la casse.

      GetCityForecastByZIPResponse.GetCityForecastByZIPResult.

      ForecastResult.Forecast.Date

      jcr:title
      Chaîne Le nom du paramètre de sortie tel qu’il s’affiche pour l’utilisateur Date

      En suivant les étapes ci-dessus, créez un second sous-nœud (ici Weather Description), puis ajoutez les propriétés suivantes au sous-nœud :

       

      Propriété Type Description Valeur
      id Chaîne
      ID du paramètre de sortie comme dans le service Web. ID est sensible à la casse.

      GetCityForecastByZIPResponse.GetCityForecastByZIPResult.

      ForecastResult.Forecast.Desciption

      jcr:title
      Chaîne Le nom du paramètre de sortie tel qu’il s’affiche pour l’utilisateur Description

      Remarque :

      La valeur de la propriété d’ID comprend le nom du paramètre en tant que « Desciption » et non « Description », conformément à WSDL.

Une fois que le service Web est préconfiguré dans CRX, créez une règle basée sur le service Web dans l’éditeur de règles pour un formulaire adaptatif. Si nécessaire, créez un formulaire adaptatif où vous pourrez utiliser le service Web préconfiguré.

Configuration de l’emplacement du service Web dans CRX

Par défaut, les services web peuvent être installés dans les dossiers des applications et des bibliothèques. Toutefois, l’administrateur peut également configurer un ou plusieurs emplacements dans CRX où les utilisateurs de formulaires adaptatifs peuvent configurer les services web. Ceci peut être nécessaire, car les utilisateurs risquent de ne pas pouvoir accéder aux dossiers des applications et des bibliothèques dans CRX.

Pour configurer les emplacements de services web dans CRX, effectuez les étapes suivantes :

  1. Accédez à 
    http://[serveur]:[numéro_port]/system/console/configMgr et connectez-vous en tant qu’administrateur.

  2. Ouvrez le service de configuration de formulaire adaptatif.

  3. Dans les chemins de recherche de configuration WSDL, modifiez ou ajoutez des chemins de configuration.

    ConfigureWebService
  4. Cliquez sur Enregistrer.

Création d’un formulaire adaptatif pour la préconfiguration de GetCityForecastByZIP

Pour écrire une règle basée sur la préconfiguration de GetCityForecastByZIP, vous avez besoin d’un formulaire adaptatif qui offre les avantages suivants :

  • Un champ où l’utilisateur peut saisir le code postal 
  • Un tableau où vous pouvez inclure la météo hebdomadaire du code postal saisi. Dans ce cas de figure, faites en sorte que la rangée du tableau puisse être reproduite en définissant la propriété maxOccur à 7. Les sept rangées sont requises pour rendre la prévision pour chaque jour de la semaine.

Le formulaire pour créer la règle basée sur un service Web de météo ressemble à ce qui suit :

AFforWeatherRule

Pour en savoir plus sur la création d’un formulaire adaptatif, consultez Création d’un formuaire adaptatif.

Créer une règle pour appeler le service Web dans le formulaire adaptatif

Après avoir installé un service Web dans CRX et lorsque vous avez le bon formulaire adaptatif pour créer la règle, vous pouvez écrire une règle pour appeler le service Web pour renseigner un objet de formulaire. 

Suivez les étapes ci-dessous pour créer une règle basée sur un service Web pour un champ (ici, le code postal) :

  1. Ouvrez le formulaire désiré en mode de création. Appuyez sur le champ Code postal et sur . Ensuite, appuyez sur Créer pour lancer l’éditeur de règles.

    CreateRuleVisualEditor
  2. Appuyez sur le menu déroulant Sélectionner un état et sélectionnez A changé.

    L’événement A changé appelle la règle à chaque fois que la valeur du champ (ici, code postal) est modifiée. Pour créer cette règle différemment, vous pouvez utiliser d’autres événements et opérateurs dans l’éditeur de règles.

    2_WSWriteRuleVisualEditor_IsChanged
  3. Dans l’instruction Ensuite, sélectionnez Appeler un service à partir du menu déroulant Sélectionner une action. Le menu déroulant Saisir l’URL du service Web s’affiche. 

    3_WSWriteRuleVisualEditor_Invoke
  4. Dans le champ Saisir l’URL du service Web, appuyez sur  et sélectionnez le nom du service Web (ici, le temps hebdomadaire d’une ville) que vous avez installé dans CRX. Les espaces réservés d’entrée et de sortie apparaissent.

    Pour appeler un service Web qui n’est pas configuré dans le CRX, vous pouvez saisir l’URL du service Web directement dans le champ Saisir l’URL du service Web.

    4_WSWriteRuleVisualEditor_WeatherWeek

    Remarque :

    Dans ce scénario, lors de la création du nœud d’entrée dans CRX, la valeur par défaut du paramètre est définie sur 90028. Pour afficher les prévisions météorologiques du code postal par défaut (90028), ignorez l’étape 5. Ou, pour employer la valeur indiquée par l’utilisateur dans le champ Code postal comme entrée, passez à l’étape 5. 

    Remarque :

    Si les espaces réservés d’entrée et de sortie ne s’affichent pas lorsque vous sélectionnez le nom du service Web, vérifiez la propriété ID du dossier de sortie concerné dans CRX. Assurez-vous que l’ID est saisi correctement et est de la bonne casse.

  5. Pour utiliser une valeur indiquée par l’utilisateur dans le champ Code postal au lieu de la valeur par défaut dans CRX, procédez comme suit :

    1. Dans l’espace réservé d’entrée, supprimez la valeur par défaut et choisissez de saisir un composant.

      5_WSWriteRuleVisualEditor_Input
    2. Sélectionnez ou faites glisser et déposez depuis l’onglet Objet de formulaires le champ Code postal dans l’objet à déposer Entrée.

  6. Dans l’espace réservé de sortie, faites glisser et déposez depuis l’onglet Objet de formulaires les deux champs Zone de texte du tableau dans les objets à déposer :

    1. Faites glisser la zone de texte correspondant à Date dans votre tableau sous le paramètre de sortie GetWeatherInformationResult.WeatherDescription.Date. 

    2. Faites glisser la zone de texte correspondant à Météo dans votre tableau dans le paramètre de sortie GetWeatherInformationResult.WeatherDescription.Description.

      6_WSWriteRuleVisualEditor_InputOutput
  7. Appuyez sur Terminé pour enregistrer la règle. 

Renseigner des objets de formulaire à l’aide de la règle basée sur le service Web

Dans le formulaire adaptatif dans lequel vous avez créé la règle basée sur un service Web, procédez comme suit pour renseigner les objets de formulaire en utilisant le service Web :

  1. Dans le champ Code postal, entrez le code postal de la ville pour vérifier la météo. 

    AFforWeatherRule

    Lorsque vous déplacez le curseur du champ Code postal, le tableau est renseigné avecen ce qui concerne le jourmétéo de la semaine. Par exemple, vous saisissez le code postal de San Jose, CA (95111), puis déplacez le curseur du champ Code postal, le tableau affiche la météo hebdomadaire comme suit :

    WeatherRuleInfo

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