activiti获取上一节点 下一个节点完成任务时如果有下一个任务是不是新建一个task

activiti如何获取当前节点以及下一步路径或节点
ACTIVITI相对于JBPM来说,比较年轻,用的人少,中文方面的资料更少,我根据网上到处找得资料以及看官方文档总结出来了代码,非常不容易啊。废话不多说,直接上代码吧:
首先是根据流程ID获取当前任务:
List&Task& tasks =
taskService.createTaskQuery().processInstanceId(procInstanceId).list();
然后根据当前任务获取当前流程的流程定义,然后根据流程定义获得所有的节点:
ProcessDefinitionEntity def = (ProcessDefinitionEntity)
((RepositoryServiceImpl)rs).getDeployedProcessDefinition(task.getProcessDefinitionId());
List&ActivityImpl& activitiList =
def.getActivities();&
//rs是指RepositoryService的实例
根据任务获取当前流程执行ID,执行实例以及当前流程节点的ID:
String excId = task.getExecutionId();
ExecutionEntity execution = (ExecutionEntity)
runtimeService.createExecutionQuery().executionId(excId).singleResult();
String activitiId = execution.getActivityId();
然后循环activitiList
并判断出当前流程所处节点,然后得到当前节点实例,根据节点实例获取所有从当前节点出发的路径,然后根据路径获得下一个节点实例:
for(ActivityImpl activityImpl:activitiList){
String id = activityImpl.getId();
if(activitiId.equals(id)){
System.out.println("当前任务:"+activityImpl.getProperty("name"));
//输出某个节点的某种属性
List&PvmTransition& outTransitions =
activityImpl.getOutgoingTransitions();//获取从某个节点出来的所有线路
for(PvmTransition tr:outTransitions){
PvmActivity ac = tr.getDestination(); //获取线路的终点节点
System.out.println("下一步任务任务:"+ac.getProperty("name"));
这就是获取当前节点以及下一步路径或节点的整个过程了
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Activiti演示PPT要点.pptx 71页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:350 &&
Activiti演示PPT要点
你可能关注的文档:
··········
··········
AcTIVITIwORKflOW技术交流;目录:1、什么是WorkFlow?2、Activiti5WorkFlow介绍及开发环境配置3、Activiti5入门篇-HelloWorldDEMO演示与说明4、Activiti5基础篇-流程组件简述及参数传递5、与Spring容器整合配置;什么是WorkFActiviti5WorkFlow介绍;数据库说明: Activiti的后台是有数据库的支持,所有的表都以ACT_开头。第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。 ACT_RE_*:'RE'表示repository。这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。 ACT_RU_*:'RU'表示runtime。这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。这样运行时表可以一直很小速度很快。 ACT_ID_*:'ID'表示identity。这些表包含身份信息,比如用户,组等等。 ACT_HI_*:'HI'表示history。这些表包含历史数据,比如历史流程实例,变量,任务等等。 ACT_GE_*:通用数据,用于不同场景下,如存放资源文件。;服务API示意图:;服务API说明: 引擎的API是调用Activiti最常见的一种方法。我们一开始最关注的中心是ProcessEngine流程引擎,它可以被多种方式创建。从这个流程引擎里面,能获得各个包含workflow/BPM方法的服务。 RepositoryService:管理和控制发布包和流程定义(包含了一个流程每个环节的结构和行为)的操作。 RuntimeService:负责启动一个流程定义的新实例,获取和保存流程变量,查询流程实例和执行。 TaskService:所有与任务有关的功能,查询分配给用户或组的任务,创建独立运行任务。 IdentityService:管理(创建,更新,删除,查询...)群组和用户(可以不使用activiti的用户模块) HistoryService:提供了Activiti引擎的所有历史数据;&dependency&&groupId&org.activiti&/groupId&&artifactId&activiti-engine&/artifactId&&version&5.14&/version&&/dependency&&dependency&&groupId&org.activiti&/groupId&&artifactId&activiti-bpmn-model&/artifactId&&version&5.14&/version&&/dependency&&dependency&&groupId&org.activiti&/groupId&&artifactId&activiti-spring&/artifactId&&version&5.14&/version&&/dependency&;开发环境准备: 1、activiti5支持JDK1.6或者更高版本 2、activiti5支持的数据库有:H2,MySql,Oracle,Postgres,MSSql,DB2等。在开发之前,需要创建activiti相关联的数据表,可选择执行相关的activit.*.sql文件,或在activiti.cfg.xml配置文件中设置自动创建相关数据表。 3、下载支持activiti5运行的相关jar包。下载地址为:http://activiti.org/download.html 4、开发工具为Eclipse3.7或者以上版本,myeclipse为8.6版本或以上版本,需要下载activit流程设计器插件。插件地址为:http://activiti.org/designer/update/ 完成以上准备后,即可进行activiti相关工程开发。;流程示意图:;示意图说明:;流程属性:;USERTASK属性1:;USERTASK属性2:;相关代码1:;/**启动流程实例*/@TestpublicvoidstartProcessInstance(){//流程定义的keyStringprocessDefinitionKey=&helloworld&;//与正在执行的流程实例和执行对象相关的ServiceProcessInstan
正在加载中,请稍后...

我要回帖

更多关于 activiti 下一个节点 的文章

 

随机推荐