当前位置: 首页 > news >正文

Flowable基础表结构

  工作流程的相关操作都是操作存储在对应的表结构中,为了能更好的弄清楚Flowable的实现原理和细节,我们有必要先弄清楚Flowable的相关表结构及其作用。在Flowable中的表结构在初始化的时候会创建相关表结构,具体如下:

  • ACT_EVT:用于记录工作流引擎在运行过程中产生的各种事件信息。
  • ACT_GEGE 表示 general。 通用数据, 用于不同场景下
  • ACT_HIHI表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
  • ACT_ID: ID表示identity(组织机构)。这些表包含标识的信息,如用户,用户组,等等。
  • ACT_PRODEF_:表⽰这都是跟记录流程定义相关的表。
  • ACT_RERE表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
  • ACT_RURU表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Flowable只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
  • FLW_CHANNEL:此表一般用于存储通道定义相关信息。
  • FLW_EV_DATABASE*:数据库变更日志表。
  • FLW_EVENT:存储事件部署的相关信息。
  • FLW_RU_BATCH:存储批量操作的各个部分信息。

具体的表结构的含义:

表分类表名解释
ACT_EVT_LOG主要用于记录工作流引擎在运行过程中产生的各种事件信息。这些事件信息可以帮助开发者和运维人员监控工作流的执行情况、进行故障排查以及审计等操作
通⽤信息表
ACT_GE_BYTEARRAY该表用于存储流程定义和流程资源(如 BPMN 文件、表单定义等)的二进制数据。
ACT_GE_PROPERTY存储 Flowable 引擎的属性信息,如版本号等。
流程历史记录
ACT_HI_ACTINST记录流程中每个活动实例的历史信息,活动可以是任务、网关、事件等。通过该表可以了解每个活动的执行情况,如开始时间、结束时间、持续时间等。
ACT_HI_ATTACHMENT存储与流程实例、任务等相关的附件历史信息,例如文档、图片等。
ACT_HI_COMMENT记录与流程实例、任务等相关的评论历史信息,通常用于用户在处理流程时添加备注或意见。
ACT_HI_DETAIL存储流程执行过程中的详细信息,如变量的更新、表单字段的提交等。
ACT_HI_ENTITYLINK记录实体之间的链接关系的历史信息,例如流程实例与其他业务实体之间的关联。
ACT_HI_IDENTITYLINK记录流程实例、任务等与用户或组之间的身份关联历史信息,例如任务的分配、参与者等。
ACT_HI_PROCINST记录流程实例的历史信息,包括流程实例的启动时间、结束时间、持续时间等。
ACT_HI_TASKINST记录任务实例的历史信息,包括任务的创建时间、完成时间、持续时间、分配人等。
ACT_HI_TSK_LOG记录任务相关的详细日志信息,可能包括任务的状态变化、操作记录等。
ACT_HI_VARINST记录流程执行过程中变量的历史信息,包括变量的名称、类型、值等。
用户用户组表
ACT_ID_BYTEARRAY二进制数据表
ACT_ID_GROUP用户组信息表
ACT_ID_INFO用户信息详情表
ACT_ID_MEMBERSHIP人与组关系表
ACT_ID_PRIV权限表
ACT_ID_PRIV_MAPPING用户或组权限关系表
ACT_ID_PROPERTY属性表
ACT_ID_TOKEN记录用户的token信息
ACT_ID_USER用户表
ACT_PROCDEF_INFO为流程定义存储额外的元数据和配置信息,这些信息并非流程定义的核心部分,但对流程的执行、管理和监控有重要作用。借助该表,可在运行时动态调整流程定义的行为,而无需重新部署流程定义。
流程定义表
ACT_RE_DEPLOYMENT部署单元信息
ACT_RE_MODEL模型信息
ACT_RE_PROCDEF已部署的流程定义
运行实例表
ACT_RU_EVENT_SUBSCR运行时事件
ACT_RU_EXECUTION运行时流程执行实例
ACT_RU_IDENTITYLINK运行时用户关系信息,存储任务节点与参与者的相关信息
ACT_RU_JOB运行时作业
ACT_RU_TASK运行时任务
ACT_RU_VARIABLE运行时变量表

1. act_evt_log(事件日志表)

  • 用途:该表主要用于记录工作流引擎在运行过程中产生的各类事件信息。这些事件日志能够帮助开发者和运维人员监控工作流的执行状态、进行故障排查以及审计工作流操作。例如,通过查看事件日志可以了解流程实例的启动、任务的分配与完成、变量的更新等操作的详细情况。
  • 常见字段
    • LOG_NR_:日志记录的唯一编号,用于唯一标识每条日志记录,方便后续查询和引用。
    • TYPE_:事件的类型,例如流程实例启动事件、任务完成事件、变量更新事件等。不同的事件类型对应不同的工作流操作,通过该字段可以快速区分不同类型的事件。
    • PROC_DEF_ID_:关联的流程定义 ID,用于标识该事件所属的流程定义。通过该字段可以知道事件是在哪个流程定义的执行过程中产生的。
    • PROC_INST_ID_:关联的流程实例 ID,用于标识该事件所属的具体流程实例。在一个流程定义可能会有多个流程实例同时运行,通过该字段可以确定事件发生在哪个具体的流程实例中。
    • EXECUTION_ID_:关联的执行实例 ID,执行实例是流程实例中的一个执行分支。该字段可以帮助进一步定位事件在流程实例中的具体执行位置。
    • TASK_ID_:关联的任务 ID,如果事件与任务相关(如任务创建、分配、完成等),该字段将记录对应的任务 ID。
    • TIME_STAMP_:事件发生的时间戳,记录了事件发生的具体时间,方便按照时间顺序查看事件的发生过程。
    • USER_ID_:执行该事件的用户 ID,如果事件是由用户操作触发的,该字段将记录执行操作的用户的标识。
    • DATA_:事件的详细数据,通常以二进制或 JSON 格式存储,包含了事件的具体信息,如变量的更新值、任务的审批意见等。

2. act_ge_bytearray(通用字节数组表)

  • 用途:此表用于存储流程定义和流程资源的二进制数据,这些资源可以是 BPMN 文件、表单定义文件、图片等。在部署流程定义时,Flowable 会将相关的文件内容以二进制形式存储在该表中,以便后续使用。
  • 常见字段
    • ID_:资源的唯一标识符,用于唯一标识存储在表中的每个二进制资源。
    • REV_:资源的版本号,当资源被更新时,版本号会相应递增,用于跟踪资源的变更历史。
    • NAME_:资源的名称,通常是文件的原始名称,用于描述资源的用途。
    • DEPLOYMENT_ID_:关联的部署 ID,指向 act_re_deployment 表中的相应记录,表明该资源是通过哪一次部署操作被存储到数据库中的。
    • BYTES_:存储的二进制数据,即资源文件的实际内容。
    • GENERATED_:标记该资源是否为自动生成。如果是自动生成的资源,该字段的值通常为 true;否则为 false

3. act_ge_property(通用属性表)

  • 用途:该表用于存储 Flowable 工作流引擎的一些通用属性信息,这些属性可以是引擎的配置参数、版本信息等。通过该表,引擎可以在运行时获取和修改这些属性,以满足不同的配置需求。
  • 常见字段
    • NAME_:属性的名称,用于唯一标识一个属性。常见的属性名称可能包括引擎的版本号、数据库的版本号、默认的时区等。
    • VALUE_:属性的值,存储了属性的具体内容。例如,如果属性名称是 engine.version,则属性值可能是 6.7.2
    • REV_:属性的版本号,当属性的值被更新时,版本号会相应递增,用于跟踪属性的变更历史。

4. act_hi_actinst(历史活动实例表)

  • 用途:记录流程中每个活动实例的历史信息,活动可以是任务、网关、事件等。通过该表可以了解每个活动的执行情况,如开始时间、结束时间、持续时间等。
  • 常见字段
    • ID_:活动实例的唯一标识符。
    • PROC_DEF_ID_:关联的流程定义 ID。
    • PROC_INST_ID_:关联的流程实例 ID。
    • EXECUTION_ID_:关联的执行实例 ID。
    • ACT_ID_:活动的 ID。
    • ACT_NAME_:活动的名称。
    • START_TIME_:活动开始的时间。
    • END_TIME_:活动结束的时间。
    • DURATION_:活动的持续时间。

5. act_hi_attachment(历史附件表)

  • 用途:存储与流程实例、任务等相关的附件历史信息,例如文档、图片等。
  • 常见字段
    • ID_:附件的唯一标识符。
    • PROC_INST_ID_:关联的流程实例 ID。
    • TASK_ID_:关联的任务 ID。
    • NAME_:附件的名称。
    • DESCRIPTION_:附件的描述信息。
    • TYPE_:附件的类型。
    • URL_:附件的访问 URL。
    • CONTENT_ID_:附件内容的 ID。

6. act_hi_comment(历史评论表)

  • 用途:记录与流程实例、任务等相关的评论历史信息,通常用于用户在处理流程时添加备注或意见。
  • 常见字段
    • ID_:评论的唯一标识符。
    • TYPE_:评论的类型。
    • TIME_:评论的时间。
    • USER_ID_:发表评论的用户 ID。
    • TASK_ID_:关联的任务 ID。
    • PROC_INST_ID_:关联的流程实例 ID。
    • ACTION_:评论的操作类型。
    • MESSAGE_:评论的内容。

7. act_hi_detail(历史详情表)

  • 用途:存储流程执行过程中的详细信息,如变量的更新、表单字段的提交等。
  • 常见字段
    • ID_:详情记录的唯一标识符。
    • TYPE_:详情的类型,如变量更新、表单提交等。
    • PROC_INST_ID_:关联的流程实例 ID。
    • EXECUTION_ID_:关联的执行实例 ID。
    • TASK_ID_:关联的任务 ID。
    • ACT_INST_ID_:关联的活动实例 ID。
    • NAME_:详情的名称,如变量名、表单字段名等。
    • VAR_TYPE_:变量的类型。
    • REV_:版本号。
    • TIME_:详情发生的时间。
    • BYTEARRAY_ID_:关联的字节数组 ID(如果有)。
    • DOUBLE_:存储的双精度浮点数值(如果适用)。
    • LONG_:存储的长整数值(如果适用)。
    • TEXT_:存储的文本值(如果适用)。
    • TEXT2_:存储的额外文本值(如果适用)。

8. act_hi_entitylink(历史实体链接表)

  • 用途:记录实体之间的链接关系的历史信息,例如流程实例与其他业务实体之间的关联。
  • 常见字段
    • ID_:实体链接的唯一标识符。
    • LINK_TYPE_:链接的类型。
    • CREATE_TIME_:链接创建的时间。
    • END_TIME_:链接结束的时间(如果有)。
    • REF_TYPE_:引用的实体类型。
    • REF_ID_:引用的实体 ID。
    • SOURCE_SCOPE_TYPE_:源范围的类型。
    • SOURCE_SCOPE_ID_:源范围的 ID。
    • SOURCE_SCOPE_DEFINITION_ID_:源范围定义的 ID。
    • TARGET_SCOPE_TYPE_:目标范围的类型。
    • TARGET_SCOPE_ID_:目标范围的 ID。
    • TARGET_SCOPE_DEFINITION_ID_:目标范围定义的 ID。

