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



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

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

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

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

  1. 选择要记录数据的用户任务

  2. 在属性面板中,转到"监听器"选项卡,然后单击"任务监听器"部分中的+

  3. 将"事件类型"设置为"完成">

  4. 将"Listener Type"设置为"Expression">

  5. 输入表达式:

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

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

最新更新