Flowable工作流
概念
Flowable是什么
1、 Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,我们可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据,等等。
2、 Flowable可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowable jar包,或者直接使用Flowable的Rest API来进行业务流程引擎的操作。
3、 Flowable是基于Activity5.0的一个分支开发的,因此内部的很多概念都相似。
Flowable与Activiti
Flowable,2016年基于Activiti诞生。
1、 flowable已经支持所有的历史数据使用mongdb存储,activiti没有。
2、 flowable支持事务子流程,activiti没有。
3、 flowable支持多实例加签、减签,activiti没有。
4、 flowable支持httpTask等新的类型节点,activiti没有。
5、 flowable支持在流程中动态添加任务节点,activiti没有。
6、 flowable支持历史任务数据通过消息中间件发送,activiti没有。
7、 flowable支持java11,activiti没有。
8、 flowable支持动态脚本,,activiti没有。
9、 flowable支持条件表达式中自定义juel函数,activiti没有。
10、 flowable支持cmmn规范,activiti没有。
11、 flowable修复了dmn规范设计器,activit用的dmn设计器还是旧的框架,bug太多。
12、 flowable屏蔽了pvm,activiti6也屏蔽了pvm(因为6版本官方提供了加签功能,发现pvm设计的过于臃肿,索性直接移除,这样加签实现起来更简洁、事实确实如此,如果需要获取节点、连线等信息可以使用bpmnmodel替代)。
13、 flowable与activiti提供了新的事务监听器。activiti5版本只有事件监听器、任务监听器、执行监听器。
14、 flowable对activiti的代码大量的进行了重构。
15、 activiti以及flowable支持的数据库有h2、hsql、mysql、oracle、postgres、mssql、db2。其他数据库不支持的。使用国产数据库的可能有点失望了,需要修改源码了。
16、 flowable支持jms、rabbitmq、mongodb方式处理历史数据,activiti没有。
数据库表分析
Flowable数据库表命名规则
- ACT_RE_* ’RE’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
- ACT_RU_* ’RU’表示runtime。(15张表)这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
- ACT_ID_* ’ID’表示identity(组织机构)。(9张表)这些表包含标识的信息,如用户,用户组,等等。
- ACT_HI_* ’HI’表示history。(10张表)就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
- ACT_GE_*普通数据。(2张表)各种情况都使用的数据。
- *_ DATABASECHANGELOG liuquibase的log表(4张表)
- *_DATABASECHANGELOGLOCK liuquibase的log表(4张表)
数据库表结构
通用数据库
| 数据表 | 描述 |
|---|---|
| ACT_GE_PROPERTY | 属性表(保存流程引擎的kv键值属性)–PropertyEntityImpl |
| ACT_GE_BTYEARRAY | 资源表(存储流程定义相关的资源)–ByteArrayEntityImpl |
流程定义存储表
| 数据表 | 描述 |
|---|---|
| ACT_RE_DEPLOYMENT | 流程部署表–DeploymentEntityImpl |
| ACT_RE_PROCDEF | 流程定义信息表–ProcessDefinitionEntityImpl |
| ACT_RE_MODEL | 模型信息表(用于Web设计器)–ModelEntityImpl |
| ACT_PROCDEF_INFO | 流程定义动态改变信息表–ProcessDefinitionInfoEntityImpl |
身份数据表
| 数据表 | 描述 |
|---|---|
| ACT_ID_USER | 用户基本信息表–UserEntityImpl |
| ACT_ID_INFO 用户扩展表–IdentityInfoEntityImpl | |
| ACT_ID_GROUP | 群组表(用于Web设计器)–GroupEntityImpl |
| ACT_ID_MEMBERSHIP | 用户与群主关系表–MemberShipEntityImpl |
| ACT_ID_BYTEARRAY | 二进制数据表(flowable) |
| ACT_ID_PRIV | 权限表(flowable) |
| ACT_ID_PRIV_MAPPING | 用户或组权限关系表(flowable) |
| ACT_ID_PROPERTY | 属性表(flowable) |
| ACT_ID_TOKEN | 系统登录日志表(flowable) |
运行时流程数据表
| 数据表 | 描述 |
|---|---|
| ACT_RU_EXECUTION | 流程实例与分支执行表–ExecutionEntityImpl |
| ACT_RU_TASK | 用户任务表–TaskEntityImpl |
| ACT_RU_VARIABLE | 变量信息–VariableInstanceEntityImpl |
| ACT_RU_IDENTITYLINK | 参与者相关信息表–IdentityLinkEntityImpl |
| ACT_RU_EVENT_SUBSCR | 事件订阅表–EventSubscriptionEntityImpl |
| ACT_RU_JOB | 作业表–JobEntityImpl |
| ACT_RU_TIMER_JOB | 定时器表–TimerJobEntityImpl |
| ACT_RU_SUSPENDED_JOB | 暂停作业表–SuspendedJobEntityImpl |
| ACT_RU_DEADLETTER_JOB | 死信表–DeadLetterJobEntityImpl |
| ACT_RU_HISTORY_JOB | 历史作业表(flowable) |
历史流程数据表
| 数据表 | 描述 |
|---|---|
| ACT_HI_PROCINST | 历史流程实例表–HistoricProcessInstanceEntityImpl |
| ACT_HI_ACTINST | 历史节点信息表–HistoricActivityInstanceEntityImpl |
| ACT_HI_TASKINST | 历史任务表–HistoricTaskInstanceEntityImpl(只记录usertask内容) |
| ACT_HI_VARINST | 历史变量–HistoricVariableInstanceEntityImpl |
| ACT_HI_IDENTITYLINK | 历史参与者表–HistoricIdentityLinkEntityImpl |
| ACT_HI_DETAIL | 历史的流程运行中的细节信息–HistoricDetailEntityImpl |
| ACT_HI_ATTACHMENT | 附件表–AttachmentEntityImpl |
| ACT_HI_COMMENT | 评论表–CommentEntityImpl |
| ACT_EVT_LOG | 事件日志表–EventLogEntryEntityImpl |
核心表
部署内容表:act_ge_bytearray
| act_ge_bytearray(二进制文件) |
|||||||
| 字段 |
字段名称 |
字段默认值 |
是否允许为空 |
数据类型 |
字段长度 |
键 |
备注 |
| ID_ |
主键 |
|
NO |
varchar |
64 |
PRI |
|
| REV_ |
版本号 |
NULL |
YES |
int |
NULL |
|
version |
| NAME_ |
名称 |
NULL |
YES |
varchar |
255 |
|
部署的文件名称,如:mail.bpmn、mail.png 、mail.bpmn20.xml |
| DEPLOYMENT_ID_ |
部署ID |
NULL |
YES |
varchar |
64 |
ACT_RE_DEPLOYMENT |
|
| BYTES_ |
字节(二进制数据) |
NULL |
YES |
longblob |
4294967295 |
|
|
| GENERATED_ |
是否系统生成 |
NULL |
YES |
tinyint |
NULL |
|
0为用户上传, |
部署ID表:act_re_deployment
| 字段 |
字段名称 |
字段默认值 |
是否允许为空 |
数据类型 |
字段长度 |
键 |
备注 |
| ID_ |
主键 |
|
NO |
varchar |
64 |
PRI |
|
| NAME_ |
名称 |
NULL |
YES |
varchar |
255 |
|
|
| CATEGORY_ |
分类 |
NULL |
YES |
varchar |
255 |
|
|
| TENANT_ID_ |
租户ID |
|
YES |
varchar |
255 |
|
|
| DEPLOY_TIME_ |
部署时间 |
NULL |
YES |
timestamp |
NULL |
|
|
| 注: |
|||||||

最低0.47元/天 解锁文章
3838





