社区
Web 开发
帖子详情
activiti5怎么获得当前节点可以流转的方向
loop_in
2017-12-27 06:01:58
例如当前节点可以下发,审批,反馈。我怎么通过当前的节点值去获得下发,审批,反馈这三个值
...全文
392
2
打赏
收藏
activiti5怎么获得当前节点可以流转的方向
例如当前节点可以下发,审批,反馈。我怎么通过当前的节点值去获得下发,审批,反馈这三个值
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
drinkcor
2020-03-27
打赏
举报
回复
一楼正解,亲测有效
csdnGarbage1
2019-08-27
打赏
举报
回复
1
public List<FlowNode> getNextNode(String taskid) {
HistoricTaskInstance myTask = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskId(taskid).singleResult();
String processDefinitionId = myTask.getProcessDefinitionId();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
List<HistoricActivityInstance> haiList = historyService.createHistoricActivityInstanceQuery()
.executionId(myTask.getExecutionId()).finished().list();
String myActivityId = myTask.getTaskDefinitionKey();
if (ValidateUtil.isEmpty(myActivityId)) {
return new ArrayList();
}
List<FlowNode> flowNodeList = new ArrayList();
FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(myActivityId);
List<SequenceFlow> list = flowNode.getOutgoingFlows();
for (SequenceFlow i : list) {
FlowNode flowNode1 = (FlowNode) i.getTargetFlowElement();
if (flowNode1.isExclusive()) {//TODO 如果是网关继续下一个 不支持二级网关解析
List<SequenceFlow> seqs = flowNode1.getOutgoingFlows();
for (SequenceFlow o : seqs) {
FlowNode flowNode2 = (FlowNode) o.getTargetFlowElement();
if (flowNode2 == null || "结束".equals(flowNode2.getName())) {
continue;
}
flowNodeList.add(flowNode2);
}
} else {
if (flowNode1 == null || "结束".equals(flowNode1.getName())) {
continue;
}
flowNodeList.add(flowNode1);
}
}
return flowNodeList;
}
使用
activiti
工作流引擎显示流程图时高亮显示流程图中已执行
节点
和已执行路径方法源代码
使用
activiti
工作流引擎显示流程图时高亮显示流程图中已执行
节点
和已执行路径方法源代码
Activiti
5学习-在流程图中为带条件的顺序流添加提示信息
NULL 博文链接:https://cooperay.iteye.com/blog/1457161
Activiti
6.0教程例子下载
1. 初识
Activiti
1.1. 工作流与工作流引擎 工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。(我的理解就是:将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化) 所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。 例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性和弹性。 比如你的系统中有一个任务流程,一般情况下这个任务的代码逻辑、流程你都要自己来编写。实现它是没有问题的。但是谁能保证逻辑编写的毫无纰漏?经过无数次的测试与改进,这个流程没有任何漏洞也是可以实现的,但是明显就会拖慢整个项目的进度。 工作流引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。 1.2. BPMN2.0规范 BPMN(Business Process Model and Notation)--业务流程模型与符号。 BPMN是一套流程建模的标准,主要目标是被所有业务用户容易理解的符号,支持从创建流程轮廓的业务分析到这些流程的最终实现,知道最终用户的管理监控。 通俗一点其实就是一套规范,画流程模型的规范。流程模型包括:流程图、协作图、编排图、会话图。详细信息请google。 1.3.
Activiti
概述 1.3.1.
Activiti
由来 学习过
Activiti
的朋友都知道,
Activiti
的创始人也就是JBPM(也是一个优秀的BPM引擎)的创始人,从Jboss离职后开发了一个新的BPM引擎:
Activiti
。所以,
Activiti
有很多地方都有JBPM的影子。所以,据说学习过JBPM的朋友学起
Activiti
来非常顺手。 由于本人之前没有工作流及JBPM的相关基础,刚开始学习
Activiti
的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习
Activiti
。 1.3.2.
Activiti
简介
Activiti
是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。
Activiti
作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。
Activiti
流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能
Activiti
流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。 1.4. 文档说明 以上部分对工作流、BPMN、
Activiti
的概念做了一个简单的介绍,目的是了解
Activiti
究竟是什么,能做些什么…及在学习
Activiti
之前需要了解的知识与技术。其中大部分文字来自Copy网上的各种资料与文档,通过总结而来的。具体的更详细的内容需自己google,参考一些官方的文档与手册。 本文档之后内容如下: 1) 下载与使用 2) 核心组件与说明 3) 入门示例 4) Eclipse中的
Activiti
插件的使用 本文档旨在为初学
Activiti
的朋友提供入门级别的参考,不会对其原理及其结构进行深层次的探究(更多是因为目前自身理解还不是很透彻),只是为大家理清思路,方便以后更深层次的学习。本文档还有一个重要的特点,那就是根据自己看官方手册的经验,教大家如何看手册从而更有效率!由于是初学,很多术语或解释难免理解有偏差,所以一定要看官方提供的文档与手册,那才是学习的最佳途径! 2. 开始学习 2.1. 必要的准备 2.1.1. 下载与了解目录 下载
Activiti
:下载路径,也就是官方网站的地址:http://
activiti
.org/download.html。下载后解压(我所使用的是5.12版本的,
Activiti
更新速度飞快,几乎每两个月就会有一个更新的小版本),看到如下目录: 1) database:里面存放的是
Activiti
使用到的数据库信息的sql文件,它支持的数据库类型如下图,使用时只需执行你自己的数据库类型
Vue+Bpmnjs整合设计器和查看器,支持高度自定义,基于github上的项目进行了深度优化
bpmn.js与vue的完美整合,提供了设计器和查看器两个部分。 项目简介: 一个基于 `bpmn.js`,`Vue 2.x` 和 `ElementUI` 开发的流程设计器。本项目从原项目衍生出来,升级了最新版本的bpmnjs,并升级到了vue2.7,支持新特性。 您可以使用它在浏览器上查看和编辑符合 `BPMN 2.0` 规范的流程文件。还可以查看标准的流程文件。同时支持
activiti
,flowable和camunda。 1. 工具栏:包含常见操作,比如保存流程、打开文件、下载文件、预览、对齐方式、缩放管理、撤销删除等 2. 常规信息:id、名称、扩展属性、元素文档 3. 特殊
节点
属性: 1. 流程全局消息与信号 2. 执行监听器 3. 用户任务
节点
任务监听器 4. 表单配置 5. 任务配置 6. 多实例任务 7.
流转
条件 4. 内置常用 `camunda` ,`flowable`,`
activiti
` 解析文件 5. 自定义左侧元素栏 `platte` 与弹出菜单 `contentPad` 示例模块 6. 自定义渲染方法
jeecg-framework-3.1.0.RELEASE
简介 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台,引领新开发模式(手工MERGE半智能开发), 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。 JEECG宗旨是:简单功能由代码生成器生成使用; 复杂业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编写业务逻辑。 实现了流程任务
节点
和任务接口的灵活配置,既保证了公司流程的保密行,又减少了开发人员的工作量 架构说明 JEECG V3.0版本采用SpringMVC+Hibernate+UI快速开发库 的基础架构,采用面向声明的开发模式, 基于泛型编写极少代码即可实现复杂的数据展示、数据编辑、 表单处理等功能,再配合代码生成器的使用,将J2EE的开发效率提高6倍以上,可以将代码减少60%以上。 JEECG V3.0版本六大技术点: 1.代码生成器 2.UI快速开发库 3.在线流程设计 4.系统日志记录 5.Web GIS支持 6.移动平台支持Bootstrap(兼容Html5) 技术点一:代码生成器,支持多种数据模型,根据表生成对应的Entity,Service,Dao,Action,JSP等,增删改查功能生成直接使用 技术点二:UI快速开发库,针对WEB UI进行标准封装,页面统一采用UI标签实现功能:数据datagrid,表单校验,Popup,Tab等,实现JSP页面零JS,开发维护非常高效 技术点三:在线流程定义,采用开源
Activiti
流程引擎,实现在线画流程,自定义表单,表单挂接,业务
流转
,流程监控,流程跟踪,流程委托等 技术点四:Web GIS支持,采用采用OpenLayers技术 技术点五:移动平台支持,对Bootstrap(兼容Html5)进行标准封装 JEECG V3.0,经过了专业压力测试,性能测试,保证后台数据的准确性和页面访问速度 支持多种浏览器: IE, 火狐, Google 等浏览器访问速度都很快 支持数据库: Mysql,Oracle10g等 基础权限: 用户,角色,菜单权限,按钮权限,数据权限 智能报表集成: 简易的图像报表工具和Excel导入导出 Web容器测试通过的有Jetty和Tomcat6 待推出功能:分布式部署,云计算,移动平台开发,规则引擎,代码生成器(eclipse插件) 要求JDK1.6+
Web 开发
81,095
社区成员
341,712
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章