添加自定义列
最近更新: 2025年3月24日
- 适用对象:
- Experience Manager 6.5
- 主题:
- 自适应表单
创建对象:
- 有经验的
- 开发人员
要在收件箱中显示工作流数据,我们需要在工作流中定义和填充变量。 在将任务分配给用户之前,需要设置变量的值。 为了让您开一个好头,我们提供了准备好部署在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);
}
}
您需要在项目中包含AEM 6.5.5 Uber.jar,以上代码才能正常工作
在您的服务器上测试
- 登录到AEM Web控制台
- 部署和启动收件箱自定义捆绑包
- 打开您的收件箱
- 单击 创建 按钮旁边的 列表视图 图标以打开Admin Control
- 将“已婚”列添加到收件箱并保存更改
- 转到FormsAndDocuments UI
- 通过从 创建 菜单中选择 文件上传 导入示例表单
- 预览表单
- 选择_婚姻状况_并提交表单
查看收件箱
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e