JBPM入门代码

package test;

import java.util.List;

import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.db.GraphSession;
import org.jbpm.db.TaskMgmtSession;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;


public class Test {

	//流程定义操作
	public void define(){
		
		JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
		GraphSession graphSession=jbpmContext.getGraphSession();
		ProcessDefinition processDefinition=ProcessDefinition.parseXmlResource("");
		graphSession.deployProcessDefinition(processDefinition);
		jbpmContext.close();
	}
	//流程加载与开始
	public void loadAndStart(){
		JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
		GraphSession graphSession=jbpmContext.getGraphSession();
		ProcessDefinition processDefinition=graphSession.loadProcessDefinition(1);
		ProcessInstance processInstance=new ProcessInstance(processDefinition);
		
		jbpmContext.save(processInstance);
		jbpmContext.close();
	}
	//获取工作列表
	public void taskList(){
		JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
		TaskMgmtSession taskMgmtSession=jbpmContext.getTaskMgmtSession();
		//只能获取尚未完成的任务列表(待办任务)
		List list=taskMgmtSession.findTaskInstances("userId");
		
		jbpmContext.close();
	}
	
	//执行任务
	public void execute(){
		JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
		TaskMgmtSession taskMgmtSession=jbpmContext.getTaskMgmtSession();
		TaskInstance taskInstance=taskMgmtSession.getTaskInstance(1);
		//start
		taskInstance.start();
		
		jbpmContext.save(taskInstance);
		jbpmContext.close();
	}
	//结束任务
	public void end(){
		JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
		TaskMgmtSession taskMgmtSession=jbpmContext.getTaskMgmtSession();
		TaskInstance taskInstance=taskMgmtSession.getTaskInstance(1);
		//end
		taskInstance.end();
		
		jbpmContext.save(taskInstance);
		jbpmContext.close();
	}
	
	//JbpmContest
	public void JbpmContestAbout(){
		//典型用法
		JbpmContext jbpmContext=
			JbpmConfiguration.getInstance().createJbpmContext();
		try {
			TaskInstance taskInstance=jbpmContext.getTaskInstance(1);
			//do your process operations
			jbpmContext.save(taskInstance);
			
		} catch (Throwable e) {
			// TODO: handle exception
		} finally{
			jbpmContext.close();
		}
	}
	/**
	 * Graph相关的数据持久化操作
	 * 主要是ProcessDefinition和ProcessInstance
	 * 
	 * 主要方法:
	 * public void saveProcessDefinition(ProcessDefinition processDefinition)
	 * public ProcessDefinition loadProcessDefinition(long processDefinitionId)
	 * public Processdefinition findProcessDefinition(String name,int versioin)
	 * public List findAllProcessDefinitions()
	 * pulbic void saveProcessInstance(ProcessInstance processInstance)
	 * public Processinstance loadProcessInstance(long processInstanceId)
	 * pulbic List findProcessInstances(long processDefinitionId)
	 * Delete方法
	 * 
	 */
	
	/**
	 * TaskInstance相关数据查询操作
	 * TaskInstance数据通过ProcessInstance进行保存
	 * 
	 * 主要方法:
	 * public List findTaskInstances(String actorId)
	 * public List findPooledTaskInstances(String actorId)
	 * pulbic List findTaskInstancesByToken(long tokenId)
	 * public TaskInstance loadTaskInstance(long taskInstanceId)
	 * 没有save方法,save是通过对processInstance的操作实现的
	 * 
	 */
}

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