如何在用户任务完成时获取用户信息

时间:2015-03-03 19:35:42

标签: jbpm

我正在制定一个流程,要求将电子邮件发送给在流程中完成任务的所有用户。

我最初的计划是在我的ProcessEventListener实现的afterNodeLeft方法中添加一些代码;但是,似乎ProcessNodeLeftEvent接口没有查找正在执行的用户的方法。

在达到死胡同之后,我决定查看数据库表中的历史记录。似乎NODEINSTANCELOG表没有跟踪用户。

作为最后的尝试,我想我可以为每个用户任务添加一个输出参数,以便我可以将userid添加到结果Map中。这似乎有效,但感觉非常笨拙。

是否有一些我可以用来查找此信息的审计服务,或者我被迫更新每个用户任务以跟踪哪个用户完成了每项任务。

2 个答案:

答案 0 :(得分:4)

人工任务有一个输出参数“ActorId”,您可以将其映射到流程变量以供使用。当您可以使用以下命令访问nodeInstance时,您也可以访问它(在退出的脚本或侦听器中):

((HumanTaskNodeInstance)nodeInstance).getWorkItem()。getResult(“ActorId”)

答案 1 :(得分:2)

是的,您可以使用任务审核机制将电子邮件通知挂钩,并使它们与您的流程完全分离。查找TaskEventListener接口。 HTH