activiti动态执行java逻辑_activiti 7 + springboot2(八) Activiti流程实例动态设置assignee执行人...

本文介绍如何使用Activiti流程引擎通过UEL表达式设置流程变量来动态分配任务执行人,并提供了具体的实现方法,包括方法调用赋值、监听器分配任务及程序中动态指定任务实例执行人等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)activiti流程图用流程变量设置节点执行人

b4087e6129d23a1adc0f4b7a7d650208.png

Activiti 使用 UEL 表达式, UEL 是 java EE6 规范的一部分, UEL(Unified Expression Language)即统一表达式语言, activiti 支持两个 UEL 表达式: UEL-value 和 UEL-method。

(二)方法调用赋值

${userService.findUserById(userId)}

userService 是 spring 容器的一个 bean, findUserById 是该 bean 的一个方法, userId 是流程变量。

(三)监听器分配

任务监听器是发生对应的任务相关事件时执行自定义java逻辑或表达式。

895db529f07497c68981d266de538179.png

Create:任务创建后触发

Assignment:任务分配后触发

Delete:任务完成后触发

All:所有事件发生都触发

定义任务监听类,且类必须实现org.activiti.engine.delegate.TaskListener接口

c2aea0f80be60572c65db55c8e99f252.png

packagecom.activiti.example;importorg.activiti.engine.delegate.DelegateTask;importorg.activiti.engine.delegate.TaskListener;public class MyTaskListener implementsTaskListener {

@Overridepublic voidnotify(DelegateTask delegateTask) {

delegateTask.setAssignee("灭霸");

}

}

(四)程序中动态指定任务实例执行人代码

/*** 启动一个实例,动态设置设置assignee*/@Testpublic voidstartProcessInstance() {//设置assignee,map键对应配置中的变量名

Map map=new HashMap<>();

map.put("user1","张三");

map.put("user2","李四");

map.put("user3","王五");//启动流程实例,同时还要设置流程定义的assignee的值

ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1", map);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值