工作流程基础
# 一、Flowable工作流基础
# 1.1 什么是 BPMN
BPMN是一套符号的标准,这些符号描述了如果做一个业务,并且这个业务在做的过程中被人监控和控制。业务人员和开发人员通过这套图形可以很好的完成协作。
# 1.2 什么是 Flowable
Flowable提供了一个组高效的核心开源业务流程引擎,为开发人员,系统管理员和业务用户提供工作流和业务流程管理(BPM)平台。全部用Java编写,并且基于Apache 2.0许可的开源,代码在社区维护。其核心是一个快速,经过试验和测试的动态BPMN流程引擎,附带DMN决策表和CMMN Case管理引擎。
# 翻译成大白话
Flowable是BPMN的一个基于java的软件实现,不过Flowable不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。
# 二、官方文档
# 2.1 官方文档
https://flowable.com/open-source/docs/oss-introduction/ (opens new window)
# 2.2 开源地址
https://github.com/flowable/flowable-engine (opens new window)
# 三、基础概念
# 3.1 model 模型
运行工作流首先你得需要一个流程的模板,来说明这个流程有哪几个节点,比如一个请假流程提交后先给到张三,张三同意后再给李四,李四同意后结束。
# 3.2 deploy 流程部署
流程模板部署后成为流程定义,一个模板可以多次部署,每次部署成功后版本号+1,所以不影响老的流程定义。 部署这个动作会往三张表里插入数据:
act_re_deployment
:部署一次,这张表里生成1条记录,会有一个ID_act_re_procdef
:部署的时候在这张表里生成1条记录,代表一个流程实例,通过DEPLOYMENT_ID_对应act_re_deployment
的ID_act_ge_bytearray
:部署的时候在这张表里生成2条记录,一条是对应的xml,一条是对应图片,通过DEPLOYMENT_ID_对应act_re_deployment
的ID_
# 3.3 processDefinition 流程定义
流程实例运行的时候以流程定义为参照,决定了一个流程实例运行的时候每一步的走向,而流程定义又是以流程模板部署而来。
流程定义主要是act_re_procdef
表
# 3.4 processInstance 流程实例
张三发起一个流程就是一个流程实例,李四发起一个流程就是一个流程实例
当前运行中的流程实例存放在act_ru_execution
表
已经结束的流程实例存放在act_hi_actinst
表
# 3.5 task 任务
task代表一个节点的任务,比如张三发起一个流程,生成一个流程实例,当前的节点任务应该是张三的下一个节点李四审批了
当前运行中的任务存放在act_ru_task
表
已经审批通过的任务存放在act_hi_taskinst
表