流程变量在整个工作流中扮演很重要的作用。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是只对应一个流程实例。也就是说各个流程实例的流程变量是不相互影响的。这篇博文就简单的为大家介绍下流程变量的设置和获取。
一、设置流程变量
流程变量的设置方式有两种,一是通过基本类型设置,第二种是通过JavaBean类型设置。
1.基本类型
- /**设置流程变量*/
- @Test
- public void setProcessVariables(){
- String processInstanceId = "1301";//流程实例ID
- String assignee = "张三";//任务办理人
- TaskService taskService = processEngine.getTaskService();//获取任务的Service,设置和获取流程变量
- //查询当前办理人的任务ID
- Task task = taskService.createTaskQuery()
- .processInstanceId(processInstanceId)//使用流程实例ID
- .taskAssignee(assignee)//任务办理人
- .singleResult();
- //设置流程变量【基本类型】
- taskService.setVariable(task.getId(), "请假人", assignee);
- taskService.setVariableLocal(task.getId(), "请假天数",3);
- taskService.setVariable(task.getId(), "请假日期", new Date());
- }
/**设置流程变量*/
@Test
public void setProcessVariables(){
String processInstanceId = "1301";//流程实例ID
String assignee = "张三";//任务办理人
TaskService taskService = processEngine.getTaskService();//获取任务的Service,设置和获取流程变量
//查询当前办理人的任务ID
Task task = taskService.createTaskQuery()
.processInstanceId(processInstanceId)//使用流程实例ID
.taskAssignee(assignee)//任务办理人
.singleResult();
//设置流程变量【基本类型】
taskService.setVariable(task.getId(), "请假人", assignee);
taskService.setVariableLocal(task.getId(), "请假天数",3);
taskService.setVariable(task.getId(), "请假日期", new Date());
}
对应数据库表:act_ru_variable
2.JavaBean类型
首先,定义JavaBean类。