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 da captura de dados moderna e extensível Componentes principaispara criação de um novo Forms adaptávelou adição de 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 chamar um serviço de modelo de dados, você pode criar uma regra no editor visual ou especificar um JavaScript usando o guidelib.dataIntegrationUtils.executeOperation
API no editor de código do editor de regras.
Este documento se concentra na gravação de um JavaScript usando o guidelib.dataIntegrationUtils.executeOperation
API para invocar um serviço.
Uso da API using-the-api
A variável guidelib.dataIntegrationUtils.executeOperation
A API chama 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 do guidelib.dataIntegrationUtils.executeOperation
A API especifica detalhes sobre a operação do 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 o guidelib.dataIntegrationUtils.executeOperation
API para invocar o getAccountById
operação de serviço configurada no employeeAccount
modelo de dados de formulário.
A variável getAccountById
A operação utiliza o valor no employeeID
campo de formulário como entrada para o empId
argumento e retorna o nome, o número e o saldo da conta do funcionário correspondente. Os valores de saída são preenchidos nos campos de formulário especificados. Por exemplo, o valor em name
O argumento é preenchido na variável fullName
elemento de formulário e valor para accountNumber
argumento em account
elemento de formulário.
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 chamar o serviço de modelo de dados de formulário usando o guidelib.dataIntegrationUtils.executeOperation
API 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 o guidelib.dataIntegrationUtils.executeOperation
API para invocar o GETOrder
operação de serviço configurada no employeeOrder
modelo de dados de formulário.
A variável GETOrder
A operação utiliza o valor no Order ID
campo de formulário como entrada para o orderId
argumento e retorna o valor da quantidade da ordem no success
função de retorno de chamada. Se a variável success
a função de retorno de chamada não retornar a quantidade da ordem, a variável failure
a função de retorno de chamada exibe a variável Error occured
mensagem.
success
função de retorno de chamada, 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);