API para invocar el servicio del modelo de datos de formulario desde formularios adaptables api-to-invoke-form-data-model-service-from-adaptive-forms

Adobe recomienda utilizar la captura de datos moderna y ampliable Componentes principalespara crear un nuevo formulario adaptableo añadir formularios adaptables a páginas de AEM Sites. Estos componentes representan un avance significativo en la creación de formularios adaptables, lo que garantiza experiencias de usuario impresionantes. Este artículo describe un enfoque más antiguo para crear Formularios adaptables con componentes de base.

Información general overview

AEM Forms permite a los autores de formularios simplificar y mejorar aún más la experiencia de rellenado de formularios invocando los servicios configurados en un modelo de datos de formulario desde un campo de un formulario adaptable. Para invocar un servicio del modelo de datos, puede crear una regla en el Editor visual o especificar un JavaScript utilizando la API guidelib.dataIntegrationUtils.executeOperation en el Editor de código del Editor de reglas.

Este documento explica cómo escribir un JavaScript usando la API guidelib.dataIntegrationUtils.executeOperation para invocar un servicio.

Uso de la API using-the-api

La API guidelib.dataIntegrationUtils.executeOperation invoca un servicio desde un campo de formulario adaptable. La sintaxis de la API es la siguiente:

guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)

La estructura de la API guidelib.dataIntegrationUtils.executeOperation especifica los detalles de la operación del servicio. La sintaxis de la estructura es la siguiente:

var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}

La estructura de la API especifica los siguientes detalles sobre la operación del servicio.

Parámetro
Descripción
operationInfo
La estructura para especificar el identificador del modelo de datos de formulario, el título y el nombre de la operación.
formDataModelId
Especifica la ruta del repositorio del modelo de datos de formulario, incluido su nombre.
operationName
Especifica el nombre de la operación de servicio que se va a ejecutar.
inputs
Asigna uno o varios objetos de formulario a los argumentos de entrada para la operación de servicio.
Outputs
Asigna uno o varios objetos de formulario a los valores de salida de la operación de servicio para rellenar los campos del formulario.
success
Devuelve valores basados en los argumentos de entrada de la operación de servicio. Es un parámetro opcional utilizado como función de devolución de llamada.
failure
Muestra un mensaje de error si la función de devolución de llamada success no muestra los valores de salida en función de los argumentos de entrada. Es un parámetro opcional utilizado como función de devolución de llamada.

Script de ejemplo para invocar un servicio sample-script-to-invoke-a-service

El siguiente script de ejemplo utiliza la API guidelib.dataIntegrationUtils.executeOperation para invocar la operación de servicio getAccountById configurada en el modelo de datos de formulario employeeAccount.

La operación getAccountById toma el valor del campo del formulario employeeID como entrada para el argumento empId y devuelve el nombre del empleado y el número y el saldo de la cuenta del empleado correspondiente. Los valores de salida se rellenan en los campos del formulario especificados. Por ejemplo, el valor del argumento name se rellena en el elemento de formulario fullName, y el valor del argumento accountNumber argumento en el elemento de formulario 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 de la API con una función de devolución de llamada using-the-api-callback

También puede invocar el servicio del modelo de datos de formulario utilizando la API guidelib.dataIntegrationUtils.executeOperation con una función de devolución de llamada. La sintaxis de la API es la siguiente:

guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)

La función de devolución de llamada puede tener las funciones de devolución de llamada success y failure.

Script de ejemplo con las funciones de devolución de llamada success y failure callback-function-success-failure

El siguiente script de ejemplo utiliza la API guidelib.dataIntegrationUtils.executeOperation para invocar la operación de servicio GETOrder configurada en el modelo de datos de formulario employeeOrder.

La operación GETOrder toma el valor del campo de formulario Order ID como entrada para el argumento orderId y devuelve el valor de la cantidad del pedido en la función de devolución de llamada success. Si la función de devolución de llamada success no devuelve la cantidad del pedido, la función de devolución de llamada failure muestra el mensaje Error occured.

NOTE
Si usa la función de devolución de llamada success, los valores de salida no se rellenan en los campos del formulario 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);
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2