activiti7 设置流程启动者startUserId

流程实例启动之后,查询了一下实例的详情,发现其中有个startUserId(流程启动者)字段为空,在后续的查询中会用到该字段查询用户启动的流程列表,因此在流程实例启动时,需要设置一下该参数。
因为初始化流程实例的代码是:processEngine.getRuntimeService().startProcessInstanceByKey(s1,s2,variables);
其中未涉及到设置setStartUserId,所以翻了翻源码,找到了赋值位置,如下图。
在这里插入图片描述
从这段代码中能看出,startUserId是通过Authentication的get静态方法获取到的startUserId。
在这里插入图片描述Authentication提供了get和set静态方式,因此我们可以在流程实例启动代码之前,通过Authentication.setAuthenticatedUserId()来设置startUserId。

Map<String, Object> variables = new HashMap<>();
        variables.put("userCode", managerCode);
Authentication.setAuthenticatedUserId(startUserCode);
ProcessInstance processInstance = processEngine.getRuntimeService()
        .startProcessInstanceByKey("ExpenseClaim",orderCode, variables);

我这里设置了流程参数,用于赋值审批人,你也可以按照具体的业务需求来设置所需的流程参数,或者不设置都是可以的。

import org.activiti.engine.impl.identity.Authentication;

对了,Authentication的包路径发出来,引包的时候注意下,别引错了。
接下来就可以重新启动一个流程实例,查询一下详情,看看你的startUserId有没有设置成功吧。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值