Show Menu
SUJETS×

Étendre le métamodèle par défaut

Le service de conversion automatisée de formulaires identifie et extrait les objets de formulaire des formulaires sources. Le mappeur sémantique aide le service à décider comment les objets extraits sont représentés dans un formulaire adaptatif. Par exemple, un formulaire source peut représenter une date de plusieurs façons différentes. Le mappeur sémantique permet de mapper toutes les représentations des dates du formulaire source avec les composants de date des formulaires adaptatifs. Le mappeur sémantique permet également au service de préconfigurer et d’appliquer des validations, des règles, des modèles de données, du texte d’aide et des propriétés d’accessibilité aux composants de formulaires adaptatifs pendant la conversion.
Le métamodèle est un schéma JSON. Avant de commencer, assurez-vous de bien maîtriser JSON. Vous devez avoir de l’expérience dans la création, l’édition et la lecture de données enregistrées au format JSON.

Métamodèle par défaut

Le service de conversion automatisée de formulaires comprend un métamodèle par défaut. Il s’agit d’un schéma JSON qui se trouve sur Adobe Cloud avec d’autres composants du service de conversion automatisée de formulaires. Une copie du métamodèle est disponible sur votre serveur AEM local à l’adresse suivante :
http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json.
Le schéma du métamodèle dérive des entités de schéma figurant sur https://schema.org/docs/schemas.html. Il inclut notamment les entités Person, PostalAddress et LocalBusiness définies sur https://schema.org. Chaque entité du métamodèle correspond au type d’objet de schéma JSON. Le code suivant représente un exemple de structure de métamodèle :
   "Entity": {
      "id": "Entity",
      "properties": {
        "name": {
          "type": "string"
        },

        "description": {
          "type": "string",
          "description": "Description of the item"
        }
      }
    }

Télécharger le métamodèle par défaut

Pour télécharger le métamodèle par défaut sur le système de fichiers local, procédez comme suit :
  1. Connectez-vous à l’instance AEM Forms.
  2. Accédez au dossier Forms (Formulaires) > Forms &amp; Documents (Formulaires et documents)  > Meta Model (Métamodèle).
  3. Sélectionnez le fichier global.schema.json et appuyez sur Download (Télécharger). Une boîte de dialogue de téléchargement s’affiche. Sélectionnez l’option Download asset(s) as binary files (Télécharger le ou les actifs sous forme de fichiers binaires). Appuyez sur Download (Télécharger). Une archive est téléchargée.

Comprendre le métamodèle

Un métamodèle fait référence à un fichier de schéma JSON qui contient des entités. Toutes les entités du fichier de schéma JSON incluent un nom et un identifiant. Chaque entité peut comprendre plusieurs propriétés. Les entités et leurs propriétés peuvent varier en fonction du domaine. Vous pouvez étendre un fichier de schéma à l’aide de mots-clés et de configurations de champs pour mapper les propriétés de schéma aux composants de formulaires adaptatifs.
"Event": {
      "id": "Eventid",
      "allOf": [
        {
          "$ref": "#Entity"
        },
        {
          "properties": {
            "startDate": {
              "type": "string",
              "format": "date",
              "description": "Specify the start date and time of the event in ISO 8601 date format."
            },
            "endDate": {
              "type": "string",
              "format": "date",
              "description": "Specify the end date and time of the event in ISO 8601 date format."
            },
            "location": {
              "$ref": "#PostalAddress",
              "description": "Specify the location of the event."
            }
          }
        }
      ]
    }

Dans cet exemple, Event (Événement) représente le nom d’une entité dont la valeur id est Eventid . L’entité Event (Événement) comprend plusieurs propriétés :
  • startDate
  • endDate
  • location
