官网
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 类图