Didacticiel : créer un modèle de données de formulaire

04-create-form-data-model-main

Ce didacticiel est une étape de la série Création de votre premier formulaire adaptatif. Il est recommandé de suivre la série dans l’ordre chronologique pour comprendre, exécuter et démontrer le cas d’utilisation complet du didacticiel.

À propos du didacticiel

Le module d’intégration de données AEM Forms vous permet de créer un modèle de données de formulaire à partir de sources de données principales disparates telles que le profil utilisateur AEM, les services web RESTful, les services web basés sur SOAP, les services OData et les bases de données relationnelles. Vous pouvez configurer des objets et des services de modèle de données dans un modèle de données de formulaire et les associer à un formulaire adaptatif. Les champs de formulaire adaptatif sont liés aux propriétés de l’objet du modèle de données. Les services vous permettent de préremplir le formulaire adaptatif et d’écrire les données de formulaire soumises dans l’objet de modèle de données.

Pour plus d’informations sur l’intégration des données de formulaire et sur le modèle de données du formulaire, voir Intégration de données AEM Forms.

Ce didacticiel vous décrit étape par étape le processus de préparation, création, configuration et association d’un modèle de données de formulaire avec un formulaire adaptatif. À la fin de ce didacticiel, vous serez capable de :

Le modèle de données de formulaire se présentera comme ceci :

form-data-model_l

A. Sources de données configurées B. Schémas de sources de données C. Services disponibles D. Objets de modèle de données E. Services configurés

Prérequis

Avant de commencer, vérifiez que vous disposez des éléments suivants :

Étape 1 : configurer la base de données MySQL comme source de données

Vous pouvez configurer différents types de sources de données pour créer un modèle de données de formulaire. Pour ce didacticiel, nous allons configurer la base de données MySQL que vous avez configurée et remplie avec des exemples de données. Pour plus d’informations sur les autres sources de données prises en charge et sur leur configuration, reportez-vous à la section Intégration de données AEM Forms.

Pour configurer votre base de données MySQL, procédez comme suit :

  1. Installez le pilote JDBC pour la base de données MySQL en tant que bundle OSGi :

    1. Téléchargez le MySQL lot OSGi du pilote JDBC.

    2. Connectez-vous à l’instance d’auteur AEM Forms en tant qu’administrateur et accédez aux bundles de la console web d’AEM. L’URL par défaut est https://localhost:4502/system/console/bundles.

    3. Cliquez sur Installer/Mettre à jour. Une boîte de dialogue Télécharger/installer les bundles s’affiche.

    4. Appuyez sur Choisir un fichier pour rechercher et sélectionner le bundle OSGi du pilote JDBC MySQL Sélectionnez les cases à cocher Démarrer le bundle et Actualiser les packages et cliquez sur Installer ou mettre à jour. Assurez-vous que le pilote JDBC Oracle Corporation’s pour MySQL est actif. Le pilote est installé.

  2. Configurez la base de données MySQL comme source de données :

    1. Accédez à la console web d’AEM à l’adresse https://localhost:4502/system/console/configMgr.

    2. Recherchez la configuration Apache Sling Connection Pooled DataSource. Appuyez pour ouvrir la configuration en mode édition.

    3. Dans la boîte de dialogue de configuration, indiquez ce qui suit :

      • Nom de la source de données : vous pouvez spécifier un nom. Spécifiez par exemple WeRetailMySQL.
      • Nom de la propriété de service de source de données : spécifiez le nom de la propriété de service contenant le nom de la source de données. Il est spécifié lors de l’enregistrement de l’instance de source de données en tant que service OSGi. Par exemple, datasource.name.
      • Classe de pilote JDBC : spécifiez le nom de la classe Java du pilote JDBC. Pour la base de données MySQL, spécifiez com.mysql.jdbc.Driver.
      • URI de connexion JDBC : spécifiez l’URL de connexion de la base de données. Pour la base de données MySQL s’exécutant sur le port 3306 et le schéma weretail, l’URL est : jdbc:mysql://'server':3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8.
      REMARQUE

      Lorsque la base de données MySQL se trouve derrière un pare-feu, alors le nom d’hôte de la base de données n’est pas un DNS public. L’adresse IP de la base de données doit être ajoutée au fichier /etc/hosts de l’ordinateur hôte AEM.

      • Nom d’utilisateur : nom d’utilisateur de la base de données. Il est nécessaire d’activer le pilote JDBC pour établir une connexion avec la base de données.
      • Mot de passe : mot de passe de la base de données. Il est nécessaire d’activer le pilote JDBC pour établir une connexion avec la base de données.
      REMARQUE

      AEM Forms ne prend pas en charge l’authentification NT pour MySQL. Accédez à la console web AEM à l’adresse https://localhost:4502/system/console/configMgr et recherchez « Apache Sling Connection Pooled Datasource ». Pour « JDBC connection URI », définissez la valeur de la propriété « integratedSecurity » sur False et utilisez le nom d’utilisateur et le mot de passe créés pour vous connecter à la base de données MySQL.

      • Test lors de l’emprunt : activez l’option Test lors de l’emprunt.

      • Test lors du renvoi : activez l’option Test lors du renvoi.

      • Requête de validation : spécifiez une requête SQL SELECT pour valider les connexions du pool. La requête doit renvoyer au moins une ligne. Par exemple, sélectionnez * depuis customerdetails.

      • Isolation de transaction : définissez la valeur sur READ_COMMITTED.

        Laissez les valeurs par défaut des autres propriétés et cliquez sur Enregistrer.

        Une configuration similaire à la suivante est créée.

        relational-database-data-source-configuration

