历史任务
介绍
1.当一个实例任务完成后,工作流会自动在任务表等会删除这个记录,并保存在历史表
2.历史表操作就用到 HistoryService
private HistoryService historyService;
/**
* 根据用户名查询历史任务
*/
@Test
public void gethistoryTaskInstanceByUser(){
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
.taskAssignee("bajie")
//排序 asc:正序 desc:倒叙
.orderByHistoricTaskInstanceEndTime().asc()
.list();
for (HistoricTaskInstance hi : list) {
System.out.println(hi.getId());
System.out.println(hi.getName());
System.out.println(hi.getAssignee());
System.out.println(hi.getProcessInstanceId());
}
}
/**
* 通过流程实例id查询历史任务
*/
@Test
public void gethistoryTaskInstanceByInstance(){
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
.processInstanceId("实例id")
//排序 asc:正序 desc:倒叙
.orderByHistoricTaskInstanceEndTime().asc()
.list();
for (HistoricTaskInstance hi : list) {
System.out.println(hi.getId());
System.out.println(hi.getName());
System.out.println(hi.getAssignee());
System.out.println(hi.getProcessInstanceId());
}
}
UEL表达式
介绍
又称统一表达语言,就是在
uel表达式:在启动流程实例,任务完成时可以使用uel表达式携带参数
————————————————
```@Autowired
private RuntimeService runtimeService;@Autowired
private TaskService taskService;/**
启动流程实例时,执行执行人
*/
@Test
public void initProcessInstanceWithArgs(){
//流程变量 //${ZhiXingRen}
Map variables = new HashMap<>();
//可以添加多个参数
variables.put("ZhiXingRen","wukong");ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey("myProcess_UEL_V1","bket01" ,variables);
System.out.println("流程实例id:" + processInstance.getProcessDefinitionId());
}
/**- 完成任务带参数 指定流程变量
*/
@Test
public void completeTaskWithArgs(){
Map variables = new HashMap<>();
//可以添加多个参数
variables.put("pay","101");
// taskService.complete("实例id",null);
taskService.complete("60a326bd-8138-11ed-a774-f85ea0a4be6e",variables);
System.out.println("完成任务");
}
/**
* 启动流程实例携带参数,使用实体类
*/
@Test
public void initProcessInstanceWithClassArgs(){
//流程变量实体类
UEL_POJO uel_pojo = new UEL_POJO();
uel_pojo.setZhixingren("bajie");
Map<String,Object> variables = new HashMap<>();
//可以添加多个参数
variables.put("uelpojo",uel_pojo);
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey("myProcess_uelv3","bket01"
,variables);
System.out.println("流程实例id:" + processInstance.getProcessDefinitionId());
}
/**
* 任务完成带参数,指定多个候选人
* 01125c1c-813a-11ed-bf93-f85ea0a4be6e
*/
@Test
public void initProcessInstanceWithCandidataArgs(){
Map<String,Object> variables = new HashMap<>();
//可以添加多个参数
variables.put("houxuanren","wukong,tangseng");
// taskService.complete("实例id",null);
taskService.complete("01125c1c-813a-11ed-bf93-f85ea0a4be6e",variables);
System.out.println("完成任务");
}
/**
* 直接指定流程变量
*/
@Test
public void otherArgs(){
runtimeService.setVariable("实例id","流程变量key","流程变量value");
// runtimeService.setVariables();
}
/**
* 局部变量
*/
@Test
public void otherLocalArgs(){
runtimeService.setVariableLocal("实例id","流程变量key","流程变量value");
// runtimeService.setVariablesLocal();
}
```