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学习视频
Flowable入门指引相关推荐
- sklearn快速入门教程 -- 机器学习工具的快速入门指引
本系列教程旨在提供一个直观.快速的入门指引,从应用的角度进行阐述,提供框架性的理解方式. 全程共5篇教程.若抛开下载和安装的过程,应在2小时左右全部阅读和动手测试完成. (一)准备工作 (二)线性回归 ...
- egg入门指引,你绝对用得到
egg入门指引,你绝对用得到 较为熟悉的web开发框架如:express,koa作为经典的node技术应用,曾经是node开发的不二之选,但有没有更灵活更可靠的框架作为代替呢?答案就是egg . 阿里 ...
- Android 入门指引 从零基础学安卓怎么开始
android 如今是热门,无论是自学,培训班,大学,还是像我一样中年转行再学习的人,大有人在,需要一个入门指引的人,远比需要框架解 析源码分析的人多得多,我从csdn学了很多东西,比我上大学4年学的 ...
- 菜鸟零基础建站入门指引(仅供参考)
菜鸟零基础建站入门指引(仅供参考) 自主建站需要有域名.空间和网站备案 综合说明:参考https://help.aliyun.com/knowledge_detail/39784.html 大致流程: ...
- Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解
Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解 前言 流程设计器集成 整体流程图 流程节点说明 第一审核人节点:实际设置审核人 配置信息 说明 第二审核人:参数 ...
- iOS入门指引系列(零)
俗话说的是,万事开头难. 意思是开了头,再把一件事办下去就没有那么难了. 我相信每一个人当想入门一项新技能的时候都有这样的体会吧.特别是现在网络上各式各样的学习资料,文章,这些零星的资料反而让初学者迷 ...
- 【flowable】二、flowable入门
flowable入门 在这个初步教程中,将构建一个简单的例子,以展示如何创建一个Flowable流程引擎,介绍一些核心概念,并展示如何使用API. 截图时使用的是Eclipse,但实际上可以使用任何 ...
- Flowable入门
Flowable入门 1) flowable整合springboot 2) 移除flowable权限校验,加入微服务项目本身权限校验 3) 常用的API接口(查看流程图.部署流程.我的待办.我的已办. ...
- 微信开发学习总结(一)——微信公众号开发入门指引
本节要求: ①微信公众号申请 ②测试公众号的注册 ③准备微信公众号开发的环境 微信公众号开发入门指引 微信公众号的接入在微信公众平台-微信公众平台技术文档中有着详细的介绍.在进行微信开发前,建议先完整 ...
最新文章
- 了解下C# 类型转换
- java-统计字符串中各字符次数
- VIM基础130命令
- 根据谁创建资源授权资源
- Spring Boot&Angular 5&Spring Data&Rest示例(CRUD)
- python最短路径例子_Python实现的多叉树寻找最短路径算法示例
- python网络爬虫系列(六)——数据提取 lxml模块
- 华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭
- 未封装的扩展程序是什么意思_“冰壶见底未为清,少年如玉有诗名”这句诗是什么意思?...
- CentOS7 配置防火墙规则应对漏洞扫描
- 运用EXCEL RAND RANK INDEX函数制作抽奖器
- 每人都会遇到的三件事: 1.楼上传来弹珠的声,2.曾经的梦里出现过,3.马上就要睡着却突然感觉下坠...
- 什么是 Proxy ?
- notepad拼心形_用shell脚本写个心形动画表格
- infrastructure as a service
- grafana graphite statsd搭建安装部署 实时监控_亲测成功
- linux pdf翻译
- 控制理论中的稳定性总结
- 基于JSP网上书店系统的设计与实现
- python写完后打不开门_你的解锁方式为什么打不开门?
热门文章
- 万字长文详细搞懂 volatile 关键字
- 怎么用计算机算三角函数值,手机计算器怎么算三角函数值
- 【报告分享】秒针系统:2020年母婴行业营销白皮书(附下载)
- sql server2000安装挂起的解决办法
- hdu 5224 Tom and paper
- #使用Python的turtle绘制正六边形、叠边形
- 【YBT2023寒假Day4 C】樱桃莓莓(交互)(四毛子分块)(线段树)
- 软考高级系统架构设计师:论分布式存储系统架构设计
- 三星 android miracast,三星S7 edge连接电视、显示器、投影仪的方法详解
- 遗传算法系列 | 多种群遗传算法(matlab)