从自适应表单调用表单数据模型服务的API

概述

AEM Forms使表单作者能够从自适应表单字段中调用表单数据模型中配置的服务,从而进一步简化和增强表单填写体验。 要调用数据模型服务,您可以在可视编辑器中创建规则,或使用规则编辑器的代码编辑器中的guidelib.dataIntegrationUtils.executeOperation API指定JavaScript。

本文档侧重于使用guidelib.dataIntegrationUtils.executeOperation API调用服务来编写JavaScript。

使用API

guidelib.dataIntegrationUtils.executeOperation API从自适应表单字段中调用服务。 API语法如下所示:

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

guidelib.dataIntegrationUtils.executeOperation API的结构指定有关服务操作的详细信息。 结构的语法如下所示。

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

API结构指定有关服务操作的以下详细信息。

参数 描述
operationInfo 用于指定表单数据模型标识符、操作标题和操作名称的结构
formDataModelId 指定表单数据模型的存储库路径,包括其名称
operationName 指定要执行的服务操作的名称
inputs 将一个或多个表单对象映射到服务操作的输入参数
Outputs 将一个或多个表单对象映射到服务操作中的输出值以填充表单字段
success 根据服务操作的输入参数返回值。 它是用作回调函数的可选参数。
failure 如果成功回调函数无法根据输入参数显示输出值,则显示错误消息。 它是用作回调函数的可选参数。

调用服务的示例脚本

以下示例脚本使用guidelib.dataIntegrationUtils.executeOperation API调用在employeeAccount表单数据模型中配置的getAccountById服务操作。

getAccountById操作将employeeID表单字段中的值作为empId参数的输入,并返回相应员工的员工姓名、帐号和帐户余额。 输出值将填充到指定的表单字段中。 例如,name参数中的值填充在fullName表单元素中,而account表单元素中accountNumber参数的值填充在表单元素中。

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);

将API与回调函数一起使用

您还可以使用带回调函数的guidelib.dataIntegrationUtils.executeOperation API调用表单数据模型服务。 API语法如下所示:

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

回调函数可以具有successfailure回调函数。

包含成功和失败回调函数的示例脚本

以下示例脚本使用guidelib.dataIntegrationUtils.executeOperation API调用在employeeOrder表单数据模型中配置的GETOrder服务操作。

GETOrder操作将Order ID表单字段中的值作为orderId参数的输入,并返回success回调函数中的订单量值。 如果success回调函数不返回订单量,则failure回调函数将显示Error occured消息。

注意

如果使用success回调函数,则输出值不会填充指定的表单字段。

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);

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now