activiti 介绍
- 我使用工作流的感觉:灵活方便,通过画图定义自己业务需要的流程,对那种值比较的代码有较强替代性,松耦合减少很多 if 判断语句
- 什么是 activiti: activiti 是一个工作流引擎,通过自定义配置,将复杂灵活易变的业务流程按我们指定的流程去执行的框架.
- springboot 整合 activiti 导入如下依赖:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
</dependency>
- activiti 自带表信息介绍
Activiti 所有的表都以ACT_开头.第二部分是表示表的用途标识.用途也和服务的API对应.
ACT_RE_* : RE 表示 repository.这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等).
ACT_RU_* : RU 表示 runtime. 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据. Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录.
ACT_ID_* : ID 表示 identity.这些表包含身份信息,比如用户,组等等.
ACT_HI_* : HI 表示 history.这些表包含历史数据,比如历史流程实例, 变量,任务等等
ACT_GE_* : 通用数据, 用于不同场景下,如存放资源文件.
画流程图程序安装使用与部署
由于公司画工作流程图界面是自己开发的,前端代码我没有,这里我在网上找了个画流程图开源程序包代替
链接:https://pan.baidu.com/s/1fztuAAz5_qNrFauWRtQlKQ 密码:1fgp
程序启动页面是这样的
1.解压程序包:
- 设置操作数据库
- 进入这个目录
- 打开配置文件
- 界面登录账号密码也是在这个配置文件设置
- 启动程序
- 查看日志
- 访问页面查看工作流:就到了工作流页面,这里需要输入登录密码和账号,我这里浏览器保存了密码就不需要设置了.就可以到上文所在的页面画流程图.
- 创建流程图
这里的 id 是我在项目中找流程实例的 id
- 部署流程实列
程序代码
//这里的 key 就是我在上文中所有的 id
ProcessDefinition definition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey(key).latestVersion().singleResult();
//todo 这里定义些要传递的参数
ProcessInstance processInstance = runtimeService.startProcessInstanceById(definition.getId(), params);
我这里画图是自动通过的那种,而不是请假需要审批那种,实现 JavaDelegate 就好了