Adobe 建议使用现代、可扩展的数据捕获核心组件,以创建新的自适应表单或将自适应表单添加到 AEM Sites 页面。这些组件代表有关创建自适应表单的重大改进,确保实现令人印象深刻的用户体验。本文介绍了使用基础组件创作自适应表单的旧方法。
AEM Forms允许表单作者通过从自适应表单字段中调用在表单数据模型中配置的服务,进一步简化和增强表单填写体验。 要调用数据模型服务,可以在可视编辑器中创建一个规则,或者使用 guidelib.dataIntegrationUtils.executeOperation
的代码编辑器中的API 规则编辑器.
本文档重点介绍如何使用编写JavaScript guidelib.dataIntegrationUtils.executeOperation
用于调用服务的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 |
如果success回调函数无法根据输入参数显示输出值,则显示错误消息。 它是一个用作回调函数的可选参数。 |
以下示例脚本使用 guidelib.dataIntegrationUtils.executeOperation
用于调用API getAccountById
服务操作配置于 employeeAccount
表单数据模型。
此 getAccountById
操作采用以下位置的值: employeeID
表单字段作为输入 empId
参数并返回相应员工的员工姓名、帐号和帐户余额。 输出值会填充到指定的表单字段中。 例如,中的值 name
参数填充在 fullName
表单元素和值 accountNumber
中的参数 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);
您还可以使用调用表单数据模型服务 guidelib.dataIntegrationUtils.executeOperation
带回调函数的API。 API语法如下:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
回调函数可以具有 success
和 failure
回调函数。
以下示例脚本使用 guidelib.dataIntegrationUtils.executeOperation
用于调用API GETOrder
服务操作配置于 employeeOrder
表单数据模型。
此 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);