AEM ワークフローの ArrayList 変数
AEM Forms 6.5 では、ArrayList 型の変数が導入されました。ArrayList 変数の一般的な使用例は、AssignTask で使用するカスタムルートを定義することです。
AEM ワークフローで ArrayList 変数を使用するには、送信されたデータに繰り返し要素を生成するアダプティブフォームを作成する必要があります。 一般的な方法は、配列要素を含むスキーマを定義することです。 この記事の目的で、配列要素を含む単純な JSON スキーマを作成しました。 使用例は、従業員が経費報告書を入力する場合です。 経費報告書では、提出者のマネージャー名と、マネージャーのマネージャー名を取り込みます。 マネージャー名は managerchain と呼ばれる配列に格納されます。 次のスクリーンショットは、経費報告フォームと、アダプティブフォーム送信からのデータを示しています。
アダプティブフォームの送信データを次に示します。 アダプティブフォームは JSON スキーマに基づいており、スキーマにバインドされたデータは、afBoundData 要素の data 要素の下に保存されます。managerchain は配列であり、ArrayList に managerchain 配列内のオブジェクトの名前要素を設定する必要があります。
{
"afData": {
"afUnboundData": {
"data": {
"numericbox_2762582281554154833426": 700
}
},
"afBoundData": {
"data": {
"Employee": {
"Name": "Conrad Simms",
"Department": "IT",
"managerchain": [{
"name": "Gloria Rios"
}, {
"name": "John Jacobs"
}]
},
"expense": [{
"description": "Hotel",
"amount": 300
}, {
"description": "Air Fare",
"amount": 400
}]
}
},
"afSubmissionInfo": {
"computedMetaInfo": {},
"stateOverrides": {},
"signers": {},
"afPath": "/content/dam/formsanddocuments/helpx/travelexpensereport",
"afSubmissionTime": "20190402102953"
}
}
}
サブタイプ文字列の ArrayList 変数を初期化するには、JSON ドット表記または XPath マッピングモードを使用します。次のスクリーンショットは、JSON ドット表記を使用して CustomRoutes と呼ばれる ArrayList 変数を生成する方法を示しています。次のスクリーンショットに示すように、配列オブジェクト内の要素を指していることを確認します。 CustomRoutes ArrayList に managerchain 配列オブジェクトの名前を入力します。
次に、CustomRoutes ArrayList を使用して、AssignTask コンポーネント内の Routes にデータを設定します
CustomRoutes ArrayList 変数が送信データからの値で初期化されると、AssignTask コンポーネントの Routes が CustomRoutes 変数を使用して設定されます。 以下のスクリーンショットは、AssignTask のカスタムルートを示しています
お使いのシステム上でこのワークフローをテストするには、次の手順に従ってください
- ArrayListVariable.zip ファイルをダウンロードしてファイルシステムに保存します
- AEM パッケージマネージャーを使用して zip ファイルを読み込みます
- TravelExpenseReport フォームを開きます
- 費用を 2 つ入力し、2 人のマネージャーの名前を入力します
- 「送信」ボタンを押します
- インボックスを開きます
- 「経費管理者に割り当て」というタイトルの新しいタスクが表示されます
- タスクに関連付けられたフォームを開きます
- マネージャー名を持つ 2 つのカスタムルートが表示されます
ReviewExpenseReportWorkflow を探索します。 このワークフローでは、ArrayList 変数、JSON 型変数、Or-Sokut コンポーネントのルールエディターを使用します