API para chamar o serviço de modelo de dados de formulário a partir de formulários adaptáveis api-to-invoke-form-data-model-service-from-adaptive-forms
O Adobe recomenda o uso de Componentes principaisde captura de dados moderna e extensível para criar um novo Forms Adaptávelou adicionar o Forms Adaptável às páginas do AEM Sites. Esses componentes representam um avanço significativo na criação do Forms adaptável, garantindo experiências de usuário impressionantes. Este artigo descreve a abordagem mais antiga para criar o Forms adaptável usando componentes de base.
Visão geral overview
O AEM Forms permite que os autores de formulários simplifiquem e aprimorem ainda mais a experiência de preenchimento, chamando serviços configurados em um modelo de dados de formulário de dentro de um campo de formulário adaptável. Para invocar um serviço de modelo de dados, você pode criar uma regra no editor visual ou especificar um JavaScript usando a API guidelib.dataIntegrationUtils.executeOperation
no editor de códigos do editor de regras.
Este documento se concentra na gravação de um JavaScript usando a API guidelib.dataIntegrationUtils.executeOperation
para invocar um serviço.
Uso da API using-the-api
A API guidelib.dataIntegrationUtils.executeOperation
invoca um serviço de dentro de um campo de formulário adaptável. A sintaxe da API é a seguinte:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
A estrutura da API guidelib.dataIntegrationUtils.executeOperation
especifica detalhes sobre a operação de serviço. A sintaxe da estrutura é a seguinte:
var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}
A estrutura da API especifica os seguintes detalhes sobre a operação de serviço.
Exemplo de script para chamar um serviço sample-script-to-invoke-a-service
O exemplo de script a seguir usa a API guidelib.dataIntegrationUtils.executeOperation
para invocar a operação de serviço getAccountById
configurada no modelo de dados de formulário employeeAccount
.
A operação getAccountById
usa o valor no campo de formulário employeeID
como entrada para o argumento empId
e retorna o nome do funcionário, o número da conta e o saldo da conta para o funcionário correspondente. Os valores de saída são preenchidos nos campos de formulário especificados. Por exemplo, o valor no argumento name
é preenchido no elemento de formulário fullName
e o valor para o argumento accountNumber
no elemento de formulário 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);
Uso da API com função de retorno de chamada using-the-api-callback
Você também pode invocar o serviço de modelo de dados de formulário usando a API guidelib.dataIntegrationUtils.executeOperation
com uma função de retorno de chamada. A sintaxe da API é a seguinte:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
A função de retorno de chamada pode ter success
e failure
funções de retorno de chamada.
Exemplo de script com funções de retorno de chamada de sucesso e falha callback-function-success-failure
O exemplo de script a seguir usa a API guidelib.dataIntegrationUtils.executeOperation
para invocar a operação de serviço GETOrder
configurada no modelo de dados de formulário employeeOrder
.
A operação GETOrder
usa o valor no campo de formulário Order ID
como entrada para o argumento orderId
e retorna o valor da quantidade da ordem na função de retorno de chamada success
. Se a função de retorno de chamada success
não retornar a quantidade da ordem, a função de retorno de chamada failure
exibirá a mensagem Error occured
.
success
, os valores de saída não serão preenchidos nos campos de formulário especificados.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);