AEM ワークフローの ArrayList 変数

ArrayList タイプの変数は、AEM Forms 6.5で導入されました。 ArrayList変数を使用する一般的な使用例は、AssignTaskで使用するカスタムルートを定義することです。

AEM ワークフローで ArrayList 変数を使用するには、送信されたデータに繰り返し要素を生成するアダプティブフォームを作成する必要があります。 一般的な方法は、配列要素を含むスキーマを定義することです。 この記事の目的で、配列要素を含む単純な JSON スキーマを作成しました。 使用例は、従業員が経費報告書を入力する場合です。 経費報告書では、提出者のマネージャー名と、マネージャーのマネージャー名を取り込みます。 マネージャー名は managerchain と呼ばれる配列に格納されます。 次のスクリーンショットは、経費報告フォームと、アダプティブフォーム送信からのデータを示しています。

expensereport

アダプティブフォームの送信データを次に示します。 アダプティブフォームは 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
送信されたデータの値でCustomRoutes ArrayList変数が初期化されると、AssignTask コンポーネントのルートはCustomRoutes変数を使用して設定されます。次のスクリーンショットは、AssignTaskのカスタムルートを示しています
asingtask

お使いのシステム上でこのワークフローをテストするには、次の手順に従ってください

  • ArrayListVariable.zip ファイルをダウンロードしてファイルシステムに保存します
  • AEM パッケージマネージャーを使用して zip ファイルを読み込みます
  • TravelExpenseReport フォームを開きます
  • 費用を 2 つ入力し、2 人のマネージャーの名前を入力します
  • 「送信」ボタンを押します
  • インボックスを開きます
  • 「経費管理者に割り当て」というタイトルの新しいタスクが表示されます
  • タスクに関連付けられたフォームを開きます
  • マネージャー名を持つ 2 つのカスタムルートが表示されます
    ReviewExpenseReportWorkflowを探索します。 このワークフローでは、ArrayList変数、JSON型変数、Or-Split コンポーネントのルールエディターを使用します
recommendation-more-help
experience-manager-learn-help-forms