注意:与 ProcessRuntime API 交互,当前登录的用户需要具有“ACTIVITI_USER”角色。
一:TaskRuntime API
与activiti5和activiti6 taskAPI的区别:
以前要查询待办任务是一个方法,查询候选人任务是另一个方法,activiti7现在将其封装成一个方法
需要两个注入:
@Autowired private SecurityUtil securityUtil; @Autowired private TaskRuntime taskRuntime; 1:获取当前登录用户任务 taskRuntime.tasks @Test public void getTasks() { securityUtil.logInAs("wukong"); Page<Task> tasks = taskRuntime.tasks(Pageable.of(0,100)); List<Task> list=tasks.getContent(); for(Task tk : list){ System.out.println("-------------------"); System.out.println("getId:"+ tk.getId()); System.out.println("getName:"+ tk.getName()); System.out.println("getStatus:"+ tk.getStatus()); System.out.println("getCreatedDate:"+ tk.getCreatedDate()); if(tk.getAssignee() == null){ System.out.println("Assignee:待拾取任务"); }else{ System.out.println("Assignee:"+ tk.getAssignee()); } } } 2:完成任务 taskRuntime.tasks taskRuntime.claim taskRuntime.complete @Test public void completeTask() { securityUtil.logInAs("wukong"); Task task = taskRuntime.task("db9c5f80-d3ae-11ea-99e8-dcfb4875e032"); if(task.getAssignee() == null){ taskRuntime.claim(TaskPayloadBuilder.claim() .withTaskId(task.getId()) .build()); } taskRuntime.complete(TaskPayloadBuilder .complete() .withTaskId(task.getId()) .build()); System.out.println("任务执行完成"); }
二:ProcessRuntime API
需要两个注入:
@Autowired private ProcessRuntime processRuntime; @Autowired private SecurityUtil securityUtil;
1:查询流程实例
processRuntime .processInstances(Pageable.of(0,100)); 0:第几个;100:多少个 @Test public void getProcessInstance() { securityUtil.logInAs("bajie"); Page<ProcessInstance> processInstancePage = processRuntime .processInstances(Pageable.of(0,100)); System.out.println("流程实例数量:"+processInstancePage.getTotalItems()); List<ProcessInstance> list = processInstancePage.getContent(); for(ProcessInstance pi : list){ System.out.println("-----------------------"); System.out.println("getId:" + pi.getId()); System.out.println("getName:" + pi.getName()); System.out.println("getStartDate:" + pi.getStartDate()); System.out.println("getStatus:" + pi.getStatus()); System.out.println("getProcessDefinitionId:" + pi.getProcessDefinitionId()); System.out.println("getProcessDefinitionKey:" + pi.getProcessDefinitionKey()); } }
2:启动流程实例
processRuntime.start
@Test
public void startProcessInstance() {
securityUtil.logInAs("bajie");
ProcessInstance processInstance = processRuntime.start(ProcessPayloadBuilder
.start()
.withProcessDefinitionKey("myProcess_ProcessRuntime")
.withName("第一个流程实例名称")
.withVariable("","")//启动加参数
.withBusinessKey("自定义bKey")
.build()
);
}
3:删除流程实例 processRuntime.delete @Test public void delProcessInstance() { securityUtil.logInAs("bajie"); ProcessInstance processInstance = processRuntime.delete(ProcessPayloadBuilder .delete() .withProcessInstanceId("6fcecbdb-d3e0-11ea-a6c9-dcfb4875e032") .build() ); } 4:挂起流程实例 processRuntime.delete @Test public void suspendProcessInstance() { securityUtil.logInAs("bajie"); ProcessInstance processInstance = processRuntime.suspend(ProcessPayloadBuilder .suspend() .withProcessInstanceId("1f2314cb-cefa-11ea-84aa-dcfb4875e032") .build() ); } 5:激活流程实例 processRuntime.delete @Test public void resumeProcessInstance() { securityUtil.logInAs("bajie"); ProcessInstance processInstance = processRuntime.resume(ProcessPayloadBuilder .resume() .withProcessInstanceId("1f2314cb-cefa-11ea-84aa-dcfb4875e032") .build() ); } 6:获取流程实例参数 processRuntime.variables @Test public void getVariables() { securityUtil.logInAs("bajie"); List<VariableInstance> list = processRuntime.variables(ProcessPayloadBuilder .variables() .withProcessInstanceId("2b2d3990-d3ca-11ea-ae96-dcfb4875e032") .build() ); for(VariableInstance vi : list){ System.out.println("-------------------"); System.out.println("getName:" + vi.getName()); System.out.println("getValue:" + vi.getValue()); System.out.println("getTaskId:" + vi.getTaskId()); System.out.println("getProcessInstanceId:" + vi.getProcessInstanceId()); } }
版权声明:本文为zhangrachel1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。