Flowable入门指引

Flowable入门指引

一、基本概念*

二、Flowable核心数据库表

三、集成绘制工作流插件

四、7大Service介绍

五、代码演示

六、总结与优化

在这里插入图片描述

一、基本概念*

工作流的重中之重就是先了解概念是什么?认清楚了三个概念,才能了解它的整个工作机制。(不懂请反复的读)
1.在Flowable术语中,我们将其称为一个流程定义(process definition)。一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。 在这个例子中,流程定义定义了请假的各个步骤,而一个流程实例对应某个雇员提出的一个请假申请。而请假的每个领导就是任务节点
在这里插入图片描述

换句话说,就是我们定义了这么一个请假流程(流程定义),所有人来请假,都得走这样的一个流程,但是每个人走的流程(流程实例)都不互相影响。所以就是一个流程定义可以启动多个流程实例。而每个流程实例走的节点就是一个任务,例如上图就有五个任务节点(包括开始节点和结束节点)

二、Flowable核心数据库表

数据表分类描述
ACT_GE_*通用数据表
ACT_RE_*流程定义存储表
ACT_ID_*身份信息表
ACT_RU_*运行时数据库表
ACT_HI_*历史数据库表

1.具体所有的核心表,可以参考这篇博客
2.而我个人认为主要数据库表是这几张,在我的项目中,也主要是这五张表在操作。

数据表分类描述用途
ACT_RE_DEPLOYMENT流程部署表主要用来查看部署了哪些流程定义
ACT_RU_TASK用户任务表用来查看现在流程实例走到哪个位置,在谁的手上
ACT_HI_TASKINST历史任务表用来查看整个流程实例的,做过了哪些任务,目前在哪
ACT_HI_COMMENT评论表用来完成任务或者退回的时候添加一些意见
ACT_RU_EXECUTION流程实例与分支执行表用来查看流程实例

三、集成绘制工作流插件

1.添加flowable插件(强烈推荐该方法),参考博客
ecplise安装flowable插件步骤:
Help ---- > Install New Software ---- > add, 然后添加的弹窗中输入以下信息:

Name: Flowable BPMN 2.0 designer

Location: http://flowable.org/designer/update/

在这里插入图片描述
添加完成后,点击File–>new---->other—>Flowable---->Flowable Diagram
出现该界面表示安装成功。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
2.如何绘制一个简单流程呢?
首先使用startEvent作为开始
在这里插入图片描述
然后new一个任务出来
在这里插入图片描述
在这里插入图片描述
然后点击结束事件
在这里插入图片描述
添加下个节点处理人
在这里插入图片描述

绘制完成
在这里插入图片描述
3.如何运用绘制的流程图?
例如:我们刚刚绘制的图名字是test.bpmn
我们需要将其改名为test.bpmn20.xml,这个样子就可以了
在这里插入图片描述

然后将其丢到项目的resource底下。
再使用启动流程定义的代码启动流程实例。
在这里插入图片描述

调用接口后,数据库会出现一条流程定义
在这里插入图片描述

四、7大Service介绍

参考博客
RuntimeService:主要用来控制工作流的整体流动,例如启动流程实例
RepositoryService:查询部署和流程定义。
TaskService(最重要的Service): 一般用来提交任务或者其他操作。提交任务taskService.complete()。
RuntimeService:用来部署和查看流程实例runtimeService.startProcessInstanceById()。
HistoryService :查询各种历史数据
ManagementService:查询数据库表信息和表的元数据

五、代码演示

1.在上面中我们部署了一个流程定义
在这里插入图片描述
id为:4f3c2e6f-1ce3-11eb-bbb1-005056c00008

2.启动测试流程定义的一个实例(多次调用接口就会启动多个流程实例)
在这里插入图片描述
调用接口后,返回实例Id:7e9acc8e-1ce3-11eb-a136-005056c00008
在这里插入图片描述
所以此时act_hi_taskinst、act_ru_task数据库各自出现一条数据。
在这里插入图片描述
在这里插入图片描述
同时获得了act_ru_task的Id:7ea04ad4-1ce3-11eb-a136-005056c00008

3.完成任务
当你知道了act_ru_task表里ProcessInstanceId对应的Id,那么只需要传入下一个节点的处理人是谁就行了
在这里插入图片描述
可以看到数据库的act_hi_taskinst表已经变成了两条,一条是之前的,一条是目前节点的。而act_ru_task还是保持一条的记录,不过节点跳到了下一个节点
在这里插入图片描述
在这里插入图片描述
4.退回
因为项目原因不便展示,所以只给出退回的方法
主要方法:flowInstanceService.backService()

六、总结与优化

优化1:本人在处理工作流的时候,是通过Mybatis的逆向工程,生成了Flowable我需要的几张表,再维护这几张我需要表的信息,这也就是为什么我在前面认为只需要几张核心的表。
在这里插入图片描述
优化2:因为Flowable与业务并不能实际和贴合,所以就需要自己维护一些信息,例如我维护了act_hi_task里的REV_字段,作为标记流程走到哪一步,原来REV_字段的作用为表示数据库表更新次数,对我来说作用不大,于是进行控制维护。除了REV_字段以外,还维护了退回标识等标记。
在这里插入图片描述
总结:
本人花了国庆8天的时间对Flowable进行上手,将近一个月才对Flowable有些自己的理解。如果想要入门,可以先学习activity两者差不多,可以先理解activity再上手flowable,因为activity作为老牌,资料视频相对较多,整体学习还是挺容易,就是得多花时间。
b站activity学习视频

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值