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学习视频

Flowable入门指引相关推荐

  1. sklearn快速入门教程 -- 机器学习工具的快速入门指引

    本系列教程旨在提供一个直观.快速的入门指引,从应用的角度进行阐述,提供框架性的理解方式. 全程共5篇教程.若抛开下载和安装的过程,应在2小时左右全部阅读和动手测试完成. (一)准备工作 (二)线性回归 ...

  2. egg入门指引,你绝对用得到

    egg入门指引,你绝对用得到 较为熟悉的web开发框架如:express,koa作为经典的node技术应用,曾经是node开发的不二之选,但有没有更灵活更可靠的框架作为代替呢?答案就是egg . 阿里 ...

  3. Android 入门指引 从零基础学安卓怎么开始

    android 如今是热门,无论是自学,培训班,大学,还是像我一样中年转行再学习的人,大有人在,需要一个入门指引的人,远比需要框架解 析源码分析的人多得多,我从csdn学了很多东西,比我上大学4年学的 ...

  4. 菜鸟零基础建站入门指引(仅供参考)

    菜鸟零基础建站入门指引(仅供参考) 自主建站需要有域名.空间和网站备案 综合说明:参考https://help.aliyun.com/knowledge_detail/39784.html 大致流程: ...

  5. Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解

    Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解 前言 流程设计器集成 整体流程图 流程节点说明 第一审核人节点:实际设置审核人 配置信息 说明 第二审核人:参数 ...

  6. iOS入门指引系列(零)

    俗话说的是,万事开头难. 意思是开了头,再把一件事办下去就没有那么难了. 我相信每一个人当想入门一项新技能的时候都有这样的体会吧.特别是现在网络上各式各样的学习资料,文章,这些零星的资料反而让初学者迷 ...

  7. 【flowable】二、flowable入门

    flowable入门  在这个初步教程中,将构建一个简单的例子,以展示如何创建一个Flowable流程引擎,介绍一些核心概念,并展示如何使用API. 截图时使用的是Eclipse,但实际上可以使用任何 ...

  8. Flowable入门

    Flowable入门 1) flowable整合springboot 2) 移除flowable权限校验,加入微服务项目本身权限校验 3) 常用的API接口(查看流程图.部署流程.我的待办.我的已办. ...

  9. 微信开发学习总结(一)——微信公众号开发入门指引

    本节要求: ①微信公众号申请 ②测试公众号的注册 ③准备微信公众号开发的环境 微信公众号开发入门指引 微信公众号的接入在微信公众平台-微信公众平台技术文档中有着详细的介绍.在进行微信开发前,建议先完整 ...

最新文章

  1. 了解下C# 类型转换
  2. java-统计字符串中各字符次数
  3. VIM基础130命令
  4. 根据谁创建资源授权资源
  5. Spring Boot&Angular 5&Spring Data&Rest示例(CRUD)
  6. python最短路径例子_Python实现的多叉树寻找最短路径算法示例
  7. python网络爬虫系列(六)——数据提取 lxml模块
  8. 华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭
  9. 未封装的扩展程序是什么意思_“冰壶见底未为清,少年如玉有诗名”这句诗是什么意思?...
  10. CentOS7 配置防火墙规则应对漏洞扫描
  11. 运用EXCEL RAND RANK INDEX函数制作抽奖器
  12. 每人都会遇到的三件事: 1.楼上传来弹珠的声,2.曾经的梦里出现过,3.马上就要睡着却突然感觉下坠...
  13. 什么是 Proxy ?
  14. notepad拼心形_用shell脚本写个心形动画表格
  15. infrastructure as a service
  16. grafana graphite statsd搭建安装部署 实时监控_亲测成功
  17. linux pdf翻译
  18. 控制理论中的稳定性总结
  19. 基于JSP网上书店系统的设计与实现
  20. python写完后打不开门_你的解锁方式为什么打不开门?

热门文章

  1. 万字长文详细搞懂 volatile 关键字
  2. 怎么用计算机算三角函数值,手机计算器怎么算三角函数值
  3. 【报告分享】秒针系统:2020年母婴行业营销白皮书(附下载)
  4. sql server2000安装挂起的解决办法
  5. hdu 5224 Tom and paper
  6. #使用Python的turtle绘制正六边形、叠边形
  7. 【YBT2023寒假Day4 C】樱桃莓莓(交互)(四毛子分块)(线段树)
  8. 软考高级系统架构设计师:论分布式存储系统架构设计
  9. 三星 android miracast,三星S7 edge连接电视、显示器、投影仪的方法详解
  10. 遗传算法系列 | 多种群遗传算法(matlab)