Étape 2 : Créer un modèle de données de formulaire

AEM Forms fournit une interface utilisateur intuitive pour créer un modèle de données de formulaire à partir des sources de données configurées. Vous pouvez utiliser plusieurs sources de données dans un modèle de données de formulaire. Dans notre cas d’utilisation, nous utiliserons la source de données MySQL configurée.

Procédez comme suit pour créer un modèle de données de formulaire :

  1. Dans l’instance d’auteur AEM, accédez à Forms (Formulaires) > Data Integrations (Intégrations de données).

  2. Appuyez sur Create (Créer) > Form Data Model (Modèle de données de formulaire).

  3. Dans la boîte de dialogue Créer un modèle de données de formulaire, spécifiez un nom pour le modèle de données de formulaire. Par exemple, customer-shipping-billing-details. Appuyez sur Suivant.

  4. L’écran Sélectionner la source de données répertorie toutes les sources de données configurées. Sélectionnez la source de données WeRetailMySQL et cliquez sur Créer.

    data-source-selection

Le modèle de données de formulaire customer-shipping-billing-details est créé.

Étape 3 : configurer un modèle de données de formulaire

La configuration d’un modèle de données de formulaire comprend :

  • L’ajout d’objets et de services de modèle de données
  • La configuration des services de lecture et d’écriture pour les objets de modèle de données

