一 工作流介绍
1 概念
工作流(Workflow)的核心是通过计算机技术对业务流程进行自动化管理,从而提高效率、减少人为错误,并确保任务按照预定义的规则和顺序执行。工作流系统通常用于协调多个参与者(人、系统或设备)之间的协作,确保信息、文档或任务能够在正确的时间传递给正确的人或系统。而一个软件系统中具有工作流的功能,我们把它称为工作流系统。

2 工作流引擎
工作流引擎是一种基于 BPMN(业务流程模型与标记)规范 的工作流框架,它通过预定义的规则将业务流程与具体节点分离,并以特定形式进行关联,从而实现节点的自动流转。这种框架能够将复杂的业务逻辑抽象为可视化的流程模型,并通过引擎驱动任务的执行和流转,确保流程的高效、准确运行,同时支持灵活的业务规则调整和扩展。
1.流程部署:预定义的流程文件(BPMN)需要部署到工作流引擎中。部署后,工作流引擎会将节点和路径信息存储到数据库中,以便后续执行和管理。
2.API 支持:工作流引擎提供了丰富的 API,用于对流程进行查询、启动、暂停、终止等操作。这些 API 屏蔽了底层实现细节,开发者无需关注复杂的流程执行逻辑,从而显著提高了开发效率。
3.业务与流程分离:业务逻辑的处理和流程的流转是分离的,二者通过 BusinessKey 进行关联。BusinessKey 是业务数据的唯一标识,用于将业务数据与流程实例绑定,确保业务逻辑和流程流转的独立性。
3 传统工作流框架的弊端 – 工作流程变动时需修改大量代码
// 出差费用表所需字段,此时通过 status 控制流程
id 申请人id 部门id 报销金额 报销类别 费用明细 电子发票单 status
// 查询草稿的出差费用记录:where status=0;查询已经发起审核的记录:where status > 0;
原始流程:申请人发起申请→部门经理审批→总经理审批→财务复批
① 当申请人填写申请之后,往出差表中插入一条数据,status默认值为0,status=0;当申请人发起申请之后,把状态改为1,status=1;
② 部门经理查看当前所在部门的员工发起的报销流程 where status=1 and 部门id=当前经理所在的部门id;对审核记录进行拒绝,状态改为2。对审核记录进行同意,状态改为3。
③ 总经理查看所有员工的发起报销流程 where status=3。对审核记录进行拒绝,状态改为4。对审核记录进行同意,状态改为5。
④ 财务查看所有员工的发起报销流程 where status=5。对审核记录进行拒绝,状态改为6。对审核记录进行同意,状态改为7。
更改流程:申请人发起申请→部门经理审批→人事助理审批→人事经理审批→财务复批
① 当申请人填写申请之后,往出差表中插入一条数据,status默认值为0,status=0;当申请人发起申请之后,把状态改为1,status=1;
② 部门经理查看当前所在部门的员工发起的报销流程 where status=1 and 部门id=当前经理所在的部门id;对审核记录进行拒绝,状态改为2。对审核记录进行同意,状态改为3。
③ 弃用 总经理查看所有员工的发起报销流程 where status=3。对审核记录进行拒绝,状态改为4。对审核记录进行同意,状态改为5。
④ 改动 财务查看所有员工的发起报销流程 where status=11。对审核记录进行拒绝,状态改为6。对审核记录进行同意,状态改为7。
⑤ 改动 人事助理审批查看所有员工的发起报销流程 where status=3。对审核记录进行拒绝,状态改为8。对审核记录进行同意,状态改为9。
⑥ 改动 人事经理审批查看所有员工的发起报销流程 where status

1万+

被折叠的 条评论
为什么被折叠?