Le concept allOf dans le métamodèle permet l’héritage entre les entités.
Chaque propriété peut en outre inclure :
Sur la base des mots-clés référencés à l’aide de aem:affKeyword , le service de conversion effectue une opération de recherche sur les champs du formulaire source. Le service de conversion applique les propriétés du schéma JSON et les propriétés supplémentaires aux champs qui répondent aux critères de recherche.
Dans cet exemple, le service de conversion recherche les mots-clés suivants dans le fichier source : phone, telephone, mobile phone, work phone, home phone, telephone number, telephone no et phone number. Selon les champs dans lesquels figurent ces mots-clés, le service de conversion applique le type, le modèle et aem:afProperties aux champs du formulaire adaptatif après la conversion.

Propriétés du schéma JSON pour les champs de formulaires adaptatifs générés

Le métamodèle prend en charge les propriétés communes du schéma JSON suivantes pour les champs de formulaires adaptatifs générés à l’aide du service de conversion automatisée de formulaires :
Nom de la propriété Description
title
Le texte mentionné dans la propriété title d’un métamodèle sert de mot-clé de recherche pour effectuer des actions sur les champs de formulaires adaptatifs générés (par exemple, la modification du libellé d’un champ de formulaire adaptatif). Pour en savoir plus, consultez la section Modifier le libellé d’un champ de formulaire dans Exemples de métamodèles personnalisés .
description
La propriété description définit le texte d’aide pour le champ de formulaire adaptatif généré. Pour en savoir plus, consultez la section Ajouter du texte d’aide à un champ de formulaire dans Exemples de métamodèles personnalisés .
type
La propriété type définit le type de données pour le champ de formulaire adaptatif généré. Les valeurs possibles pour la propriété type sont les suivantes :
  • string (chaîne) : génère un champ de formulaire adaptatif de type données texte.
  • number (nombre) : génère un champ de formulaire adaptatif de type données numériques.
  • integer (entier) : génère un champ de formulaire adaptatif de type données numériques avec un sous-type défini sur « integer ».
  • boolean (booléen) : génère un composant de formulaire adaptatif de basculement.
Pour en savoir plus sur l’utilisation de la propriété type dans un métamodèle, consultez la section Modifier le type d’un champ de formulaire dans Exemples de métamodèles personnalisés .
pattern
La propriété pattern restreint la valeur du champ de formulaire adaptatif généré selon une expression régulière. Par exemple, le code suivant dans le métamodèle limite la valeur du champ de formulaire adaptatif généré à dix chiffres : "pattern": "/\\d{10}/" De même, le code suivant dans le métamodèle restreint la valeur d’un champ à un format de date spécifique. "pattern": "date{DD MMMM, YYYY}",
format
La propriété format restreint la valeur du champ de formulaire adaptatif généré selon un modèle nommé plutôt qu’une expression régulière. Les valeurs possibles pour la propriété format sont les suivantes :
  • email (adresse électronique) : génère un composant de formulaire adaptatif de messagerie.
  • hostname (nom d’hôte) : génère un composant de formulaire adaptatif de zone de texte.
Pour en savoir plus sur l’utilisation de la propriété format dans un métamodèle, consultez la section Modifier le format d’un champ de formulaire dans Exemples de métamodèles personnalisés .
enum et enumNames
Les propriétés enum et enumNames limitent les valeurs des champs de liste déroulante, de case à cocher ou de bouton radio à un ensemble fixe. Les valeurs répertoriées dans enumNames sont affichées sur l’interface utilisateur. Les valeurs répertoriées à l’aide de la propriété enum sont utilisées pour le calcul. Pour plus d’informations, consultez les sections Convertir un champ de formulaire en cases à cocher à choix multiples dans le formulaire adaptatif , Convertir un champ de texte en liste déroulante dans le formulaire adaptatif et Ajouter des options supplémentaires à la liste déroulante dans Exemples de métamodèles personnalisés .

Recherche par mots-clés pour appliquer des propriétés aux champs de formulaires adaptatifs générés

Le service de conversion automatisée de formulaires effectue une recherche par mot-clé sur le formulaire source pendant la conversion. Après avoir filtré les champs qui répondent aux critères de recherche, le service de conversion applique les propriétés définies pour ces champs dans le métamodèle aux champs de formulaires adaptatifs générés.
Les mots-clés sont référencés à l’aide de la propriété aem:affKeyword .
{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"]
 }
}

