标签:
package cn.itcast.c_processinstance; 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; /** * 执行流程实例有关的操作 * * <pre> * 启动流程实例 * 查询我的任务列表 * 办理任务 * 直接向后执行一步 * </pre> * * @author tyg * */ public class ProcessInstanceTest { private ProcessEngine processEngine = Configuration.getProcessEngine(); // 启动流程实例 @Test public void testStartProcessInstance() throws Exception { // 使用指定的流程定义启动流程实例(指定名称并且是指定的version) // processEngine.getExecutionService().startProcessInstanceById("helloworld-3"); // 使用指定key的最新版本的流程定义启动一个流程实例 ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("helloworld"); System.out.println("流程实例启动成功,processInstanceId=" + pi.getId() + ", processDefinitionId=" + pi.getProcessDefinitionId()); } // 查询我的(未完成的)任务列表 @Test public void testFindMyTaskList() throws Exception { // 准备 String userId = "员工"; // String userId = "部门经理"; //String userId = "总经理"; // // 查询所有 // List<Task> list = processEngine.getTaskService().findPersonalTasks(userId); // 分页的查询 List<Task> list = processEngine.getTaskService()// .createTaskQuery()// // 过滤条件 .assignee(userId)// 指定办理人是谁,如果不指定办理人,就会查出所有人的任务 // 排序条件 // .orderAsc(TaskQuery.PROPERTY_CREATEDATE) // 执行查询得到结果 // .count(); // .page(firstResult, maxResults) .list(); // 显示 for (Task t : list) { System.out.println("id=" + t.getId()// + ", name=" + t.getName()// 任务名称 + ", assignee=" + t.getAssignee()// 办理人 + ", createTime=" + t.getCreateTime()// 此任务的创建时间 + ", executionId=" + t.getExecutionId()); // 所属的执行对象的id } } // 办理任务 @Test public void testCompleteTask() throws Exception { String taskId = "320002"; processEngine.getTaskService().completeTask(taskId); } // 跳过某个节点,直接向后执行一步 假设:流程到部门经理,此时需要跳转到总经理时,操作:获取部门经理的executionId @Test public void testSignal() throws Exception { String executionId = "helloworld.320001"; processEngine.getExecutionService().signalExecutionById(executionId, "to 总经理[审批]"); } }
<?xml version="1.0" encoding="UTF-8"?> <process name="hellokey" key="hellokey" xmlns="http://jbpm.org/4.4/jpdl"> <start g="115,21,48,48" name="start1"> <transition g="-71,-17" name="to 提交申请" to="提交申请"/> </start> <end g="115,353,48,48" name="end1"/> <task assignee="员工" g="81,101,117,52" name="提交申请"> <transition g="-78,-15" name="to 部门经理[审批]" to="部门经理[审批]"/> </task> <task assignee="部门经理" g="81,185,117,52" name="部门经理[审批]"> <transition g="-95,-17" name="to 总经理[审批]" to="总经理[审批]"/> </task> <task assignee="总经理" g="81,269,117,52" name="总经理[审批]"> <transition g="-47,-17" name="to end1" to="end1"/> </task> </process>
标签:
原文地址:http://www.cnblogs.com/a757956132/p/4774915.html