在自定义cq组件中实现收件箱功能?

时间:2014-05-21 15:16:36

标签: cq5 aem

我们希望开发流畅的工作流程体验(但仍然使用工作流程)。目前,用户需要使用sidekick来启动工作流程,然后到收件箱,这会将他们带回页面以再次使用sidekick。当他们进入收件箱时,他们需要限制页面的模型和路径。用户只需要访问内容页面就可以了,然后启动需要发生的不同工作流程表单,例如一点点"收件箱"在受工作流程约束的页面上。

我编写了一个可以启动自定义工作流程的自定义组件。自定义组件还可以查询WorkFlowSession并获取组件所在的当前页面的任何活动WorkItem(使用WorkItemFilter接口)。我想要做的是从自定义组件向用户提供工作流中下一步的链接,就像收件箱一样。 以下是WorkItem实例toString方法的示例输出:

21.05.2014 09:45:29.300 *ERROR* [0:0:0:0:0:0:0:1%0 [1400679929160] GET /content/test/mailing1.html HTTP/1.1] org.rand.whatcounts.EmailCampaignCoordinator Found workitem: -----------------------------
WorkItem Id: /etc/workflow/instances/2014-05-21/model_1400679794564399000/workItems/node4_etc_workflow_instances_2014-05-21_model_1400679794564399000
Workflow Id: /etc/workflow/instances/2014-05-21/model_1400679794564399000
Payload: /content/test/mailing1
Payload Type: JCR_PATH
key = historyEntryPath value = /etc/workflow/instances/2014-05-21/model_1400679794564399000/history/1400679924113
key = comment value =

我希望通过使用工作流程api项目,我可以创建用户可以单击的链接以继续工作流程(就像收件箱一样)。

感谢收听! 菲利普

1 个答案:

答案 0 :(得分:1)

有两种方法可以实现此

基于Java的解决方案 通过查看

,我能够找到一种方法
http://localhost:4502/libs/cq/workflow/components/inbox/list/json.jsp

这个jsp的重要部分是,给定一个workItem实例,您可以使用JcrPathBuilderManager获取下一步的路径:  pathBuilder.getPath(WI); 使用此功能,我能够向用户输出工作流程中下一步的链接(无需用户访问其收件箱)。

基于Javascript / JSON的解决方案 我没有采用这种解决方案(我没有写任何js),但如果我没有找到上面列出的java解决方案,这是我的后退位置。一旦可以在CQ Component中实现为用户收件箱调用json feed的自定义JS,就做一些客户端过滤(将其限制为仅与当前页面相关的项目)。 Feed的网址是

http://localhost:4502/libs/cq/workflow/content/inbox/list.json?start=0&limit=40

谢谢!

相关问题