⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flow1test.java

📁 这是一个jbpm的高级应用,是一个oa工作流的系统,里面用到了spring,hibernate技术等.实为学习jbpm的好资料!
💻 JAVA
字号:
package com.xiangfeng.workflow.test;

import java.util.Collection;

import junit.framework.TestCase;

import org.jbpm.graph.def.Node;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.taskmgmt.exe.TaskInstance;



public class Flow1Test extends TestCase {
	public void testFlow1(){
		
		//流程定义
		ProcessDefinition definition = ProcessDefinition.parseXmlInputStream(
				Thread.currentThread().getContextClassLoader()
				.getResourceAsStream("flow1/processdefinition.xml")
				);
		
		//创建一个流程实例
		ProcessInstance processInstance = new ProcessInstance(definition);
		
		//每个流程实例,都会有其对应的执行主路径,从主路径中,可以获取当前节点的信息
		//也可以通过Token来触发流程流向下一个节点
		Token token = processInstance.getRootToken();
		
		//当前节点在哪里?
		Node current = token.getNode();
		
		//起始节点
		Node start = definition.getStartState();
		
		//当前节点正是起始节点
		assertEquals(start, current);
		
		//触发流程流向下一个节点
		//这些方法的调用,可以由页面表单的提交按钮触发(比如在OA系统中)
		token.signal();
		
		//当前应该处在state1节点
		assertEquals(token.getNode(),definition.getNode("状态1"));
		
		//继续往下走
		token.signal();
		
	Collection collection = processInstance.getTaskMgmtInstance().getTaskInstances();
		
		//因为只有一个任务,所以
		TaskInstance taskInstance = (TaskInstance)collection.iterator().next();
		
		taskInstance.end();
		
		//此时应该在结束节点!
		assertEquals(token.getNode(),definition.getNode("task1"));
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -