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

如何在Activiti的Groovy脚本中获取启动流程的用户ID?

解决Activiti 5.22 Groovy脚本中获取流程启动用户ID的问题

针对你在Activiti 5.22的Groovy初始脚本中无法获取启动用户ID的问题,提供以下几种可行方案:

  • 通过流程实例对象直接获取
    在工作流第一步的Groovy脚本中,可直接通过execution变量访问流程实例的启动用户ID,这是最稳妥的官方方式:

    def startUserId = execution.processInstance.startUserId
    // 后续可使用startUserId进行业务逻辑处理
    

    这个值是流程启动时自动记录的,只要启动流程时正确传入了用户ID(比如通过identityService.setAuthenticatedUserId()或ProcessInstanceBuilder.startUserId()),就能拿到有效数据。

  • 通过Activiti上下文获取认证用户ID
    如果上述方式失效,可尝试通过Activiti内部上下文获取当前认证用户ID,这属于内部API,但在5.22版本中稳定可用:

    import org.activiti.engine.impl.context.Context
    
    def authenticatedUserId = Context.commandContext.authenticatedUserId
    
  • 排查启动流程时的用户ID传递
    若以上两种方式都拿不到值,要确认流程启动环节是否正确设置了用户ID:

    • 使用IdentityService设置认证用户:
      identityService.setAuthenticatedUserId("your_user_id");
      runtimeService.startProcessInstanceByKey("process_key");
      
    • 或者通过ProcessInstanceBuilder直接指定启动用户:
      runtimeService.createProcessInstanceBuilder()
                    .processDefinitionKey("process_key")
                    .startUserId("your_user_id")
                    .start();
      

内容的提问来源于stack exchange,提问作者Gleison Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:50:47