我想获得在camunda进程中完成用户任务的用户的用户名。
例如,考虑一个只有两个步骤的BMPN,第一个步骤是用户任务,第二个步骤是外部任务。对于这个BPMN的调用,如果用户完成了第一个用户任务,那么我应该能够在第二个externalTask中获得它的用户名。
用户任务完成后,我没有在camunda中发现任何正在设置的过程变量。
在Camunda中完成用户任务的用户可以使用任务侦听器进行存储。设置:
-
选择要记录数据的用户任务
-
在属性面板中,转到"监听器"选项卡,然后单击"任务监听器"部分中的+
-
将"事件类型"设置为"完成">
-
将"Listener Type"设置为"Expression">
-
输入表达式:
${task.execution.setVariable('taskCompletedBy', task.assignee)}
当用户任务完成时,将执行任务侦听器表达式。该表达式从task.assignee
获取用户名,然后使用执行范围task.execution
上的setVariable()
函数将其存储在变量中。当变量存储在执行范围中时,它可用于进程的其余部分。然后,您可以在以后的用户/服务任务中将该变量与任何其他变量一起使用。