jbpm中如何取得与登录人员信息相关的所有流程实例,包括完成与未完成的我的代码如下JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
JbpmContext jbpmContext = jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext == null || jbpmContext.equals("")){
jbpmContext = jbpmConfiguration.createJbpmContext();
}
List tasks = null;
//List expenses = new ArrayList();
//登陆人员信息
LoginManager loginManager = LoginManager.getInstance();
Person person = loginManager.getPerson();
TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession();
//我查API里面说用findPooledTaskInstances这个方法可以得到池中所有的实例(完成与未完成),可是得到的SIZE为0
//tasks = taskMgmtSession.findPooledTaskInstances(person.getId().toString());
//但用findTaskInstances得到未完成实例SIZE不为0
tasks = jbpmContext.getTaskMgmtSession().findTaskInstances(person.getId().toString());//是代码错误还是 方法错误,求解决方法
TaskInstance taskInstance = null;
Expense expense = null;
DynaBean bean = null;
expenseList = new ArrayList<DynaBean>();
for(int i=0;i<tasks.size();i++){
taskInstance = (TaskInstance)tasks.get(i);
Long expenseId =(Long)taskInstance.getProcessInstance().getContextInstance().getVariable("expenseID");
jbpmContext.setSessionFactory(HibernateUtil.getSessionFactory());
expense = (Expense)jbpmContext.getSession().get(Expense.class, expenseId);
bean = new LazyDynaBean();
bean.set("id",expense.getId());
.................. expenseList.add(bean);
}
JbpmContext jbpmContext = jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext == null || jbpmContext.equals("")){
jbpmContext = jbpmConfiguration.createJbpmContext();
}
List tasks = null;
//List expenses = new ArrayList();
//登陆人员信息
LoginManager loginManager = LoginManager.getInstance();
Person person = loginManager.getPerson();
TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession();
//我查API里面说用findPooledTaskInstances这个方法可以得到池中所有的实例(完成与未完成),可是得到的SIZE为0
//tasks = taskMgmtSession.findPooledTaskInstances(person.getId().toString());
//但用findTaskInstances得到未完成实例SIZE不为0
tasks = jbpmContext.getTaskMgmtSession().findTaskInstances(person.getId().toString());//是代码错误还是 方法错误,求解决方法
TaskInstance taskInstance = null;
Expense expense = null;
DynaBean bean = null;
expenseList = new ArrayList<DynaBean>();
for(int i=0;i<tasks.size();i++){
taskInstance = (TaskInstance)tasks.get(i);
Long expenseId =(Long)taskInstance.getProcessInstance().getContextInstance().getVariable("expenseID");
jbpmContext.setSessionFactory(HibernateUtil.getSessionFactory());
expense = (Expense)jbpmContext.getSession().get(Expense.class, expenseId);
bean = new LazyDynaBean();
bean.set("id",expense.getId());
.................. expenseList.add(bean);
}
//我查API里面说用findPooledTaskInstances这个方法可以得到池中所有的实例(完成与未完成),可是得到的SIZE为0
//tasks = taskMgmtSession.findPooledTaskInstances(person.getId().toString());
//但用findTaskInstances得到未完成实例SIZE不为0
tasks = jbpmContext.getTaskMgmtSession().findTaskInstances(person.getId().toString());//是代码错误还是 方法错误,求解决方法XML如下<?xml version="1.0" encoding="GBK"?><process-definition name="baoxiaoliucheng">
<start-state name="kaishi">
<transition to="shencha" name=""/>
</start-state>
<task-node name="shencha">
<task>
<assignment actor-id="12474636809068"/>
</task>
<transition to="shenpi" name=""/>
</task-node>
<task-node name="shenpi">
<task>
<assignment actor-id="12474636809063"/>
</task>
<transition to="jieshu" name=""/>
</task-node>
<end-state name="jieshu"/>
</process-definition>person.getId() 是可以得到12474636809068的
可是用这个人登录却得不到相关流程
List list = jbpmContext.getGraphSession().findProcessInstances(processDefinitionId);
(取得对应流程模版的所有完成和未完成的流程实例)