AEM Forms 6.5引入了ArrayList類型的變數。使用ArrayList變數的常見使用案例是定義要用於AssignTask的自定義路由。
若要在AEM工作流程中使用ArrayList變數,您需要建立適用性表單,該表單會在提交的資料中產生重複元素。 常見的作法是定義包含陣列元素的架構。 為了本文的目的,我已建立了包含陣列元素的簡單JSON結構描述。 使用案例是員工填寫費用報表。 在費用報表中,我們將捕獲提交者的經理名稱和經理的經理名稱。 管理員的名稱儲存在名為managerchain的陣列中。 下面的螢幕截圖顯示費用報表表單,以及適用性Forms提交中的資料。
以下是最適化表單提交的資料。 適用性表單以JSON結構描述為基礎,系結至結構描述的資料會儲存在afBoundData元素的資料元素下。 managerchain是陣列,我們需要用managerchain陣列內對象的名稱元素填充ArrayList。
{
"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變數。 請確定您指向陣列物件中的元素,如下方螢幕擷取所示。 我們正在使用managerchain陣列對象的名稱填充CustomRoutes ArrayList。
然後, CustomRoutes ArrayList將用於填充AssignTask元件中的路由
使用提交資料中的值初始化CustomRoutes ArrayList變數後, AssignTask元件的Routes將使用CustomRoutes變數填充。 下面的螢幕截圖顯示AssignTask中的自定義路由
要在您的系統上測試此工作流,請執行以下步驟