FFT系统之flowable整合
FFT系统开发总结——flowable整合
中心思想:
(1)使用flowable开发项目与没有使用flowable开发项目的区别(学习成本、开发周期、工作效率等方面);
(2)使用flowable的开发遇到的问题、技术瓶颈和可拓展性;
(3)flowable在后续处理流程类项目需求中能否高效的运用;
1.数据库设计思路
用户角色权限表
【1】权限表:
目前使用两套权限表的概念
一是常规的“目录—菜单—按钮”的权限,主要是控制业务中对应角色的访问权限和页面展示相关的功能;
二是使用flowable工作流流程的权限,因为flowable的思想是,每设计出一个流程,对于每个角色都需要设置这个流程可访问性的权限
(例如:假设有流程1和流程2,且只要部分用户可以访问流程1,那么就需要对这个流程进行访问权的分配)
思考:是否有可能对这个两种权限进行整合?那种思路比较符合逻辑?
【2】用户信息表/角色表:
因为flowable本身的表结构不符合业务的需求,故目前用自己的用户信息表、角色表代替flowable的用户表和角色表
(且不太熟悉flowable操作是否关联这些表,所以暂时不动这些没用到的表,而是从新设置新表)
业务数据信息相关信息表
2.框架架构设计思路
flowable结合业务的开发思路:
【1】初步想法设定:考虑到后续会有多个项目使用flowable,且flowable工作流自身也有很多数据表,为了flowable表能够复用,目前设计上是 后台管理系统+多个子系统 的概念【目前考虑的还不够周全,如果要后续拓展增加子系统,还需要做一些调整】;
说明:
① 后台管理系统——主要负责系统管理和流程维护两个模块
- 子系统维护:包括子系统的增删改查、管理员管理、角色设置和权限设置;
- 流程监控管理:部署子系统的流程、流程定义的管理、流程角色的流程权限设置和运行流程管理
- 权限设置:指一般的“目录—菜单—按钮”权限
- 流程角色的流程权限设置:指某些角色可以发起某些流程
② 子系统(业务系统,如福费廷系统)——主要负责业务功能的开发
- 步骤一:先在后台管理系统中增加子系统,并配置好角色权限;
- 步骤二:部署该子系统需要的流程,并配置好流程权限;
- 步骤三:在业务的开发中,根据步骤一和步骤二的配置信息运用在业务的逻辑开发中
【2】深开的开发思路:深开使用flowable的技术也是类似按照 后台管理系统+业务系统 的思路开发,但是在后台管理系统的设计却是不同的,我们目前只是运用到流程部署和流程权限设置这两个主要功能,但是深开的后端管理涉及的功能整合得更加复杂(有流程的设计、流程节点的维护等功能),最后封装成jar包的方式并提供接口供业务系统开发时使用,而我们目前是直接在业务系统中调用flowable的方法
3.技术瓶颈和疑惑
技术难点:flowable运用的难点和填充并生成word类似的难点(旧版本无法支持表单的灵活设定、自动填充、动态绑定机制)
4.支持条件
需要有完善的后台管理系统来管理flowable:每个系统都单独使用flowable开发有点不符合实际情况