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类型 |