方式一:UEL 表达式
assign字段使用${user}
或者${user.assignee}
<!--UEL-value: user 是一个流程变量 -->
<userTask activiti:assignee="${user1}" id="startUser" name="申请人"/>
<!--UEL-method: user 是一个流程变量对象, user.assignee 表示通过调用 user 的 getter 方法获取值 -->
<userTask activiti:assignee="${user.assignee}" id="startUser" name="申请人"/>
更多信息可以参考官方文档相关说明
方式二:方法调用
${userService.selectById(userId)}
userService必须在spring容器内被声明,selectById是该bean下的一个方法,userId是流程变量,且必须在该节点执行前被赋值。
方式三:使用监听器
任务监听器中事件分为create、assignment、delete、complete 事件,其中assignment事件先于create事件触发。使用create事件进行人员赋值,要么先赋值后更换审批人,要么不配置任何人员,也就没有了assignment事件,直接使用create事件赋值即可。
方式四:
在流程图中直接写死。
方式五:全局监听器
没什么说的,方式三的升级版。
方式六:拦截器
实现官方拦截器接口即可。
推荐使用拦截器方式。
多看官方文档,对于多实例人员搭配拦截器你会发现意外惊喜。