《工作流篇》activiti的表、对象、接口

参考链接:https://www.cnblogs.com/imsoft/p/Activity.html
参考链接:https://blog.csdn.net/weixin_42617164/article/details/127638003
参考链接:https://blog.csdn.net/lp2388163/article/details/98206450
参考链接:https://blog.csdn.net/qq_35133320/article/details/82533310

activiti根据版本不同,表的数量也不同,有的25张表,有的23张表,但是都分为5类。

ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。
ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。

image

通用数据表

ACT_GE_BYTEARRAY:二进制数据表,存储定义的流程数据和流程资源,存储了xml的具体内容,图片,文件名,版本号以及父表ACT_RE_DEPLOYMENT的主键

ID_	主键
REV_	版本号,用作乐观锁
NAME_	部署文件名称
DEPLOYMENT_ID_	部署表id
BYTES_	部署文件字节
GENERATED_	生成方式 0用户生成 1引擎生成

ACT_GE_PROPERTY:系统数据表,存储引擎级别的全局通用数据,每进行一次引擎对象相关操作时,版本增加1

历史数据表

ACT_HI_ACTINST 历史节点表
流程启动后,所有流程定义上的任务节点都会同时保存到此表, 与act_hi_taskinst表最大的不同是后者只保存用户任务(usertask)类型的任务节点,而此表会保存启动节点/结束节点/网关/调用子流程/服务类任务等. 另外流程实例不存此表.
保存流程中走过的节点信息,包括节点名,xml标签,办理人,开始时间结束时间等。与ACT_RU_TASK(运行任务)id关联,ACT_RU_EXECUTION(流程实例)id关联

ID_	主键 ,当这条记录为主实例记录时,等于实例id
REV_	乐观锁
PROC_INST_ID_	流程实例id
PARENT_ID_	父级executionId
PROC_DEF_ID_	流程定义id
SUPER_EXEC_	父流程节点id
ACT_ID_	流程运行到的任务节点id
IS_ACTIVE_	是否活动 执行完成之后为0
IS_CONCURRENT_	是否并发
IS_SCOPE_	主实例为1 子实例为0
IS_EVENT_SCOPE_	没有使用到事件的情况下,一般都为0
SUSPENSION_STATE_	挂起状态 1激活 2挂起
CACHED_ENT_STATE_	缓存的状态, 1 事件监听 2 人工任务 3 异步作业
TENANT_ID_	租户id
NAME_	名称
LOCK_TIME_	时间

ACT_HI_ATTACHMENT 历史附件表
ACT_HI_COMMENT 历史意见表
用于保存流程审核的批注信息。一般我们审批任务时,都会填写审批意见、审批时间、审批人等信息

ACT_HI_DETAIL 历史详情表
与变量表字段大致相同

ACT_HI_IDENTITYLINK 历史流程人员表
对应ACT_RU_IDENTITYLINK表,存储历史节点任务参与者信息,如用户组id,用户组类型,用户id,和任务表,流程实例表id关联

ACT_HI_PROCINST 历史流程实例表
保存了流程实例基本信息,时间,开始节点结束节点等,和ACT_RE_PROCDEF (流程解析)的id关联

ID_	主键
PROC_INST_ID_	流程实例id
BUSINESS_KEY_	业务key
PROC_DEF_ID_	流程定义id
START_TIME_	开始时间
END_TIME_	结束时间
DURATION_	持续时间
START_USER_ID_	开始人员d
START_ACT_ID_	开始节点的ACT_ID
END_ACT_ID_	结束节点的ACT_ID
SUPER_PROCESS_INSTANCE_ID_	上级流程id
DELETE_REASON_	删除原因
TENANT_ID_	租户id
NAME_	名称

ACT_HI_TASKINST 历史任务实例表
对应ACT_RU_TASK表,其中关联了ACT_RE_PROCDEF(流程解析)id

ACT_HI_VARINST 历史变量表
对应ACT_RU_VARIABLE表

ACT_EVT_LOG 事件日志

运行时数据表

ACT_RU_EVENT_SUBSCR 事件监听信息表

ACT_RU_EXECUTION 执行实例表
保存运行时的流程实例信息,如激活状态,父节点,流程实例编号,时间等,和流程解析表ACT_RE_PROCDEF的 id 关联

ID_	主键 ,当这条记录为主实例记录时,等于实例id
REV_	乐观锁
PROC_INST_ID_	流程实例id
PARENT_ID_	父级executionId
PROC_DEF_ID_	流程定义id
SUPER_EXEC_	父流程节点id
ACT_ID_	流程运行到的任务节点id
IS_ACTIVE_	是否活动 执行完成之后为0
IS_CONCURRENT_	是否并发
IS_SCOPE_	主实例为1 子实例为0
IS_EVENT_SCOPE_	没有使用到事件的情况下,一般都为0
SUSPENSION_STATE_	挂起状态 1激活 2挂起
CACHED_ENT_STATE_	缓存的状态, 1 事件监听 2 人工任务 3 异步作业
TENANT_ID_	租户id
NAME_	名称
LOCK_TIME_	时间

