用于从自适应表单调用表单数据模型服务的API api-to-invoke-form-data-model-service-from-adaptive-forms
Adobe 建议使用现代、可扩展的数据捕获核心组件,以创建新的自适应表单或将自适应表单添加到 AEM Sites 页面。这些组件代表有关创建自适应表单的重大改进,确保实现令人印象深刻的用户体验。本文介绍了使用基础组件创作自适应表单的旧方法。
概述 overview
AEM Forms允许表单作者通过从自适应表单字段中调用在表单数据模型中配置的服务,进一步简化和增强表单填写体验。 要调用数据模型服务,您可以在可视编辑器中创建规则,或在规则编辑器的代码编辑器中使用guidelib.dataIntegrationUtils.executeOperation
API指定JavaScript。
本文档侧重于使用guidelib.dataIntegrationUtils.executeOperation
API编写JavaScript以调用服务。
使用API using-the-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结构指定了有关服务操作的以下详细信息。
用于调用服务的示例脚本 sample-script-to-invoke-a-service
以下示例脚本使用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与回调函数结合使用 using-the-api-callback
您还可以使用带有回调函数的guidelib.dataIntegrationUtils.executeOperation
API调用表单数据模型服务。 API语法如下:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
回调函数可以有success
和failure
回调函数。
包含成功和失败回调函数的示例脚本 callback-function-success-failure
以下示例脚本使用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);