本章介绍项目的工作流引擎模块的使用和架构分析
工作流模块的启用
在上一篇文章 快速开发平台 ruoyi-vue-pro(1)- 项目搭建和功能体验 中已经提到,项目默认是将基础模块以外的不进行引入,需要将主目录以及server项目的pom文件里的bpm依赖注释放开,放开后记得在工程上刷新下maven依赖,这样才会生效。
- 需要注意一点的是,项目的工作流引擎是基于flowable,它默认需要mysql版本是5.8以及以上,不然会造成数据库表初始化时产生“Index column size too large. The maximum column size is 767 bytes”这样的问题,主要原因是里面的表主键使用了varchar255,超过了数据库索引大小限制,更换数据库版本是最方便的
功能实测
- 首先创建流程,创建时需要填的信息很简单,主要是创建完成后再需要进行流程设计、规则分配等操作
- 创建完成后,修改该流程,这时需要设定流程表单,我们这时可以去创建一个流程表单,然后再选择(这里应该是前端有bug,创建完的流程表单在修改界面选不到,估计是使用了缓存,新增表单后没有刷新缓存导致)
设计了一个简单流程,填写请假后,如果天数大于3天需要大领导审批,否则是直属领导审批。
- 流程部署好之后,开启一个流程实例,选择刚刚部署好的流程
以上就是通过一个很简单的请假流程来跑了一下工作流的功能
技术原理分析
其实项目的工作流引擎是基于flowable的,这是另外一个工作流开源项目,我们先来看看ruoyi-vue-pro是如何集成工作流的
- ruoyi-vue-pro 通过这个starter来集成 flowable的配置
- yudao-module-bpm 这个模块里实现了自定义表单、flowable模型管理、流程部署、任务管理、用户系统打通
- 可以先简单理解,工作流核心功能是由flowable项目提供的,而yudao将flowable集成了进来,包装了flowable的流程模型管理,task任务的管理,双系统用户的衔接(即将ruoyi系统中的用户映射到工作流体系的用户),并且扩展了自定义表单(关键字段和工作流中的表单进行映射,使得工作流引擎能直接识别和使用到自定义表单中的字段)
本项目的工作流部分先介绍到这里,后续计划单独把flowable拿过来分析一波。