根据流程定义获取某个节点的变量名
boav911
2012-08-02
节点名称肯定可以拿到,pdImpl.getActivities(),可以拿到所有节点信息,至于节点中配置的占位符"#{drafter}",据我所知,jbpm是提供api对这些变量的占位符进行获取的,但是可以通过其他手段获取,dom解析,使用xpath查询对应节点,通过dom获取candidate-users的属性值,即"#{drafter}"
|
|
boav911
2012-08-02
或者你可以使用PorcessDefinitionImpl,使用pdImpl.getTaskDefinition(taskName)得到一个TaskDefinitionImpl,在使用TaskDefinitionImpl.getAssigneeExpression()就可以得到一个Expression对象,在这里面就有你想要的值
|
|
成長中的丫頭
2012-08-03
boav911 写道 或者你可以使用PorcessDefinitionImpl,使用pdImpl.getTaskDefinition(taskName)得到一个TaskDefinitionImpl,在使用TaskDefinitionImpl.getAssigneeExpression()就可以得到一个Expression对象,在这里面就有你想要的值
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery() .processDefinitionKey(proDefKey).orderDesc( ProcessDefinitionQuery.PROPERTY_VERSION).page(0, 1) .uniqueResult(); ProcessDefinitionImpl pdi=(ProcessDefinitionImpl )pd; List<Activity> act= (List<Activity>)pdi.getActivities(); for(Activity a:act){ System.out.println("a"+a.getName()); TaskDefinitionImpl tdi=pdi.getTaskDefinition(a.getName()); System.out.println("pdi"+pdi); System.out.println("tdi"+tdi); Expression e=tdi.getAssigneeExpression(); System.out.println(" e.getExpressionString()"+ e.getExpressionString()); } a拟票 Exception in thread "main" pdiprocess(dispatch) tdinull java.lang.NullPointerException 空指针呢,奇怪了。。。 dom解析我试过了,可以了,只是这个很好奇怎么出错呢,非常感谢你的耐心解答 |
|
boav911
2012-08-03
不客气,至于第二种方法导致的异常信息,我也不太清楚,我抽时间看看
|