Flowable 是一个使用 Java 编写的轻量级业务流程引擎。Flowable 流程引擎可用于部署 BPMN 2.0 流程定义(用于定义流程的行业 XML 标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。
Flowable 术语介绍
流程定义
Flowable 引擎需要流程定义为 BPMN 2.0 格式,这是一个业界广泛接受的 XML 标准。它通过定义元素和边界构成流程图,其规定着 Flowable 的运行逻辑。
示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
xmlns:flowable="http://flowable.org/bpmn"
typeLanguage="http://www.w3.org/2001/XMLSchema"
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://www.flowable.org/processdef">
<process id="holidayRequest" name="Holiday Request" isExecutable="true" flowable:async="true">
<startEvent id="startEvent" />
<sequenceFlow sourceRef="startEvent" targetRef="serviceTask"/>
<serviceTask id="serviceTask" name="ServiceTask" flowable:class="ServiceTaskDelegate1" flowable:async="true" />
<sequenceFlow sourceRef="serviceTask" targetRef="endEvent"/>
<endEvent id="endEvent"/>
</process>
</definitions>
其代表的流程图如下:
流程实例
一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。 它记录了一个流程从开始到结束的状态,并通过其他的一致性功能保证其可以完整地执行一个流程。
执行实例
对于一个流程实例执行的过程中,会途径多个节点,如有网关,还会有分支节点。因此 Flowable 提出了一个执行实例的概念,即在一个执行的生命周期内会有一个父执行 ID,以及相关联的一个或多个子执行 ID。有如下两种情况:
- - B - - -
| ↓
Start → A → + - C - → E - → End
| ↑
- - D - - -
情况1: 只途经单节点
如 Start → A 的执行过程,对于执行实例来说会有两条记录
EXECUTION_ID | PROC_INST_ID | EXECUTION_PARENT_ID | ACT_ID |
---|---|---|---|
1 | 11500 | NULL | NULL |
2 | 11500 | 1 | A |
情况2: 途径并行网关
EXECUTION_ID | PROC_INST_ID | EXECUTION_PARENT_ID | ACT_ID |
---|---|---|---|
1 | 11500 | NULL | NULL |
2 | 11500 | 1 | B |
3 | 11500 | 1 | C |
4 | 11500 | 1 | D |
任务
任务其实就是需要用户处理的任务,其在 XML 元素的名称为 UserTask,当然也可以通过在 ServiceTask 中调用 API 生成。每个任务都需要等待用户审批,并可选地给出审批意见以及添加附件。
活动
活动(Activity)包含了流程中所有的活动数据,例如开始事件、结束事件、网关(排他、并行等)、中间节点等。
Flowable 引擎介绍
架构设计
Service 总览
名称 | 作用 |
---|---|
RepositoryService | 资源管理 |
RuntimeService | 流程运行管理 |
TaskService | 任务管理 |
HistoryService | 历史管理 |
ManagerService | 引擎管理 |
FormService | 表单管理 |
IdentityService | 用户关系管理 |
在 Flowable 中,所有的调用都是无状态的,对任何服务的任何调用都是幂等的。
工作流引擎横向对比
宏观对比
异同点\引擎 | Flowable | Activity | Camunda |
---|---|---|---|
付费 | 有付费版 | 有付费版 | 有付费版 |
活跃度 | |||
云原生支持度 | 不支持 | Activity Cloud | Zebee |
开源程度 | Flowable 6.5 后不再开源 | 部分开源 | 部分开源 |
开源功能完善度 | 第一名 | 第三名 | 第二名 |
性能官方对比 | 第二名 | 第三名 | 第一名 |
功能对比
异同点\引擎 | Flowable | Camunda |
---|---|---|
流程实例版本迁移 | 不支持 | 支持 |
CMD 命令权限校验 | 不支持 | 支持 |
批处理API操作支持 | 很少(从集合中遍历) | 支持 |
执行-触发连线双异步支持 | 不支持 | 支持 |
NoSQL支持 | 支持 | 不支持(只有解决方案) |
流程优化统计 | 不支持 | 支持(记录流程瓶颈和各节点耗时) |
LDAP 支持 | 支持 | 不支持 |
定义定时作业优先级 | 不支持 | 支持 |
分布式定时器支持 | 不支持 | 支持 |
Flowable API
RepositoryService
RepositoryService 服务提供了 管理与控制流程发布包 deployments)
和 流程定义(process definitions)
的操作。 流程定义(process definitions)
是 BPMN 2.0 流程对应的 Java 对象; 部署(deployments)
是 Flowable 引擎中的包装单元,一个 Deploy 中可以包含多个 BPMN 2.0 XML 文件及其他资源。RepositoryService 可用于部署这样的包。部署意味着将它上传至引擎,引擎将在储存至数据库之前检查与分析所有的流程。在部署操作后,可以在系统中使用这个部署包,部署包中的所有流程都可以启动。
查询接口
createProcessDefinitionQuery 查询流程定义信息
createDeploymentQuery 查询部署单元信息
createModelQuery 查询模型信息
还有带 Native 字样的 Query,其为输入自定义 SQL 查询相关信息。
管理流程定义
激活/挂起流程定义
activateProcessDefinitionById/Key 激活流程定义
suspendProcessDefinitionById/Key 挂起流程定义
流程定义在 Deploy 时默认激活,在挂起后会抛 FlowableException 异常。详细信息如下:
Cannot start process instance. Process definition Holiday Request (id = holidayRequest:6:12503) is suspended
创建部署
createDeployment
删除部署
deleteDeployment
TODO API
setDeploymentCategory
setDeploymentKey
getDeploymentResourceNames
getResourceAsStream
changeDeploymentTenantId
setProcessDefinitionCategory
getProcessModel
getProcessDiagram
getProcessDefinition
isFlowable5ProcessDefinition
isProcessDefinitionSuspended
getBpmnModel
getProcessDiagramLayout
getAppResourceObject
getAppResourceModel
newModel
saveModel
deleteModel
addModelEditorSource
addModelEditorSourceExtra
getModel
getModelEditorSource
getModelEditorSourceExtra
addCandidateStarterUser
addCandidateStarterGroup
deleteCandidateStarterUser
deleteCandidateStarterGroup
getIdentityLinksForProcessDefinition
validateProcess
getDecisionTablesForProcessDefinition
getFormDefinitionsForProcessDefinition
RuntimeService
与提供静态信息管理的 RepositoryService 不同,RuntimeService 用于启动流程定义的新流程实例。即 RepositoryService 存储了流程定义,RuntimeService 是真正的执行人。在执行的过程中,RuntimeService 也会读取与存储流程变量。流程变量是流程实例中的数据,可以在流程的许多地方使用(例如排他网关经常使用流程变量判断流程下一步要走的路径)。RuntimeService 还可以用于查询流程实例与执行 (Execution)。执行也就是BPMN 2.0中 ‘token’ 的概念。通常执行是指向流程实例当前位置的指针。
查询接口
createExecutionQuery
createNativeExecutionQuery
createProcessInstanceQuery
createNativeProcessInstanceQuery
createEventSubscriptionQuery
管理流程实例
启动流程实例
startProcessInstanceByKey
startProcessInstanceByKeyAndTenantId
startProcessInstanceById
startProcessInstanceWithForm
startProcessInstanceByMessage
startProcessInstanceByMessageAndTenantId
提前终止流程实例
deleteProcessInstance
挂起流程实例
suspendProcessInstanceById
激活流程实例
activateProcessInstanceById
触发流程实例
触发 ReceiveTask
trigger
triggerAsync
通过 ExecutionId 触发对应 ReceiveTask 事件,详情见《Flowable 高级用法》的用户事件
触发 SignalEvent
signalEventReceived
signalEventReceivedWithTenantId
signalEventReceivedAsync
signalEventReceivedAsyncWithTenantId
通过 SignalName 触发信号事件,详情见《Flowable 高级用法》的信号事件
回退流程实例
createChangeActivityStateBuilder
TODO API
createProcessInstanceBuilder
getStartFormModel
getActiveActivityIds
updateBusinessKey
addUserIdentityLink
addGroupIdentityLink
addParticipantUser
addParticipantGroup
deleteParticipantUser
deleteParticipantGroup
deleteUserIdentityLink
deleteGroupIdentityLink
getIdentityLinksForProcessInstance
getDataObjects
getDataObjectsLocal
getDataObject
getDataObjectLocal
messageEventReceived
messageEventReceivedAsync
addEventListener
addEventListener
removeEventListener
dispatchEvent
setProcessInstanceName
getAdhocSubProcessExecutions
getEnabledActivitiesFromAdhocSubProcess
executeActivityInAdhocSubProcess
completeAdhocSubProcess
addMultiInstanceExecution
deleteMultiInstanceExecution
getProcessInstanceEvents
TaskService
对于像 Flowable 这样的 BPM 引擎来说,核心是需要用户操作的任务。所有任务相关的东西都组织在TaskService中,例如:
- 查询分派给用户或组的任务
- 创建独立运行(standalone)任务。这是一种没有关联到流程实例的任务。
- 决定任务的执行用户(assignee),或者将用户通过某种方式与任务关联。
- 认领(claim)与完成(complete)任务。认领是指某人决定成为任务的执行用户,也即他将会完成这个任务。完成任务是指“做这个任务要求的工作”,通常是填写某个表单。
查询接口
createTaskQuery 查询 ACT_RU_TASK
审批任务
签收任务
// 两种方式同样都是设置任务的 Assignee 属性。
claim
setAssignee
归还任务
unclaim
完成任务
complete
委派任务
将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中
// 两种方式同样都是设置任务的 Owner 和 Assignee 属性
// 转交任务给Assignee,并记录转交人为Owner
setOwner(currentUser) && setAssignee(acceptUser)
setOwner(currentUser) && delegateTask(acceptUser)
被委派任务的办理
resolveTask
详情见《Flowable 实践场景》
意见和附件
意见
给 UserTask 增加对应的审批意见。
addComment
saveComment
deleteComments
deleteComment
getComment
getTaskComments
getCommentsByType
getProcessInstanceComments
附件
给 UserTask 任务增加对应的附件信息。
createAttachment
saveAttachment
deleteAttachment
getAttachment
getAttachmentContent
getTaskAttachments
getProcessInstanceAttachments
TODO API
TaskService
newTask
saveTask
deleteTask
deleteTasks
completeTaskWithForm
getTaskFormModel
getIdentityLinksForTask
addCandidateUser
addCandidateGroup
addUserIdentityLink
addGroupIdentityLink
deleteCandidateUser
deleteCandidateGroup
deleteUserIdentityLink
deleteGroupIdentityLink
setPriority
setDueDate
getDataObjects
getDataObject
getTaskEvents
getEvent
getSubTasks
IdentityService
IdentityService 用于管理组与用户。请注意,Flowable 实际上在运行时并不做任何用户检查。例如任务可以分派给任何用户,而引擎并不会验证系统中是否存在该用户。这是因为 Flowable 有时要与 LDAP、Active Directory 等服务结合使用。
TODO API
IdentityService
newUser
saveUser
updateUserPassword
createUserQuery
createNativeUserQuery
deleteUser
newGroup
createGroupQuery
createNativeGroupQuery
getPotentialStarterGroups
getPotentialStarterUsers
saveGroup
deleteGroup
createMembership
deleteMembership
checkPassword
setAuthenticatedUserId
setUserPicture
getUserPicture
setUserInfo
getUserInfo
getUserInfoKeys
deleteUserInfo
FormService
FormService 是可选服务。其引入了开始表单(start form)与任务表单(task form)的概念。 开始表单是在流程实例启动前显示的表单,而任务表单是用户完成任务时显示的表单。Flowable 可以在 BPMN 2.0 流程定义中定义这些表单。表单服务通过简单的方式暴露这些数据。再次重申,表单不一定要嵌入流程定义,因此这个服务是可选的。
TODO API
getStartFormData
getRenderedStartForm
getRenderedStartForm
submitStartFormData
submitStartFormData
getTaskFormData
getRenderedTaskForm
getRenderedTaskForm
submitTaskFormData
saveFormData
getStartFormKey
getTaskFormKey
HistoryService
暴露 Flowable 引擎收集的所有历史数据。当执行流程时,引擎会保存许多数据(可配置),例如流程实例启动时间、谁在执行哪个任务、完成任务花费的事件、每个流程实例的执行路径,等等。这个服务主要提供查询这些数据的能力。
查询接口
createHistoricProcessInstanceQuery 查询 HistoricProcessInstance
createHistoricActivityInstanceQuery 查询 HistoricActivityInstance
createHistoricTaskInstanceQuery 查询 HistoricTaskInstance
createHistoricDetailQuery 查询 HistoricDetail
createHistoricVariableInstanceQuery 查询 HistoricVariableInstance
createProcessInstanceHistoryLogQuery 查询 ProcessInstanceHistoryLog
删除接口
deleteHistoricTaskInstance
deleteHistoricProcessInstance
查询历史流程 IdentityLink
getHistoricIdentityLinksForTask
getHistoricIdentityLinksForProcessInstance
ManagementService
通常在用 Flowable 编写用户应用时需要使用。它可以读取数据库表与表原始数据的信息,也提供了对作业(job)的查询与管理操作。Flowable 中很多地方都使用作业,例如定时器(timer),异步操作(asynchronous continuation),延时暂停/激活(delayed suspension/activation)等等。
查询接口
createTablePageQuery 查询数据库表
createJobQuery 查询 ACT_RU_JOB
createTimerJobQuery 查询 ACT_RU_TIMER_JOB
createSuspendedJobQuery 查询 ACT_RU_SUSPENDED_JOB
createDeadLetterJobQuery 查询 ACT_RU_DEADLETTER_JOB
createHistoryJobQuery 查询 ACT_RU_HISTORY_JOB
删除任务接口
deleteJob
deleteTimerJob
deleteSuspendedJob
deleteDeadLetterJob
deleteHistoryJob
TODO API
getTableCount
getTableName
getTableMetaData
executeJob
moveTimerToExecutableJob
moveSuspendedJobToExecutableJob
setJobRetries
setTimerJobRetries
rescheduleTimeDateJob
rescheduleTimeDurationJob
rescheduleTimeCycleJob
rescheduleTimerJob
getJobExceptionStacktrace
getTimerJobExceptionStacktrace
getSuspendedJobExceptionStacktrace
getDeadLetterJobExceptionStacktrace
getProperties
databaseSchemaUpgrade
executeCommand
executeCommand
executeCustomSql
getEventLogEntries
getEventLogEntriesByProcessInstanceId
deleteEventLogEntry
DynamicBpmnService
可用于修改流程定义中的部分内容,而不需要重新部署它。例如可以修改流程定义中一个用户任务的办理人设置,或者修改一个服务任务中的类名。
TODO API
DynamicBpmnService
injectUserTaskInProcessInstance
injectParallelUserTask
injectEmbeddedSubProcessInProcessInstance
injectParallelEmbeddedSubProcess
getProcessDefinitionInfo
saveProcessDefinitionInfo
changeServiceTaskClassName
changeServiceTaskClassName
changeServiceTaskExpression
changeServiceTaskExpression
changeServiceTaskDelegateExpression
changeServiceTaskDelegateExpression
changeScriptTaskScript
changeScriptTaskScript
changeUserTaskName
changeUserTaskName
changeUserTaskDescription
changeUserTaskDescription
changeUserTaskDueDate
changeUserTaskDueDate
changeUserTaskPriority
changeUserTaskPriority
changeUserTaskCategory
changeUserTaskCategory
changeUserTaskFormKey
changeUserTaskFormKey
changeUserTaskAssignee
changeUserTaskAssignee
changeUserTaskOwner
changeUserTaskOwner
changeUserTaskCandidateUser
changeUserTaskCandidateUser
changeUserTaskCandidateGroup
changeUserTaskCandidateGroup
changeUserTaskCandidateUsers
changeUserTaskCandidateUsers
changeUserTaskCandidateGroups
changeUserTaskCandidateGroups
changeMultiInstanceCompletionCondition
changeMultiInstanceCompletionCondition
changeDmnTaskDecisionTableKey
changeDmnTaskDecisionTableKey
changeSequenceFlowCondition
changeSequenceFlowCondition
getBpmnElementProperties
changeLocalizationName
changeLocalizationName
changeLocalizationDescription
changeLocalizationDescription
getLocalizationElementProperties
resetProperty
getDynamicProcessDefinitionSummary
Flowable 表结构
Flowable 需要将节点持久化到 Database 中,因此需要了解其对应的表结构才能知道其暂存点。
- ACT_RE :’RE’表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACT_RU:’RU’表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Flowable只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACT_HI:’HI’表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACT_GE:‘GE’ 表示 general。 通用数据, 用于不同场景下
- ACT_ID:’ID’表示 identity(组织机构)。这些表包含标识的信息,如用户,用户组,等等。
具体的表结构的含义:
表分类 | 表名 | 解释 |
---|---|---|
通用数据 | ||
[ACT_GE_BYTEARRAY] | 通用的流程定义和流程资源 | |
[ACT_GE_PROPERTY] | 系统相关属性 | |
流程历史记录 | ||
[ACT_HI_ACTINST] | 历史的流程节点信息 | |
[ACT_HI_ATTACHMENT] | 历史的任务审批流程附件信息 | |
[ACT_HI_COMMENT] | 历史的任务审批意见信息 | |
[ACT_HI_DETAIL] | 历史的流程运行中的细节信息 | |
[ACT_HI_IDENTITYLINK] | 历史的流程运行过程中用户关系 | |
[ACT_HI_PROCINST] | 历史的流程实例 | |
[ACT_HI_TASKINST] | 历史的任务实例(只记录 UserTask) | |
[ACT_HI_VARINST] | 历史的流程运行中的变量信息 | |
流程定义表 | ||
[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] | 运行时变量表 | |
用户用户组表 | ||
[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] | 用户表 |
Repository
ACT_RE_DEPLOYMENT
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
NAME_ | 名称 | |
CATEGORY_ | 分类 | |
TENANTID | 租户ID | |
DEPLOYTIME | 部署时间 | |
DERIVEDFROM | 来源于 | |
DERIVEDFROM_ROOT | 来源于 | |
ENGINEVERSION | 流程引擎的版本 |
ACT_RE_PROCDEF
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
CATEGORY_ | 分类 | 流程定义的Namespace就是类别 |
NAME_ | 名称 | |
KEY_ | 标识 | |
VERSION_ | 版本 | |
DEPLOYMENTID | 部署ID | |
RESOURCENAME | 资源名称 | 流程bpmn文件名称 |
DGRMRESOURCE_NAME | 图片资源名称 | |
DESCRIPTION_ | 描述 | |
HASSTART_FORM_KEY | 拥有开始表单标识 | start节点是否存在formKey 0否 1是 |
HASGRAPHICAL_NOTATION | 拥有图形信息 | |
SUSPENSIONSTATE | 挂起状态 | 暂停状态 1激活 2暂停 |
TENANTID | 租户ID |
注意:
业务流程定义数据表。此表和 ACTRE_DEPLOYMENT 是多对一的关系,即,一个部署的 BAR 包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在 ACT_RE_PROCDEF 表内,每个流程定义的数据,都会对于 ACT_GE_BYTEARRAY 表内的一个资源文件和 PNG 图片文件。和 ACT_GE_BYTEARRAY 的关联是通过程序用 ACT_GE_BYTEARRAY.NAME 与 ACT_RE_PROCDEF.RESOURCE_NAME 完成的。
Runtime
ACT_RU_EXECUTION
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
PROCINST_ID | 流程实例ID | |
BUSINESSKEY | 业务主键ID | |
PARENTID | 父执行流的ID | |
PROCDEF_ID | 流程定义的数据ID | |
SUPEREXEC | ||
ROOTPROC_INST_ID | 流程实例的root流程id | |
ACTID | 节点实例ID | |
ISACTIVE | 是否存活 | |
ISCONCURRENT | 执行流是否正在并行 | |
ISSCOPE | ||
ISEVENT_SCOPE | ||
ISMI_ROOT | ||
SUSPENSIONSTATE | 流程终端状态 | |
CACHEDENT_STATE | ||
TENANTID | 租户编号 | |
NAME_ | ||
STARTTIME | 开始时间 | |
STARTUSER_ID | 开始的用户编号 | |
LOCKTIME | 锁定时间 | |
ISCOUNT_ENABLED | ||
EVTSUBSCR_COUNT | ||
TASKCOUNT | ||
JOBCOUNT | ||
TIMERJOB_COUNT | ||
SUSPJOB_COUNT | ||
DEADLETTERJOB_COUNT | ||
VARCOUNT | ||
IDLINK_COUNT |
ACT_RU_IDENTITYLINK
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
GROUPID | 用户组ID | |
TYPE_ | 关系数据类型 | assignee支配人(组)、candidate候选人(组)、owner拥有人,participant参与者 |
USERID | 用户ID | |
TASKID | 任务ID | |
PROCINST_ID | 流程定义ID | |
PROCDEF_ID | 属性ID |
ACT_RU_TASK
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
EXECUTIONID | 任务所在的执行流ID | |
PROCINST_ID | 流程实例ID | |
PROCDEF_ID | 流程定义数据ID | |
NAME_ | 任务名称 | |
PARENTTASK_ID | 父任务ID | |
DESCRIPTION_ | 说明 | |
TASKDEF_KEY | 任务定义的ID值 | |
OWNER_ | 任务拥有人 | |
ASSIGNEE_ | 被指派执行该任务的人 | |
DELEGATION_ | 委托人 | |
PRIORITY_ | 优先级 | |
CREATETIME | 创建时间 | |
DUEDATE | 耗时 | |
CATEGORY_ | 类别 | |
SUSPENSIONSTATE | 是否挂起 | 1代表激活 2代表挂起 |
TENANTID | 租户编号 | |
FORMKEY | ||
CLAIMTIME | 拾取时间 |
ACT_RU_VARIABLE
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
TYPE_ | 参数类型 | 可以是基本的类型,也可以用户自行扩展 |
NAME_ | 参数名称 | |
EXECUTIONID | 参数执行ID | |
PROCINST_ID | 流程实例ID | |
TASKID | 任务ID | |
BYTEARRAYID | 资源ID | |
DOUBLE_ | 参数为double,则保存在该字段中 | |
LONG_ | 参数为long,则保存在该字段中 | |
TEXT_ | 用户保存文本类型的参数值 | |
TEXT2_ | 用户保存文本类型的参数值 |
History
ACT_HI_IDENTITYLINK
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
GROUPID | 组编号 | |
TYPE_ | 类型 | |
USERID | 用户编号 | |
TASKID | 任务编号 | |
CREATETIME | 创建时间 | |
PROCINST_ID | 流程实例编号 | |
SCOPEID | ||
SCOPETYPE | ||
SCOPEDEFINITION_ID |
ACT_HI_PROCINST
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROCINST_ID | 流程实例ID | |
BUSINESSKEY | 业务主键 | |
PROCDEF_ID | 属性ID | |
STARTTIME | 开始时间 | |
ENDTIME | 结束时间 | |
DURATION_ | 耗时 | |
STARTUSER_ID | 起始人 | |
STARTACT_ID | 起始节点 | |
ENDACT_ID | 结束节点 | |
SUPERPROCESS_INSTANCE_ID | 父流程实例ID | |
DELETEREASON | 删除原因 | |
TENANTID | 租户编号 | |
NAME_ | 名称 |
ACT_HI_ACTINST
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROCDEF_ID | 流程定义ID | |
PROCINST_ID | 流程实例ID | |
EXECUTIONID | 执行ID | |
ACTID | 节点实例ID | |
TASKID | 任务ID | |
CALLPROC_INST_ID | 调用外部的流程实例ID | |
ACTNAME | 节点名称 | |
ACTTYPE | 节点类型 | |
ASSIGNEE_ | 处理人 | |
STARTTIME | 开始时间 | |
ENDTIME | 结束时间 | |
DURATION_ | 耗时 | |
DELETEREASON | 删除原因 | |
TENANTID | 租户编号 |
ACT_HI_TASKINST
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROCDEF_ID | 流程定义ID | |
TASKDEF_KEY | 任务定义的ID值 | |
PROCINST_ID | 流程实例ID | |
EXECUTIONID | 执行ID | |
PARENTTASK_ID | 父任务ID | |
NAME_ | 名称 | |
DESCRIPTION_ | 说明 | |
OWNER_ | 实际签收人 任务的拥有者 | 签收人(默认为空,只有在委托时才有值) |
ASSIGNEE_ | 被指派执行该任务的人 | |
STARTTIME | 开始时间 | |
CLAIMTIME | 任务拾取时间 | |
ENDTIME | 结束时间 | |
DURATION_ | 耗时 | |
DELETEREASON | 删除原因 | |
PRIORITY_ | 优先级别 | |
DUEDATE | 过期时间 | |
FORMKEY | 节点定义的formkey | |
CATEGORY_ | 类别 | |
TENANTID | 租户 |
ACT_HI_VARINST
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROCINST_ID | 流程实例ID | |
EXECUTIONID | 指定ID | |
TASKID | 任务ID | |
NAME_ | 名称 | |
VARTYPE | 参数类型 | |
REV_ | 数据版本 | |
BYTEARRAYID | 字节表ID | |
DOUBLE_ | 存储double类型数据 | |
LONG_ | 存储long类型数据 | |
… |
General
ACT_GE_BYTEARRAY
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
NAME_ | 名称 | 部署的文件名称,如:holiday-request-new.bpmn20.xml、holiday-request-new.bpmn20.png |
DEPLOYMENTID | 部署ID | |
BYTES_ | 字节(二进制数据) | |
GENERATED_ | 是否系统生成 | 0为用户上传,1为系统自动生成, 比如系统会自动根据xml生成png |