官网
1、概述
Activiti 是一个开源的、以 Java 为中心的业务流程管理(BPM)平台,旨在帮助企业自动化和管理复杂的业务流程。其核心功能包括工作流管理、任务分配、事件处理、流程监控和集成等。
1.1、主要功能和特点
流程设计和建模:
支持 BPMN 2.0 标准,允许用户通过图形化界面设计和建模业务流程。 提供用户友好的流程设计器,可以直观地定义任务、事件、网关和流程路径。 流程执行: Activiti 可以在各种环境中执行定义的流程,包括嵌入式应用程序和云环境。 通过任务和事件的管理,自动处理业务逻辑,确保流程的顺利执行。 任务管理:
提供任务分配和管理功能,支持手动和自动任务分配。 任务可以分配给特定用户或用户组,并支持任务的状态跟踪和更新。 集成和扩展:
提供丰富的 API,支持与外部系统的集成,如 ERP、CRM 和邮件服务等。 可以通过 Java 代码或脚本扩展流程行为,实现定制化业务逻辑。 监控和分析:
实时监控流程执行情况,提供关键指标和报告,帮助用户了解流程性能和瓶颈。 支持历史数据的存储和查询,便于流程的审计和分析。
1.2、BPM
BPM(Business Process Management),即业务流程管理,是一种规范化的构造端到端的业务流程,以持续的提高组织业务效率。常见商业管理教育如EMBA、MBA等均将BPM包含在内。
1.3、BPM 软件
BPM软件用于设计、执行、监控和优化业务流程。它帮助企业提高效率、降低成本并确保流程的合规性。 根据企业中业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。 通过BPM软件对企业内部及外部的业务流程的整个生命周期进行建模、自动化、管理监控和优化,使企业成本降低,利润得以大幅提升。
1.4、BPMN
业务流程建模与标注 (BPMN, Business Process Model and Notation) 是一种图形化表示法,用于描述和分析业务流程。BPMN 提供了一种标准化的方法来表示企业流程,使不同的利益相关者(包括业务分析师、流程设计师和技术开发人员)能够以一致和清晰的方式理解和交流业务流程。
流程图基本元素:
事件 (Event): 圆形符号,表示流程中的某个触发点或结果。例如,开始事件、结束事件、中间事件。 活动 (Activity): 圆角矩形,表示流程中的一个操作或任务。例如,用户任务、服务任务、脚本任务。 网关 (Gateway): 菱形符号,表示流程路径的分支或合并。例如,并行网关、排他网关、包含网关。 连接对象 (Connecting Objects): 包括顺序流、消息流和关联,用于连接不同的流程元素。 泳道 (Swimlane): 包括泳道和池,用于划分流程的责任区域,表示不同的角色或部门。 扩展元素:
数据对象 (Data Object): 表示在流程中使用或产生的数据。 数据存储 (Data Store): 表示持续存在的数据存储位置。 消息 (Message): 表示参与者之间传递的信息。 BPMN 的优势
标准化:
BPMN 是由对象管理集团 (OMG) 标准化的,这意味着它具有广泛的行业认可和支持。 通过标准化符号和表示法,BPMN 促进了不同企业和系统之间的流程沟通和理解。 图形化和直观性:
BPMN 的图形化表示法使得复杂的业务流程变得直观和易于理解。 不同的符号和图形元素使得业务流程的各个方面(如任务、事件、网关)一目了然。 桥接业务与 IT:
BPMN 使得业务分析师和技术开发人员能够使用同一种语言进行交流和协作,从而提高了业务需求和技术实现之间的一致性。 支持模拟和分析:
BPMN 模型不仅可以用于流程设计,还可以用于流程的模拟和分析,从而帮助企业优化流程效率和识别瓶颈。
2、存储表:
字段 说明 LOG_NR_ 日志记录的唯一标识符,自动递增,作为主键。 TYPE_ 事件类型,描述了该日志记录的类型,例如启动事件、任务完成事件等。 PROC_DEF_ID_ 关联的流程定义 ID,指向流程定义表中的记录,用于标识该事件属于哪个流程定义。 PROC_INST_ID_ 关联的流程实例 ID,指向流程实例表中的记录,用于标识该事件属于哪个流程实例。 EXECUTION_ID_ 关联的执行 ID,指向执行实例表中的记录,用于标识该事件属于哪个执行路径。 TASK_ID_ 关联的任务 ID,指向任务表中的记录,用于标识该事件涉及到哪个任务。 TIME_STAMP_ 事件发生的时间戳,精确到毫秒,记录事件的发生时间。 USER_ID_ 触发事件的用户 ID,记录哪个用户触发了该事件。 DATA_ 事件数据,存储为二进制大对象,包含事件的详细信息。 LOCK_OWNER_ 锁定该事件的所有者,用于并发控制,记录哪个进程或线程锁定了该事件。 LOCK_TIME_ 事件被锁定的时间,用于并发控制,记录事件被锁定的时间。 IS_PROCESSED_ 事件是否已处理的标志,0 表示未处理,1 表示已处理。
ACT_RE_DEPLOYMENT: 存储部署信息。
字段 说明 ID_ 主键 NAME_ 用来存储部署的名称或描述信息 CATEGORY_ 用来标识部署的类别或分类信息 KEY_ 用来标识部署的关键信息 TENANT_ID_ 用来标识部署所属的租户标识 DEPLOY_TIME_ 部署时间 ENGINE_VERSION_ 用来存储引擎的版本信息 PROJECT_RELEASE_VERSION_ 用来存储项目发布的版本信息 VERSION_ 用来存储部署的版本信息
ACT_GE_BYTEARRAY: 存储字节数组数据。
字段 说明 ID_ 唯一标识符用作主键 REV_ 版本号 NAME_ 部署的文件名称(BPMN文件名称) DEPLOYMENT_ID_ 外键,关联 ACT_RE_DEPLOYMENT表中的 ID_ 列。 BYTES_ 用来存储大型二进制数据。(BPMN文件内容) GENERATED_ 判断是否由系统生成
字段 说明 ID_ 主键,唯一标识 REV_ 标识版本号 NAME_ 模型名称 KEY_ 用来标识模型的关键信息 CATEGORY_ 用来标识模型的类别或分类信息 CREATE_TIME_ 模型的创建时间 LAST_UPDATE_TIME_ 模型最后修改时间 VERSION_ 版本信息 META_INFO_ 用来存储模型的元信息 DEPLOYMENT_ID_ 外键,关联 ACT_RE_DEPLOYMENT 表的主键ID_ EDITOR_SOURCE_VALUE_ID_ 外键,关联 ACT_GE_BYTEARRAY 表的主键ID_ EDITOR_SOURCE_EXTRA_VALUE_ID_ 外键,关联 ACT_GE_BYTEARRAY 表的主键ID_ TENANT_ID_ 用来标识模型所属的租户
ACT_RE_PROCDEF: 存储流程定义信息。
字段 说明 ID_ 主键唯一标识 REV_ 代表某个版本的修订号 CATEGORY_ 用来标识流程定义的类别或分类信息(流程文件targetNamespace的属性值) NAME_ 部署的流程名称(流程文件process元素的name属性值) KEY_ 用来标识流程定义的关键信息(流程文件process元素的id属性值) VERSION_ 存储流程定义的版本号 DEPLOYMENT_ID_ 部署版本ID值,关联 ACT_RE_DEPLOYMENT表ID_ RESOURCE_NAME_ 用来存储资源的名称 DGRM_RESOURCE_NAME_ 用来存储流程图资源的名称 DESCRIPTION_ 用来存储流程定义的描述信息 HAS_START_FORM_KEY_ 表示是否有启动表单键的标志 HAS_GRAPHICAL_NOTATION_ 表示是否有图形符号的标志 SUSPENSION_STATE_ 表示流程定义的挂起状态 (1激活,2挂起) TENANT_ID_ 用来标识流程定义所属的租户 ENGINE_VERSION_ 用来存储引擎的版本信息
ACT_PROCDEF_INFO: 存储流程定义扩展信息。
字段 说明 ID_ 主键、唯一标识 PROC_DEF_ID_ 外键,关联 ACT_RE_PROCDEF 表 ID_ REV_ 代表某个版本的修订号 INFO_JSON_ID_ 外键,关联 ACT_GE_BYTEARRAY 表 ID_
ACT_GE_PROPERTY: 存储引擎属性和配置信息。
字段 说明 NAME_ 主键,作为唯一标识 VALUE_ 用于存储与名称相关联的值 REV_ 代表某个版本的修订号
3、运行时表:
ACT_RU_EXECUTION: 存储流程实例和执行信息。
字段 说明 ID_ 主键,唯一标识 REV_ 记录版本号,用于处理并发更新 PROC_INST_ID_ 关联的流程实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) BUSINESS_KEY_ 业务键,用于将业务数据与流程实例关联 PARENT_ID_ 父执行实例的唯一标识符 (外键,关联 act_ru_execution 表的ID_) PROC_DEF_ID_ 关联的流程定义的唯一标识符 (外键,关联 act_re_procdef 表的ID_) SUPER_EXEC_ 上级执行实例的唯一标识符 (外键,关联 act_ru_execution 表的ID_) ROOT_PROC_INST_ID_ 根流程实例的唯一标识符 ACT_ID_ 当前执行的活动节点的标识符 IS_ACTIVE_ 标识当前执行是否处于激活状态 IS_CONCURRENT_ 标识当前执行是否是并发执行的一部分 IS_SCOPE_ 标识当前执行是否是一个作用域 IS_EVENT_SCOPE_ 标识当前执行是否是事件作用域 IS_MI_ROOT_ 标识当前执行是否是多实例的根 SUSPENSION_STATE_ 标识当前执行的挂起状态 CACHED_ENT_STATE_ 缓存的实体状态 TENANT_ID_ 租户标识符 NAME_ 当前执行实例的名称 START_TIME_ 当前执行实例的开始时间 START_USER_ID_ 启动当前执行实例的用户标识符 LOCK_TIME_ 当前执行实例的锁定时间 IS_COUNT_ENABLED_ 标识是否启用了计数 EVT_SUBSCR_COUNT_ 事件订阅数量 TASK_COUNT_ 任务数量 JOB_COUNT_ 工作数量 TIMER_JOB_COUNT_ 定时器工作数量 SUSP_JOB_COUNT_ 挂起工作数量 DEADLETTER_JOB_COUNT_ 死信工作数量 VAR_COUNT_ 变量数量 ID_LINK_COUNT_ 标识链接数量
字段 说明 ID_ 主键,任务的唯一标识符 REV_ 记录版本号,用于处理并发更新 EXECUTION_ID_ 关联的执行实例的唯一标识符 (外键,关联 act_ru_execution 表的ID_) PROC_INST_ID_ 关联的流程实例的唯一标识符 (外键,关联 act_ru_execution 表的ID_) PROC_DEF_ID_ 关联的流程定义的唯一标识符(外键,关联 act_re_procdef 表的ID_) NAME_ 任务的名称 PARENT_TASK_ID_ 父任务的唯一标识符 (自关联 ) DESCRIPTION_ 任务的描述 TASK_DEF_KEY_ 任务定义的键 OWNER_ 任务的所有者 (存在委托行为才会有值) ASSIGNEE_ 任务的受理人 DELEGATION_ 任务的委托状态 PRIORITY_ 任务的优先级 CREATE_TIME_ 任务的创建时间 DUE_DATE_ 任务的截止日期 CATEGORY_ 任务的类别 SUSPENSION_STATE_ 任务的挂起状态 TENANT_ID_ 租户标识符 FORM_KEY_ 关联的表单键 CLAIM_TIME_ 任务的认领时间
ACT_RU_IDENTITYLINK: 存储运行时的用户组、用户和任务之间的关联信息。
字段 说明 ID_ 身份链接的唯一标识符 REV_ 记录版本号,用于处理并发更新 GROUP_ID_ 关联的用户组标识符 TYPE_ 身份链接的类型(受理人(assignee),候选人(candidate),所有者(owner)、起动器(starter)、参与者(participant)) USER_ID_ 关联的用户标识符 TASK_ID_ 关联的任务标识符(外键,关联 act_ru_task 表的ID_) PROC_INST_ID_ 关联的流程实例标识符(外键,关联 act_ru_execution 表ID_) PROC_DEF_ID_ 关联的流程定义标识符(外键,关联 act_re_procdef 表ID_)
ACT_RU_VARIABLE: 存储运行时变量。
字段 说明 ID_ 变量的唯一标识符 REV_ 记录版本号,用于处理并发更新 TYPE_ 变量的数据类型 NAME_ 变量的名称 EXECUTION_ID_ 关联的执行实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROC_INST_ID_ 关联的流程实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) TASK_ID_ 关联的任务ID标识符 BYTEARRAY_ID_ 关联的字节数组标识符 DOUBLE_ 变量的双精度浮点值 LONG_ 变量的长整型值 TEXT_ 变量的文本值 TEXT2_ 变量的附加文本值
字段 说明 ID_ 任务的唯一标识符 REV_ 记录版本号,用于处理并发更新 TYPE_ 任务的类型 LOCK_EXP_TIME_ 任务的锁定过期时间 LOCK_OWNER_ 任务锁定的所有者 EXCLUSIVE_ 是否为排他任务 EXECUTION_ID_ 关联的执行实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROCESS_INSTANCE_ID_ 关联的流程实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROC_DEF_ID_ 关联的流程定义的唯一标识符(外键,关联 act_re_procdef 表的ID_) RETRIES_ 重试次数 EXCEPTION_STACK_ID_ 关联的异常堆栈的唯一标识符(外键,关联 act_ge_bytearray 表的ID_) EXCEPTION_MSG_ 异常消息 DUEDATE_ 任务的到期时间 REPEAT_ 重复配置 HANDLER_TYPE_ 处理器类型 HANDLER_CFG_ 处理器配置 TENANT_ID_ 租户标识符
ACT_RU_TIMER_JOB: 存储定时器作业信息。
字段 说明 ID_ 定时任务的唯一标识符 REV_ 记录版本号,用于处理并发更新 TYPE_ 定时任务的类型 LOCK_EXP_TIME_ 任务的锁定过期时间 LOCK_OWNER_ 任务锁定的所有者 EXCLUSIVE_ 是否为排他任务 EXECUTION_ID_ 关联的执行实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROCESS_INSTANCE_ID_ 关联的流程实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROC_DEF_ID_ 关联的流程定义的唯一标识符(外键,关联 act_re_procdef 表的ID_) RETRIES_ 重试次数 EXCEPTION_STACK_ID_ 关联的异常堆栈的唯一标识符(外键,关联 act_ge_bytearray 表ID_) EXCEPTION_MSG_ 异常消息 DUEDATE_ 任务的到期时间 REPEAT_ 重复配置 HANDLER_TYPE_ 处理器类型 HANDLER_CFG_ 处理器配置 TENANT_ID_ 租户标识符
ACT_RU_SUSPENDED_JOB: 存储暂停的作业信息。
字段 说明 ID_ 被挂起任务的唯一标识符 REV_ 记录版本号,用于处理并发更新 TYPE_ 任务的类型 EXCLUSIVE_ 是否为排他任务 EXECUTION_ID_ 关联的执行实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROCESS_INSTANCE_ID_ 关联的流程实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROC_DEF_ID_ 关联的流程定义的唯一标识符(外键,关联 act_re_procdef 表的ID_) RETRIES_ 重试次数 EXCEPTION_STACK_ID_ 关联的异常堆栈的唯一标识符(外键,关联 act_ge_bytearray 表的ID_) EXCEPTION_MSG_ 异常消息 DUEDATE_ 任务的到期时间 REPEAT_ 重复配置 HANDLER_TYPE_ 处理器类型 HANDLER_CFG_ 处理器配置 TENANT_ID_ 租户标识符
ACT_RU_DEADLETTER_JOB: 存储死信作业信息。
字段 说明 ID_ 死信任务的唯一标识符 REV_ 记录版本号,用于处理并发更新 TYPE_ 任务的类型 EXCLUSIVE_ 是否为排他任务 EXECUTION_ID_ 关联的执行实例的唯一标识符(外键,关联 act_ru_execution 表ID_) PROCESS_INSTANCE_ID_ 关联的流程实例的唯一标识符(外键,关联 act_ru_execution 表ID_) PROC_DEF_ID_ 关联的流程定义的唯一标识符(外键,关联 act_re_procdef 表ID_) EXCEPTION_STACK_ID_ 关联的异常堆栈的唯一标识符(外键,关联 act_ge_bytearray 表的ID_) EXCEPTION_MSG_ 异常消息 DUEDATE_ 任务的到期时间 REPEAT_ 重复配置 HANDLER_TYPE_ 处理器类型 HANDLER_CFG_ 处理器配置 TENANT_ID_ 租户标识符
ACT_RU_EVENT_SUBSCR: 存储事件订阅信息。
字段 说明 ID_ 事件订阅的唯一标识符 REV_ 记录版本号,用于处理并发更新 EVENT_TYPE_ 事件的类型 EVENT_NAME_ 事件的名称 EXECUTION_ID_ 关联的执行实例的唯一标识符(外键,关联 act_ru_execution 表的ID_) PROC_INST_ID_ 关联的流程实例的唯一标识符 ACTIVITY_ID_ 事件所属的活动标识符 CONFIGURATION_ 事件的配置信息 CREATED_ 创建时间,默认值为当前时间戳 PROC_DEF_ID_ 关联的流程定义的唯一标识符 TENANT_ID_ 租户标识符
ACT_RU_INTEGRATION: 存储集成信息。
字段 说明 ID_ 集成记录的唯一标识符 EXECUTION_ID_ 关联的执行实例的唯一标识符 PROCESS_INSTANCE_ID_ 关联的流程实例的唯一标识符 PROC_DEF_ID_ 关联的流程定义的唯一标识符 FLOW_NODE_ID_ 流程节点的唯一标识符 CREATED_DATE_ 创建时间戳,默认值为当前时间,并在更新时自动更新为当前时间戳
4、历史表:
ACT_HI_PROCINST: 存储历史流程实例。
字段 说明 ID_ 历史流程实例的唯一标识符 PROC_INST_ID_ 流程实例的唯一标识符 BUSINESS_KEY_ 业务键,通常用于关联业务数据 PROC_DEF_ID_ 流程定义的唯一标识符 START_TIME_ 流程实例的开始时间 END_TIME_ 流程实例的结束时间 DURATION_ 流程实例的持续时间,以毫秒为单位 START_USER_ID_ 启动流程实例的用户标识符 START_ACT_ID_ 启动活动的标识符 END_ACT_ID_ 结束活动的标识符 SUPER_PROCESS_INSTANCE_ID_ 父流程实例的唯一标识符(如果当前实例是子流程的一部分) DELETE_REASON_ 删除原因,记录流程实例被删除的原因 TENANT_ID_ 租户标识符 NAME_ 流程实例的名称
ACT_HI_ACTINST: 存储历史活动实例。
字段 说明 ID_ 历史活动实例的唯一标识符 PROC_DEF_ID_ 流程定义的唯一标识符 PROC_INST_ID_ 流程实例的唯一标识符 EXECUTION_ID_ 执行实例的唯一标识符 ACT_ID_ 活动节点的唯一标识符 TASK_ID_ 任务的唯一标识符 CALL_PROC_INST_ID_ 调用子流程实例的唯一标识符(如果当前实例是子流程的一部分) ACT_NAME_ 活动节点的名称 ACT_TYPE_ 活动节点的类型(例如用户任务、服务任务等) ASSIGNEE_ 活动任务的受理人 START_TIME_ 活动实例的开始时间 END_TIME_ 活动实例的结束时间 DURATION_ 活动实例的持续时间,以毫秒为单位 DELETE_REASON_ 删除原因,记录活动实例被删除的原因 TENANT_ID_ 租户标识符
ACT_HI_TASKINST: 存储历史任务实例。
字段 说明 ID_ 历史任务实例的唯一标识符 PROC_DEF_ID_ 流程定义的唯一标识符 TASK_DEF_KEY_ 任务定义的键 PROC_INST_ID_ 流程实例的唯一标识符 EXECUTION_ID_ 执行实例的唯一标识符 NAME_ 任务的名称 PARENT_TASK_ID_ 父任务的唯一标识符 DESCRIPTION_ 任务的描述 OWNER_ 任务的所有者 ASSIGNEE_ 任务的受理人 START_TIME_ 任务的开始时间 CLAIM_TIME_ 任务的认领时间 END_TIME_ 任务的结束时间 DURATION_ 任务的持续时间,以毫秒为单位 DELETE_REASON_ 删除原因,记录任务实例被删除的原因 PRIORITY_ 任务的优先级 DUE_DATE_ 任务的截止日期 FORM_KEY_ 任务的表单键 CATEGORY_ 任务的类别 TENANT_ID_ 租户标识符
ACT_HI_VARINST: 存储历史变量实例。
字段 说明 ID_ 历史变量实例的唯一标识符 PROC_INST_ID_ 流程实例的唯一标识符 EXECUTION_ID_ 执行实例的唯一标识符 TASK_ID_ 任务的唯一标识符 NAME_ 变量的名称 VAR_TYPE_ 变量的类型 REV_ 变量的版本号 BYTEARRAY_ID_ 字节数组的唯一标识符(如果变量是字节数组类型) DOUBLE_ 变量的 double 类型值 LONG_ 变量的 long 类型值 TEXT_ 变量的文本值 TEXT2_ 变量的附加文本值 CREATE_TIME_ 变量的创建时间 LAST_UPDATED_TIME_ 变量的最后更新时间
字段 说明 ID_ 历史详细信息的唯一标识符 TYPE_ 详细信息的类型 PROC_INST_ID_ 流程实例的唯一标识符 EXECUTION_ID_ 执行实例的唯一标识符 TASK_ID_ 任务的唯一标识符 ACT_INST_ID_ 活动实例的唯一标识符 NAME_ 变量的名称 VAR_TYPE_ 变量的类型 REV_ 变量的版本号 TIME_ 记录的时间戳 BYTEARRAY_ID_ 字节数组的唯一标识符(如果变量是字节数组类型) DOUBLE_ 变量的 double 类型值 LONG_ 变量的 long 类型值 TEXT_ 变量的文本值 TEXT2_ 变量的附加文本值
ACT_HI_ATTACHMENT: 存储历史附件信息。
字段 说明 ID_ 附件的唯一标识符 REV_ 附件的版本号 USER_ID_ 上传附件的用户标识符 NAME_ 附件的名称 DESCRIPTION_ 附件的描述 TYPE_ 附件的类型 TASK_ID_ 关联的任务标识符 PROC_INST_ID_ 关联的流程实例标识符 URL_ 附件的 URL CONTENT_ID_ 附件内容的标识符 TIME_ 附件创建的时间戳
ACT_HI_COMMENT: 存储历史评论信息。
字段 说明 ID_ 评论的唯一标识符 TYPE_ 评论的类型 TIME_ 评论创建的时间戳 USER_ID_ 发布评论的用户标识符 TASK_ID_ 关联的任务标识符 PROC_INST_ID_ 关联的流程实例标识符 ACTION_ 评论的操作类型 MESSAGE_ 评论的消息内容 FULL_MSG_ 评论的完整消息内容,存储为长二进制大对象 (longblob)
ACT_HI_IDENTITYLINK: 存储历史用户组、用户和任务之间的关联信息。
字段 说明 ID_ 唯一标识符 GROUP_ID_ 关联的用户组标识符 TYPE_ 标识类型(如候选人、参与者等) USER_ID_ 关联的用户标识符 TASK_ID_ 关联的任务标识符 PROC_INST_ID_ 关联的流程实例标识符
5、UML 类图