【发布时间】:2021-12-15 13:26:42
【问题描述】:
我想获取在 camunda 进程中完成用户任务的用户的用户名。
例如考虑一个只有 2 个步骤的 BMPN,第一个是用户任务,第二个是外部任务。如果用户完成第一个用户任务,则调用此 BPMN,那么我应该能够在第二个 externalTask 中获取其用户名。
在用户任务完成后,我没有发现任何在 camunda 中设置的流程变量。
【问题讨论】:
我想获取在 camunda 进程中完成用户任务的用户的用户名。
例如考虑一个只有 2 个步骤的 BMPN,第一个是用户任务,第二个是外部任务。如果用户完成第一个用户任务,则调用此 BPMN,那么我应该能够在第二个 externalTask 中获取其用户名。
在用户任务完成后,我没有发现任何在 camunda 中设置的流程变量。
【问题讨论】:
在 Camunda 中完成用户任务的用户可以使用任务监听器进行存储。要进行此设置:
选择您希望记录数据的用户任务
在属性面板中,转到“侦听器”选项卡,然后单击“任务侦听器”部分中的 +
将“事件类型”设置为“完成”
将“侦听器类型”设置为“表达式”
输入表达式:
${task.execution.setVariable('taskCompletedBy', task.assignee)}
当用户任务完成时,任务监听器表达式将被执行。该表达式从task.assignee 获取用户名,然后在执行范围task.execution 上使用setVariable() 函数将其存储在变量中。由于变量存储在执行范围内,因此它可用于流程的其余部分。然后,您可以在以后的用户/服务任务中将该变量与任何其他变量一起使用。
【讨论】: