如何获取在camunda中完成用户任务的用户
how to get user who completed user task in camunda
我想获取在 camunda 进程中完成用户任务的用户的用户名。
例如,考虑只有 2 个步骤的 BMPN,第一个是用户任务,第二个是外部任务。对于此 BPMN 的调用,如果用户完成第一个用户任务,那么我应该能够在第二个 externalTask 中获取其用户名。
用户任务完成后,我没有发现在 camunda 中设置了任何流程变量。
可以使用任务侦听器存储在 Camunda 中完成用户任务的用户。要进行设置:
Select您希望记录数据的用户任务
在属性面板中转到 'Listeners' 选项卡并单击 'Task Listener' 部分中的 +
将'Event Type'设置为'complete'
将'Listener Type'设置为'Expression'
输入表达式:
${task.execution.setVariable('taskCompletedBy', task.assignee)}
当用户任务完成时,将执行任务侦听器表达式。该表达式从 task.assignee
中获取用户名,然后在执行范围 task.execution
上使用 setVariable()
函数将其存储在变量中。由于变量存储在执行范围内,因此它可供流程的其余部分使用。然后您可以在以后的用户/服务任务中像使用任何其他变量一样使用该变量。
我想获取在 camunda 进程中完成用户任务的用户的用户名。
例如,考虑只有 2 个步骤的 BMPN,第一个是用户任务,第二个是外部任务。对于此 BPMN 的调用,如果用户完成第一个用户任务,那么我应该能够在第二个 externalTask 中获取其用户名。
用户任务完成后,我没有发现在 camunda 中设置了任何流程变量。
可以使用任务侦听器存储在 Camunda 中完成用户任务的用户。要进行设置:
Select您希望记录数据的用户任务
在属性面板中转到 'Listeners' 选项卡并单击 'Task Listener' 部分中的 +
将'Event Type'设置为'complete'
将'Listener Type'设置为'Expression'
输入表达式:
${task.execution.setVariable('taskCompletedBy', task.assignee)}
当用户任务完成时,将执行任务侦听器表达式。该表达式从 task.assignee
中获取用户名,然后在执行范围 task.execution
上使用 setVariable()
函数将其存储在变量中。由于变量存储在执行范围内,因此它可供流程的其余部分使用。然后您可以在以后的用户/服务任务中像使用任何其他变量一样使用该变量。