根据流程定义获取某个节点的变量名

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
不客气,至于第二种方法导致的异常信息,我也不太清楚,我抽时间看看
Global site tag (gtag.js) - Google Analytics