JBPM 4.4 学习笔记01----基本步骤

来源:互联网 发布:手机数据接口维修 编辑:程序博客网 时间:2024/06/08 07:37
package com.zsj.test.jbpm;import java.util.List;import org.jbpm.api.Configuration;import org.jbpm.api.ExecutionService;import org.jbpm.api.ProcessEngine;import org.jbpm.api.ProcessInstance;import org.jbpm.api.RepositoryService;import org.jbpm.api.TaskService;import org.jbpm.api.task.Task;import org.junit.BeforeClass;import org.junit.Test;/** * 基本步骤 * 一 构建流程 * 二 部署流程 * 三 生成流程实例 * 四 处理任务以及流程扭转 * @author hadoop * */public class TestJbpm {static ProcessEngine processEngine = null;@BeforeClasspublic static void setUpBeforeClass() throws Exception {processEngine = Configuration.getProcessEngine();}/** * 部署流程 */@Testpublic void deploy() {try {RepositoryService repositoryService = processEngine.getRepositoryService();repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").addResourceFromClasspath("test.png").deploy();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * 启动流程实例 */@Testpublic void createInstance() {// ProcessEngine processEngine = Configuration.getProcessEngine();ExecutionService executionService = processEngine.getExecutionService();ProcessInstance processInstance = executionService.startProcessInstanceByKey("test");System.out.println(processInstance.getId());}/** * 获取指定人员要处理的任务 */@Testpublic void getTask() {TaskService taskService = processEngine.getTaskService();List<Task> tasks = taskService.findPersonalTasks("李四");for (int i = 0; i < tasks.size(); i++) {System.out.println("who " + tasks.get(i).getAssignee() + "taskId"+ tasks.get(i).getId());System.out.println("节点名称 " + tasks.get(i).getActivityName());}}/** * 获取当前节点名称 */@Testpublic void getCurrentActivity() {ExecutionService executionService = processEngine.getExecutionService();String name = executionService.createProcessInstanceQuery().processInstanceId("test.40001").uniqueResult().findActiveActivityNames().toString();System.out.println(name);}/** * 完成任务推进 */@Testpublic void completeTask() {TaskService taskService = processEngine.getTaskService();taskService.completeTask("40001");}}
设置流程变量
public void createInstance() {// TODO Auto-generated method stubsuper.startUp();Map<String, String> map = new HashMap<String, String>();map.put("id", "000001");map.put("name", "zuoshunjian");ProcessInstance processInstance = this.executionService.startProcessInstanceByKey("test", map);super.print("流程实例ID", processInstance.getId());}
获取流程变量
/** * 获取流程变量 */@Testpublic void getVariable() {super.startUp();String idString = this.executionService.getVariable("test.10001", "id").toString();super.print("流程实例变量ID", idString);}
修改流程变量
public void updateVariable() {super.startUp();this.executionService.setVariable("test.10001", "id", "00002");String idString = this.executionService.getVariable("test.10001", "id").toString();System.out.println(idString);}