package com.sxito.jbpm;
import junit.framework.TestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.ProcessInstance;
public class Jbpm_05_CurrentNode extends TestCase {
//获取jbpm配置
static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
/**
* 查看公文所处节点
* 根据公文编号得到该公文对象
* 根据该公文对象获得流程实例编号
* 根据流程实例编号获得流程实例对象
* 根据流程实例对象拿到RootToken
* 根据RootToken拿到RootToken所处节点的名字
*/
public void testCurrentNode(){
//创建jbpm上下文对象
JbpmContext context = jbpmConfiguration.createJbpmContext();
try{
//已知公文Id 获取公文 根据公文获取流程实例编号 根据流程实例编号获取流程实例 调用signal()方法提交
int docId = 1;
Document doc = (Document) context.getSession().load(Document.class, docId);
long processInstanceId = doc.getProcessInstanceId();
ProcessInstance instance = context.getProcessInstance(processInstanceId);
String name = instance.getRootToken().getNode().getName();
System.err.println("当前公文【"+doc.getTitle()+"】所在节点为【"+name+"】");
}catch(Exception e){
e.printStackTrace();
// 如果部署不成功则回滚
context.setRollbackOnly();
}finally{
context.close();
}
}
}
jbpm教程(四) 查看公文所处节点
最新推荐文章于 2018-12-18 18:48:34 发布