第一步:了解activiti
activiti就是工作流,好专业的语句我不懂,我自己琢磨了一下感觉就是个工作流程编辑器,把流程步骤图画出来,各个任务节点都分配好权限,然后就会一步一步开始执行。
activiti主要分为七大接口还有五大类,下面来一些官方专业用语
七大接口:
Repository Service:提供一系列管理流程部署和流程定义的API
Run time Service:在流程运行时,对流程实例进行管理和控制
Task Service:对流程任务进行管理,例如:任务提醒,任务完成和创建任务…
Identity Service:提供流程角色数据进行管理的API,这些角色数据包括,用户组,用户及它们之间的关系
Management Service:提供对流程引擎进行管理和维护服务
History Service:对流程的历史数据进行操作,包括查询,删除这些历史数据
Form Service:表单服务
五类表:
act_ge_ 通用数据表,ge是general的缩写
act_hi_ 历史数据表,hi是history的缩写,对应HistoryService接口
act_id_ 身份数据表,id是identity的缩写,对应IdentityService接口
act_re_ 流程存储表,re是repository的缩写,对应RepositoryService接口,存储流程部署和流程定义等静态数据
act_ru_ 运行时数据表,ru是runtime的缩写,对应RuntimeService接口和TaskService接口,存储流程实例和用户任务等动态数据
这是我从百度上搜索到的,具体是哪个大佬的我忘记了,嘿嘿,抱歉,如果涉及到侵权,请一定一定一定联系我,我绝对不是故意哈。
我一开始学习的时候也就是大概浏览了一下,我个人对这些专业的话理解无能,所以一般学习的时候我会先大致浏览,然后在学习的过程中,基本上多敲多练多报错你不会也得会。不过要是想少走弯路,报错时能快速解决,打下坚实的基础,我觉得认真阅读还是很有必要的!!!
好惹,然后我要开始大(随)展(意)神(发)通(挥)了
首先我的第一步决定先把eclipse安装一下activiti的插件,为什么不是idea?还不是因为我用eclipse
首先我们要知道,可以有两种安装方式
第一种联网安装,第二种不联网安装
我用的是第二种,第一种我没有成功!可恶!
具体我就不讲了,因为我也是看的大佬的,下面@一下大佬的网址,大家可以去看一下
网址:https://blog.csdn.net/qq_33547950/article/details/54926435
如果你们找不到下载安装包的地方可以来找我,我可以给你们留着 !!!
绘制流程图
在src/main/resources创建activiti Diagram
然后会创建一个.bpmn的文件 就可以画流程图了。
然后配置流程id和key
任务节点的配置
然后保存成功,就会生成一个.png文件
配置文件
在src/main/resources创建activiti.cfg.xml,
部署流程
部署流程资源有很多种方法,包括classpath、InputStream、字符串、zip格式压缩包,下面将一一介绍。
1.classpath方式
2.InputStream方式
使用InputStream方式部署流程资源需要传入一个输入流及资源的名称,输入流的来源不限,可以从classpath读取,也可以从一个绝对路径文件读取,也可以是从网络上读取。
3.字符串方式
利用字符串方式可以直接传入纯文本作为资源的来源,和前两种方式类似,字符串方式的实现原理是把一组字符串的内容转化为字节流后再部署。
4.zip/bar格式压缩包方式
以上3种部署方式一次只能部署一个资源,除非执行多次deployment.addXxx()方法,如何一次部署多个资源呢?很简单,是我们可以使用zip/bar格式压缩包方式。将资源文件手动或使用Ant脚本,打包文件扩展名可以是Activiti官方推荐的bar或普通的zip。
在部署流程定义这一步,数据库中操作三张表:
1)ACT_RE_DEPLOYMENT(部署对象表)
存放流程定义的显示名和部署时间,每部署一次增加一条记录
2)ACT_RE_PROCDEF(流程定义表)
存放流程定义的属性信息,部署每个新的流程定义都会在这张表中增加一条记录。
注意:当流程定义的key相同的情况下,使用的是版本升级
3)ACT_GE_BYTEARRAY(资源文件表)
存储流程定义相关的部署信息。即流程定义文档的存放地。每部署一次就会增加两条记录,一条是关于bpmn规则文件的,一条是图片的(如果部署时只指定了bpmn一个文件,activiti会在部署时解析bpmn文件内容自动生成流程图)。两个文件不是很大,都是以二进制形式存储在数据库中。
4)ACT_GE_PROPERTY(主键生成表)
主张表将生成下次流程部署的主键ID。
启动流程
马赛克的地方是流程变量,一会在后面再说。
查看用户的任务
结束用户任务
结束当前用户任务,会自动进行下一个任务
结束流程
流程任务指定组或者用户
设置变量的时候,可以获取该流程的任务节点
然后就可以获取到用户或者用户组定义的变量名字了,然后赋值就可以啦
接下来把启动流程的完整代码贴出来
就OK了。
希望对你们有些帮助