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"));
}
break;
}
}
这就是获取当前节点以及下一步路径或节点的整个过程了
分享到:
相关推荐
activiti没有撤回,由于业务的需求需要实现撤回,在参考别人代码后以两种方式实现了任意节点的跳转。代码真实可用,如有问题可联系我 第一种方式: 1、获取当前节点,获取跳转节点 2、获取节点的所有流出流向,把...
流程图的部署是Activiti中至关重要的一步,因为它使得业务流程能够在系统中执行。在Activiti中,流程图通常是以BPMN 2.0标准的XML格式(如`.bpmn`文件)和对应的图片资源(如`.png`文件)形式存在的。部署这些流程图...
Activiti6-流程跟踪监控图-节点-流程线高亮显示-支持通过、不通过、驳回、退回 支持内容: 已完成节点高亮显示、当前执行中节点红色显示 支持一个节点多条流出线,包括通过、不通过、驳回、退回,按照已执行操作正确...
- 条件分支:根据不同的条件,流程实例可以并行执行不同的任务,然后在汇聚点进行判断,决定下一步动作。 四、在 Activiti 中配置并行网关 在 Activiti 工具中,可以通过以下步骤配置并行网关: 1. 打开 Activiti ...
这一步可通过右击项目 -> `Build Path` -> `Configure Build Path` -> `Libraries` -> `Add External JARs`,并定位到`E:\activiti-5.6\setup\files\dependencies\libs`目录下的所有JAR文件来完成。 ### 三、配置...
这一步可以获取到所有活动节点和它们之间的连接线。 3. **匹配已执行节点**:将已执行的活动ID与流程图模型中的节点进行匹配,确定哪些节点需要高亮。 4. **高亮处理**:在流程图的渲染阶段,对匹配到的节点和连接...
- **下一步**: 探索更多功能,例如流程设计、任务分配等。 **配置**: - **创建Process Engine**: 初始化流程引擎。 - **Process Engine Configuration bean**: 配置流程引擎的Bean。 - **数据库配置**: 设置数据库...
在 Activiti 中,可以利用 Actviti Explorer 或自定义的前端界面来展示流程实例的当前节点、历史路径以及可能的下一步动作。这些信息对于监控和优化业务流程至关重要。 综上所述,`test-activiti_activiti_DEMO_...
3. **任务**:流程中的每一步都是一个任务,可以分配给不同的用户或角色来完成。 4. **活动**:流程图中的每一个节点代表一个活动,比如审批、填写表单等。 5. **泳道**:泳道用于分隔流程中的不同参与者或部门,...
4. **任务处理**:当收到信号后,Activiti会自动将流程推进到ReceiveTask的下一个节点。如果ReceiveTask后面没有其他任务,流程可能就结束了;如果有,流程会继续执行。 四、BankUserTaskActiviti示例 ...
4. **调试支持**:在MyEclipse环境中,可以直接对流程进行调试,查看流程执行的每一步,帮助开发者快速定位问题。 5. **版本管理**:与MyEclipse的版本控制系统无缝集成,可以方便地对流程模型进行版本控制,便于...
这一步是为了确保Activiti能够在支持Java的环境中运行。 #### 三、下载与解压Activiti 1. **下载Activiti 5.9**:访问Activiti官方网站或GitHub仓库下载最新版本的Activiti压缩包(如activiti-5.9.zip)。 2. **...
- **下一步**:指导开发者进行更深入的学习。 #### 3. 配置 - **创建Process Engine**:创建流程引擎的核心对象。 - **Process Engine Configuration bean**:通过配置Bean来初始化流程引擎。 - **数据库配置**:...
6. **Service层处理**:在Service层,通过Activiti的API操作流程实例,如完成任务、跳转流程节点、获取当前任务信息等。 7. **视图展示**:使用JFinal的模板引擎(如Freemarker或Velocity),设计前端页面,展示...
- 并行与会合:流程中的并行分支(多实例任务)最终会在某个网关处会合,决定流程下一步走向。 - 签署与审批:Activiti支持电子签名和审批,符合企业级流程管理需求。 5. Activiti帮助文档: - 用户指南:详细...
首先,需要将activiti-explorer中的相关文件复制到项目的web工程->bpm目录下。这一步骤是为了确保所有必要的资源文件都已就位,便于后续的集成工作。 **2. 复制stencilset.json** 接着,将`stencilset.json`文件...
**步骤二:获取Activiti插件** 在“标题”中提到的压缩包文件“site”中,包含了Activiti插件的安装源。解压这个文件,你会找到包含插件信息的更新站点目录。 **步骤三:安装插件** 1. 在Eclipse中,选择“Help” >...
- **下一步**: 进一步探索如何使用Activiti来构建工作流应用程序。 #### 三、配置 - **创建ProcessEngine**: - **ProcessEngineConfiguration bean**: 配置Bean用于初始化流程引擎。 - **数据库配置**: - **...
- **下一步**:指导如何进一步深入学习Activiti。 #### 3. 配置 - **创建ProcessEngine**:通过`ProcessEngineConfiguration`来构建。 - **ProcessEngineConfiguration bean**:通常通过Spring框架来配置。 - **...