工作流JBPM_day01:3-使用JBPM的API添加与执行流程
流程定义画完得到压缩文件---》部署流程定义--》启动流程实例--》查询我的个人任务列表--》办理任务--》部门经理(总经理)查询、办理--》完成
导包、配置文件
从其他项目拷log4j.properties文件
配置信息
创建数据库
运行测试类会自动创建表
运行部署流程定义测试类。表中会生成一些数据
存到服务器数据库中
员工办理任务
办理好,查看部门经理个人任务列表
部门经理办理任务
查看总经理个人任务列表
总经理办理任务
完成流程
HelloWorld_API.java
import java.util.List; import org.jbpm.api.Configuration; import org.jbpm.api.ProcessEngine; import org.jbpm.api.task.Task; import org.junit.Test; public class HelloWorld_API { //建表 @Test public void createSchema() { //hbm2ddl.auto-update自动建表 new org.hibernate.cfg.Configuration()// .configure("jbpm.hibernate.cfg.xml")// .buildSessionFactory(); } private static ProcessEngine processEngine = new Configuration()// .setResource("jbpm.cfg.xml")// .buildProcessEngine(); // 1, 部署流程定义 @Test public void deployProcessDefintion() { processEngine.getRepositoryService() .createDeployment() .addResourceFromClasspath("helloworld/helloworld.jpdl.xml")// .addResourceFromClasspath("helloworld/helloworld.png")// .deploy(); } @Test // 2, 启动流程实例 public void startProvessIndtance() { processEngine.getExecutionService().startProcessInstanceByKey("helloworld"); } @Test // 3, 查询我的个人任务列表 public void findMyPersonTaskList() { // String userId = "员工"; // String userId = "部门经理"; String userId = "总经理"; //查询 List<Task> taskList = processEngine.getTaskService().findPersonalTasks(userId); //显示 System.out.println("===============【" + userId + "】的个人任务列表============="); for(Task task : taskList) { System.out.println("id=" + task.getId()// + ", name=" + task.getName()//任务名称 + ", assignee=" + task.getAssignee());//办理人 } } @Test // 4, 办理任务 public void completeTask() { String taskId = "30001"; processEngine.getTaskService().completeTask(taskId); } }