9. act_hi_identitylink(历史身份链接表)

  • 用途:记录流程实例、任务等与用户或组之间的身份关联历史信息,例如任务的分配、参与者等。
  • 常见字段
    • ID_:身份链接的唯一标识符。
    • GROUP_ID_:关联的组 ID。
    • TYPE_:身份链接的类型,如参与者、候选人等。
    • USER_ID_:关联的用户 ID。
    • TASK_ID_:关联的任务 ID。
    • PROC_INST_ID_:关联的流程实例 ID。
    • CREATE_TIME_:身份链接创建的时间。
    • DELETE_TIME_:身份链接删除的时间(如果有)。

10. act_hi_procinst(历史流程实例表)

  • 用途:记录流程实例的历史信息,包括流程实例的启动时间、结束时间、持续时间等。
  • 常见字段
    • ID_:流程实例的唯一标识符。
    • PROC_INST_ID_:关联的流程实例 ID(与 ID_ 相同)。
    • BUSINESS_KEY_:业务键,用于关联业务数据。
    • PROC_DEF_ID_:关联的流程定义 ID。
    • START_TIME_:流程实例的开始时间。
    • END_TIME_:流程实例的结束时间。
    • DURATION_:流程实例的持续时间。
    • START_USER_ID_:启动流程实例的用户 ID。
    • START_ACT_ID_:启动流程实例的活动 ID。
    • END_ACT_ID_:结束流程实例的活动 ID。
    • SUPER_PROCESS_INSTANCE_ID_:父流程实例的 ID(如果有)。
    • DELETE_REASON_:流程实例被删除的原因(如果有)。

11. act_hi_taskinst(历史任务实例表)

  • 用途:记录任务实例的历史信息,包括任务的创建时间、完成时间、持续时间、分配人等。
  • 常见字段
    • ID_:任务实例的唯一标识符。
    • PROC_INST_ID_:关联的流程实例 ID。
    • EXECUTION_ID_:关联的执行实例 ID。
    • TASK_DEF_KEY_:任务定义的键。
    • NAME_:任务的名称。
    • PARENT_TASK_ID_:父任务的 ID。
    • ASSIGNEE_:任务的分配人。
    • START_TIME_:任务的开始时间。
    • END_TIME_:任务的结束时间。
    • DURATION_:任务的持续时间。
    • DELETE_REASON_:任务被删除的原因(如果有)。
    • OWNER_:任务的所有者。
    • PRIORITY_:任务的优先级。
    • DUE_DATE_:任务的截止日期。

12. act_hi_tsk_log(历史任务日志表)

  • 用途:记录任务相关的详细日志信息,可能包括任务的状态变化、操作记录等。
  • 常见字段:不同版本的 Flowable 可能会有所不同,但通常会包含与任务相关的标识信息、操作时间、操作类型等。

13. act_hi_varinst(历史变量实例表)

  • 用途:记录流程执行过程中变量的历史信息,包括变量的名称、类型、值等。
  • 常见字段
    • ID_:变量实例的唯一标识符。
    • PROC_INST_ID_:关联的流程实例 ID。
    • EXECUTION_ID_:关联的执行实例 ID。
    • TASK_ID_:关联的任务 ID。
    • NAME_:变量的名称。
    • VAR_TYPE_:变量的类型。
    • REV_:版本号。
    • BYTEARRAY_ID_:关联的字节数组 ID(如果有)。
    • DOUBLE_:存储的双精度浮点数值(如果适用)。
    • LONG_:存储的长整数值(如果适用)。
    • TEXT_:存储的文本值(如果适用)。
    • TEXT2_:存储的额外文本值(如果适用)。
    • CREATE_TIME_:变量创建的时间。
    • LAST_UPDATED_TIME_:变量最后更新的时间。

13. act_procdef_info(存储流程定义的额外配置信息)

  • 用途act_procdef_info 表为流程定义存储额外的元数据和配置信息,这些信息并非流程定义的核心部分,但对流程的执行、管理和监控有重要作用。借助该表,可在运行时动态调整流程定义的行为,而无需重新部署流程定义。
  • 常见字段
    • ID_:这是记录的唯一标识符,用于在表中唯一确定一条记录。
    • PROC_DEF_ID_:该字段关联对应的流程定义 ID,明确此记录属于哪个具体的流程定义。
    • REV_:代表记录的版本号,当流程定义的配置信息发生改变时,版本号会相应递增,有助于跟踪和管理配置的变更历史。
    • INFO_JSON_ID_:指向存储流程定义配置信息的 JSON 数据的 ACT_GE_BYTEARRAY 表中的记录 ID。JSON 数据可包含各种自定义的配置信息,像流程变量的默认值、任务分配规则、事件监听器配置等。
  • 使用场景
    • 动态配置流程行为:在流程运行期间,能够通过更新 act_procdef_info 表中的 JSON 数据,动态调整流程的行为。例如,可根据业务需求临时改变某个任务的分配规则,或者修改流程变量的默认值。
    • 集成外部系统:将流程定义与外部系统集成时,可在 act_procdef_info 表中存储外部系统的相关配置信息,如接口地址、认证信息等。这样在流程执行过程中,就能方便地调用外部系统的服务。
    • 流程监控和审计:通过记录流程定义的配置变更历史,可用于流程的监控和审计。在出现问题时,能够追溯配置的变更情况,找出可能的原因。
  • 示例
    假设你有一个请假流程,原本任务分配规则是固定分配给部门经理。但在某些特殊情况下,你希望能够动态调整任务分配规则。可以在 act_procdef_info 表的 JSON 数据中添加一个配置项,指定任务分配的规则。当需要调整时,只需更新该 JSON 数据即可。
{"taskAssignmentRule": {"taskKey": "approveTask","assigneeExpression": "${departmentManager}"}
}

