Show Menu
トピック×

アダプティブフォームからフォームデータモデルサービスを呼び出すための API

概要

AEM Forms を使用すると、アダプティブフォームフィールド内からフォームデータモデルで構成されたサービスを呼び出すことで、フォーム作成者はフォームへの記入作業を簡略化および強化することができます。To invoke a data model service, you can either create a rule in the visual editor or specify a JavaScript using the guidelib.dataIntegrationUtils.executeOperation API in the code editor of the rule editor .
This document focuses on writing a JavaScript using the guidelib.dataIntegrationUtils.executeOperation API to invoke a service.

API の使用

guidelib.dataIntegrationUtils.executeOperation API は、アダプティブフォームのフィールド内から サービスを呼び出します。API 構文は以下のとおりです。
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)

この API には以下のパラメーターが必要です。
パラメーター
説明
operationInfo
フォームデータモデルの識別子、操作タイトル、操作名を指定する構造
inputs
サービス操作に値が入力されるフォームオブジェクトを指定する構造
outputs
サービス操作から返される値を使用して入力されるフォームオブジェクトを指定する構造
The structure of the guidelib.dataIntegrationUtils.executeOperation API specifies details about the service operation. この構造の構文は以下のとおりです。
var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}

API 構造は、サービス操作の以下の詳細を指定します。
パラメーター 説明
forDataModelId フォームデータモデルへのリポジトリパスをその名前も含めて指定する
operationName 実行するサービス操作の名前を指定する
input 1 つ以上のフォームオブジェクトをサービス操作の入力引数にマップする
出力 1 つ以上のフォームオブジェクトをサービス操作からの出力値にマップしてフォームフィールドを埋め込む

サービスを呼び出すスクリプトのサンプル

The following sample script uses the guidelib.dataIntegrationUtils.executeOperation API to invoke the getAccountById service operation configured in the employeeAccount form data model.
The getAccountById operation takes the value in the employeeID form field as input for the empId argument and returns employee name, account number, and account balance for the corresponding employee. この出力値は指定されたフォームフィールドに入力されます。For example, the value in name argument is populated in the fullName form element and value for accountNumber argument in account form element.
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);