`

JBPM入门

    博客分类:
  • IT
阅读更多
public class HelloWorld_API {

	@Test
	public void createSchema() {
		new Configuration().configure().buildSessionFactory();
	}

	// 部署流程定义
	@Test
	public void deploy() {
		ProcessDefinition pd = null;
		// 1, xml 文件,指定的是资源的相对路径(相对于classpath)
		pd = ProcessDefinition.parseXmlResource("helloworld/processdefinition.xml");
		// pd = ProcessDefinition.parseXmlInputStream(inputStream);
		// pd = ProcessDefinition.parseXmlReader(reader);
		// 2, zip 文件(流程定义文档),指定的是资源的相对路径(相对于classpath)
		// pd = ProcessDefinition.parseParResource("helloworld/helloworld.zip");
		// pd = ProcessDefinition.parseParZipInputStream(zipInputStream);
		// 3, String
		// pd = ProcessDefinition.parseXmlString(xmlString);

		// JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
		JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("/jbpm.cfg.xml");
		JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); // 创建Session,开始事务
		// jbpmContext.getSession();
		try {
			jbpmContext.deployProcessDefinition(pd);
			// jbpmContext.getGraphSession().deployProcessDefinition(pd);
		} catch (RuntimeException e) {
			jbpmContext.setRollbackOnly();
			throw e;
		} finally {
			jbpmContext.close(); // 提交/回滚 事务,关闭Session
		}
	}

	// 启动/创建 流程实例(Signal)
	@Test
	public void startProcessInstance() { //
		JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
		JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); // 创建Session,开始事务

		ProcessDefinition pd = jbpmContext.getGraphSession().findLatestProcessDefinition("helloworld");
		ProcessInstance pi = pd.createProcessInstance();
		// jbpmContext.save(pi);

		pi.getRootToken().signal();

		jbpmContext.close();
	}

	// 查看/获取 任务(某人的、未完成的, 任务实例)列表
	@Test
	public void getTaskList() {
		String actorId = "客户";
		// String actorId = "商家";

		JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
		JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); // 创建Session,开始事务

		List<TaskInstance> list = jbpmContext.getTaskList(actorId);
		// jbpmContext.getTaskMgmtSession().findTaskInstances(actorId);

		System.out.println("-----------> actorId = " + actorId);
		for (TaskInstance ti : list) {
			System.out.println("id=" + ti.getId()//
					+ ",name=" + ti.getName()//
					+ ",actorId=" + ti.getActorId()//
					+ ",create=" + ti.getCreate()//
					+ ",start=" + ti.getStart()//
					+ ",end=" + ti.getEnd());
		}

		jbpmContext.close();
	}

	private long taskInstanceId = 3;

	// 开始任务
	@Test
	public void startTask() {
		JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
		JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); // 创建Session,开始事务

		TaskInstance ti = jbpmContext.getTaskInstance(taskInstanceId);
		ti.start();

		jbpmContext.close();
	}

	// 结束任务
	@Test
	public void endTask() {
		JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
		JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); // 创建Session,开始事务

		TaskInstance ti = jbpmContext.getTaskInstance(taskInstanceId);
		ti.end();

		jbpmContext.close();
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics