背景
业务场景涉及到流程审核的地方,大多在业务数据上耦合 yes和no的字段区分完成审核,但是在复杂流程下并不适应(会签、加签、并行、分支),开发人员可自行以对接开源流程引擎,但是面临以下问题
1.学习成本、开发成本
2.控制流程的代码耦合在业务代码里难以维护。
3.各个业务线项目大量重复繁琐的流程控制代码
复杂流程如下图:
简单串行
分支
目标
通过对接流程中心,开发人员不需要关注流程中心内部流程节点走向如何控制,不需要知道BPMN规范。
只需要针对各个流程节点的相关状态做自己的业务逻辑处理,达到业务和流程控制隔离。
对接流程中心只需要完成以下步骤
1.通过流程中心提供的modeler设计器绘制流程图
2.配置各节点的审核人、http监听回调、审核页、审核按钮(审核通过、驳回、流程终止、转办、加签等)
3.通过流程中心提供的openAPI发起流程
4.在监听器回调处理自己的业务逻辑,如:审核通过修改 业务单号状态
一个简单流程的生命周期
注:并不是所有用户都是使用后台管理有的用户可能使用的是小程序,以下流程列表相关接口也是提供OpenAPI对外暴露,对接方根据自己业务需求自行设计入口
UI交互 以传统后台为例 会多出这几个菜单项
我们以商品价格审核流程为例
1.通过流程中心提供的modeler设计器绘制流程图,并配置各个节点的审核人、监听回调、审核页、审核按钮
2.对接方在指定业务节点触发流程中心发起流程接口,后续流程控制都在流程中心 对接方只需要关注流程到达指定节点或者各个节点对应状态自身业务逻辑处理
flowable扩展
1.全局事件监听器、任务监听器、任务执行监听器 扩展支持http回调
2.自定义userTask扩展增加支持审核按钮、url处理表单、url详情表单、自动完成任务、是否是发起人节点配置
3.利用全局监听器和任务执行监听器完成流程状态和任务状态的定义(如发起流程流程状态进行中、任务状态待审核)
4.流程进度图绘制支持兼容自定义userTask和StartEvent
5.自动完成任务配置扩展
7.是否是发起人节点配置扩展
8.流程中心支持配置url回调 支持动态解析参数返回url?taskId=${taskId}&taskName=${taskName}&taskStatus=${taskStatus}