# BPS表结构
BPS默认采用数据库方式对业务流程的定义以及运行期的流程实例、活动、工作项等进行持久化存储。主要包括BPS流程流转相关的定义、实例、工作项、参与者相关的数据表以及和实际业务流程控制相关的如代理、定时器、日志等数据表。以下是对BPS中主要使用的数据库表结构进行说明。
# BPS系统信息表、审计日志表和定时器表
# BPS系统信息表(WFSystemInfo)
| 名称 | 代码 | 描述 |
|---|---|---|
| 配置的键 | configKey | |
| 配置的值 | configValue | |
| 配置的描述 | configDesc | |
| 配置类型 | configType |
# 审计日志表(WFAuditRecord)
| 名称 | 代码 | 描述 |
|---|---|---|
| 名称 | 代码 | 描述 |
| 审计记录ID | auditRecordID | 主键 |
| 请求编号 | uniqueID | 请求的唯一编号 |
| 记录时机 | logOccasion | 开始(B)、结束(E)、异常(EX) |
| 操作名称 | actionName | 调用的方法名 |
| 操作类型 | actionType | |
| 发生时间 | occurTime | |
| 操作员名称 | userName | |
| 创建时间 | createTime | |
| IP地址 | ipAddress | |
| 操作级别 | optionLevel | PROCESSDEFINE、PROCESSINST、ACTIVITYINST、WORKITEM |
| 流程定义ID | processDefineID | |
| 流程实例ID | processInstID | |
| 流程实例ID | activityInstID | |
| 活动定义ID | workItemID | |
| 日志正文 | message | |
| 父流程实例ID | parentProcInstID |
# 定时器表(WFTimer)
| 名称 | 代码 | 描述 |
|---|---|---|
| 定时器ID | timerID | 主键 |
| 定时器名称 | timerName | |
| 定时器类型 | timerType | 0(ONCE)、1(CYCLE) |
| 定时器业务类型 | timerKind | 流程(PROCESS)、工作项(WORKITEM) |
| 对象ID | objectID | |
| 参数 | parameter | |
| 当前状态 | currentState | 1(激活)、2(挂起)、3(终止) |
| 注册时间 | registeTime | |
| 第一次触发时间 | firstTriggeTime | |
| 触发总次数 | cycleTimes | |
| 下次触发时间 | nextTriggeTime | |
| 剩余触发次数 | leftCycleTimes | |
| 周期时间 | cycleInterval | |
| 注册时间描述 | regTimeDesc | |
| 触发时间描述 | trigTimeDesc |
# 流程定义表、流程实例表和流程实例属性表
# 流程定义表(WFProcessDefine)
| 名称 | 代码 | 备注 |
|---|---|---|
| 流程定义ID | processDefID | 主键 |
| 流程定义名称 | processDefName | |
| 业务流程显示名称 | processChName | |
| 业务流程描述 | description | |
| 当前发布状态 | currentState | 已发布(3)、未发布(1),一个流程定义名称对应的流程定义只有一个已发布版本。 |
| 流程定义版本号 | versionSign | 流程版本号,如1.1.1 |
| 流程定义版本说明 | versionDesc | |
| 是否最新版本 | currentFlag | 最新版本为1,非最新为0。一个流程定义名称对应的流程定义只有一个最新版本。 |
| 流程定义内容 | processDefContent | |
| 创建时间 | createTime | |
| 更新时间 | updateTime | |
| 操作员 | operator | |
| 流程所有者 | processDefOwner | |
| 流程构件包ID | packageID | |
| 流程构件包名称 | packageName | |
| 是否有活动实例 | hasActiveInstance | |
| 业务目录编号 | catalogUUID |
# 流程实例表(WFProcessInst)
| 名称 | 代码 | 备注 |
|---|---|---|
| 名称 | 代码 | 备注 |
| 流程实例ID | processInstID | 主键 |
| 流程实例名称 | processInstName | |
| 流程实例描述 | processInstDesc | |
| 创建者 | creator | |
| 所有者 | owner | |
| 当前状态 | currentState | 未启动(1)、运行(2)、挂起(3)、完成(7)、终止(8) |
| 优先级 | Priority | 极低(30)、低(40)、中低(50)、普通(60)、中高(70)、高(80);目前未使用,无功能含义。 |
| 相关数据大字段 | relateData | 相关数据Size大时存放这里。 |
| 相关数据字符串 | relateDataVChr | 相关数据Size小时存放这里,存取效率高。 |
| 限制时间数 | limitNum | |
| 限制时间描述 | limitNumDesc | |
| 创建时间 | createTime | |
| 启动时间 | startTime | |
| 结束时间 | endTime | |
| 超时时间 | finalTime | |
| 提醒时间 | remindTime | |
| 父流程实例ID | parentProcID | |
| 父活动实例ID | parentActID | |
| 流程定义ID | processDefID | |
| 是否超时 | isTimeOut | 是(Y)、否(N) |
| 超时数字 | timeOutNum | |
| 超时时间描述 | timeOutNumDesc | |
| 更新版本号 | updateVersion | 流程实例的操作都会更新流程实例版本号。 |
| 流程定义名称 | processDefName | |
| 业务目录编号 | catalogUUID | |
| 业务目录名称 | catalogName |
# 流程实例属性表(WFProcessInstAttr)
| 名称 | 代码 | 描述 |
|---|---|---|
| 流程实例ID | processInstID | 主键 |
| 属性 | attribute | 存放流程实例相关的一些属性。如:自由流后继活动、多子流程ID等。 |
# 代理关系表、代理项明细表和代理人范围表
# 代理关系表(WFAgent)
| 名称 | 代码 | 描述 |
|---|---|---|
| 代理关系ID | agentID | 主键 |
| 委托人 | agentFrom | |
| 代理人 | agentTo | |
| 代理人类型 | AgentToType | 参与者类型(与自定义组织机构相关) |
| 代理类型 | AgentType | 完全代理(ALL)、部分代理(PART) |
| 代理原因 | agentReason | |
| 开始时间 | startTime | StartTime后代理关系生效 |
| 终止时间 | endTime | endTime后代理关系失效 |
# 代理项明细表(WFAgentItem)
代理关系表的从表,WFAgent 1 : n WFAgentItem 。一条代理关系可以对应一到多条代理项。
| 名称 | 代码 | 描述 |
|---|---|---|
| 代理项ID | agentItemID | 主键 |
| 代理项类型 | itemType | 流程(PROC)、活动(ACT) |
| 代理项编号 | itemID | |
| 是否有效 | valid | 参与者类型(与自定义组织机构相关) |
| 访问类型 | accessType | 完全代理(ALL)、部分代理(PART) |
| 代理关系编号 | agentID |
# 代理人范围表(WFAgentScope)
| 名称 | 代码 | 描述 |
|---|---|---|
| 代理范围编号ID | agentScopeID | 主键 |
| 参与者ID | agenterID | 代理范围中的某参与者ID |
| 参与者名称 | agenterName | 代理范围中的某参与者名称 |
| 参与者 | agenterType | 代理范围中的某参与者类型 |
| 参与者ID | personID | 要指定代理人范围的参与者ID |
# 活动实例表、工作项表和参与者表
# 活动实例表(WFActivityInst)
| 名称 | 代码 | 描述 |
|---|---|---|
| 活动实例ID | activityInstID | 主键 |
| 活动实例名称 | activityInstName | |
| 活动实例描述 | activityInstDesc | |
| 活动类型 | activityType | 人工(manual)、路由(route)、自动(toolapp)、完成(subflow)、开始(start)、结束(finish) |
| 当前状态 | currentState | 未启动(1)、运行(2)、挂起(3)、完成(7)、终止(8)、待激活(10) |
| 优先级 | priority | 极低(30)、低(40)、中低(50)、普通(60)、中高(70)、高(80);目前未使用,无功能含义。 |
| 创建时间 | createTime | |
| 启动时间 | startTime | |
| 结束时间 | endTime | |
| 最后期限 | finalTime | |
| 子流程实例ID | subProcessID | |
| 是否超时 | isTimeOut | 是(Y)、否(N) |
| 活动定义ID | activityDefID | |
| 流程实例ID | processInstID | |
| 超时时间数 | timeOutNum | |
| 超时时间描述 | timeOutNumDesc | |
| 回退标志 | rollbackFlag | 正常(0)、回退(1) |
| 业务目录编号 | catalogUUID | |
| 业务目录名称 | catalogName |
# 工作项表(WFWorkItem)
| 名称 | 代码 | 描述 |
|---|---|---|
| 名称 | 代码 | 描述 |
| 工作项ID | workItemID | 主键 |
| 工作项名称 | workItemName | |
| 工作项描述 | workItemDesc | |
| 工作项类型 | workItemType | 人工活动(M);目前只有这一种类型 |
| 当前状态 | currentState | 待领取(4)、运行(10)、完成(12)、终止(13)、挂起(8) |
| 参与者 | participant | 用来显示所有工作项参与者 |
| 优先级 | priority | 极低(30)、低(40)、中低(50)、普通(60)、中高(70)、高(80);目前未使用,无功能含义。 |
| 是否超时 | isTimeOut | 是(Y)、否(N) |
| 限制时间数 | limitNum | |
| 限制时间描述 | limitNumDesc | |
| 创建时间 | createTime | |
| 启动时间 | startTime | |
| 完成时间 | endTime | |
| 超时时间 | finalTime | |
| 提醒时间 | remindTime | |
| 自定义url | actionURL | |
| 历史状态 | statesList | 目前未使用此字段 |
| 超时数 | timeOutNum | |
| 超时时间描述 | timeOutNumDesc | |
| 流程实例ID | processInstID | |
| 流程实例名称 | processInstName | |
| 活动实例ID | activityInstID | |
| 活动实例名称 | activityInstName | |
| 业务流程ID | processDefID | |
| 业务流程名称 | processDefName | |
| 业务流程中文名称 | processChName | |
| 活动定义ID | activityDefID | |
| 操作码 | actionMask | 做是否允许操作的控制,每位代表不同操作。 |
| 工作项完成者 | assistant | |
| 业务状态 | bizState | |
| 允许代理 | allowAgent | 是(Y)、否(N) |
| 自定义url类型 | urlType | |
| 根流程实例ID | rootProcInstID | 根流程即顶层的父流程。 |
| 业务目录编号 | catalogUUID | |
| 业务目录名称 | catalogName |
# 参与者表(WFWIParticipant)
| 名称 | 代码 | 描述 |
|---|---|---|
| 参与者项ID | WIParticID | 主键 |
| 工作项ID | workItemID | |
| 参与者类型 | participantType | 与自定义组织机构相关(typeCode) |
| 参与者值ID | participantID | |
| 参与者值NAME | participantName | |
| 工作项状态 | workitemState | 同WFWorkItem标的工作项状态 |
| 参与类型 | partiInType | 领取(GET)、执行(EXE)、曾经领取(OGET)、曾经执行(OEXE)、执行完成(PEXE) |
| 代办类型 | delegateType | 代办(D)、协办(H) |
| 参与顺序 | participantIndex | |
| 参与者唯一编号 | globalID | 与自定义组织机构相关;如P{tiger} P代表组织机构中Person 类型的简写,tiger为参与者的ID。 |
| 其余字段均是WFWIParticipant表的冗余字段。 | ||
| 业务目录编号 | catalogUUID | |
| 业务目录名称 | catalogName |
# 迁移线表和迁移控制表
# 迁移线表(WFTransition)
| 名称 | 代码 | 描述 |
|---|---|---|
| 连线ID | transitionID | 主键 |
| 迁移类型 | transitionType | 生效的(Y)、不生效的(N) |
| 源活动实例ID | causeActInstID | |
| 源活动实例名称 | causeActInstName | |
| 目标活动实例ID | resultActInstID | |
| 目标活动实例名称 | resultActInstName | |
| 源活动定义ID | srcActDefID | |
| 目标活动定义ID | destActDefID | |
| 源活动定义名称 | srcActDefName | |
| 目标活动定义名称 | destActDefName | |
| 流转时间 | transTime | |
| 流程实例ID | processInstID |
# 迁移控制表(WFTransCtrl)
| 名称 | 代码 | 描述 |
|---|---|---|
| 迁移控制ID | transCtrlID | 主键 |
| 源活动定义ID | srcActDefID | |
| 目标活动定义ID | destActDefID | |
| 源活动定义名称 | srcActDefName | |
| 目标活动定义名称 | destActDefName | |
| 最后流转时间 | lastTransTime | |
| 迁移权重 | transWeight | 权重为1代表连线已结束,后继活动未启动 |
| 流程实例ID | processInstID |
# 表间关系
- 一个流程定义可以对应多个流程实例:WFProcessDefine 1 : n WFProcessInst
- 一个流程实例对应多个活动实例:WFProcessInst 1:n WFActivityInst
- 一个人工活动实例可以对应多个工作项:WFActivityInst 1:n WFWorkItem
- 一个工作项可以对应多个参与者:WFWrokItem 1:n WFWIParticipant
- 一条代理关系可以对应多条代理项:WFAgent 1:n WFAgentItem
- 一条流程实例都会对应一条流程实例属性:WFProcessInst 1:1 WFProcessInstAttr
# 后续版本中保持兼容的表字段
声明
BPS的数据库表可能会由于功能改进或者是需求扩展而进行相应的改变,所以不允许用户使用非BPS的对外接口修改BPS表结构和内容,也不建议用户使用非BPS对外接口对BPS的表进行查询,如果有BPS对外接口无法实现的功能,我们欢迎您向我们提出宝贵的改进意见。 但在某特定的紧急情况下,用户为了实现特殊的功能,可能会不使用BPS引擎提供的接口而自己实现查询BPS的表信息,在这里我们列举出BPS数据库中主要表的今后会保持结构、含义兼容的可以供用户自主查询的字段列表。以避免用户因为使用不当,导致今后版本无法升级,给用户应用造成损失。
# 流程定义表
| 字段名称 | 中文名称 |
|---|---|
| processDefID | 业务流程ID |
| processDefName | 业务流程名称 |
| processChName | 业务流程显示名称 |
| description | 业务流程描述 |
| currentState | 业务流程当前状态 |
| versionSign | 业务流程版本标记 |
| versionDesc | 业务流程版本描述 |
| currentFlag | 业务流程是否为当前版本的标志 |
| createTime | 业务流程创建时间 |
| updateTime | 业务流程更新时间 |
| operator | 流程定义部署者 |
| processDefOwner | 业务流程作者 |
| packageID | 所属业务流程包ID |
| packageName | 所属业务流程包名称 |
# 流程实例表
| 字段名称 | 中文名称 |
|---|---|
| processInstID | 流程实例ID |
| processInstName | 流程实例名称 |
| processInstDesc | 流程实例的描述 |
| creator | 流程实例创建者 |
| owner | 所属业务流程作者 |
| currentState | 流程实例的当前状态 |
| priority | 优先级 |
| limitNum | 时间限制数 |
| limitNumDesc | 时间限制描述 |
| createTime | 流程实例创建时间 |
| startTime | 流程实例开始时间 |
| endTime | 流程实例结束时间 |
| finalTime | 流程实例终止时间 |
| remindTime | 流程实例提醒时间 |
| parentProcID | 所属父流程ID |
| parentActID | 所属父活动ID |
| processDefID | 所属业务流程ID |
| isTimeOut | 是否超时 |
| processDefName | 所属业务流程名称 |
# 活动实例表
| 字段名称 | 中文名称 |
|---|---|
| activityInstID | 活动实例ID |
| activityInstName | 活动实例名称 |
| activityInstDesc | 活动实例描述 |
| activityType | 所属活动定义类型 |
| currentState | 活动实例当前状态 |
| priority | 优先级 |
| createTime | 活动实例创建时间 |
| startTime | 活动实例开始时间 |
| endTime | 活动实例结束时间 |
| subProcessID | 子业务流程ID |
| activityDefID | 所属活动定义ID |
| processInstID | 所属的流程实例ID |
| rollbackFlag | 回退标志 |
# 工作项表
| 字段名称 | 中文名称 |
|---|---|
| 字段名称 | 中文名称 |
| workItemID | 工作项ID |
| workItemName | 工作项名称 |
| workItemType | 工作项类型 |
| workItemDesc | 工作项描述 |
| currentState | 工作项当前状态 |
| participant | 参与者 |
| priority | 优先级 |
| isTimeOut | 工作项对应的活动实例是否超时 |
| limitNum | 工作项对应的活动实例的时间限制数 |
| limitNumDesc | 工作项对应的活动实例的时间限制描述 |
| createTime | 工作项创建时间 |
| startTime | 工作项开始时间 |
| endTime | 工作项结束时间 |
| finalTime | 工作项终止时间 |
| remindTime | 工作项提醒时间 |
| actionURL | 自定义URL |
| processInstID | 所属流程实例ID |
| activityInstID | 所属活动实例ID |
| processInstName | 所属流程实例的名称 |
| activityInstName | 所属活动实例的名称 |
| processDefID | 所属业务流程ID |
| processDefName | 所属业务流程名称 |
| processChName | 所属流程显示名称 |
| activityDefID | 所属活动定义ID |
| allowAgent | 是否允许代理 |
| bizState | 业务状态 |
| assistant | 工作项当前执行者 |
| urlType | URL类型 |