新增自訂欄
若要在收件匣中顯示工作流程資料,我們必須在工作流程中定義和填入變數。 必須先設定變數的值,才能將任務指派給使用者。 為了讓您開一個好頭,我們提供了準備部署在AEM伺服器上的範例工作流程。
此工作流程已定義兩個變數(isMarried和income),其值是使用設定變數元件設定的。 這些變數可作為要新增至AEM收件匣的欄
建立服務
對於每個需要顯示在收件匣中的欄,我們需要編寫服務。 下列服務可讓我們新增欄以顯示isMarried變數的值
import com.adobe.cq.inbox.ui.column.Column;
import com.adobe.cq.inbox.ui.column.provider.ColumnProvider;
import com.adobe.cq.inbox.ui.InboxItem;
import org.osgi.service.component.annotations.Component;
import java.util.Map;
/**
* This provider does not require any sightly template to be defined.
* It is used to display the value of 'ismarried' workflow variable as a column in inbox
*/
@Component(service = ColumnProvider.class, immediate = true)
public class MaritalStatusProvider implements ColumnProvider {@Override
public Column getColumn() {
return new Column("married", "Married", Boolean.class.getName());
}
// Return True or False if 'ismarried' is set. Else returns null
private Boolean isMarried(InboxItem inboxItem) {
Boolean ismarried = null;
Map metaDataMap = inboxItem.getWorkflowMetadata();
if (metaDataMap != null) {
if (metaDataMap.containsKey("isMarried")) {
ismarried = (Boolean) metaDataMap.get("isMarried");
}
}
return ismarried;
}
@Override
public Object getValue(InboxItem inboxItem) {
return isMarried(inboxItem);
}
}
NOTE
您必須在專案中加入AEM 6.5.5 Uber.jar,上述程式碼才能運作
在您的伺服器上測試
- 登入AEM網頁主控台
- 部署和啟動收件匣自訂套裝
- 開啟您的收件匣
- 按一下以開啟Admin Control 清單檢視 圖示旁邊 建立 按鈕
- 將「已婚」欄新增至「收件匣」並儲存變更
- 前往FormsAndDocuments UI
- 匯入範例表單 藉由選取 檔案上傳 從 建立 功能表
- 預覽表單
- 選取 婚姻狀況 並提交表單
檢視收件匣
提交表單會觸發工作流程,且任務會指派給「管理員」使用者。 您應該會在「已婚」欄下看到值,如本熒幕擷取畫面所示
後續步驟
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e