jbpm中流程的执行管理

来源:互联网 发布:golang mongodb 编辑:程序博客网 时间:2024/04/20 14:19
package com.njupt.jbpm;import java.util.List;import org.jbpm.api.Configuration;import org.jbpm.api.ProcessEngine;import org.jbpm.api.ProcessInstance;import org.jbpm.api.TaskQuery;import org.jbpm.api.task.Task;import org.junit.Test;public class ProcessInstanceTest {private ProcessEngine processEngine = Configuration.getProcessEngine();// 1,启动流程实例// 对应的表:// >> jbpm4_execution 正在执行的流程实例的信息// >> jbpm4_hist_procinst 已经执行完的流程实例的历史信息表@Testpublic void testStartProcessInstance() throws Exception {// // 使用指定的流程定义启动流程实例(指定key与指定的version)// processEngine.getExecutionService().startProcessInstanceById(processDefinitionId);// 使用指定key的最新版本的流程定义启动流程实例String processDefinitionKey = "test";ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey(processDefinitionKey);System.out.println("id=" + pi.getId() + ", processDefinitionId=" + pi.getProcessDefinitionId());}// 2,查询我的任务列表// 对应的表:// >> jbpm4_task 正在执行的任务信息表// >> jbpm4_hist_task 已经执行完的任务的历史信息表@Testpublic void testFindMyTask() throws Exception {// 查询// String userId = "学员";String userId = "教务";// >> 方式一// List<Task> taskList = processEngine.getTaskService().findPersonalTasks(userId);// >> 方式二List<Task> taskList = processEngine.getTaskService()//.createTaskQuery()//// 过滤条件.assignee(userId)// 指定办理人这个条件// .processDefinitionId(processDefinitionId)//// .processInstanceId(processInstanceId)//// 排序条件// .orderAsc(TaskQuery.PROPERTY_ASSIGNEE)//// .orderDesc(TaskQuery.PROPERTY_CREATEDATE)//// 执行查询// .count(); // 查询数量// .uniqueResult() // 查询唯一的结果// .page(firstResult, maxResults)//.list(); // 查询列表// 显示System.out.println("=========== 【" + userId + "】的任务列表 ==========");for (Task task : taskList) {System.out.println("id=" + task.getId()// 任务的ID+ ", name=" + task.getName()// 任务的名称+ ", assignee=" + task.getAssignee()// 任务办理人+ ", createTime=" + task.getCreateTime()// 任务的创建时间+ ", executionId=" + task.getExecutionId()); // 所属的执行对象的ID}}// 3,办理任务@Testpublic void testCompleteTask() throws Exception {String taskId = "110002";processEngine.getTaskService().completeTask(taskId);}// 4,直接向后执行一步@Testpublic void testSignal() throws Exception {String executionId = "test.70001";processEngine.getExecutionService().signalExecutionById(executionId, "to 存档");}}


原创粉丝点击