activiti7任务服务-流程变量(setVariable与setVariableLocal)
Posted keep-go-on
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activiti7任务服务-流程变量(setVariable与setVariableLocal)相关的知识,希望对你有一定的参考价值。
流程变量的作用
任务变量的作用主要由以下几个作用。
- 任务承接人参数。任务启动或中途通过变量指定任务承接人。
- 网关条件变量。任务启动时或中途为网关提供数据。
- 任务拓展属性。为任务提供拓展的属性,可供检索。
- 动态修改流程的属性。
任务服务提供了setVariableLocal
和 setVariable
两个方法为流程和任务提供设置变量的方法。运行时流程变量表为 act_ru_variable
。
任务服务的setVariable方法
使用方法如下 :
taskService.setVariable(taskId,key,value);
数据库结果 :
使用
setVariable
方法设置流程变量,变量关联的颗粒度为流程实例ID(PROC_INST_ID_)而不是任务ID,流程变量是属于全局的。
任务服务的setVariableLocal方法
使用方法如下 :
taskService.setVariableLocal(taskId,key,value);
数据库结果如下 :
使用
setVariableLocal
方法设置的变量颗粒度直接关联到了任务ID,变量是属于任务(一个任务就是一个流程节点)的。
对于查询的区别
查询全局变量
taskQuery.taskVariableValueEquals("test_var","099098087");
查询全局变量(使用setVariable
方法设置的流程变量),查询结果 :
"code": 10000,
"msg": "成功",
"status": true,
"data":
"records": [],
"total": 0,
"size": 10,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"pages": 0
由于全局变量未关联任务任务,因此查询不到任务任务。
查询任务变量
taskQuery.taskVariableValueEquals("test_varrrrr","099098087");
查询结果如下 :
"code": 10000,
"msg": "成功",
"status": true,
"data":
"records": [
"taskId": "ffd43354-8bde-11ec-a6d1-b42e996769a4",
"taskName": "审批人",
"processInstanceId": "ffc1bcb7-8bde-11ec-a6d1-b42e996769a4",
"processDefinitionId": "635cc307-8a6b-11ec-9c5b-b42e996769a4",
"createTime": "2022-02-12T08:37:23.272+00:00",
"taskDefinitionKey": "node_92754730680",
"assignee": "user_C"
],
"total": 1,
"size": 10,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"pages": 1
根据上文截图可以看出,查询到的任务就是任务关联的任务。
以上是关于activiti7任务服务-流程变量(setVariable与setVariableLocal)的主要内容,如果未能解决你的问题,请参考以下文章
activiti7任务服务-流程变量(setVariable与setVariableLocal)
2021全网最全Activiti7教程04(Activiti7进阶篇-欢迎收藏)