添加自定義列

要在收件箱中顯示工作流資料,我們需要定義並填充工作流中的變數。 需要在將任務分配給用戶之前設定變數的值。 為了讓您獲得先機,我們提供了準備部署在您的伺服器上的示例工AEM作流。

此工作流定義了兩個變數(isFonbed和income),其值使用設定變數元件進行設定。 這些變數將作為要添加到收件箱的列可用AEM

建立服務

對於需要在收件箱中顯示的每一列,我們都需要編寫一項服務。 以下服務允許我們添加一列來顯示isFringed變數的值

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);
}
}
注意

您需要將AEM6.5.5 Uber.jar納入您的項目,以便上述代碼能夠正常工作

優步罐

Test伺服器

提交表單將觸發工作流,並且任務已分配給「admin」用戶。 應在「已婚」列下看到一個值,如此螢幕抓圖中所示

已婚人士

本頁內容