Flowable初级使用手册
2021-09-30 17:47:36 0 举报
AI智能生成
工作流入门资料
作者其他创作
大纲/内容
Flowable数据库表命名规则
act_procdef_info
流程定义储存表
流程定义更新信息,包含流程定义ID,版本号,内容等
流程定义更新信息,包含流程定义ID,版本号,内容等
ACT_RE_*
介绍
’RE’表示repository(存储)
RepositoryService接口做的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)
act_re_deployment
部署信息表核心表
部署流程定义时须要被持久化保存下来的信息
act_re_model
流程设计模型部署表
流程设计器设计流程模型保存的数据,包含:建立时间,最后更新时间,元数据(META_INFO_:以json格式保存流程定义的信息),部署ID(DEPLOYMENT_ID_)
act_re_procdef
流程定义数据表核心表
字段
分类(CATEGORY_:流程定义的Namespace就是类别),部署ID(DEPLOYMENT_ID_),资源名称(RESOURCE_NAME_:流程bpmn文件名称),拥有开始表单标识(HAS_START_FORM_KEY_:start节点是否存在 formKey 0否 1是),挂起状态(SUSPENSION_STATE_:暂停状态 1激活 2暂停)
表关系
act_re_procdef 和 ACT_RE_DEPLOYMENT
act_re_procdef 和 ACT_RE_DEPLOYMENT 是多对一的关系
act_re_procdef 是明细表
ACT_RE_DEPLOYMENT 是主表
一条主表记录对应多条明细记录
act_re_procdef 里的 DEPLOYMENT_ID_ 存了主表id
act_re_procdef 是明细表
ACT_RE_DEPLOYMENT 是主表
一条主表记录对应多条明细记录
act_re_procdef 里的 DEPLOYMENT_ID_ 存了主表id
act_re_procdef
此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每一个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每一个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。
act_re_procdef 和 ACT_GE_BYTEARRAY
是经过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现
ACT_RU_*
介绍
’RU’表示runtime
这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。
flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
act_ru_event_subscr
事件订阅
包含:流程定义ID,流程实例ID,执行实例ID,节点ID,建立时间等
act_ru_execution
运行时流程执行实例表核心表
包含:流程实例ID,流程定义ID,父级ID,父级的执行实例ID,节点ID,挂起状态(SUSPENSION_STATE_:1激活 2暂停),缓存状态(CACHED_ENT_STATE_:缓存的状态, 1 事件监听 2 人工任务 3 异步做业)
act_ru_identitylink
运行时流程人员表
主要存储当前节点参与者的信息,包含:用户组ID,用户ID,任务ID,流程实例ID,流程定义ID
act_ru_job
运行时定时任务数据表
字段
锁定过时时间(LOCK_EXP_TIME_),挂起者(LOCK_OWNER_),是否惟一(EXCLUSIVE_),执行实例ID,流程实例ID,流程定义ID,重试次数(RETRIES_),截至时间(DUEDATE_)
须要启用JOB组件
JobExecutor 是管理一组线程的组件,这些线程用于触发定时器(包括后续的异步消息)。在单元测试场景下,使用多线程会很笨重。
ManagementService.createJobQuery 用于查询,
ManagementService.executeJob 用于执行做业。
这样做业的执行就能够在单元测试内部控制。为了不做业执行器的干扰,能够将它关闭。
默认状况下, JobExecutor 在流程引擎启动时激活。
当你不但愿 JobExecutor 随流程引擎启动时,设置:<property name="jobExecutorActivate" value="false" />
ManagementService.createJobQuery 用于查询,
ManagementService.executeJob 用于执行做业。
这样做业的执行就能够在单元测试内部控制。为了不做业执行器的干扰,能够将它关闭。
默认状况下, JobExecutor 在流程引擎启动时激活。
当你不但愿 JobExecutor 随流程引擎启动时,设置:<property name="jobExecutorActivate" value="false" />
启用异步执行器 Async executor activation
AsyncExecutor 是管理线程池的组件,这个线程池用于触发定时器与异步任务。
默认状况下,因为历史缘由,当使用 JobExecutor 时, AsyncExecutor 不生效。然而咱们建议使用新的 AsyncExecutor 代替JobExecutor ,经过定义两个参数实现
<property name="asyncExecutorEnabled" value="true" /><property name="asyncExecutorActivate" value="true" />
参数 asyncExecutorEnabled 用于启用异步执行器,代替老的做业执行器。
参数 asyncExecutorActivate 命令Activiti引擎在启动时启动异步执行器线程池。
默认状况下,因为历史缘由,当使用 JobExecutor 时, AsyncExecutor 不生效。然而咱们建议使用新的 AsyncExecutor 代替JobExecutor ,经过定义两个参数实现
<property name="asyncExecutorEnabled" value="true" /><property name="asyncExecutorActivate" value="true" />
参数 asyncExecutorEnabled 用于启用异步执行器,代替老的做业执行器。
参数 asyncExecutorActivate 命令Activiti引擎在启动时启动异步执行器线程池。
act_ru_task
运行时任务节点表核心表
字段
主键(任务ID),执行实例ID,流程实例ID,流程定义ID,父任务ID,被代理人(OWNER_:通常状况下为空,只有在委托时才有值),经办人(GNEE_:签收人或者委托人),委托状态(DELEGATION_:委托状态 PENDING委托中,RESOLVED已处理),优先级(PRIORITY_),建立时间,截至时间,挂起状态(SUSPENSION_STATE_:暂停状态 1激活 2暂停)
act_ru_variable
运行时流程变量数据表*核心表
类型
jpa-entity、boolean、bytes、serializable、自定义type、CustomVariableType、date、double、integer、long、null、short、string
字段
执行实例ID,流程实例ID,任务ID,资源ID(BYTEARRAY_ID_)
ACT_ID_*
介绍
’ID’表示identity(组织机构)
这些表包含标识的信息,如用户,用户组,等等。
act_id_group
用户组表
自带的用户组表,用于组任务,包含:名称,类型,版本号
act_id_info
用户扩展信息表
字段
用户ID,类型,key,value,密码,父级ID
act_id_membership
用户与分组对应信息表
用来保存用户的分组信息,包含:用户ID,用户组ID
act_id_user
用户信息表
字段
姓,名,邮箱,密码,版本号,头像ID
ACT_HI_*
介绍
’HI’表示history
就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
act_hi_actinst
历史活动信息
字段
记录流程流转过的全部节点,包括流程定义ID,流程实例ID,执行节点的ID/名称,执行的指向箭头,办理人ID,开始时间,结束时间,删除缘由等
act_hi_attachment
历史附件表
存放历史流程相关的附件的地址
act_hi_comment
历史审批意见表
存放历史流程的审批意见
act_hi_detail
历史详情信息表
流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程须要用到的变量等
act_hi_identitylink
历史流程人员表
主要存储当前节点参与者的信息,好比参与者ID,参与的流程实例ID,任务ID,参与者扮演的角色类型{assignee(办理者)、candidate(候补者)、owner(委托的办理者)、starter(发起者) 、participant(参与者)}
act_hi_procinst
流程实例历史核心表
字段
存放历史的流程实例,包含流程实例ID,流程定义ID,开启人ID,开始节点ID,结束节点ID,父级流程实例ID,删除缘由
act_hi_taskinst
历史任务流程实例信息核心表
字段
存放已经办理的任务,包含有任务ID,流程实例ID,流程定义ID,任务节点key和名字,办理人ID,最后修改时间
act_hi_varinst
历史变量表
存放历史变量数据
ACT_GE_*
介绍
普通数据,各类状况都使用的数据。
act_ge_bytearray
资源表
保存部署文件的大文本数据,文件位置,流程定义部署ID(deployment_id),是一个二进制文件数据,(存储流程定义相关的资源)–ByteArrayEntityImpl
act_ge_property
属性表
全局配置文件,(保存流程引擎的kv键值属性)–PropertyEntityImpl
act_evt_log
介绍
事件日志表
事件日志,默认不开启,若是不使用事件记录,能够删除这个表,
用做
来源于引擎的事件会被捕获,并建立一个包含了全部事件数据(甚至更多)的映射,提供给org.activiti.engine.impl.event.logger.EventFlusher,由它将这些数据刷入其余地方;默认状况下,使用简单的基于数据库的事件处理/刷入,会使用Jackson将上述映射序列化为JSON,并将其做为EventLogEntryEntity接口存入数据库。
代码
能够扩展EventLogger类
若是默认的数据库记录不符合要求,须要覆盖createEventFlusher()方法返回一个org.activiti.engine.impl.event.logger.EventFlusher接口的实例。能够经过Activiti的managementService.getEventLogEntries(startLogNr, size)?获取EventLogEntryEntity实例。容易看出这个表中的数据能够经过JSON放入大数据NoSQL存储,例如MongoDB,Elastic Search,等等.也容易看出这里使用的类(org.activiti.engine.impl.event.logger.EventLogger/EventFlusher与许多其余 EventHandler类)是可插入的,能够按你的使用场景调整(例如不将JSON存入数据库,而是将其直接发送给一个队列或大数据存储)。请注意这个事件记录机制是额外于Activiti的“传统”历史管理器的。尽管全部数据都在数据库表中,但并未对查询或快速恢复作优化。实际使用场景是末端审计并将其存入大数据存储。
Flowable使用SLF4J做为内部日志框架
要看到关于引擎启动与建立数据库表结构的提示日志,在src/main/resources文件夹下添加log4j.properties文件,内容以下
核心类
RepositoryService 流程存储服务
RuntimeService 流程运行控制服务
https://blog.csdn.net/yijianqingyu/article/details/79746551
https://www.jianshu.com/p/4a9a52c62bcc
HistoryService 流程系统历史服务
HistoricProcessInstanceQuery-历史流程实例查询
HistoricTaskInstance 用户任务实例的信息
HistoricActivityInstance 单个活动节点执行的信息
HistoricVariableInstance 流程或任务的变量值实体
HistoricDetail 历史流程活动任务详细信息
历史数据实体与运行时的数据实体的API
学习笔记(五)HistoryService
TaskService
学习笔记(八)TaskService
Activity服务类TaskService任务服务
IdentityService 用户管理服务
FormService 表单管理服务
managementService 工作管理服务
学习笔记(四)managementService
flowable的使用
工作流flowable使用教程
flowable使用时的数据库变化
流程模型
开始节点 ----> 审批人甲 ----> 审批人乙 ----> 结束节点
部署
act_re_deployment
会有一条部署记录,记录此次部署的基本信息
act_ge_bytearray
有两条记录,记录的是本次上传的bpmn文件和对应的图片文件,每条记录都有 act_re_deployment 表的外键关联
act_re_procdef
有一条记录,记录的是该bpmn文件包含的基本信息,包含act_re_deployment表外键
发起申请,启动流程
act_ru_execution
插入一条记录,记录这个流程定义的执行实例,其中id和proc_inst_id相同都是流程执行实例id,也就是本次执行这个流程定义的id,包含流程定义的id外键
act_ru_task
插入一条记录,记录的是第一个任务的信息,也就是开始执行第一个任务。包括act_ru_execution表中的execution_id外键和proc_inst_id外键,也就是本次执行实例id
act_hi_procinst
插入一条记录,记录的是本次执行实例的历史记录
act_hi_taskinst
插入一条记录,记录的是本次任务的历史记录
审批人甲批准
act_ru_variable
插入变量信息,包含本次流程执行实例的两个id外键,但不包括任务的id,由于setVariable方法设置的是全局变量,也就是整个流程都会有效的变量
act_ru_task
表中审批人甲的记录被删除,新插入审批人乙的任务记录
act_ru_execution
活动记录并无删除,而是将正在执行的任务变成审批人乙
act_hi_var_inst
插入流程实例的历史记录
act_hi_taskinst
插入任务的历史记录
审批人乙批准(流程结束)
act_ru_task
该流程实例任务实例记录全被清空
act_ru_execution
该流程实例活动实例记录全被清空
act_ru_variable
该流程实例的参数记录全被清空
act_hi_actinst
记录该流程实例全部历史活动信息 start+甲+乙+end
参考
Flowable初级使用手册
https://www.shangmayuan.com/a/538a0b230dbe4798b273305b.html
activity数据库表结构
https://www.devdoc.cn/activiti-table-summary.html
Activiti 工作流总共包含 23 张数据表(现在是25张,新增了 ACT_EVT_LOG 和 ACT_PROCDEF_INFO )
0 条评论
下一页