在这个示例中,taskAssignmentRule 是一个自定义的配置项,taskKey 表示要配置的任务的键,assigneeExpression 是任务分配的表达式。通过更新这个 JSON 数据,就可以动态改变任务的分配规则。

这三张表都属于 Flowable 工作流引擎中以 act_re_ 开头的流程定义相关表,它们在工作流的部署、模型管理和流程定义存储方面发挥着关键作用,以下是对它们的详细介绍。

14. act_re_deployment(流程部署表)

  • 用途:该表主要用于记录流程定义的部署信息。在 Flowable 中,当你将一个或多个流程定义文件(如 BPMN 文件)部署到工作流引擎时,会在这个表中创建一条记录,用于跟踪部署的相关元数据。
  • 常见字段
    • ID_:部署的唯一标识符,用于在表中唯一标识一次部署操作。
    • NAME_:部署的名称,通常由用户在部署时指定,可用于对部署进行描述和区分。
    • CATEGORY_:部署的类别,可用于对部署进行分类管理,例如按照业务模块或流程类型进行分类。
    • TENANT_ID_:租户 ID,如果使用了多租户功能,该字段用于区分不同租户的部署。
    • DEPLOY_TIME_:部署的时间,记录了流程定义文件被部署到工作流引擎的具体时间。

15. act_re_model(模型表)

  • 用途:此表用于存储流程模型的相关信息。在 Flowable 中,你可以使用模型设计器创建和编辑流程模型,这些模型的元数据会存储在 act_re_model 表中。模型可以是 BPMN 模型、表单模型等。
  • 常见字段
    • ID_:模型的唯一标识符,用于唯一标识一个流程模型。
    • NAME_:模型的名称,通常由用户在创建模型时指定,用于描述模型的用途。
    • KEY_:模型的键,是模型的一个唯一标识,可用于在代码中引用该模型。
    • CATEGORY_:模型的类别,可用于对模型进行分类管理。
    • VERSION_:模型的版本号,当模型被修改并保存时,版本号会递增。
    • CREATE_TIME_:模型的创建时间,记录了模型被创建的具体时间。
    • LAST_UPDATE_TIME_:模型的最后更新时间,记录了模型最后一次被修改的时间。

16. act_re_procdef(流程定义表)

  • 用途:该表用于存储流程定义的详细信息。当你部署一个流程定义文件后,Flowable 会解析该文件并将流程定义的相关信息存储在 act_re_procdef 表中。通过这个表,工作流引擎可以快速获取流程定义的元数据和结构信息。
  • 常见字段
    • ID_:流程定义的唯一标识符,格式通常为 {流程定义键}:{版本号}:{随机生成的 ID},用于唯一标识一个流程定义。
    • REV_:流程定义的版本号,当流程定义被更新并重新部署时,版本号会递增。
    • CATEGORY_:流程定义的类别,与 act_re_deployment 表中的 CATEGORY_ 字段相关联,用于对流程定义进行分类管理。
    • NAME_:流程定义的名称,通常从 BPMN 文件中读取,用于描述流程的用途。
    • KEY_:流程定义的键,是流程定义的一个唯一标识,可用于在代码中引用该流程定义。
    • VERSION_:流程定义的版本,用于区分同一流程定义的不同版本。
    • DEPLOYMENT_ID_:关联的部署 ID,指向 act_re_deployment 表中的相应记录,表明该流程定义是通过哪一次部署操作被部署到工作流引擎的。
    • RESOURCE_NAME_:流程定义文件的资源名称,记录了流程定义文件在部署时的名称。
    • DGRM_RESOURCE_NAME_:流程定义的图形资源名称,通常是与 BPMN 文件关联的图形文件(如 PNG 图片)的名称。

这些表均为 Flowable 工作流引擎里以 act_ru_ 开头的运行时表,用于存储工作流运行过程中的动态数据。以下是对这些表用途和常见字段的详细介绍:

17. act_ru_actinst(运行时活动实例表)

  • 用途:记录流程运行时每个活动实例的相关信息,可用于监控活动的执行状态。
  • 常见字段
    • ID_:活动实例的唯一标识符。
    • PROC_DEF_ID_:关联的流程定义 ID。
    • PROC_INST_ID_:关联的流程实例 ID。
    • EXECUTION_ID_:关联的执行实例 ID。
    • ACT_ID_:活动的 ID。
    • ACT_NAME_:活动的名称。
    • START_TIME_:活动开始时间。
    • END_TIME_:活动结束时间(若活动未结束则为空)。
    • DURATION_:活动持续时间。

18. act_ru_deadletter_job(运行时死信作业表)

  • 用途:存储无法执行且已达到最大重试次数的作业信息,即死信作业。
  • 常见字段
    • ID_:作业的唯一标识符。
    • REV_:作业的版本号。
    • TYPE_:作业类型。
    • EXECUTION_ID_:关联的执行实例 ID。
    • EXCEPTION_STACK_ID_:异常堆栈信息的 ID。

19. act_ru_entitylink(运行时实体链接表)

  • 用途:记录运行时实体之间的链接关系,例如流程实例与其他业务实体的关联。
  • 常见字段
    • ID_:实体链接的唯一标识符。
    • LINK_TYPE_:链接类型。
    • CREATE_TIME_:链接创建时间。
    • REF_TYPE_:引用的实体类型。
    • REF_ID_:引用的实体 ID。

