1 背景
随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:
- 目前OA流程引擎无法满足企业特定业务流程需求,且移动端体验差,定制化困难,使用门槛高,影响简单流程快速上线
- 企业内部系统无统一流程引擎平台,面向公司HR、运维、资产等相关IT系统流程化需求对接复杂,系统内集成流程功能重复开发,对接无统一标准造成严重资源浪费,主要体现方面如下:
图1 现状&项目背景
2 开源框架选型
2.1 技术选型-流程引擎
图2 开源技术对比
Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据。Flowable可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowable jar包,或者直接使用Flowable的Rest API来进行业务流程引擎的操作,相关核心服务如下:
图3 Flowable引擎架构
图4 Flowable引擎服务
- RepositoryService:操作和管理流程定义和部署,deployment(部署)是ProcessEngine的基本单元
- RuntimeService:每个流程都可以创建许多的运行实例,RuntimeService启动流程的实例,检索和存储实例的变量信息
- IdentityService:管理组和用户的身份认证信息
- FormService:流程表单引擎相关服务操作
- HistoryService:检索ProcessEngine的历史数据,和相关流程数据
- ManagementService:检索数据库的元数据和表的信息
- DynamicBpmnService:动态的改变流程的定义
2.2 技术选型-Web端
图5 Web选型对比
2.3 信也工作流解决方案
引入Flowable之后,将相关服务处理分为身份认证服务,报表服务、任务调度、流程监控服务等、底层Flowable提供流程引擎相关基础能力
图6 整体设计
图7 系统架构设计
核心功能点:
基于BPM2标准的流程设计规范,可视化流程设计与配置,构建企业业务流程服务:灵活配置实现跨系统的业务编排整合,为业务高效流转提供了坚实的技术支持,无需代码即可轻松创建、改变、维护业务流程应用,核心体现如下:
- 支持多节点类型:目前支持审批节点&服务节点&抄送节点&延时节点&流程分支,同时支持节点类型自定义扩展
图8 流程节点类型
分支判定规则:满足不同条件的数据通过不同的分支进行流转,合理使用让业务流程更“智能”
图9 流程分支
动态节点负责人:不仅可以固定流程节点负责人,还可以根据表单内的字段值,http和DB动态数据以及企业架构等设置动态的节点负责人
图10 关联组织架构
图11 审批动态关联设置
- 节点权限控制:每个节点都可以单独配置对表单的操作权限
图12 节点字段权限设置
像“乐高”一样,拖拽式设计表单,字段类型丰富 还可以定义表单样式,设置数据联动、公式函数、逻辑规则、来源标记等 强大、实用且美观。自定义您的企业数据入口,目前支持多达18种基础控件,支持几十种常用表单控件及多种校验规则在线配置功能:
图13 表单组件
图14 表单设计
支持HTTP/DB 两种方式
支持动态JS脚本对内容进行转换
支持流程&前端调用
图15 动态数据设置
支持抄送:类似邮件抄送
支持代办:指定他人代理审批
动态加签:临时增加流程内的动态审批人
图16 三方集成-应用
图17 三方集成-接口
3 总结
信也工作流平台(BPM)目前能够高效的,较好的快速贴合业务需求,并根据流程配置中心的配置减少大量重复工作从而提高执行效率。同时集成到米粒通及企业微信中,提高了用户体验,目前不足的地方是产品的工具化属性,平台属性不够凸显。后续会继续贴合公司相关业务更好扩充产品能力。( 如下附部分使用效果图)
图18 使用效果
图19 使用效果
【参考文献】
[1] Flowable文档: https://flowable.com/open-source/docs/bpmn/ch05a-Spring-Boot/[2] Flowable官网:https://flowable.com/open-source/[3] Vue文档:https://cn.vuejs.org/ [markdown-nice-docs(https://docs.mdnice.com "更多文档")