扫码阅读
手机扫码阅读
Flowable 设置流程变量的四种方式
9 2024-11-27
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:Flowable 设置流程变量的四种方式
文章来源:
江南一点雨
扫码关注公众号
松哥正在录制TienChin项目视频,该项目采用Spring Boot+Vue3技术栈,并将涉及多种技术。这次他将重点介绍Flowable中流程变量的玩法及其数据表详情。
1. 流程变量的必要性
流程变量在流程中扮演重要角色,例如在请假流程中,需要携带诸如请假人、请假天数、开始时间和理由等信息,以供审批参考,这些信息通过流程变量传递。
2. 流程变量的分类
流程变量分为三种类型:
- 全局流程变量:在整个流程期间有效。
- 本地流程变量:仅对流程中的特定任务有效,任务完成后失效。
- 临时流程变量:临时性的,不存入数据库。
3. 全局流程变量的使用
以请假流程为例,可以在流程启动时设置全局流程变量。示例代码展示了如何在启动流程时设置变量,其中变量的值可以是可序列化的对象。
@Test
void test01() {
Map variables = new HashMap();
variables.put("days", 10);
variables.put("reason", "休息一下");
variables.put("startTime", new Date());
ProcessInstance pi = runtimeService.startProcessInstanceByKey("demo01", variables);
logger.info("id:{},activityId:{}", pi.getId(), pi.getActivityId());
}
在流程启动日志中,可查询到相关的SQL语句,涉及到ACT_HI_VARINST和ACT_RU_VARIABLE两张表,分别存储流程的历史信息和运行时信息。
使用流程实例ID,可以查询到属于某个流程实例的变量:
@Test
void test01() {
List list = runtimeService.createExecutionQuery().list();
for (Execution execution : list) {
Object reason = runtimeService.getVariable(execution.getId(), "reason");
logger.info("reason:{}", reason);
}
}
这些查询演示了如何在实际流程中获取和使用流程变量。
想要了解更多内容?
查看原文:Flowable 设置流程变量的四种方式
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线