AEM 6.4 a atteint la fin de la prise en charge étendue et cette documentation n’est plus mise à jour. Pour plus d’informations, voir notre période de support technique. Rechercher les versions prises en charge here.
Les formulaires adaptatifs valident les entrées que vous fournissez dans les champs en fonction de critères de validation prédéfinis. Les critères de validation font référence aux valeurs d’entrée acceptables pour les champs d’un formulaire adaptatif. Vous pouvez définir les critères de validation en fonction de la source de données que vous utilisez avec le formulaire adaptatif. Par exemple, si vous utilisez des services web RESTful comme source de données, vous pouvez définir les critères de validation dans un fichier de définition Swagger.
Si les valeurs d’entrée répondent aux critères de validation, elles sont envoyées à la source de données. Dans le cas contraire, le formulaire adaptatif affiche un message d’erreur.
De la même manière que cette approche, les formulaires adaptatifs peuvent désormais s’intégrer aux services personnalisés pour effectuer des validations de données. Si les valeurs d’entrée ne répondent pas aux critères de validation et que le message d’erreur de validation renvoyé par le serveur est au format standard du message, les messages d’erreur s’affichent au niveau du champ dans le formulaire.
Si les valeurs d’entrée ne répondent pas aux critères de validation et que le message d’erreur de validation du serveur n’est pas au format standard du message, les formulaires adaptatifs fournissent un mécanisme pour transformer les messages d’erreur de validation en un format standard afin qu’ils s’affichent au niveau du champ dans le formulaire. Vous pouvez transformer le message d’erreur au format standard à l’aide de l’une des deux méthodes suivantes :
Cet article décrit le format standard des messages d’erreur de validation et les instructions pour transformer les messages d’erreur d’un format personnalisé en un format standard.
Les formulaires adaptatifs affichent les erreurs au niveau du champ si les messages d’erreur de validation du serveur sont au format standard suivant :
{
errorCausedBy : "SERVER_SIDE_VALIDATION/SERVICE_INVOCATION_FAILURE"
errors : [
{
somExpression : <somexpr>
errorMessage / errorMessages : <validationMsg> / [<validationMsg>, <validationMsg>]
}
]
originCode : <target error Code>
originMessage : <unstructured error message returned by service>
}
Où :
errorCausedBy
décrit le motif de l’échec.errors
mentionne l’expression SOM des champs qui ont échoué aux critères de validation avec le message d’erreur de validation.originCode
contient le code d’erreur renvoyé par le service externe.originMessage
contient les données d’erreur brutes renvoyées par le service externe.Si le message d’erreur de validation du serveur ne s’affiche pas dans le format standard, vous pouvez activer l’envoi asynchrone et ajouter un gestionnaire d’erreur personnalisé lors de l’envoi du formulaire adaptatif pour convertir le message dans un format standard.
Avant d’ajouter un gestionnaire personnalisé, vous devez configurer le formulaire adaptatif pour l’envoi asynchrone. Procédez comme suit :
En mode de création de formulaire adaptatif, sélectionnez l’objet Conteneur de formulaires et appuyez sur pour ouvrir ses propriétés.
Dans la section des propriétés Envoi, activez Utiliser l’envoi asynchrone.
Sélectionnez Revalider sur le serveur pour valider les valeurs des champs d’entrée sur le serveur avant l’envoi.
Sélectionnez l’action Envoyer :
Appuyez sur pour enregistrer les propriétés.
AEM Forms fournit des gestionnaires de réussite et d’erreur prêts à l’emploi pour les envois de formulaire. Les gestionnaires sont des fonctions côté client qui s’exécutent en fonction de la réponse du serveur. Lorsqu’un formulaire est envoyé, les données sont transmises au serveur pour validation, ce qui renvoie une réponse au client avec des informations sur l’événement de succès ou d’erreur pour l’envoi. Les informations sont transmises en tant que paramètres au gestionnaire approprié pour exécuter la fonction.
Exécutez les étapes suivantes pour ajouter un gestionnaire d’erreurs personnalisé lors de l’envoi du formulaire adaptatif :
Voici un exemple de code pour convertir une structure d’erreur personnalisée en structure d’erreur standard :
var data = $event.data;
var som_map = {
"id": "guide[0].guide1[0].guideRootPanel[0].Pet[0].id_1[0]",
"name": "guide[0].guide1[0].guideRootPanel[0].Pet[0].name_2[0]",
"status": "guide[0].guide1[0].guideRootPanel[0].Pet[0].status[0]"
};
var errorJson = {};
errorJson.errors = [];
if (data) {
if (data.originMessage) {
var errorData;
try {
errorData = JSON.parse(data.originMessage);
} catch (err) {
// not in json format
}
if (errorData) {
Object.keys(errorData).forEach(function(key) {
var som_key = som_map[key];
if (som_key) {
var error = {};
error.somExpression = som_key;
error.errorMessage = errorData[key];
errorJson.errors.push(error);
}
});
}
window.guideBridge.handleServerValidationError(errorJson);
} else {
window.guideBridge.handleServerValidationError(data);
}
}
Le var som_map
répertorie l’expression SOM des champs de formulaire adaptatif que vous souhaitez transformer au format standard. Vous pouvez afficher l’expression SOM de n’importe quel champ d’un formulaire adaptatif en appuyant sur le champ et en sélectionnant Afficher l’expression SOM.
À l’aide de ce gestionnaire d’erreurs personnalisé, le formulaire adaptatif convertit les champs répertoriés dans var som_map
au format standard du message d’erreur. Par conséquent, les messages d’erreur de validation s’affichent au niveau du champ dans le formulaire adaptatif.
Exécutez les opérations suivantes pour ajouter un gestionnaire d’erreurs afin de convertir une structure d’erreur personnalisée en structure d’erreur standard à l’aide de l’action Invoke Service de l’ Éditeur de règles :
Par conséquent, les valeurs que vous saisissez pour Nom, ID et État sont validés, dès que le champ défini à l’étape 2 est modifié et que vous désélectionnez le champ du formulaire.
Sélectionnez l’éditeur de code dans la liste déroulante de sélection de mode.
Appuyer sur Modifier le code.
Supprimez la ligne suivante du code existant :
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs);
Créez une règle pour convertir la structure d’erreur personnalisée en structure d’erreur standard, puis appuyez sur Terminé pour enregistrer la règle.
Par exemple, ajoutez l’exemple de code suivant à la fin pour convertir une structure d’erreur personnalisée en structure d’erreur standard :
var errorHandler = function(jqXHR, data) {
var som_map = {
"id": "guide[0].guide1[0].guideRootPanel[0].Pet[0].id_1[0]",
"name": "guide[0].guide1[0].guideRootPanel[0].Pet[0].name_2[0]",
"status": "guide[0].guide1[0].guideRootPanel[0].Pet[0].status[0]"
};
var errorJson = {};
errorJson.errors = [];
if (data) {
if (data.originMessage) {
var errorData;
try {
errorData = JSON.parse(data.originMessage);
} catch (err) {
// not in json format
}
if (errorData) {
Object.keys(errorData).forEach(function(key) {
var som_key = som_map[key];
if (som_key) {
var error = {};
error.somExpression = som_key;
error.errorMessage = errorData[key];
errorJson.errors.push(error);
}
});
}
window.guideBridge.handleServerValidationError(errorJson);
} else {
window.guideBridge.handleServerValidationError(data);
}
}
};
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, null, errorHandler);
Le var som_map
répertorie l’expression SOM des champs de formulaire adaptatif que vous souhaitez transformer au format standard. Vous pouvez afficher l’expression SOM de n’importe quel champ d’un formulaire adaptatif en appuyant sur le champ et en sélectionnant Afficher l’expression SOM du menu Autres options (…).
Veillez à copier la ligne suivante de l’exemple de code dans le gestionnaire d’erreurs personnalisé :
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, null, errorHandler);
L’API executeOperation comprend les paramètres null
et errorHandler
en fonction du nouveau gestionnaire d’erreurs personnalisé.
À l’aide de ce gestionnaire d’erreurs personnalisé, le formulaire adaptatif convertit les champs répertoriés dans var som_map
au format standard du message d’erreur. Par conséquent, les messages d’erreur de validation s’affichent au niveau du champ dans le formulaire adaptatif.