首页 > 其他分享 >《工作流篇》activiti的表、对象、接口

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

时间:2024-01-16 10:15:56浏览次数:30  
标签:流篇 activiti 流程 act 接口 ID 实例 ACT id

参考链接: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();

标签:流篇,activiti,流程,act,接口,ID,实例,ACT,id
From: https://www.cnblogs.com/fusio/p/17425165.html

相关文章

  • 华为联合伙伴发布《云端控制平台与物流自动导引车通用接口指南》
    本文分享自华为云社区《华为联合30+伙伴发布《云端控制平台与物流自动导引车通用接口指南》,助力物流机器人集群调度》,作者:云容器大未来。背景介绍当今社会正处在一个技术飞速发展、机器人与人工智能深入应用于工业领域的时代。在物流、制造和零售等领域,自动导引车(AGV)已经......
  • Postman/Jmeter工具实现接口测试,为什么还要用代码来实现接口自动化测试?
    这种工具包括一些开源框架最大缺点就是不够灵活,如果是单接口的测试还行,但是有的项目接口比较庞大和负责,这种情况下就不大适用工具(工具适用于小型项目,代码适用于中大型项目)主要有以下几个原因:1敏捷开发,接口巨大,工具对于实现团队协作很不友好,很不方便2工具的功能都是定义好的,一旦......
  • 接口自动化框架是如何搭建的?
    1框架文件架构2优势:(1)     采用的yaml作为测试用例,对测试用例做了非常严格的规范,name,request(method,url),validator,(2)     支持多种请求方式和传参方式  Get:params,Post:表单和json传参,也支持文件上传,同时包括内置MD5,Base64,签名和加密算法(3)     支持轻量......
  • 你们公司没有通用的接口自动化框架吗,为什么还要你来搭建这套框架?
    因为公司每个项目组业务都比较复杂,每个项目组的需求都不一样,所以需要做自动化项目组需要自己搭建自动化框架,这样更符合项目的业务场景,使用起来更加高效你主要负责哪部分框架搭建,你们是怎么合作?      我主要负责requests的统一请求封装以及接口关联,以及规范yaml用例和日志......
  • 【App Service】遇见本地访问Azure App Service应用慢或者是调用第三方接口慢的调试小
    问题描述当应用部署到微软云Azure后,如果遇见本地访问AzureAppService应用慢或者是调用第三方接口慢的时候,有什么好的调试方法呢?来判断具体时那一段请求耗时呢?问题解答当然浏览器本身的开发者工具(F12)就是一种非常好的工具。当时,当安装浏览器不方便时,curl就是一个非常好......
  • 如何统计接口自动化覆盖率?
    Python可以适用coveragepy来统计代码行覆盖率,使用方式coveragerun-mpytest 运行之后生成新的.coverage文件,这个文件以二进制形式保存着我们覆盖率的数据,如何读取覆盖率数据呢?通过cmdline命令执行coveragereport可以查看覆盖率数据。可通过coveragereport-m查看哪......
  • 【OpenFeign】【使用问题】OpenFeign 里如何调用 form-data 接口或者 MultipartFile
    1 前言今儿有个需求涉及到文件上传的东西,关键是OpenFeign去调用,当然最后底牌我也可以创建普通的HTTP请求或者RestTemplate自己请求是不是也行,但是本人这个倔驴型性格,偶尔也会跟自己犟犟,就是要用OpenFeign把它搞出来。首先我有两个这样的接口://客户导入接口@PostMa......
  • C#中的接口
    接口接口是指一组函数成员而不实现它们的引用类型。只有类是结构体实现接口。例如:namespaceCSharpProject1;interfaceIInfo{stringGetName();intGetAge();}classCA:IInfo{publicstringName;publicintAge;publicstringGetName()......
  • ABAP:接口文档下载
    *&---------------------------------------------------------------------**&ReportZTEST_RFC*&---------------------------------------------------------------------**&*&----------------------------------------------------------------......
  • 自定义注解实现接口入参字段校验
    使用的类javax.validation导入的包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId><version>xxxx.RELEASE</version></dependency>通过springb......