Procédez comme suit pour configurer le modèle de données de formulaire :

  1. Dans l’instance d’auteur AEM, accédez à Formulaires > Intégrations de données. L’URL par défaut est https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm.

  2. Le modèle de données de formulaire customer-shipping-billing-details que vous avez créé précédemment est répertorié ici. Ouvrez-le en mode d’édition.

    La source de données sélectionnée WeRetailMySQL est configurée dans le modèle de données de formulaire.

    default-fdm

  3. Développez l’arborescence de la source de données WeRailMySQL. Sélectionnez les objets et services de modèle de données suivants dans le schéma weretailcustomerdetails du modèle de données de formulaire :

    • Objets de modèle de données:

      • id
      • name
      • shippingAddress
      • city
      • state
      • zipcode
    • Services :

      • get
      • mise à jour

    Appuyez sur Ajouter la sélection pour ajouter des objets et des services de modèle de données sélectionnés au modèle de données de formulaire.

    Schéma WeRetail

    REMARQUE

    Les services par défaut d’obtention, de mise à jour et d’insertion des sources de données JDBC sont intégrés au modèle de données de formulaire.

  4. Configurez les services de lecture et d’écriture pour les objets de modèle de données.

    1. Sélectionnez l’objet de modèle de données customerdetails et appuyez sur Modifier les propriétés.

    2. Sélectionnez get dans la liste déroulante Service de lecture. L’argument id qui est la clé principale de l’objet de modèle de données customerdetails est ajouté automatiquement. Cliquez sur aem_6_3_edit et configurez l’argument comme suit.

      read-default

    3. De même, sélectionnez update en tant que Service d’écriture. L’objet customerdetails est ajouté automatiquement en tant qu’argument. L’argument est configuré comme suit.

      write-default

      Ajoutez et configurez l’argument id comme suit.

      id-arg

    4. Appuyez sur Terminé pour enregistrer les propriétés de l’objet de modèle de données. Cliquez ensuite sur Enregistrer pour enregistrer le modèle de données de formulaire.

      Les services get et update sont ajoutés en tant que services par défaut pour l’objet de modèle de données.

      data-model-object

  5. Accédez à l’onglet Services et configurez les services get et update.

    1. Sélectionnez le service get et cliquez sur Modifier les propriétés. La boîte de dialogue Propriétés s’ouvre.

    2. Spécifiez les éléments suivants dans la boîte de dialogue Modifier les propriétés :

      • Titre : spécifiez le titre du service. Par exemple : extraire l’adresse d’expédition.

      • Description : spécifiez la description contenant le fonctionnement détaillé du service. Par exemple :

        Ce service récupère l’adresse de livraison et les autres détails du client dans la base de données MySQL.

      • Objet de modèle de sortie : sélectionnez le schéma contenant les données du client. Par exemple :

        schéma customerdetail

      • Revenir au tableau : désactivez l’option Revenir au tableau.

      • Arguments : sélectionnez l’argument nommé ID.

      Appuyez sur Terminé. Le service de récupération des détails des clients de la base de données MySQL est configuré.

      shiiping-address-retrieval

    3. Sélectionnez le service update et cliquez sur Modifier les propriétés. La boîte de dialogue Propriétés s’ouvre.

    4. Spécifiez les éléments suivants dans la boîte de dialogue Modifier les propriétés :

      • Titre : spécifiez le titre du service. Par exemple, Mettre à jour l’adresse de livraison.

      • Description : spécifiez la description contenant le fonctionnement détaillé du service. Par exemple :

        Ce service met à jour l’adresse de livraison et les champs associés dans la base de données MySQL.

      • Objet de modèle d’entrée : sélectionnez le schéma contenant les données du client. Par exemple :

        schéma customerdetail

      • Type de sortie : sélectionnez VALEUR BOOLEENNE.

      • Arguments : sélectionnez l’argument nommé ID et customerdetails.
        Appuyez sur Terminé. Le service update permettant de mettre à jour les détails du client dans la base de données est configuré.MySQL

      shiiping-address-update

L’objet et les services de modèle de données dans le modèle de données de formulaire sont configurés. Vous pouvez à présent tester le modèle de données de formulaire.

Étape 4 : tester le modèle de données de formulaire

Vous pouvez tester les objets et services de modèle de données pour vérifier si le modèle de données de formulaire est correctement configuré.

Procédez comme suit pour effectuer le test :

  1. Accédez à l’onglet Modèle, sélectionnez l’objet de modèle de données customerdetails et appuyez sur Tester l’objet de modèle.

  2. Dans la fenêtre Tester le modèle/service, sélectionnez Objet de modèle de lecture dans le menu déroulant Sélectionner le modèle/service.

  3. Dans la section customerdetails, spécifiez une valeur pour l’argument id qui existe dans la MySQL base de données configurée et appuyez sur Test.

    Les détails du client associés à l’ID spécifié sont récupérés et affichés dans la section Sortie, comme indiqué ci-dessous.

    test-read-model

  4. De même, vous pouvez tester l’objet de modèle et les services Écriture.

    Dans l’exemple suivant, le service update met à jour les informations relatives à l’adresse de l’ID 7102715 dans la base de données.

    test-write-model

    À présent, si vous testez à nouveau le service de lecture de modèle pour l’ID 7107215, il récupérera et affichera les détails du client mis à jour comme indiqué ci-dessous.

    read-updated

Sur cette page