ACT_RU_IDENTITYLINK 人员数据表 存储节点与人员的关系
关联任务表id,流程实例表id,流程定义表id,存储用户名称,组id,类型信息

ID_	主键
REV_	乐观锁
GROUP_ID_	组id
TYPE_	类型 常量:org.activiti.engine.task.IdentityLinkType类中assignee(委托代理) 、 candidate 、 owner 、starter 、participant
USER_ID_	用户id
TASK_ID_	任务id
PROC_INST_ID_	流程实例id
PROC_DEF_ID_	流程定义id

ACT_RU_JOB 定时任务表

ID_	主键
REV_	乐观锁
TYPE_	流程实例id
LOCK_EXP_TIME_	锁释放时间
LOCK_OWNER_	挂起者
EXCLUSIVE_	
EXECUTION_ID_	执行实例id
DESCRIPTION_	描述
PROCESS_INSTANCE_ID_	流程实例id
PROC_DEF_ID_	流程定义id
RETRIES_	
EXCEPTION_STACK_ID_	异常信息id
EXCEPTION_MSG_	异常信息
DUEDATE_	到期时间
REPEAT_	重复
HANDLER_TYPE_	处理类型
HANDLER_CFG_	标示
TENANT_ID_	租户id

ACT_RU_TASK 任务表
保存当前运行时任务数据,其中有运行时任务name,详情,委托人,组,开始时间等信息。
然后关联了ACT_RU_EXECUTION(运行流程实例)的id,ACT_HI_ACTINST(历史节点)的id以及ACT_RE_PROCDEF(流程解析表)id

ID_	主键
REV_	乐观锁
EXECUTION_ID_	流程实例id
PROC_INST_ID_	父级executionId
PROC_DEF_ID_	流程定义id
NAME_	名称
PARENT_TASK_ID_	父任务id
DESCRIPTION_	描述
TASK_DEF_KEY_	流程定义key
OWNER_	拥有人 ex:任务委派时,拥有人是自己 但执行人不是自己了
ASSIGNEE_	执行人
DELEGATION_	委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空
CREATE_TIME_	创建时间
DUE_DATE_	到期时间
CATEGORY_	类别
SUSPENSION_STATE_	挂起标示
TENANT_ID_	租户id
FORM_KEY_	表单key

ACT_RU_VARIABLE 流程变量数据表
存储添加进来的类型,name,文本等信息,和ACT_RU_EXECUTION(流程实例)表id关联,和运行时任务表id关联

ID_	主键
REV_	乐观锁
TYPE_	变量类型 jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、CustomVariableType、date、double、integer、long、null、short、string
NAME_	名称
EXECUTION_ID_	执行实例id
PROC_INST_ID_	流程实例id
TASK_ID_	任务id
BYTEARRAY_ID_	变量过大时存入bytearray表id
DOUBLE_	变量为浮点时存值
LONG_	变量为整形时存值
TEXT_	变量的文本表示
TEXT2_	代理人

流程定义表

ACT_ RE_DEPLOYMENT 流程部署信息表
部署流程模型时会在这个表新增一条数据

ID_	主键
NAME_	名称
CATEGORY_	类别
TENANT_ID_	租户id
DEPLOY_TIME_	部署时间

ACT_RE_MODEL 流程模型表
一般用于保存 编辑 预览模型

ID_	主键
REV_	版本号,用作乐观锁
NAME_	名称
KEY_	模型唯一标识
CATEGORY_	类别
CREATE_TIME_	创建时间
LAST_UPDATE_TIME_	最后更新时间
VERSION_	版本
META_INFO_	流程部署消息 为json串
DEPLOYMENT_ID_	流程部署id
EDITOR_SOURCE_VALUE_ID_	ACT_GE_BYTEARRAY 表id,此时该表的二进制位模型数据
EDITOR_SOURCE_EXTRA_VALUE_ID_	ACT_GE_BYTEARRAY 表id,此时该表的二进制为模型预览图
TENANT_ID_	租户id

ACT_RE_PROCDEF 流程定义表
流程部署完成后新增一条数据 此时流程可以使用,解析成功就会在该表保存一条数据,NAME对应process中的name,KEY对应id

ID_	主键
REV_	版本号,用作乐观锁
CATEGORY_	类别 与model表相关
NAME_	名称 model表相关
KEY_	标识 与model表相关
VERSION_	版本
DEPLOYMENT_ID_	流程部署id
RESOURCE_NAME_	流程bpmn文件名称
DGRM_RESOURCE_NAME_	流程图片文件名称
DESCRIPTION_	描述
HAS_START_FORM_KEY_	start节点是否存在formKey 0否 1是
HAS_GRAPHICAL_NOTATION_	是否有图形表示
SUSPENSION_STATE_	是否挂起 1激活 2终止
TENANT_ID_	租户id

