如何获取在camunda中完成用户任务的用户

how to get user who completed user task in camunda

我想获取在 camunda 进程中完成用户任务的用户的用户名。

例如,考虑只有 2 个步骤的 BMPN,第一个是用户任务,第二个是外部任务。对于此 BPMN 的调用,如果用户完成第一个用户任务,那么我应该能够在第二个 externalTask​​ 中获取其用户名。

用户任务完成后,我没有发现在 camunda 中设置了任何流程变量。

可以使用任务侦听器存储在 Camunda 中完成用户任务的用户。要进行设置:

  1. Select您希望记录数据的用户任务

  2. 在属性面板中转到 'Listeners' 选项卡并单击 'Task Listener' 部分中的 +

  3. 将'Event Type'设置为'complete'

  4. 将'Listener Type'设置为'Expression'

  5. 输入表达式:

     ${task.execution.setVariable('taskCompletedBy', task.assignee)}
    

当用户任务完成时,将执行任务侦听器表达式。该表达式从 task.assignee 中获取用户名,然后在执行范围 task.execution 上使用 setVariable() 函数将其存储在变量中。由于变量存储在执行范围内,因此它可供流程的其余部分使用。然后您可以在以后的用户/服务任务中像使用任何其他变量一样使用该变量。