Jbpm工作流测试代码

package cn.itcast.jbpm.firstapp;

import java.util.List;

import org.hibernate.cfg.Configuration;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.junit.Test;

public class HelloWorld {

	//生成数据表
	@Test
	public void createSchema(){
		new Configuration().configure().buildSessionFactory();
	}
	//发布工作流版本
	@Test
	public void deployProcessDefintion(){
		String path = "app/helloworld.zip";
		//1.加载jbpm的配置文件
		JbpmConfiguration jcf = JbpmConfiguration.getInstance();
		JbpmContext jContext = jcf.createJbpmContext();
		
		//2.加载app
		ProcessDefinition pd = ProcessDefinition.parseParResource(path);
		//3.发布流
		jContext.deployProcessDefinition(pd);
		jContext.close();
	}
	//找到最新版本并创建实例
	@Test
	public void instanceProcess(){
		JbpmConfiguration jcf = JbpmConfiguration.getInstance();
		JbpmContext jContext = jcf.createJbpmContext();
		//找到最新版本的helloworld工作流app
		ProcessDefinition pd = jContext.getGraphSession()//
		.findLatestProcessDefinition("helloworld");
		//实例工作流
		ProcessInstance pi = pd.createProcessInstance();
		pi.getRootToken().signal();
		
		jContext.close();
		
	}
	//获取未完成的任务列表
	@Test
	public void getTaskInstanceList(){
		JbpmConfiguration jcf = JbpmConfiguration.getInstance();
		JbpmContext jContext = jcf.createJbpmContext();
		String actorId = "员工";
		List<TaskInstance> list = jContext.getTaskList(actorId);
		
		System.out.println("----------> 【" + actorId + "】的任务列表:");
		for (TaskInstance ti : list) {
			System.out.println("id=" + ti.getId()// 主键值
					+ ",name=" + ti.getName()// 任务名称
					+ ",actorId=" + ti.getActorId()// 办理者
					+ ",createTime=" + ti.getCreate()// 创建时间
					+ ",startTime=" + ti.getStart()// 开始时间
					+ ",endTime=" + ti.getEnd()); // 结束时间
		}
		jContext.close();
	}
	long taskInstanceId =2;
	//开始未完成的任务(Task)根据对应表中的Id
	@Test
	public void startTask(){
		JbpmConfiguration jcf = JbpmConfiguration.getInstance();
		JbpmContext jContext = jcf.createJbpmContext();
		TaskInstance ti = jContext.getTaskInstance(taskInstanceId);
		ti.start();
		jContext.close();
	}
	//结束未完成的任务(Task)
	@Test
	public void endTask(){
		JbpmConfiguration jcf = JbpmConfiguration.getInstance();
		JbpmContext jContext = jcf.createJbpmContext();
		TaskInstance taskInstance = jContext.getTaskInstance(taskInstanceId);
		taskInstance.end();
		jContext.close();
	}
}

你可能感兴趣的:(工作,Hibernate,jbpm,JUnit)