本文主要是介绍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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!