📄 firstflowprocesstest.java
字号:
package com.sample;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.def.Transition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
import junit.framework.TestCase;
public class FirstFlowProcessTest extends TestCase {
ProcessDefinition pdf ;
ProcessInstance pi;
public void test4000YuanApplication() throws Exception {
deployProcessDefinition();
createProcessInstance("linly");
submitApplication(4000);
approveByManager(true);
checkTasks();
}
public void test6000YuanApplication() throws Exception {
deployProcessDefinition();
createProcessInstance("linly");
submitApplication(6000);
approveByManager(true);
approveByPresident(true);
checkTasks();
}
public void test7000YuanApplication() throws Exception {
deployProcessDefinition();
createProcessInstance("linly");
submitApplication(7000);
approveByManager(true);
approveByPresident(false);
checkTasks();
}
/**
* 部署流程定义
* @throws Exception
*/
protected void deployProcessDefinition() throws Exception{
System.out.println("==FirstFlowProcessTest.deployProcessDefinition()==");
pdf = ProcessDefinition.parseXmlResource("simple/processdefinition.xml");
assertNotNull("Definition should not be null", pdf);
}
/**
* 生成流程实例
*/
protected void createProcessInstance(String user){
System.out.println("==FirstFlowProcessTest.createProcessInstance()==");
assertNotNull("Definition should not be null", pdf);
//生成实例
pi = pdf.createProcessInstance();
assertNotNull("processInstance should not be null", pi);
//设置流程发起人
pi.getContextInstance().createVariable("initiator", user);
//触发流程转向
System.out.println("---lixineng1---");
pi.signal();
System.out.println("---lixineng2---");
}
/**
* 填写提交申请单
* @param money
*/
protected void submitApplication(int money){
System.out.println("==FirstFlowProcessTest.submitApplication()==");
TaskInstance ti = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next() ;
System.out.println("ti.actor = " + ti.getActorId());
ContextInstance ci = ti.getContextInstance();
ci.setVariable("money",new Integer(money));
System.out.println("---lixineng1---");
ti.end();
System.out.println("---lixineng2---");
}
/**
* 部门经理审批
* @param pass
*/
@SuppressWarnings("unchecked")
protected void approveByManager(boolean pass){
System.out.println("==FirstFlowProcessTest.approveByManager()==");
Iterator<TaskInstance> it = pi.getTaskMgmtInstance().getTaskInstances().iterator();
for( ;it.hasNext(); ){
TaskInstance ti = it.next();
if(ti.getActorId().equals("DepartmentManager")){
List<Transition> transitions = ti.getToken().getNode().getLeavingTransitions();
for(Transition t : transitions){
System.out.println("----Transition" + t.getName());
}
assertEquals("DepartmentManager",ti.getActorId());
if(pass){
System.out.println("---lixineng1---");
ti.end("部门经理审批通过");
System.out.println("---lixineng2---");
}else{
System.out.println("---lixineng1---");
ti.end("部门经理驳回");
System.out.println("---lixineng2---");
}
return;
}
}
}
/**
* 总经理审批
* @param pass
*/
@SuppressWarnings("unchecked")
protected void approveByPresident(boolean pass){
System.out.println("==FirstFlowProcessTest.approveByPresident()==");
Iterator<TaskInstance> it = pi.getTaskMgmtInstance().getTaskInstances().iterator();
for( ;it.hasNext(); ){
TaskInstance ti = it.next();
if(ti.getActorId().equals("President")){
List<Transition> transitions = ti.getToken().getNode().getLeavingTransitions();
for(Transition t : transitions){
System.out.println("----Transition" + t.getName());
}
assertEquals("President",ti.getActorId());
if(pass){
ti.end("总经理审批通过");
}else{
ti.end("总经理驳回");
}
return;
}
}
}
/**
* 打印任务记录
*/
@SuppressWarnings("unchecked")
protected void checkTasks(){
System.out.println("==FirstFlowProcessTest.checkTasks()==");
Collection<TaskInstance> coll = pi.getTaskMgmtInstance().getTaskInstances();
System.out.println("====Process has task:====");
for(TaskInstance ti : coll){
System.out.println("=="+ti.getName()+"==");
System.out.println("=="+ti.getActorId()+"==");
System.out.println("=="+ti.getVariables().toString() +"==");
}
System.out.println("====end====");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -