Java研学-Activiti7工作流(一)

一 工作流介绍

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰勒疯狂展开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值