20. act_ru_event_subscr(运行时事件订阅表)

  • 用途:存储运行时的事件订阅信息,用于处理流程中的事件,如消息事件、信号事件等。
  • 常见字段
    • ID_:事件订阅的唯一标识符。
    • EVENT_TYPE_:事件类型。
    • EVENT_NAME_:事件名称。
    • EXECUTION_ID_:关联的执行实例 ID。
    • PROC_INST_ID_:关联的流程实例 ID。

21. act_ru_execution(运行时执行实例表)

  • 用途:记录流程运行时的执行实例信息,可用于跟踪流程的执行路径。
  • 常见字段
    • ID_:执行实例的唯一标识符。
    • REV_:执行实例的版本号。
    • PROC_INST_ID_:关联的流程实例 ID。
    • BUSINESS_KEY_:业务键,用于关联业务数据。
    • PROC_DEF_ID_:关联的流程定义 ID。
    • ACT_ID_:当前所在活动的 ID。
    • IS_ACTIVE_:是否处于活动状态。

22. act_ru_external_job(运行时外部作业表)

  • 用途:存储需要外部系统处理的作业信息。
  • 常见字段
    • ID_:作业的唯一标识符。
    • REV_:作业的版本号。
    • TYPE_:作业类型。
    • EXECUTION_ID_:关联的执行实例 ID。
    • LOCK_EXP_TIME_:锁定过期时间。

23. act_ru_history_job(运行时历史作业表)

  • 用途:存储与历史数据处理相关的作业信息,如清理历史数据的作业。
  • 常见字段
    • ID_:作业的唯一标识符。
    • REV_:作业的版本号。
    • TYPE_:作业类型。
    • EXECUTION_ID_:关联的执行实例 ID。

24. act_ru_identitylink(运行时身份链接表)

  • 用途:记录运行时用户或组与流程实例、任务等的身份关联信息,如任务的分配人、候选人等。
  • 常见字段
    • ID_:身份链接的唯一标识符。
    • GROUP_ID_:关联的组 ID。
    • TYPE_:身份链接类型,如参与者、候选人。
    • USER_ID_:关联的用户 ID。
    • TASK_ID_:关联的任务 ID。
    • PROC_INST_ID_:关联的流程实例 ID。

25. act_ru_job(运行时作业表)

  • 用途:存储运行时的作业信息,包括定时作业、异步作业等。
  • 常见字段
    • ID_:作业的唯一标识符。
    • REV_:作业的版本号。
    • TYPE_:作业类型。
    • EXECUTION_ID_:关联的执行实例 ID。
    • DUEDATE_:作业的截止日期。

26. act_ru_suspended_job(运行时暂停作业表)

  • 用途:存储被暂停的作业信息。
  • 常见字段
    • ID_:作业的唯一标识符。
    • REV_:作业的版本号。
    • TYPE_:作业类型。
    • EXECUTION_ID_:关联的执行实例 ID。

27. act_ru_task(运行时任务表)

  • 用途:记录运行时的任务实例信息,可用于管理和跟踪任务的执行。
  • 常见字段
    • ID_:任务的唯一标识符。
    • REV_:任务的版本号。
    • EXECUTION_ID_:关联的执行实例 ID。
    • PROC_INST_ID_:关联的流程实例 ID。
    • PROC_DEF_ID_:关联的流程定义 ID。
    • NAME_:任务名称。
    • ASSIGNEE_:任务的分配人。
    • CREATE_TIME_:任务创建时间。

28. act_ru_timer_job(运行时定时作业表)

  • 用途:存储定时执行的作业信息,如定时触发的流程事件。
  • 常见字段
    • ID_:作业的唯一标识符。
    • REV_:作业的版本号。
    • TYPE_:作业类型。
    • EXECUTION_ID_:关联的执行实例 ID。
    • DUEDATE_:作业的执行时间。

29. act_ru_variable(运行时变量表)

  • 用途:记录运行时流程实例、执行实例或任务的变量信息。
  • 常见字段
    • ID_:变量的唯一标识符。
    • REV_:变量的版本号。
    • TYPE_:变量类型,如字符串、整数等。
    • NAME_:变量名称。
    • EXECUTION_ID_:关联的执行实例 ID。
    • PROC_INST_ID_:关联的流程实例 ID。
    • TASK_ID_:关联的任务 ID。
    • BYTEARRAY_ID_:关联的字节数组 ID(若变量为二进制数据)。
    • DOUBLE_:存储的双精度浮点数值(若适用)。
    • LONG_:存储的长整数值(若适用)。
    • TEXT_:存储的文本值(若适用)。
    • TEXT2_:存储的额外文本值(若适用)。

相关文章:

Flowable基础表结构

工作流程的相关操作都是操作存储在对应的表结构中,为了能更好的弄清楚Flowable的实现原理和细节,我们有必要先弄清楚Flowable的相关表结构及其作用。在Flowable中的表结构在初始化的时候会创建相关表结构,具体如下: ACT_EVT&…...

为什么不同的损失函数可以提升模型性能?

不同的损失函数可以提升模型性能的原因在于,损失函数是模型优化的核心目标,它直接定义了模型在训练过程中需要最小化的误差或偏差。通过设计不同的损失函数,可以针对具体任务的特点、数据分布的特性以及模型的目标需求进行更精确的优化&#…...

git上传文件到远程库

1.git init 把这个目录变成git可以管理的仓库 2.git status查看文件追踪的情况(工作区的文件是红色) 3.git add . 添加工作区所有文件到暂存区 再git status(此时文件都变成绿色) 4.git commit -m 描述性文字 5.git push -u o…...

【产品小白】需求分析的进阶

