You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy编写的任务脚本中获取任务执行者用户名?

Groovy任务脚本获取当前执行用户信息的方法

根据工作流引擎的通用上下文规则,按以下优先级取数即可:

  • 优先从引擎默认注入的任务实例取办理人ID,适配Flowable、Activiti等绝大多数主流开源工作流引擎:
// 取当前任务的办理人ID,task是脚本上下文默认内置的任务对象,无需额外声明
def assigneeUserId = task.assignee

// 如果需要完整用户对象/用户显示名,调用引擎身份服务查询即可
def identityService = task.getProcessEngineServices().getIdentityService()
def currentUser = identityService.createUserQuery()
  .userId(assigneeUserId)
  .singleResult()
// 从用户对象取需要的字段,比如显示名、账号、部门等
def currentUserName = currentUser.firstName + (currentUser.lastName ?: "")
  • 如果是自研工作流平台、低代码平台的内嵌Groovy任务,平台一般会直接注入当前操作人对象,不需要额外查询,常见的内置变量名有currentUser、operator、currentUserName,直接调用即可:
// 示例:直接取平台注入的用户名
def currentUserName = currentUser.name
def currentUserId = currentUser.id

排查提示:如果不确定当前上下文有哪些内置变量,可以先执行以下脚本打印所有上下文键值对,找到和操作人相关的字段直接用即可:

binding.variables.each { k, v ->
  println "变量名:${k},变量内容:${v}"
}

注意:如果是定时触发、系统自动触发的无人工参与的任务,取到的办理人可能为null或者系统内置账号,需要提前做空值兼容。

内容的提问来源于stack exchange,提问作者Mind Optimizer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:21:27