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

How to obtain User information upon User Task Completion

我正在处理一个流程,该流程要求向在流程中完成任务的所有用户发送电子邮件。

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

在遇到那个死胡同之后,我决定查看数据库表以了解历史记录。 NODEINSTANCELOG 表似乎没有跟踪用户。

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

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

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

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

((HumanTaskNodeInstance) nodeInstance).getWorkItem().getResult("ActorId")