在产品经理的职业发展中,需求分析能力的提升至关重要。普通和进阶在需求分析层面,往往存在从表面需求到本质问题的认知差异。以下从几个方面探讨这一进阶过程: 1. 需求理解的深度 普通:​通常停留在用户表达的显性需求层面&#…...

机试题汇总

万能头文件 #include<bits/stdc.h> 输入一个年份和月份&#xff0c;输出该月的天数 1.3.5.7.8.10.12 -- 31天 闰年判断&#xff1a; year % 400 0 || (year % 4 0 && year % 100 ! 0&#xff09; 输入字符串&#xff0c;反转输出 #include<iostream&g…...

软件公司高新技术企业代办:机遇与陷阱并存-优雅草卓伊凡

软件公司高新技术企业代办&#xff1a;机遇与陷阱并存-优雅草卓伊凡 在科技飞速发展的当下&#xff0c;软件公司如雨后春笋般涌现&#xff0c;众多企业渴望通过申请高新技术企业来获得政策支持与发展助力。随之而来的&#xff0c;是高新技术企业代办业务的兴起。然而&#xff…...

C#中3维向量的实现

c#中默认不带库三维向量&#xff0c;需要自己安装第三方库&#xff0c;或者可以手动实现一个简易的三维向量。 public struct Vector3D {public double X { get; set; }public double Y { get; set; }public double Z { get; set; }public Vector3D(double x, double y, doubl…...

使用腾龙边缘计算网关内置的AIoTedge+NodeRED接入西门子PLC

腾龙边缘计算网关一体机凭借其强大的性能和丰富的功能&#xff0c;为企业提供了一种高效、灵活的解决方案。本文将详细介绍如何使用腾龙边缘计算网关一体机内置的AIoTedgeNodeRED接入西门子PLC&#xff0c;实现数据的采集、处理与传输。 一、硬件准备与环境搭建 在开始之前&am…...

基于MLA的人类语音情感分类

《DeepSeek大模型高性能核心技术与多模态融合开发&#xff08;人工智能技术丛书&#xff09;》(王晓华)【摘要 书评 试读】- 京东图书 随着信息技术的不断发展&#xff0c;如何让机器识别人类情绪&#xff0c;这个问题受到了学术界和工业界的广泛关注。目前&#xff0c;情绪识…...

Codeforces Round 1012 (Div. 2)

AB略 C 没看懂题意&#xff0c;翻译的问题。t0代表这个人必须找一个没有人的桌子且座位离他最近&#xff0c;t1代表这个人只要找一个空座位就可以了。一个桌子四个座位&#xff0c;t0肯定会坐左下角的那个。首先建立两个小根堆q1代表左下角的座位&#xff0c;q2代表一个桌子的…...

FPGA时钟约束

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Create_clock 前言 时钟周期约束&#xff0c;就是对时钟进行约束。 一、Create_clock create_clock -name <name> -period <period> -waveform …...

二分查找------练习3

1. 题目 2. 思路和题解 这道题看到这个复杂度&#xff0c;就想到应该是使用二分查找进行求解。为了使二分查找的次数尽可能的少&#xff0c;我们需要对较短的数组进行查找&#xff0c;假设就在nums1上进行操作&#xff0c;因此在开始时&#xff0c;要对两个数组的长度进行一个…...

拆解美团2024年报,业务协同、生态共赢、科技创新

从早期的千团大战开始&#xff0c;到后来外卖和社区团购们的激烈角逐&#xff0c;再到现在即时零售战场的群雄争霸&#xff0c;本地生活的硝烟从来都没有真正消散过。 作为本地生活服务领域的“领头羊”——美团&#xff0c;也一直都是其他平台们的挑战目标&#xff0c;几乎所…...

EMS小车技术特点与优势:高效灵活的自动化输送解决方案

北成新控伺服技术丨EMS小车调试视频 EMS小车是一种基于单轨运行的电动输送系统&#xff0c;通过电力驱动实现物料的高效搬运和输送&#xff0c;具有高效灵活、节能环保、多功能集成、行业适配性强等特性&#xff0c;广泛应用于汽车制造、工程机械、家电生产、仓储物流等行业自动…...

GESP2025年3月认证解析

GESP一级 一、单选题 答案&#xff1a;D 解析&#xff1a;DeepSeek 是字节跳动公司开发的人工智能&#xff0c;它具备生成文本的能力&#xff0c;所以可以根据《哪吒 2》的场景生成剧情脚本。A 选项中《哪吒 2》是贺岁片&#xff0c;并非新型操作系统&#xff1b;B 选项 Deep…...

尝试在软考62天前开始成为软件设计师-信息系统安全

安全属性 保密性:最小授权原则(能干活的最小权限)、防暴露(隐藏)、信息加密、物理保密完整性(防篡改):安全协议、校验码、密码校验、数字签名、公证 可用性:综合保障( IP过滤、业务流控制、路由选择控制、审计跟踪)不可抵赖性:数字签名 对称加密 DES :替换移位 3重DESAESR…...

Dify - 架构、部署、扩展与二次开发指南

本文详细解析 Dify 的架构、部署流程、高可用中间件的独立部署方法&#xff0c;以及二次开发流程&#xff0c;帮助开发者更高效地管理和扩展 Dify。 1. 本地DEMO部署 安装Docker&#xff0c;执行下面脚本&#xff0c;可能需要配置镜像。 git clone https://github.com/langge…...

用DrissionPage升级网易云音乐爬虫:更稳定高效地获取歌单音乐(附原码)

