flowable流程图介绍
Q7nl1s admin

流程图

既然有三个不同的⼯作流,那么三个不同的⼯作流画出来的流程图是否都各不相同呢?

不是的。

⼯作流程图这块其实有⼀个统⼀的标准,那就是 BPMN。BPMN 全称是 Business Process Model and Notation,中⽂译作业务流程模型和标记法,这个中⽂太绕⼝了,还是简称 BPMN 吧。

这是⼀套图形化表⽰法,⽤图形来表⽰业务流程模型。BPMN 最初由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发, BPMI 于 2005 年与对象管理组织(OMG, Object Management Group)合并,并于 2011 年 1 ⽉ OMG 发布 2.0 版本,同时改为现在的名称。

⼀句话,就是流程图这块有⼀个特别古⽼的规范,那就是 BPMN,⽽我们前⾯所说的⽆论是 Activiti、 Flowable 还是 Camunda,都是⽀持这个规范的,所以呢,⽆论你使⽤哪⼀个流程引擎,都可以使⽤同⼀套流程图。

那么这个规范究竟都说了些什么事情呢? 我们以上⾯⽣产笔记本的流程图为例,来做⼀个简单介绍:

image-20230213203522025

从上图中可以看到,⼀个流程图中主要包含四⽅⾯的内容:

  • 事件
  • 连线
  • 任务
  • ⽹关

我们⼀个⼀个来说。

事件

⾸先在⼀个流程图中应该有开始事件和结束事件,也就是上图⼤家看到的两个圆圈。 另外还有⼀些中间事件、边界事件等。举个中间定时事件的例⼦,⽐如⽤⼾下单之后,可以有⼀个中间定时事件,延迟 5 分钟发货。

连线

连线就是将事件、任务、⽹关等连在⼀起的线条,⼀般情况下就是普通连线,有的时候连线会有⼀些条件,例如松哥之前⽂章和⼤家分享的请假,如果经理同意请假申请,就⾛哪⼀个线条,如果经理不同意请假申请,就⾛哪⼀个线条。对应上图的笔记本⽣产,如果经理审批通过,就载⼊图纸准备⽣产,如果经理审批不通过,就重新设计。

任务

任务 这块其实有很多分类。

如果细分⼤致上可以分为如下⼏种:

  • 接收任务

image-20230213204154373

在上⾯的流程图中,等待准备⼯作完成这⼀项就是⼀个接收任务。这个任务⾥并不 需要额外做什么事情,流程到这⼀步就⾃动停下来了,需要⼈⼯去点⼀下,推动流程继续向下执⾏。

  • 发送任务

image-20230213204212885

这个⼀般⽤来把消息发送给外部参与者。

  • 服务任务

image-20230213204324805

这个⼀般由系统⾃动完成,其实说⽩了就是我们的⼀个⾃定义类,可以在⼀个⾃定义类⾥边完成想要做的事情。

  • 脚本任务

image-20230213204356408

⼀个⾃动化活动。当流程执⾏到脚本任务时,⾃动执⾏相应的脚本。

  • 业务规则任务

image-20230213204433522

BPMN2.0 新引⼊⽤来对接业务规则引擎,业务规则任务⽤于同步执⾏⼀个或多个规则。

  • ⽤⼾任务

image-20230213204510808

⽤于为那些需要由⼈⼯参与者完成的⼯作建模。

虽然细分类别很多,但是仔细看,其实这⼏种⼜可以归为两⼤类:

  1. ⽤⼾任务 :表⽰⼈⼯要介⼊做的事情。⽐如同意与否,或者输⼊⼀些参数,要让⼈⼯完成任务 ,就需要⼀个表单系统,让⼈⼯输⼊数据,或者显⽰数据给⼈看,这也是为什么⽤⼾任务和表单系统结合在⼀起的原因,⽤⼾任务需要⽤⼾向引擎提交⼀个完成任务的动作,否则流程会暂停在这⾥等待。
  2. 服务任务 :表⽰机器⾃动做的事情。调⽤服务的任务,这个服务可以是⼀个 Spring JavaBean,也可以是⼀个远程 REST 服务,流程会⾃动执⾏服务任务。

活动

活动可以算是⼀种特殊的任务。活动可以调⽤另外⼀个流程使之作为当前流程的⼦流程去运⾏。活动也可以分为⽤⼾活动、脚本活动等等。从显⽰上来说,活动⽐任务边框深⼀些。仅此⽽已。

网关

⽹关要是细分起来,也有很多不同类型的⽹关。

  • 互斥⽹关

image-20230213204801268

这种⽹关也叫排他性⽹关,我们之前请假流程中的那个⽹关,就是互斥⽹关。这种⽹关有且仅有⼀个有效出⼝。

  • 相容⽹关

image-20230213204843223

这种⽹关会有多个出⼝,只要条件满⾜,都会执⾏。

  • 事件⽹关

image-20230213204905876

事件⽹关是通过中间事件驱动,它在等待的事件发⽣后才会触发决策。基于事件的网关允许基于事件作出决策。

  • 并⾏⽹关

image-20230213204925373

并⾏⽹关⼀般是成对出现的,上⾯⽣产笔记本的那个流程中,⽣产屏幕、键盘等并⾏操作,就是通过并⾏网关来实现的。

这就是关于流程引擎的⼀些基本概念。

 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
Unique Visitor Page View