Créer une fonction personnalisée pour un formulaire adaptatif basé sur les composants principaux
Les Forms adaptatives basées sur les composants principaux offrent des expériences utilisateur dynamiques en ajustant le contenu et le comportement en fonction des entrées de l’utilisateur. Les fonctions personnalisées permettent aux développeurs d’étendre les fonctionnalités, en s’assurant que les formulaires répondent à des exigences spécifiques. En intégrant des fonctions personnalisées, les développeurs peuvent implémenter une logique complexe, automatiser les processus et introduire des interactions uniques qui correspondent aux besoins spécifiques de l’entreprise ou aux attentes de l’utilisateur. Il permet de s’assurer que les formulaires s’adaptent non seulement à des conditions variées, mais qu’ils offrent également une solution plus précise et plus efficace pour divers cas d’utilisation.
Cet article vous guide tout au long des étapes de création de fonctions personnalisées pour le Forms adaptatif à l’aide des composants principaux.
Considérations
-
Les
parameter type
etreturn type
ne prennent pas en chargeNone
. -
Les fonctions qui ne sont pas prises en charge dans la liste des fonctions personnalisées sont les suivantes :
- Fonctions du générateur
- Fonctions asynchrones/d’attente
- Définitions des méthodes
- Méthodes de classe
- Paramètres par défaut
- Paramètres REST
Conditions préalables pour créer une fonction personnalisée
Avant de commencer à ajouter une fonction personnalisée à votre Forms adaptatif, assurez-vous que vous disposez des éléments suivants :
Logiciel :
-
Éditeur de texte brut (IDE) : bien que tout éditeur de texte brut puisse fonctionner, un environnement de développement intégré (IDE) comme Microsoft Visual Studio Code offre des fonctionnalités avancées pour faciliter la modification.
-
Git : ce système de gestion de versions est nécessaire pour gérer les modifications de code. Si vous ne l’avez pas installé, téléchargez-le à partir de https://git-scm.com.
Création d’une fonction personnalisée
Créez une bibliothèque cliente pour appeler des fonctions personnalisées dans l’éditeur de règles. Pour plus d’informations, voir Utilisation des bibliothèques côté client.
Les étapes de création de fonctions personnalisées sont les suivantes :
Créez une bibliothèque cliente. create-client-library
Vous pouvez ajouter des fonctions personnalisées en ajoutant une bibliothèque cliente. Pour créer une bibliothèque cliente, procédez comme suit :
Cloner le référentiel
Cloner votre référentiel as a Cloud Service AEM Forms :
-
Ouvrez la ligne de commande ou la fenêtre de terminal.
-
Accédez à l’emplacement souhaité sur votre ordinateur où stocker le référentiel.
-
Exécutez la commande suivante pour cloner le référentiel :
git clone [Git Repository URL]
Cette commande télécharge le référentiel et crée un dossier local du référentiel cloné sur votre ordinateur. Dans ce guide, nous nous référons à ce dossier en tant que [répertoire de projet AEMaaCS].
Ajouter un dossier de bibliothèque cliente
Pour ajouter un nouveau dossier de bibliothèques clientes au [répertoire de projet AEMaaCS], procédez comme suit :
-
Ouvrez le [répertoire de projet AEMaaCS] dans un éditeur.
-
Localisez
ui.apps
. -
Ajoutez un nouveau dossier. Par exemple, créez un dossier nommé
experience-league
. -
Accédez au dossier
/experience-league/
et ajoutez unClientLibraryFolder
. Par exemple, créez un dossier de bibliothèque cliente nommécustomclientlibs
.Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/
Ajouter des fichiers et des dossiers au dossier de bibliothèque cliente
Ajoutez ce qui suit au dossier de bibliothèque cliente ajouté :
- fichier .content.xml
- fichier js.txt
- dossier js
Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/experience-league/customclientlibs/
-
Dans
.content.xml
, ajoutez les lignes de code suivantes :code language-javascript <?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="cq:ClientLibraryFolder" categories="[customfunctionscategory]"/>
note note NOTE Vous pouvez choisir n’importe quel nom pour les propriétés client library folder
etcategories
. -
Dans
js.txt
, ajoutez les lignes de code suivantes :code language-javascript #base=js function.js
-
Dans le dossier
js
, ajoutez le fichier javascript en tant quefunction.js
qui comprend les fonctions personnalisées :code language-javascript /** * Calculates Age * @name calculateAge * @param {object} field * @return {string} */ function calculateAge(field) { var dob = new Date(field); var now = new Date(); var age = now.getFullYear() - dob.getFullYear(); var monthDiff = now.getMonth() - dob.getMonth(); if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) { age--; } return age; }
-
Enregistrez les fichiers.
Incluez le nouveau dossier dans filter.xml :
-
Accédez au fichier
/ui.apps/src/main/content/META-INF/vault/filter.xml
dans votre [répertoire de projet AEMaaCS]. -
Ouvrez le fichier et ajoutez la ligne suivante à la fin :
<filter root="/apps/experience-league" />
-
Enregistrez le fichier.
Déployez le dossier de bibliothèque cliente nouvellement créé dans votre environnement AEM
Déployez le [répertoire de projet AEMaaCS] d’AEM as a Cloud Service dans votre environnement de Cloud Service. Pour effectuer un déploiement sur votre environnement de Cloud Service :
-
Validez les modifications
- Ajoutez, validez et envoyez les modifications dans le référentiel à l’aide des commandes ci-dessous :
code language-javascript git add . git commit -a -m "Adding custom functions" git push
-
Déployez le code mis à jour :
- Déclenchez un déploiement de votre code par le biais du pipeline de pile complète existant. Cette opération génère et déploie automatiquement le code mis à jour.
Si vous n’avez pas encore configuré de pipeline, reportez-vous au guide sur la configuration d’un pipeline pour AEM Forms as a Cloud Service🔗.
Une fois le pipeline exécuté avec succès, la fonction personnalisée ajoutée à la bibliothèque cliente devient disponible dans votre éditeur de règles de formulaire adaptatif.
Ajout d’une bibliothèque cliente à un formulaire adaptatif use-custom-function
Une fois que vous avez déployé votre bibliothèque cliente dans votre environnement Forms CS, utilisez ses fonctionnalités dans votre formulaire adaptatif. Pour ajouter la bibliothèque cliente dans votre formulaire adaptatif
-
Ouvrez votre formulaire en mode d’édition. Pour ouvrir un formulaire en mode d’édition, sélectionnez-le et cliquez sur Ouvrir.
-
Ouvrez l’explorateur de contenu, puis sélectionnez le composant Conteneur de guide de votre formulaire adaptatif.
-
Cliquez sur l’icône des propriétés du conteneur de guide
-
Ouvrez l’onglet De base et sélectionnez le nom de la catégorie de bibliothèque cliente dans la liste déroulante (dans ce cas, sélectionnez
customfunctionscategory
).note note NOTE Plusieurs catégories peuvent être ajoutées en spécifiant une liste séparée par des virgules dans le champ Catégorie de bibliothèque cliente . -
Cliquez sur Terminé.
Vous pouvez utiliser la fonction personnalisée dans l’ éditeur de règles d’un formulaire adaptatif à l’aide des annotations JavaScript.
Utilisation d’une fonction personnalisée dans un formulaire adaptatif
Dans un formulaire adaptatif, vous pouvez utiliser des fonctions personnalisées dans l’éditeur de règles. Ajoutons le code suivant au fichier JavaScript (Function.js
) pour calculer l’âge en fonction de la date de naissance (AAAA-MM-JJ). Créez une fonction personnalisée calculateAge()
qui prend la date de naissance comme entrée et renvoie l’âge :
/**
* Calculates Age
* @name calculateAge
* @param {object} field
* @return {string}
*/
function calculateAge(field) {
var dob = new Date(field);
var now = new Date();
var age = now.getFullYear() - dob.getFullYear();
var monthDiff = now.getMonth() - dob.getMonth();
if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) {
age--;
}
return age;
}
Dans l’exemple ci-dessus, lorsque la personne saisit la date de naissance au format (AAAA-MM-JJ), la fonction personnalisée calculateAge
est appelée et renvoie l’âge.
Prévisualisons le formulaire pour observer comment les fonctions personnalisées sont implémentées par le biais de l’éditeur de règles :
Fonctions des fonctions personnalisées
Les fonctions personnalisées d’AEM forms offrent une solution robuste pour étendre et personnaliser les fonctionnalités de vos formulaires. Vous pouvez utiliser les fonctions personnalisées pour répondre aux besoins spécifiques de votre entreprise.
Ces fonctions prennent en charge diverses fonctionnalités, notamment l’utilisation de champs spécifiques, l’utilisation de champs globaux et d’opérations asynchrones, ainsi que l’incorporation de mécanismes de mise en cache. Cette flexibilité garantit que les formulaires peuvent s’adapter à des exigences complexes et offrir une expérience utilisateur efficace et personnalisée. En exploitant ces fonctionnalités avancées, vous pouvez améliorer les interactions des formulaires et optimiser les performances, rendant vos formulaires AEM plus fonctionnels et réactifs.
Explorons les fonctionnalités des fonctions personnalisées.
Prise en charge asynchrone dans les fonctions personnalisées support-of-async-functions
Vous pouvez implémenter des fonctions asynchrones dans l’éditeur de règles à l’aide de fonctions personnalisées. Pour plus d’informations sur la procédure à suivre, reportez-vous à l’article Utilisation de fonctions asynchrones dans un formulaire adaptatif.
Prise en charge des objets de champ et de portée globale dans les fonctions personnalisées support-field-and-global-objects
Les objets de champ font référence aux composants ou éléments individuels d’un formulaire, tels que les champs de texte et les cases à cocher. L’objet Globals contient des variables en lecture seule, telles que l’instance de formulaire, l’instance de champ cible et des méthodes permettant de modifier le formulaire dans des fonctions personnalisées.
param {scope} globals
doit être le dernier paramètre et il ne s’affiche pas dans l’éditeur de règles d’un formulaire adaptatif.Pour plus d’informations sur les objets de portée, consultez l’article Objets de portée dans les fonctions personnalisées .
Prise en charge de la mise en cache dans une fonction personnalisée
Les formulaires adaptatifs implémentent la mise en cache pour les fonctions personnalisées afin d’améliorer le temps de réponse lors de la récupération de la liste des fonctions personnalisées dans l’éditeur de règles. Un message Fetched following custom functions list from cache
apparaît dans le fichier error.log
.
Si les fonctions personnalisées sont modifiées, la mise en cache est invalidée et elle est analysée.
Résolution des problèmes
-
Si le fichier JavaScript contenant du code pour les fonctions personnalisées comporte une erreur, les fonctions personnalisées ne sont pas répertoriées dans l’éditeur de règles d’un formulaire adaptatif. Pour vérifier la liste des fonctions personnalisées, vous pouvez accéder au fichier
error.log
correspondant à l’erreur. En cas d’erreur, la liste des fonctions personnalisées apparaît vide :En l’absence d’erreur, la fonction personnalisée est récupérée et apparaît dans le fichier
error.log
. Un messageFetched following custom functions list
apparaît dans le fichiererror.log
:
Étape suivante
Nous allons maintenant voir divers exemples de fonctions personnalisées pour un formulaire adaptatif basé sur les composants principaux.
Voir également
- Présentation de l’éditeur de règles pour les formulaires adaptatifs basés sur les composants principaux
- Types d’opérateurs et événements dans l’éditeur de règles d’un formulaire adaptatif basé sur les composants principaux
- Interface d’utilisation de l’éditeur de règles pour les formulaires adaptatifs basés sur les composants principaux
- Différents cas d’utilisation de l’éditeur de règles pour un formulaire adaptatif basé sur les composants principaux
- Différence des diverses éditions de l’éditeur de règles
- Utiliser des fonctions asynchrones dans un formulaire adaptatif
- Améliorations du service Invoke dans l’éditeur de règles visuel pour les formulaires basés sur des composants principaux
- Présentation des fonctions personnalisées des formulaires adaptatifs basés sur les composants principaux
- Créer une fonction personnalisée pour un formulaire adaptatif basé sur les composants principaux
- Objet portée dans les fonctions personnalisées
- Exemples de développement et d’utilisation d’une fonction personnalisée