一、传统爬虫的痛点分析 原代码使用requests re的方案存在以下局限性&#xff1a; 动态内容缺失&#xff1a;无法获取JavaScript渲染后的页面内容 维护成本高&#xff1a;网页结构变化需频繁调整正则表达式 反爬易触发&#xff1a;简单请求头伪造容易被识别 资源消耗大&am…...

详细Linux中级知识(不断完善)

Nginx服务配置 基于主机名配置 映射IP和主机名 [rootlocalhost ~]# vim /etc/hosts 192.168.72.135 www.chengke.com chengke[rootlocalhost ~]# echo "192.168.72.135 www.xx.com" >> /etc/hosts以上是两种方法&#xff0c;前面是你的IP地址&#xff0c;后…...

Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术

Softmax温度调节与注意力缩放&#xff1a;深度神经网络中的平滑艺术 在深度学习的精密机械中&#xff0c;有些细微的调整机制往往被视为理所当然&#xff0c;却实际上蕴含着深刻的数学洞察和巧妙的工程智慧。今天&#xff0c;我们将探讨两个看似独立却本质相通的机制&#xff…...

python打包辅助工具

python打包辅助工具 PyInstaller 是一个非常流行的 Python 应用程序打包工具&#xff0c;它可以将 Python 脚本及其依赖项打包成独立的可执行文件&#xff0c;方便在没有 Python 环境的机器上运行。关于PyInstaller&#xff0c;可参见&#xff1a;https://blog.csdn.net/cnds1…...

jangow靶机攻略

配置网卡 VMware需要配置&#xff0c;不配置扫不到ip,VirtualBox正常打开ip会直接显示出来 网卡配置都改成NAT 打开虚拟机&#xff0c;第一个框选第二行&#xff0c;回车 选第二个&#xff0c;按e键 进入下一个框后&#xff0c;将ro 后面的修改为 rw signin init/bin/bash 按…...

【大模型LLM第十四篇】Agent学习之anthropic-quickstarts Agent

前言 对于anthropic api的快速使用&#xff0c;在github上有几个example Customer Support Agent&#xff1a;由 Claude 提供支持的客户支持代理。该项目演示了如何利用 Claude 的自然语言理解和生成功能来创建可访问知识库的 AI 辅助客户支持系统。Financial Data Analyst &…...

MonIo部署

1、命令行安装 访问monio官网下载应用程序 # wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm # sudo dnf install minio.rpm # mkdir ~/minio # minio server ~/minio --console-address :90012、dock…...

深入理解智能家居领域中RS485、Modbus、KNX 和 Zigbee协议概念

首先详细介绍一下 RS485 和 Modbus 这两个在工业自动化和数据通讯领域中非常重要的概念。 RS485 1. 定义与特点 RS485 标准&#xff1a;RS485 是一种串行通信标准&#xff0c;也称为TIA-485标准&#xff0c;主要用于数据传输。它规定了物理层的电气特性&#xff0c;与数据格式…...

Spring Boot深度解析:从核心原理到最佳实践

一、Spring Boot概述 Spring Boot作为Spring生态中的"游戏规则改变者",自2014年发布以来彻底改变了Java企业级应用的开发方式。它通过四大核心特性显著提升了开发效率: 自动配置:基于类路径和已有Bean的智能默认配置起步依赖:简化Maven/Gradle依赖管理的Starter…...

MapReduce过程中reduce task的数量是如何确定的?

在Hadoop MapReduce及Hive中&#xff0c;numReduceTasks&#xff08;Reduce任务数量&#xff09;的确定由用户显式设置、框架自动估算、作业特性约束三方面共同决定。以下是详细解析及示例&#xff1a; 1. 用户显式设置 用户可以通过代码或配置参数直接指定Reduce任务数&#…...

【euclid】21 3D包围盒模块(box3d.rs)

box3d.rs文件定义了一个三维轴对齐的矩形框&#xff08;Box3D&#xff09;&#xff0c;使用最小和最大坐标来表示。矩形框在坐标类型&#xff08;T&#xff09;和单位&#xff08;U&#xff09;上是泛型的。代码提供了多种方法来操作和查询矩形框&#xff0c;包括求交集、并集、…...

用selenium+ChromeDriver豆瓣电影 肖申克的救赎 短评爬取(pycharm 爬虫)

一、豆瓣电影 肖申克的救赎 短评url=https://movie.douban.com/subject/1292052/comments 二、基本知识点讲解 1. Selenium 的基本使用 Selenium 是一个用于自动化浏览器操作的库,常用于网页测试和爬虫。代码中使用了以下 Selenium 的核心功能: webdriver.Chrome: 启动 Chr…...

mysql入门操作

目录 一&#xff0c;MySQL简述 1&#xff0c;什么是MySQL 2&#xff0c;什么是SQL 3&#xff0c;SQL的分类 二&#xff0c;数据库的数据存储类型 1&#xff0c;数值类型 2&#xff0c;字符串类型 3&#xff0c;时间和日期类型 三&#xff0c;数据库的基本操作 1&…...

机械臂【逆运动学】

回顾正运动学fk&#xff1a; IK&#xff1a; 几何法 代数法 六轴 456轴交再同一点 有解析解 下列公式为正运动学部分结论 a和d是长度 &#xff0c;theta和alfa是角度 **疑问&#xff1a;alfa00&#xff1f; Z轴互相平行 ** 已知末端要在空间XYZ处如下 绿色项&#x…...

思库拉水厂开业庆典千人大会回顾

近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…...

将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息

将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息&#xff0c;是一种常见的物联网&#xff08;IoT&#xff09;应用场景。这种设计可以实现远程监控和设备的OTA&#xff08;Over-The-Air&#xff09;升级功能。以下是详细的实现步骤和技术细节&#xff1a; 一、系统架构概…...