Dans cet exemple, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Bank account number (Numéro de compte bancaire) dans le formulaire, le service de conversion convertit le champ en un type number (nombre) à l’aide de la propriété type .

Propriétés supplémentaires pour les champs de formulaires adaptatifs générés

Vous pouvez utiliser la propriété aem:afProperties dans le métamodèle pour définir les propriétés supplémentaires suivantes pour les champs de formulaires adaptatifs générés à l’aide du service de conversion automatisée de formulaires :
Nom de la propriété Description
multiLine
La propriété multiLine convertit un champ de formulaire source en un champ multiligne dans le formulaire adaptatif après la conversion. Pour plus d’informations, voir Convertir un champ de chaîne en un champ multiligne dans Exemples de métamodèles personnalisés .
mandatory
La propriété mandatory définit l’entrée pour un champ de formulaire adaptatif après la conversion comme obligatoire. Pour en savoir plus, consultez la section Ajouter des validations à des champs de formulaires adaptatifs dans Exemples de métamodèles personnalisés .
jcr:title
La propriété jcr:title, conjointement à la propriété de schéma de titre JSON, vous permet de modifier le libellé d’un champ de formulaire adaptatif après la conversion. Pour en savoir plus, consultez la section Modifier le libellé d’un champ de formulaire dans Exemples de métamodèles personnalisés. Voir Créer des formulaires adaptatifs à l’aide du schéma JSON pour en savoir plus sur les autres propriétés que vous pouvez appliquer aux champs de formulaires adaptatifs à l’aide du schéma JSON.
sling:resourceType et guideNodeClass
Les propriétés sling:resourceType et guideNodeClass vous permettent de mapper un champ de formulaire à un composant de formulaire adaptatif correspondant. Pour plus d’informations, consultez les sections Convertir un champ de formulaire en cases à cocher à choix multiples dans le formulaire adaptatif et Convertir un champ de texte en liste déroulante dans le formulaire adaptatif dans Exemples de métamodèles personnalisés .
validatePictureClause
La propriété validatePictureClause définit une validation sur le format autorisé dans le champ de formulaire adaptatif après la conversion. Pour en savoir plus, consultez la section Ajouter des validations à des champs de formulaires adaptatifs dans Exemples de métamodèles personnalisés.
#custommetamodelexamples

Modifier des champs de formulaires adaptatifs à l’aide d’un métamodèle personnalisé

Votre entreprise peut avoir des modèles et des validations en plus de ceux répertoriés dans le métamodèle par défaut. Vous pouvez étendre le métamodèle par défaut pour ajouter un modèle, des validations et des entités spécifiques à votre entreprise. Le service de conversion automatisée de formulaires applique le métamodèle personnalisé aux champs du formulaire pendant la conversion. Vous pouvez continuer à mettre à jour le métamodèle à mesure que de nouveaux modèles, validations et entités spécifiques à votre organisation sont découverts.
Le service de conversion automatisée de formulaires utilise un métamodèle par défaut enregistré à l’emplacement suivant pour mapper les champs de formulaire source aux champs de formulaire adaptatif pendant la conversion :
http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json
Cependant, vous pouvez enregistrer un métamodèle personnalisé dans un dossier et modifier les propriétés du service de conversion pour utiliser le métamodèle personnalisé pendant la conversion.

Utiliser un métamodèle personnalisé lors de la conversion

