前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >项目实践工作流之Activiti学习(三十三)

项目实践工作流之Activiti学习(三十三)

作者头像
用户1289394
发布2023-11-15 14:30:16
1590
发布2023-11-15 14:30:16
举报
文章被收录于专栏:Java学习网Java学习网

3.5.3.4 通过当前任务设置

代码语言:javascript
复制
@Test
public void setGlobalVariableByTaskId(){
//当前待办任务id
String taskId="1404";
TaskService taskService = processEngine.getTaskService();
Holiday holiday = new Holiday();
holiday.setNum(3);
//通过任务设置流程变量
taskService.setVariable(taskId, "holiday", holiday);
//一次设置多个值
//taskService.setVariables(taskId, variables)
}

注意:

任务id必须是当前待办任务id,act_ru_task中存在。如果该任务已结束,报错:

也可以通过 taskService.getVariable()获取流程变量。

3.5.4测试

正常测试:

设置流程变量的值大于等于 3 天

设计流程变量的值小于 3 天

异常测试:

流程变量不存在

流程变量的值为空 NULL,price 属性为空

UEL 表达式都不符合条件

不设置连线的条件

3.5.5注意事项

1、 如果 UEL表达式中流程变量名不存在则报错。

2、 如果 UEL表达式中流程变量值为空 NULL,流程不按 UEL 表达式去执行,而流程结束 。

3、 如果 UEL表达式都不符合条件,流程结束

4、 如果连线不设置条件,会走 flow 序号小的那条线

操作数据库表

设置流程变量会在当前执行流程变量表插入记录,同时也会在历史流程变量表也插入记录。

SELECT * FROM act_ru_variable #当前流程变量表

记录当前运行流程实例可使用的流程变量,包括 global 和 local 变量

Id_:主键

Type_:变量类型

Name_:变量名称

Execution_id_:所属流程实例执行 id,global 和 local 变量都存储

Proc_inst_id_:所属流程实例 id,global 和 local 变量都存储

Task_id_:所属任务 id,local 变量存储

Bytearray_:serializable 类型变量存储对应 act_ge_bytearray 表的 id

Double_:double 类型变量值

Long_:long 类型变量值

Text_:text 类型变量值

SELECT * FROM act_hi_varinst #历史流程变量表

记录所有已创建的流程变量,包括 global 和 local 变量

字段意义参考当前流程变量表。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档