浙江智加信息科技有限公司【sally 流程引擎】
·
国内项目普遍会遇到"工作流"业务,比如请假、项目审核等。
但是这种业务本质上分为两个部分:配置工作流和使用工作流。
配置工作流这部分,只是提到这个词,我们脑中立刻会出现节点、连线这样的场景,这部分业务对于前端和后端来讲都是比较复杂的。 当前市面上主流的workflow框架,都包含了配置工作流功能,功能一个比一个强劲,但是也一个比一个复杂。
研究了多个go语言编写的workflow框架后,我发现了以下问题:
- 对于只想"使用工作流"的场景,如果引入了开源workflow,需要耗费大量精力在理解"配置工作流"这部分逻辑。
- 开源workflow框架,大多混淆了“业务”和“BPM引擎”,造成了学习成本的增加!有可能我们学习了很久,只是为了实现消息推送····说到底BPM只是为了实现node的流动而已。
- BPM引擎在业务中应该处于最底层并提供简单的方式和业务交互,然而市面上的一些开源工具缺乏这种能力····
✨ v2版本新特性
- 🔄 自动审批策略:支持相邻策略和任意策略的自动审批
- 📝 草稿功能:支持工作流草稿的保存和管理
- 🎯 条件节点:支持条件类型节点,实现流程分支控制
- 👥 动态审批人:支持运行时添加和更换审批人
- 📊 工作流进度:提供完整的工作流进度查询功能
- 🔔 事件订阅:支持工作流事件的实时订阅
- ❌ 工作流撤销:支持工作流的撤销操作
🔍 概念介绍
概念 | 说明 |
---|---|
WorkflowTemplate | 工作流模板,定义了完整的审批流程结构 |
NodeTemplate | 节点模板,工作流中的一个步骤,支持审批类型和条件类型 |
Workflow | 工作流实例,从模板启动的具体审批流程 |
Node | 节点实例,工作流运行时的具体节点 |
NodeReviewTask | 审批任务,分配给具体审批人的任务 |
Hook | 钩子函数,用于获取审批人和处理业务逻辑 |
AutoApprovalStrategy | 自动审批策略,支持相邻(ADJACENT)和任意(ANY)策略 |
ApprovalStrategy | 审批策略,支持或批(OR)和与批(AND)策略 |
BusinessParams | 业务参数,用于传递业务相关的数据 |
Draft | 草稿,未正式启动的工作流 |
更多推荐
所有评论(0)