AEM ワークフローの ArrayList 変数
ArrayList タイプの変数は、AEM Forms 6.5で導入されました。 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 コンポーネントにルートを入力します
送信されたデータの値でCustomRoutes ArrayList変数が初期化されると、AssignTask コンポーネントのルートはCustomRoutes変数を使用して設定されます。次のスクリーンショットは、AssignTaskのカスタムルートを示しています
お使いのシステム上でこのワークフローをテストするには、次の手順に従ってください
- ArrayListVariable.zip ファイルをダウンロードしてファイルシステムに保存します
- AEM パッケージマネージャーを使用して zip ファイルを読み込みます
- TravelExpenseReport フォームを開きます
- 費用を 2 つ入力し、2 人のマネージャーの名前を入力します
- 「送信」ボタンを押します
- インボックスを開きます
- 「経費管理者に割り当て」というタイトルの新しいタスクが表示されます
- タスクに関連付けられたフォームを開きます
- マネージャー名を持つ 2 つのカスタムルートが表示されます
ReviewExpenseReportWorkflowを探索します。 このワークフローでは、ArrayList変数、JSON型変数、Or-Split コンポーネントのルールエディターを使用します