Flowable基础表结构
工作流程的相关操作都是操作存储在对应的表结构中,为了能更好的弄清楚Flowable的实现原理和细节,我们有必要先弄清楚Flowable的相关表结构及其作用。在Flowable中的表结构在初始化的时候会创建相关表结构,具体如下:
- ACT_EVT:用于记录工作流引擎在运行过程中产生的各种事件信息。
- ACT_GE:
GE
表示 general。 通用数据, 用于不同场景下 - ACT_HI:
HI
表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。 - ACT_ID:
ID
表示identity(组织机构)。这些表包含标识的信息,如用户,用户组,等等。 - ACT_PRODEF_:表⽰这都是跟记录流程定义相关的表。
- ACT_RE :
RE
表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 - ACT_RU:
RU
表示 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> 输入一个年份和月份,输出该月的天数 1.3.5.7.8.10.12 -- 31天 闰年判断: year % 400 0 || (year % 4 0 && year % 100 ! 0) 输入字符串,反转输出 #include<iostream&g…...
软件公司高新技术企业代办:机遇与陷阱并存-优雅草卓伊凡
软件公司高新技术企业代办:机遇与陷阱并存-优雅草卓伊凡 在科技飞速发展的当下,软件公司如雨后春笋般涌现,众多企业渴望通过申请高新技术企业来获得政策支持与发展助力。随之而来的,是高新技术企业代办业务的兴起。然而ÿ…...
C#中3维向量的实现
c#中默认不带库三维向量,需要自己安装第三方库,或者可以手动实现一个简易的三维向量。 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
腾龙边缘计算网关一体机凭借其强大的性能和丰富的功能,为企业提供了一种高效、灵活的解决方案。本文将详细介绍如何使用腾龙边缘计算网关一体机内置的AIoTedgeNodeRED接入西门子PLC,实现数据的采集、处理与传输。 一、硬件准备与环境搭建 在开始之前&am…...
基于MLA的人类语音情感分类
《DeepSeek大模型高性能核心技术与多模态融合开发(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 随着信息技术的不断发展,如何让机器识别人类情绪,这个问题受到了学术界和工业界的广泛关注。目前,情绪识…...
Codeforces Round 1012 (Div. 2)
AB略 C 没看懂题意,翻译的问题。t0代表这个人必须找一个没有人的桌子且座位离他最近,t1代表这个人只要找一个空座位就可以了。一个桌子四个座位,t0肯定会坐左下角的那个。首先建立两个小根堆q1代表左下角的座位,q2代表一个桌子的…...
FPGA时钟约束
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、Create_clock 前言 时钟周期约束,就是对时钟进行约束。 一、Create_clock create_clock -name <name> -period <period> -waveform …...
二分查找------练习3
1. 题目 2. 思路和题解 这道题看到这个复杂度,就想到应该是使用二分查找进行求解。为了使二分查找的次数尽可能的少,我们需要对较短的数组进行查找,假设就在nums1上进行操作,因此在开始时,要对两个数组的长度进行一个…...
拆解美团2024年报,业务协同、生态共赢、科技创新
从早期的千团大战开始,到后来外卖和社区团购们的激烈角逐,再到现在即时零售战场的群雄争霸,本地生活的硝烟从来都没有真正消散过。 作为本地生活服务领域的“领头羊”——美团,也一直都是其他平台们的挑战目标,几乎所…...
EMS小车技术特点与优势:高效灵活的自动化输送解决方案
北成新控伺服技术丨EMS小车调试视频 EMS小车是一种基于单轨运行的电动输送系统,通过电力驱动实现物料的高效搬运和输送,具有高效灵活、节能环保、多功能集成、行业适配性强等特性,广泛应用于汽车制造、工程机械、家电生产、仓储物流等行业自动…...
GESP2025年3月认证解析
GESP一级 一、单选题 答案:D 解析:DeepSeek 是字节跳动公司开发的人工智能,它具备生成文本的能力,所以可以根据《哪吒 2》的场景生成剧情脚本。A 选项中《哪吒 2》是贺岁片,并非新型操作系统;B 选项 Deep…...
尝试在软考62天前开始成为软件设计师-信息系统安全
安全属性 保密性:最小授权原则(能干活的最小权限)、防暴露(隐藏)、信息加密、物理保密完整性(防篡改):安全协议、校验码、密码校验、数字签名、公证 可用性:综合保障( IP过滤、业务流控制、路由选择控制、审计跟踪)不可抵赖性:数字签名 对称加密 DES :替换移位 3重DESAESR…...
Dify - 架构、部署、扩展与二次开发指南
本文详细解析 Dify 的架构、部署流程、高可用中间件的独立部署方法,以及二次开发流程,帮助开发者更高效地管理和扩展 Dify。 1. 本地DEMO部署 安装Docker,执行下面脚本,可能需要配置镜像。 git clone https://github.com/langge…...
用DrissionPage升级网易云音乐爬虫:更稳定高效地获取歌单音乐(附原码)
一、传统爬虫的痛点分析 原代码使用requests re的方案存在以下局限性: 动态内容缺失:无法获取JavaScript渲染后的页面内容 维护成本高:网页结构变化需频繁调整正则表达式 反爬易触发:简单请求头伪造容易被识别 资源消耗大&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以上是两种方法,前面是你的IP地址,后…...
Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术
Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术 在深度学习的精密机械中,有些细微的调整机制往往被视为理所当然,却实际上蕴含着深刻的数学洞察和巧妙的工程智慧。今天,我们将探讨两个看似独立却本质相通的机制ÿ…...
python打包辅助工具
python打包辅助工具 PyInstaller 是一个非常流行的 Python 应用程序打包工具,它可以将 Python 脚本及其依赖项打包成独立的可执行文件,方便在没有 Python 环境的机器上运行。关于PyInstaller,可参见:https://blog.csdn.net/cnds1…...
jangow靶机攻略
配置网卡 VMware需要配置,不配置扫不到ip,VirtualBox正常打开ip会直接显示出来 网卡配置都改成NAT 打开虚拟机,第一个框选第二行,回车 选第二个,按e键 进入下一个框后,将ro 后面的修改为 rw signin init/bin/bash 按…...
【大模型LLM第十四篇】Agent学习之anthropic-quickstarts Agent
前言 对于anthropic api的快速使用,在github上有几个example Customer Support Agent:由 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 标准:RS485 是一种串行通信标准,也称为TIA-485标准,主要用于数据传输。它规定了物理层的电气特性,与数据格式…...
Spring Boot深度解析:从核心原理到最佳实践
一、Spring Boot概述 Spring Boot作为Spring生态中的"游戏规则改变者",自2014年发布以来彻底改变了Java企业级应用的开发方式。它通过四大核心特性显著提升了开发效率: 自动配置:基于类路径和已有Bean的智能默认配置起步依赖:简化Maven/Gradle依赖管理的Starter…...
MapReduce过程中reduce task的数量是如何确定的?
在Hadoop MapReduce及Hive中,numReduceTasks(Reduce任务数量)的确定由用户显式设置、框架自动估算、作业特性约束三方面共同决定。以下是详细解析及示例: 1. 用户显式设置 用户可以通过代码或配置参数直接指定Reduce任务数&#…...
【euclid】21 3D包围盒模块(box3d.rs)
box3d.rs文件定义了一个三维轴对齐的矩形框(Box3D),使用最小和最大坐标来表示。矩形框在坐标类型(T)和单位(U)上是泛型的。代码提供了多种方法来操作和查询矩形框,包括求交集、并集、…...
用selenium+ChromeDriver豆瓣电影 肖申克的救赎 短评爬取(pycharm 爬虫)
一、豆瓣电影 肖申克的救赎 短评url=https://movie.douban.com/subject/1292052/comments 二、基本知识点讲解 1. Selenium 的基本使用 Selenium 是一个用于自动化浏览器操作的库,常用于网页测试和爬虫。代码中使用了以下 Selenium 的核心功能: webdriver.Chrome: 启动 Chr…...
mysql入门操作
目录 一,MySQL简述 1,什么是MySQL 2,什么是SQL 3,SQL的分类 二,数据库的数据存储类型 1,数值类型 2,字符串类型 3,时间和日期类型 三,数据库的基本操作 1&…...
机械臂【逆运动学】
回顾正运动学fk: IK: 几何法 代数法 六轴 456轴交再同一点 有解析解 下列公式为正运动学部分结论 a和d是长度 ,theta和alfa是角度 **疑问:alfa00? Z轴互相平行 ** 已知末端要在空间XYZ处如下 绿色项&#x…...
思库拉水厂开业庆典千人大会回顾
近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…...
将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息
将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息,是一种常见的物联网(IoT)应用场景。这种设计可以实现远程监控和设备的OTA(Over-The-Air)升级功能。以下是详细的实现步骤和技术细节: 一、系统架构概…...
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 里,nextTick 函数是个超实用的工具,它能让你在 DOM 更新完成之后再执行代码。为了能更好地理解 nextTick 函数的原理,咱们就来深入剖析一下。 核心思路 Vue 里的数据更新是异步执…...
详细讲解css的穿透方法
样式穿透(CSS穿透)的几种方法,包括在Vue中使用::v-deep、>>>、/deep/,还有pointer-events属性。还有关于Shadow DOM和::part伪元素的内容。接下来我会把这些方法分类,并详细说明每种方法的适用场景和注意事项…...
深入理解 tree 命令行工具:目录结构可视化的利器
文章目录 前言1. 什么是 tree 命令?安装 tree 2. tree 的基本用法显示当前目录的树状结构显示指定目录的树状结构 3. tree 的常用选项3.1 显示隐藏文件3.2 排除特定目录或文件3.3 限制递归深度3.4 显示文件大小3.5 显示文件的权限信息3.6 将输出保存到文件 4. 实际应…...
【QA】QT中事件和信号的区别以及联系是什么?
在 Qt 中,事件(Event) 和 信号与槽(Signals & Slots) 是 GUI 编程的核心机制,它们既有联系又有本质区别。以下从底层原理、触发流程、代码实现、适用场景四个维度展开对比,并通过大量示例说…...
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
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
酷淘商场项目【从零到一详解】Web端
✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…...
如何转移虚拟主机?最新虚拟主机迁移方法
转移网站并不困难,但选择正确的选项和最佳程序才是关键。网站托管服务被视为当今数字世界的基石,全球有18 亿个网站。网站所有者可以通过下载备份、将其上传到新服务器并指向域名来手动转移网站。他们还可以通过新网站托管商的助手请求来移动网站。对于初…...
JVM 核心知识点总结
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
无人机数据链技术详解,无人机图传数传技术,无人机数据传输技术原理
以下是对无人机数据链技术、无人机图传数传技术以及无人机数据传输技术原理的详细解释: 无人机数据链技术 无人机数据链是任务机、地面控制站之间,以及任务机与中继机、武器系统或其它操作平台之间,按照约定的通信协议和信息传输方式&#…...
【Linux】同步原理剖析及模拟BlockQueue生产消费模型
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
【AVRCP】GOEP互操作性深度解析:蓝牙封面艺术传输的技术实现与演进
目录 一、技术基础:协议架构与核心概念 1.1 GOEP协议体系解析 1.2 IrOBEX协议关键技术 1.3 版本强制性要求 1.4 关键特性对比(GOEP v2.0 vs v1.1) 1.5 关键技术实现细节 1.6 GOEP v2.0互操作性要求 1.7 IrOBEX v1.5互操作性要求 二、…...
三分钟读懂微服务
一、什么是微服务 微服务,简单来说,就是把一个庞大复杂的软件系统,拆分成一个个小型的、独立的服务模块。打个比方,一个大型商场就如同传统的单体架构软件系统,里面所有的店铺、设施都紧密关联在一起。而微服务架构下…...
《Oracle DBA入门实战:十大高频问题详解与避坑指南》
Oracle DBA 入门作业十问十答 本文为 Oracle DBA 入门作业整理,涵盖工具使用、配置管理及权限控制等核心知识点,适合新手快速上手。 如有疑问或补充,欢迎评论区交流! 1. DBA 常用工具有哪些? Oracle Universal Instal…...
深入剖析 Android Compose 框架的自动动画:AnimatedVisibility 与 AnimatedContent(二十四)
深入剖析 Android Compose 框架的自动动画:AnimatedVisibility 与 AnimatedContent 引言 在 Android 应用开发中,动画是提升用户体验的重要手段。它能够让界面元素的显示与隐藏、状态的切换变得更加自然和流畅,避免生硬的变化给用户带来不佳…...
【线程安全问题的原因和方法】【java形式】【图片详解】
在本章节中采用实例图片的方式,以一个学习者的姿态进行描述问题解决问题,更加清晰明了,以及过程中会发问的问题都会一一进行呈现 目录 线程安全演示线程不安全情况图片解释: 将上述代码进行修改【从并行转化成穿行的方式】不会出…...