Netty源码—5.Pipeline和Handler一

大纲 1.Pipeline和Handler的作用和构成 2.ChannelHandler的分类 3.几个特殊的ChannelHandler 4.ChannelHandler的生命周期 5.ChannelPipeline的事件处理 6.关于ChannelPipeline的问题整理 7.ChannelPipeline主要包括三部分内容 8.ChannelPipeline的初始化 9.ChannelPi…...

Vue 中的nextTick函数的原理、作用及使用场景。

大白话Vue 中的nextTick函数的原理、作用及使用场景 在 Vue 里&#xff0c;nextTick 函数是个超实用的工具&#xff0c;它能让你在 DOM 更新完成之后再执行代码。为了能更好地理解 nextTick 函数的原理&#xff0c;咱们就来深入剖析一下。 核心思路 Vue 里的数据更新是异步执…...

详细讲解css的穿透方法

样式穿透&#xff08;CSS穿透&#xff09;的几种方法&#xff0c;包括在Vue中使用::v-deep、>>>、/deep/&#xff0c;还有pointer-events属性。还有关于Shadow DOM和::part伪元素的内容。接下来我会把这些方法分类&#xff0c;并详细说明每种方法的适用场景和注意事项…...

深入理解 tree 命令行工具:目录结构可视化的利器

文章目录 前言1. 什么是 tree 命令&#xff1f;安装 tree 2. tree 的基本用法显示当前目录的树状结构显示指定目录的树状结构 3. tree 的常用选项3.1 显示隐藏文件3.2 排除特定目录或文件3.3 限制递归深度3.4 显示文件大小3.5 显示文件的权限信息3.6 将输出保存到文件 4. 实际应…...

【QA】QT中事件和信号的区别以及联系是什么?

在 Qt 中&#xff0c;事件&#xff08;Event&#xff09; 和 信号与槽&#xff08;Signals & Slots&#xff09; 是 GUI 编程的核心机制&#xff0c;它们既有联系又有本质区别。以下从底层原理、触发流程、代码实现、适用场景四个维度展开对比&#xff0c;并通过大量示例说…...

C++实用函数:find与find_if

本篇来介绍C++中find和find_if函数的使用,通过多个实例来演示。 find用于基础的查找功能,find_if可以实现更复杂的匹配查找条件。 1 find 1.1 函数原型 template <class InputIterator, class T> InputIterator find ( InputIterator first, InputIterator last, c…...

全面了解 Cookies、Session 和 Token

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

酷淘商场项目【从零到一详解】Web端

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…...

如何转移虚拟主机?最新虚拟主机迁移方法

转移网站并不困难&#xff0c;但选择正确的选项和最佳程序才是关键。网站托管服务被视为当今数字世界的基石&#xff0c;全球有18 亿个网站。网站所有者可以通过下载备份、将其上传到新服务器并指向域名来手动转移网站。他们还可以通过新网站托管商的助手请求来移动网站。对于初…...

JVM 核心知识点总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

无人机数据链技术详解,无人机图传数传技术,无人机数据传输技术原理

以下是对无人机数据链技术、无人机图传数传技术以及无人机数据传输技术原理的详细解释&#xff1a; 无人机数据链技术 无人机数据链是任务机、地面控制站之间&#xff0c;以及任务机与中继机、武器系统或其它操作平台之间&#xff0c;按照约定的通信协议和信息传输方式&#…...

【Linux】同步原理剖析及模拟BlockQueue生产消费模型

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

【AVRCP】GOEP互操作性深度解析:蓝牙封面艺术传输的技术实现与演进

目录 一、技术基础&#xff1a;协议架构与核心概念 1.1 GOEP协议体系解析 1.2 IrOBEX协议关键技术 1.3 版本强制性要求 1.4 关键特性对比&#xff08;GOEP v2.0 vs v1.1&#xff09; 1.5 关键技术实现细节 1.6 GOEP v2.0互操作性要求 1.7 IrOBEX v1.5互操作性要求 二、…...

三分钟读懂微服务

一、什么是微服务 微服务&#xff0c;简单来说&#xff0c;就是把一个庞大复杂的软件系统&#xff0c;拆分成一个个小型的、独立的服务模块。打个比方&#xff0c;一个大型商场就如同传统的单体架构软件系统&#xff0c;里面所有的店铺、设施都紧密关联在一起。而微服务架构下…...

《Oracle DBA入门实战:十大高频问题详解与避坑指南》

Oracle DBA 入门作业十问十答 本文为 Oracle DBA 入门作业整理&#xff0c;涵盖工具使用、配置管理及权限控制等核心知识点&#xff0c;适合新手快速上手。 如有疑问或补充&#xff0c;欢迎评论区交流&#xff01; 1. DBA 常用工具有哪些&#xff1f; Oracle Universal Instal…...

深入剖析 Android Compose 框架的自动动画:AnimatedVisibility 与 AnimatedContent(二十四)

深入剖析 Android Compose 框架的自动动画&#xff1a;AnimatedVisibility 与 AnimatedContent 引言 在 Android 应用开发中&#xff0c;动画是提升用户体验的重要手段。它能够让界面元素的显示与隐藏、状态的切换变得更加自然和流畅&#xff0c;避免生硬的变化给用户带来不佳…...

【线程安全问题的原因和方法】【java形式】【图片详解】

在本章节中采用实例图片的方式&#xff0c;以一个学习者的姿态进行描述问题解决问题&#xff0c;更加清晰明了&#xff0c;以及过程中会发问的问题都会一一进行呈现 目录 线程安全演示线程不安全情况图片解释&#xff1a; 将上述代码进行修改【从并行转化成穿行的方式】不会出…...