アダプティブフォームからフォームデータモデルサービスを呼び出すための API api-to-invoke-form-data-model-service-from-adaptive-forms

CAUTION
AEM 6.4 の拡張サポートは終了し、このドキュメントは更新されなくなりました。 詳細は、 技術サポート期間. サポートされているバージョンを見つける ここ.

概要 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)

API には次のパラメーターが必要です。

パラメーター
説明
operationInfo
フォームデータモデルの識別子、操作タイトル、操作名を指定する構造
inputs
サービス操作に値が入力されるフォームオブジェクトを指定する構造
outputs
サービス操作によって返される値を使用して入力されるフォームオブジェクトを指定する構造

guidelib.dataIntegrationUtils.executeOperation API の構造は、サービス操作の詳細を指定します。構造の構文は次のとおりです。

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

API 構造では、サービス操作に関する次の詳細を指定します。

パラメーター
説明
forDataModelId
名前を含むフォームデータモデルのリポジトリパスを指定します
operationName
実行するサービス操作の名前を指定します
input
1 つ以上のフォームオブジェクトをサービス操作の入力引数にマッピングする
出力
1 つ以上のフォームオブジェクトをサービス操作からの出力値にマップして、フォームフィールドに入力します

サービスを呼び出すスクリプトのサンプル sample-script-to-invoke-a-service

以下のサンプルスクリプトでは、guidelib.dataIntegrationUtils.executeOperation API を使用して、employeeAccount フォームデータモデルで構成された getAccountById サービス操作を呼び出しています。

getAccountById 操作は、empId 引数の入力値として employeeID フォームフィールドにある値を使用し、該当する従業員の名前、口座番号、口座残高を戻します。この出力値は指定されたフォームフィールドに入力されます。例えば、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);
recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da