Pour utiliser un métamodèle personnalisé lors de la conversion, procédez comme suit :
  1. Créez un dossier dans Forms (Formulaires) > Forms &amp; Documents (Formulaires et documents) et téléchargez le fichier de schéma JSON de métamodèle personnalisé dans le dossier.
  2. Ouvrez les propriétés du service de conversion à l’aide de :
    Tools (Outils) > Cloud Services (Services cloud) > Automated Forms Conversion Configuration (Configuration de la conversion automatisée de formulaires) > < Properties of selected configuration (Propriétés de la configuration sélectionnée) >
  3. Dans l’onglet Basic (De base), spécifiez l’emplacement du métamodèle personnalisé dans le champ Custom Meta-model (Métamodèle personnalisé) et appuyez sur Save &amp; Close (Enregistrer et fermer).
  4. Exécutez la conversion pour appliquer le métamodèle personnalisé au processus de conversion.

Exemples de métamodèles personnalisés

Voici quelques exemples courants d’utilisation d’un métamodèle personnalisé pour modifier les propriétés d’un champ de formulaire adaptatif :
  • Modifier le libellé d’un champ de formulaire
  • Modifier le type d’un champ de formulaire
  • Ajouter du texte d’aide à un champ de formulaire
  • Convertir un champ de formulaire en cases à cocher à choix multiples dans le formulaire adaptatif
  • Modifier le format d’un champ de formulaire
  • Ajouter des validations à des champs de formulaires adaptatifs
  • Convertir un champ de texte en liste déroulante dans le formulaire adaptatif
  • Ajouter des options supplémentaires à la liste déroulante
  • Convertir un champ de chaîne en un champ multiligne

Modifier le libellé d’un champ de formulaire

Exemple : remplacez le libellé du numéro de compte bancaire dans le formulaire par Numéro de compte personnalisé dans le formulaire adaptatif après la conversion.
Dans ce métamodèle personnalisé, le service de conversion utilise la propriété title comme mot-clé de recherche. Après avoir récupéré le texte Bank account number (Numéro de compte bancaire) dans le formulaire, le service de conversion remplace le texte par la chaîne Customer account number (numéro de compte client) mentionnée avec la propriété jcr:title dans la section aem:afProperties .
{
  "numberfields": {
      "type": "number",
   "title": "Bank account number",
   "aem:afProperties" : {
    "jcr:title" : "Customer account number"
   }
   }
}

Modifier le type d’un champ de formulaire

Exemple  : remplacez le champ Bank account number (Numéro de compte bancaire) de type texte dans le formulaire avant la conversion par un champ de type number dans le formulaire adaptatif après la conversion.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Bank account number (Numéro de compte bancaire) dans le formulaire, le service de conversion convertit le champ en un type number (nombre) à l’aide de la propriété type .
{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"]
 }
}

Ajouter du texte d’aide à un champ de formulaire

Exemple  : ajouter du texte d’aide au champ Bank account number (Numéro de compte bancaire) du formulaire adaptatif.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Bank account number (Numéro de compte bancaire) dans le formulaire, le service de conversion ajoute le texte d’aide au formulaire adaptatif à l’aide de la propriété description .
{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"],
   "description": "Specify your bank account number."
 }
}

Convertir un champ de formulaire en cases à cocher à choix multiples dans le formulaire adaptatif

**Exemple **: remplacez le champ Country (Pays) de type string (chaîne) dans le formulaire avant la conversion par des cases à cocher dans le formulaire adaptatif après la conversion.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Country (Pays) dans le formulaire, le service de conversion remplace le champ par les cases à cocher suivantes à l’aide de la propriété enum  :
  • India
  • England
  • Australia
  • New Zealand
Les propriétés sling:resourceType et guideNodeClass mappent un champ de formulaire à un composant de formulaire adaptatif de case à cocher.
{
"title": {
    "aem:affKeyword": [
      "country"
    ],
    "type" : "string",
    "enum": [
      "India",
      "England",
      "Australia",
      "New Zealand"
    ],
    "aem:afProperties": {
      "sling:resourceType": "fd/af/components/guidecheckbox",
      "guideNodeClass": "guidecheckbox"
    }
  }
}

Modifier le format d’un champ de formulaire

