![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Activiti工作流
联系我:www.lfuping.cn
这个作者很懒,什么都没留下…
展开
-
Activiti 基础概念
Activiti简介Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。创始人Tom Baeyens是Jboss JBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresc原创 2017-03-10 15:01:52 · 2040 阅读 · 1 评论 -
SSM整合Activiti工作流
学完Activiti所有的知识点了,现在可以用一个小项目实战一下。本来自己想写一个简单点的流程,但是发现项目太小有些知识点用不上,所有就写了一个流程比较长、复杂点。把我前面博客中写的知识点多用上了,也巩固一下前面所掌握的。通过首先介绍一下项目的流程:1.员工发起请假申请——>项目组长进行初步审批——>就进入 并行网关未通过就直接结束流程2.并行网关:...原创 2017-03-16 16:35:52 · 27031 阅读 · 58 评论 -
Activiti并行网关
在我上一篇博文上讲了 排他网关:执行到该网关到多条线路时,根据条件执行其中某一条路线。 并行网关:是会有多条线路同时并行执行,当都执行完才继续执行后面的。重新画一个流程图取名 employeeMyProcess4.bpmn:整体业务是: 员工发起请假申请——>需要项目组长、项目经理多同意审批——>才进入最好部门总监审批——>需要以上所有人同意原创 2017-03-14 16:42:11 · 2931 阅读 · 0 评论 -
Activiti排他网关
执行到该网关,根据条件只能走一条执行线路;根据请假天数,来具体让谁来审批,请假天数小于3天,项目组长审批;请假天数小于7天,大于等于3天,项目经理审批;请假天数大于等于7天,部门总监审批;依然用表达式来实现请假天数的判断值:还有一个部门总监审批也是相同的。最后选中排他网关,设置默认执行的线路;默认就是请假天数多不满足以上条件就原创 2017-03-14 16:14:58 · 6263 阅读 · 1 评论 -
Activiti连线
当时一般情况下是部门经理审批就行了,假如有特殊的重要情况下就总监审批。这里连线是有名称的,即name属性;怎么区分一般情况和重要情况呢?这里其实是可以使用执行表达式的类似于EL表达式:创建ActivitiLineTest测试类:package com.activiti;import java.util.HashMap;import java.util.Lis原创 2017-03-14 15:40:36 · 2091 阅读 · 4 评论 -
Activiti流程变量
在流程实例运行过程中,难免要记录或者保存一些数据,然后运行到某个节点的时候取数据查看,或者是后面学到流程分支的时候 判断流程走向,都要用到一些数据存储。就有了一个新的概念流程变量,顾名思义就是流程中用来存储数据的变量;Activiti中基本支持所有的基本数据类型作为流程变量,以及支持序列化对象,所以也可以存一个对象;当然在开发的话,还是要建立一些业务表,来存储业原创 2017-03-14 15:14:25 · 2876 阅读 · 2 评论 -
Activiti历史流程操作
本质就是查询历史流程实例表act_hi_procinst:这个表的id和流程实例id始终是一样的。所以Activiti没有提供获取流程实例id的接口;因为直接getId()获取的值和流程实例Id是一样的;/** * 查询历史流程实例 */@Testpublic void getHistoryProcessInstance(){ HistoricProcess原创 2017-03-13 16:35:53 · 1982 阅读 · 0 评论 -
Activiti删除key相同的流程
一个流程定义不需要的,包括所有版本,这时候在用户界面上一个一个删除太麻烦;有时候有这样的需求,一下子把所有Key相同的流程定义批量删除;实现步骤是:1、根据Key查询所有的流程定义2、遍历集合,取得每个流程的部署ID3、根据流程部署ID即可删除所有的流程定义/** * 删除所有Key相同的流程定义 * @throws Exception *原创 2017-03-13 16:29:38 · 1788 阅读 · 0 评论 -
Activiti修改流程定义
流程定义按本质来说是不能修改的;假如一个流程定义的流程实例在活动运行中。假如可以修改,本来要流转到A这个节点,因为流程定义修改了,流转到B这个节点。就不符合当时这个流程实例的初衷了;所以在开发中,不能修改流程定义,而是通过增加版本号的方式。来实现“修改”的;什么事版本号呢?在设计流程图的时候,这里的Id 对应到数据库里的就是那个Key值原创 2017-03-13 16:23:22 · 8501 阅读 · 0 评论 -
Activiti查看流程图片
在开发中可能需要查看某个流程的流程图片。对应操作的数据库表是act_ge_bytearray的Bytes_字段:Activiti提供了操作接口,可以查询返回一个资源文件输入流,然后就可以得到这张流程图片保存到本地服务器,然后图片多在自己的服务器上,你想干什么多行。先在pom.xml中添加IO的Jar架包: commons-io commons-io原创 2017-03-13 16:02:57 · 5206 阅读 · 1 评论 -
Activiti流程定义删除
在开发中肯定会有一些流程不需要了,要删除,Activiti中也是存在删除操作的,通过流程定义部署ID来执行删除流程定义。不说那么多直接上代码: /** * 删除流程定义 */ @Test public void delete(){ processEngine.getRepositoryService() .deleteDeployment("12原创 2017-03-13 15:48:48 · 4684 阅读 · 0 评论 -
Activiti流程定义查询
流程定义查询本质上就是通过Activiti框架提供的API对act_re_procdef表进行查询操作。通过Activiti提供的API 把act_re_procdef表的所有列的数据全部查询出来,在开发系统的时候管理员、用户可以通过用户界面来维护这些数据。Activiti提供非常丰富的API,可以做SQL查询、对某些字段查询、模糊查询、分页查询和排序等。 /**原创 2017-03-13 15:37:19 · 5407 阅读 · 0 评论 -
Activiti流程定义部署ZIP方式
通过Classpath的方式加载资源文件来部署流程定义,这种方式始终有局限性,只能适合小项目固定流程写死的。实际项目的话,需要使用动态导入流程定义文件,可以通过bpmn和png文件打包成zip压缩包,然后用户界面直接导入到系统,然后在解析部署流程定义,Activiti插件是支持这种方式的。把bpmn流程文件和png流程图文件打成zip压缩包,放到diagrams文件下( 在原创 2017-03-13 15:17:03 · 3554 阅读 · 2 评论 -
Activiti HelloWorld实现
做一个最简单的HellWorld流程用代码的方式实现并且走完流程。1.首先是需要部署流程定义。2.启动流程实例。3.查看流程任务以及完成流程任务。创建一个单元测试类ActivitiHelloWorldTest,首先第一操作流程就必须要获取引擎实例:/** * 获取默认的流程引擎实例 会自动读取activiti.cfg.xml文件 */private Proces原创 2017-03-13 11:26:22 · 2396 阅读 · 5 评论 -
Activiti流程设计工具
Activiti插件然后我们来画流程图,任何流程,都必须有接下来我们在搞一个用户任务节点(我们以后开发最常用的节点),我们拖一个到中间绘图区域一个开始事件节点和结束事件节点;给我们提供的流程设计工具,开发流程 首先要做的,就是要设计好流程图;一个项目可能会包括多个流程图;所以在src/test/resources源文件夹下新建一个包diagrams,以后所有的流程图文件(bpmn文件和生成原创 2017-03-10 17:37:44 · 10149 阅读 · 2 评论 -
引入Activiti配置文件activiti.cfg.xml
之前生成Activiti25张表是使用Java类生成的,但是在实际的开发中是使用activiti.cfg.xml配置文件生成。官方文档参考地址:http://activiti.org/userguide/index.html#configuration (英文看不懂可以用谷歌浏览器翻译功能)先在src/test/resources下创建一个xml文件 名字是:activiti.原创 2017-03-10 17:11:35 · 5503 阅读 · 1 评论 -
在Eclipse上安装Activiti插件
开发的时候需要使用Activiti插件来画流程设计图,这个插件的名字是:Activiti BPMN 2.0 designer首先打开Eclipse(J2ee 版本的,最好是使用最新的Eclipse版本,不要搞一个太老的版本,怕不支持)然后点击: Help ---> Install new SoftWare然后在点击Add添加新的:我们在Name上 写上 Activi原创 2017-03-10 15:35:32 · 9109 阅读 · 6 评论 -
SSM整合Activiti工作流代码下载
接着我上一篇博客,往下继续说。整个系统是使用Spring+SpringMVC+Mybatis+Maven等核心框架构成。‘’具体实现代码就不在详细说了(太多了说不完的)。把项目下载导入自己电脑的Eclipse中,你本地一定要配置好Maven环境、确认网络通畅。不然项目的Jar架包下载不下来。下载地址:https://pan.baidu.com/s/1kVx8pkr原创 2017-03-17 10:35:06 · 17242 阅读 · 75 评论