Activiti7 之工作流介绍(一)

(一)前言

应公司要求,需要研究项目中的框架 activiti7 ,所以有了下面这些内容。

(二)工作流背景介绍

  1. Activity 第一版在2010年5月发布,当时仅支持最简单的流程处理,之后的版本陆续完善了对BPMN 2.0规范的支持。其核心是使用Java开发的。其前身就是JBPM。
  2. activiti5以及activiti6、flowable是Tijs Rademakers团队开发的,Activiti7是 Salaboy团队开发的。2016.7~2017.5期间,activiti团队内部已经产生了重大的分歧,最终将 Activiti 交给了 Salaboy 团队为(可以理解为离职之前的工作交接),该团队开发了一个新的工作流框架:flowable。
  3. 2019年6月中旬 salboy已从alfresco公司离职,activiti7/8开发动向不明确。
  4. flowable以6.4.1版本为分水岭,大力发展其商业版产品。开源版本维护不及时。部分功能已经不再开源版发布,比如表单生成器(表单引擎)、历史数据同步至其他数据源、es等等。dmn目前是个半成品,没有camunda稳定和好用,对于dmn规范支持薄弱。部分商业版的组件被商业化,因此开源版不再维护。Mongdb目前也放到商业产品中了,开源版的几乎不能用。

(三)什么是工作流

  1. 工作流(Workflow),就是通过计算机对业务流程自动化执行管理。
  2. 它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”

(四)工作流适用应用场景

  • 关键业务流程:订单、报价处理、合同审核、客户电话处理、供应链管理等
  • 行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
  • 人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
  • 财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
  • 客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。
  • 特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。

(五)工作流的优缺点

  1. 优点(太多了,只列举明显的三个)
  • 最大的优点就是免费开源;
  • 过程自动化,自动化办公;
  • 将流程和业务解耦;
  1. 缺点
  • 节点理解不同。外国人对节点的理解为"脚本任务"、“用户任务”,且不可细分、单个人(或角色)操作。而中国式的节点理解大多包含判断等逻辑处理,且可以再细分,可能还涉及多人操作;
  • 回溯难。工作流中,只有指向,没有逆向的思维,回溯往往会牵扯大量的表和表记录。比如不包含驳回功能…
  • 扩展需要与很多的 Event 来实现。
  • 入手简单,但二次开发难度大,门槛高。

(六)工作流能帮我们干什么?

下面流程中涉及两个人和三个人的大致所需步骤:
在这里插入图片描述
报销流程和请假流程、采购—>入库
在这里插入图片描述

  1. 第一张图,步骤无非就五个:发起、查询、转下一个任务、完成任务、结束。每增加一个人需要增加中间三个环节。
  2. 第二张图,每切换一个流程场景,需要把整个流程重新实现一遍。且增加或减少审批节点,需要再次定制化开发。

结论:若没有 Activiti ,我们会过度关心业务需求,且流程环节无法进行有机组合,不够灵活。

(七)关于工作流的总结

  • 很多博客、教学视频都会说,用了工作流后,不管流程怎么变,你都不需要改代码,这其实是错误的,因为我们的流程充满了业务,改了流程环节,必定牵扯到业务,所以肯定会进行代码上的修改的。特别是你新增了步骤,修改了业务数据,这些都是必须要改代码的。
  • 如果你每个步骤都是进行同样的操作,只是数据的值不同,就像请假的两次审核,还真是可以做到不管怎么变流程,都不用改代码。
  • Activiti 最大的作用是让我们不必“过分关注业务需求”,自动化让我们更多的关注于流程节点的合理性设计。

以下是工作流各节点各状态的示意图:
在这里插入图片描述

(八) Activiti参考文档

Activiti 是一套使用人数最多的、技术成熟的、适应多种数据库的工作流框架。所有需要流程管理的地方都要用到工作流。下面是一些相关的官方地址,点击进入即可获得:

  1. Activiti 官网

  2. Activiti 官方入门教程:Activiti User Guide

  3. 在线画流程图

  4. Activiti 数据库表结构

  5. Activiti 版本开发文档

  6. Activiti 详细文档

猜你喜欢

转载自blog.csdn.net/qq_23845083/article/details/131292415