Exemple  : remplacez le format du champ Email Address (Adresse électronique) par un format d’adresse électronique.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Email Address (Adresse électronique) dans le formulaire, le service de conversion remplace le champ par un format d’adresse électronique à l’aide de la propriété format .
{
   "additionalDetails" : {
      "aem:affKeyword": ["E-mail Address"],
       "type" : "string",
       "format" : "email"
  } 
}

Ajouter des validations à des champs de formulaires adaptatifs

Exemple 1 : ajoutez une validation au champ Postal Code (Code postal) du formulaire adaptatif.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Postal Code (Code postal) dans le formulaire, le service de conversion ajoute une validation au champ à l’aide de la propriété validatePictureClause définie dans la section aem:afProperties . Selon la validation, l’entrée que vous spécifiez pour le champ Postal Code (Code postal) dans le formulaire adaptatif après la conversion doit comprendre six caractères.
{
   "postalCode" : {
      "aem:affKeyword": ["Postal Code"],
      "type" : "string",
      "aem:afProperties" : {
        "validatePictureClause" : "\\d{6}"
      } 
   }
}

Exemple 2 : ajoutez une validation au champ Bank account number (Numéro de compte bancaire) du formulaire adaptatif.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Bank account number (Numéro de compte bancaire) dans le formulaire, le service de conversion ajoute une validation au champ à l’aide de la propriété mandatory définie dans la section aem:afProperties . Selon la validation, vous devez spécifier une valeur pour le champ Bank account number (Numéro de compte bancaire) avant d’envoyer le formulaire après la conversion.
{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"],
   "aem:afProperties" : {
        "mandatory": "true"
      }   
   }
}

Convertir un champ de texte en liste déroulante dans le formulaire adaptatif

Exemple  : remplacez le champ Country (Pays) de type string dans le formulaire avant la conversion par des options de liste déroulante dans le formulaire adaptatif après la conversion.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Country (Pays) dans le formulaire, le service de conversion remplace le champ par les options de liste déroulante suivantes à l’aide de la propriété enum  :
  • India
  • England
  • Australia
  • New Zealand
Les propriétés sling:resourceType et guideNodeClass mappent un champ de formulaire à un composant de formulaire adaptatif de liste déroulante.
{
"title": {
    "aem:affKeyword": [
      "country"
    ],
    "type" : "string",
    "enum": [
      "India",
      "England",
      "Australia",
      "New Zealand"
    ],
    "aem:afProperties": {
      "sling:resourceType": "fd/af/components/guidedropdownlist",
      "guideNodeClass": "guideDropDownlist"
    }
  }
}

Ajouter des options supplémentaires à la liste déroulante

Exemple : ajoutez Sri Lanka comme option supplémentaire à une liste déroulante existante à l’aide d’un métamodèle personnalisé.
Pour ajouter une option supplémentaire, mettez à jour la propriété enum avec la nouvelle option. Dans cet exemple, mettez à jour la propriété enum avec Sri Lanka comme option supplémentaire. Les valeurs répertoriées dans la propriété enum s’affichent dans la liste déroulante.
{
"title": {
    "aem:affKeyword": [
      "country"
    ],
    "type" : "string",
    "enum": [
      "India",
      "England",
      "Australia",
      "New Zealand",
   "Sri Lanka"
    ],
    "aem:afProperties": {
      "sling:resourceType": "fd/af/components/guidecheckbox",
      "guideNodeClass": "guidecheckbox"
    }
  }
}

Convertir un champ de chaîne en un champ multiligne

Exemple : remplacez le champ Address (Adresse) de type string par un champ multiligne dans le formulaire après la conversion.
Dans ce métamodèle personnalisé, le service de conversion utilise le texte dans aem:affKeyword comme mot-clé de recherche. Après avoir récupéré le texte Address (Adresse) dans le formulaire, le service remplace le champ de texte par un champ multiligne à l’aide de la propriété multiLine définie dans la section aem:afProperties .
{
 "multiLine" : {
   "aem:affKeyword": [
      "Address"
    ],
    "type" : "string",
    "aem:afProperties": {
      "multiLine": "true"
    }
  }
}