怎样查找当前节点下所有节点名称
jimyang
2012-02-23
例如当前节点是人事审批,流程是人事审批-》财务审批-》总经理审批,怎样能根据人事审批这个节点去查到财务审批和总经理审批这两个下级节点名称,根据实例id或者taskId可以取得到吗?
|
|
jimyang
2012-02-23
往上查流程图上级所有节点名称呢?好像jbpm4没有节点层次结构查询的api啊,难道要自己自定义层次结构?
|
|
dawnlong2000
2012-02-26
由流程实例ID可查到流程定义,而流程定义就是由一组节点组成的,因此理论上是可以查到的(到数据库查)。但引擎不会提供此Service,因为流程不都是顺序执行的,可以有分支,可以有跳转。
|
|
liucong_info
2012-03-02
怎样能根据人事审批这个节点去查到财务审批和总经理审批这两个下级节点名称
你可以通过taskId或者processInstanceId取到流程定义对象. 再通过流程定义取到对应的节点. 通过节点的transition , 再通过transition取得流程目标节点即可 |
|
liucong_info
2012-03-02
算了给你写出来吧.
/** * 获取实例对象 */ ProcessInstance pi = executionService.findProcessInstanceById("processInstanceId"); /** * 获取定义对象 */ ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().processDefinitionId(pi.getProcessDefinitionId()).uniqueResult(); /** * 根据已知节点名称取得对应的节点 */ ActivityImpl activity = ((ProcessDefinitionImpl)pd).getActivity("人事审批"); /** * 根据已知节点取得其路由 */ TransitionImpl transition = activity.getDefaultOutgoingTransition(); /** * 要所路由取得目标节点 */ ActivityImpl destinationActivity = transition.getDestination(); /** * 取得对应的名称 */ destinationActivity.getName(); |