從最適化表單叫用表單資料模型服務的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);

本頁內容

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