ACT_PROCDEF_INFO 流程定义更新信息
此表中的数据在正常的部署操作中未使用, 通过代码跟踪知道 1动态修改流程时会用到此表;2流程的国际化相关的locale信息保存在这里.

ID_	主键
REV_	版本号,用作乐观锁
PROC_DEF_ID_	流程定义id
INFO_JSON_ID_	保存json配置信息的bytearry表id

用户信息表

一般项目中有自己的账号体系,用不到以下的表

ACT_ID_GROUP 用户组

ID_	主键
REV_	版本号,用作乐观锁
NAME_	名称
TYPE_	类型

ACT_ID_INFO 用户其他信息

ID_	主键
REV_	版本号,用作乐观锁
USER_ID_	用户id
TYPE_	类型
KEY_	键
VALUE_	值
PASSWORD_	密码
PARENT_ID_	父id

ACT_ID_MEMBERSHIP 用户组与用户关联

USER_ID_	用户表id
GROUP_ID_	用户组id

ACT_ID_USER 用户信息

ID_	主键
REV_	版本号,用作乐观锁
FIRST_	名
LAST_	姓
EMAIL_	邮箱
PWD_	密码
PICTURE_ID_	图片id

对象

参考链接:https://blog.csdn.net/qq_35133320/article/details/82533310
参考链接:https://blog.csdn.net/qq_41466440/article/details/117729184

  • ProcessEngine
    这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。 工作流的API所有的调用都要用到工作流引擎。

  • Deployment
    流程部署对象,部署一个流程时创建。

  • RepositoryService
    act_ge_bytearry、act_re_deployment、act_re_procdef、act_ge_property
    管理流程定义

  • RuntimeService
    act_ru_execution、act_ru_task、act_ru_variable、act_ru_identitylink (与TaskService共享)
    执行管理,包括启动、推进、删除流程实例等操作

  • TaskService
    任务管理,可以获取任务信息

  • HistoryService
    act_hi_procinst、act_hi_taskinst、act_hi_actinst、act_hi_varinst、act_hi_indetitylink、act_hi_comment、act_hi_attachment
    历史管理(执行完的数据管理),任务执行完后,查询历史信息

  • ProcessDefinition
    act_re_procdef
    流程定义类。部署成功后自动创建。可以从这里获得资源文件等。当流程图部署之后,查询出来的数据就是流程定义的数据

  • ProcessInstance
    act_ru_execution
    代表流程定义的执行实例。启动流程时创建。一个流程实例包含了所有的运行节点,可以利用这个对象来了解当前流程流程实例的进度信息。流程实例就代表一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个

  • Execution
    act_ru_execution
    代表流程执行的每个节点。流程实例和流程执行中的所有节点都是Execution,如UserTask、ServiceTask等。在没有并发的情况下,Execution就是同ProcessInstance(有分支的情况下不同)。流程按照流程定义的规则执行一次的过程就可以表示执行对象Execution。

  • Task
    任务,在Activiti中的Task仅指有角色参与的任务,即定义中的UserTask。

  • TackInstance
    act_ru_task
    任务实例

服务接口

参考链接:https://blog.csdn.net/liaomin416100569/article/details/79715840
参考链接:https://blog.csdn.net/qq_35133320/article/details/82533310

image

  • ProcessEngineConfiguration
    这个是用来获取流程引擎配置 ,activiti基础参数的配置,如:数据源什么的。

  • RepositoryService:
    Activiti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中。Repository Service 提供了对 repository 的存取服务。

  • RuntimeService:
    在 Activiti 中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。Runtime Service 提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。

  • TaskService:
    在 Activiti 中业务流程定义中的每一个执行节点被称为一个 Task,对流程中的数据存取,状态变更等操作均需要在 Task 中完成。Task Service 提供了对用户 Task 和 Form 相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。

  • IdentityService:
    Activiti 中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的 Task。Identity Service 提供了对 Activiti 系统中的用户和组的管理功能。

  • ManagementService:
    Management Service 提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Activiti 系统的日常维护。

  • HistoryService:
    History Service 用于获取正在运行或已经完成的流程实例的信息,与 Runtime Service 中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。

  • FormService:
    Activiti 中的流程和状态 Task 均可以关联业务相关的数据。通过使用 Form Service 可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单。

调用示例:

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
HistoryService historyService = processEngine.getHistoryService();
FormService formService = processEngine.getFormService();
DynamicBpmnService dynamicBpmnService = processEngine.getDynamicBpmnService();
posted @ 2024-01-16 10:01  Fusio  阅读(1041)  评论(0编辑  收藏  举报