API pour appeler le service de modèle de données de formulaire à partir de formulaires adaptatifs api-to-invoke-form-data-model-service-from-adaptive-forms
Adobe recommande d’utiliser les composants principauxde capture de données modernes et extensibles pour créer de nouveaux formulaires adaptatifsou ajouter des formulaires adaptatifs à des pages AEM Sites. Ces composants représentent une avancée significative dans la création de formulaires adaptatifs, ce qui garantit des expériences utilisateur impressionnantes. Cet article décrit l’ancienne approche de la création de formulaires adaptatifs à l’aide de composants de base.
Vue d’ensemble overview
AEM Forms permet aux créateurs et créatrices de formulaires de simplifier et d’améliorer le remplissage de formulaire en appelant les services configurés dans un modèle de données de formulaire depuis un champ de formulaire adaptatif. Pour appeler un service de modèle de données, vous pouvez créer une règle dans l’éditeur visuel ou spécifier un script JavaScript en utilisant l’API guidelib.dataIntegrationUtils.executeOperation
dans l’éditeur de code de l’éditeur de règles.
Ce document se concentre sur l’écriture d’un script JavaScript en utilisant l’API guidelib.dataIntegrationUtils.executeOperation
pour appeler un service.
Utilisation de l’API using-the-api
L’API guidelib.dataIntegrationUtils.executeOperation
appelle un service depuis un champ de formulaire adaptatif. La syntaxe API se présente comme suit :
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
La structure de l’API guidelib.dataIntegrationUtils.executeOperation
spécifie les détails sur l’opération de service. La syntaxe de la structure se présente comme suit.
var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}
La structure de l’API spécifie les détails suivants concernant l’opération de service.
Exemple de script pour appeler un service sample-script-to-invoke-a-service
L’exemple de script suivant utilise l’API guidelib.dataIntegrationUtils.executeOperation
pour appeler l’opération de service getAccountById
configurée dans le modèle de données de formulaire employeeAccount
.
L’opération getAccountById
utilise la valeur du champ de formulaire employeeID
comme entrée pour l’argument empId
et renvoie le nom de l’employé, le numéro de compte et le solde du compte pour l’employé correspondant. Les valeurs de sortie sont renseignées dans les champs de formulaire spécifiés. Par exemple, la valeur de l’argument name
est renseignée dans l’élément de formulaire fullName
et la valeur de l’argument accountNumber
, dans l’élément de formulaire account
.
var operationInfo = {
"formDataModelId": "/content/dam/formsanddocuments-fdm/employeeAccount",
"operationName": "getAccountDetails"
};
var inputs = {
"empid" : employeeID
};
var outputs = {
"name" : fullName,
"accountNumber" : account,
"balance" : balance
};
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs);
Utilisation de l’API avec la fonction de rappel using-the-api-callback
Vous pouvez également appeler le service de modèle de données de formulaire à l’aide de l’API guidelib.dataIntegrationUtils.executeOperation
avec une fonction de rappel. La syntaxe API se présente comme suit :
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
La fonction d’appel peut avoir des fonctions de rappel success
et failure
.
Exemple de script avec fonctions de rappel de succès et d’échec callback-function-success-failure
L’exemple de script suivant utilise l’API guidelib.dataIntegrationUtils.executeOperation
pour appeler l’opération de service GETOrder
configurée dans le modèle de données de formulaire employeeOrder
.
L’opération GETOrder
prend la valeur du champ de formulaire Order ID
comme entrée pour l’argument orderId
et renvoie la valeur de quantité de commande dans la fonction de rappel success
. Si la fonction de rappel success
ne renvoie pas la quantité de commande, la fonction de rappel failure
affiche le message Error occured
.
success
, les valeurs de sortie ne sont pas renseignées dans les champs de formulaire spécifiés.var operationInfo = {
"formDataModelId": "/content/dam/formsanddocuments-fdm/employeeOrder",
"operationTitle": "GETOrder",
"operationName": "GETOrder"
};
var inputs = {
"orderId" : Order ID
};
var outputs = {};
var success = function (wsdlOutput, textStatus, jqXHR) {
order_quantity.value = JSON.parse(wsdlOutput).quantity;
};
var failure = function(){
alert('Error occured');
};
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, success, failure);