http://blog.163.com/tigerlion@126/blog/static/167675665201072642627400/
最近这几天一直在研究JBPM工作流引擎,以下为JBMP的数据库说明,貌似不是最新的4.4版本的,不过有胜于无,用来学习JBPM足矣。因为内容太多,分成两篇发。
1 流程配置类数据库表:
1.1 JBPM_PROCESSDEFINITION:流程模版表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程模版标识 | √ | × |
NAME_ | 流程模版名称 | × | × |
VERSION_ | 流程模版版本,对于同一流程模版,多次插入数据库时,数据库中有多条记录,每条记录中的版本号一次增加 | × | × |
ISTERMINATIONIMPLICIT_ | 是否支持强行终止流程(目前理解) | × | × |
STARTSTATE_ | 起始节点ID,在JBPM_NODE表中 | × | √ |
1.2 JBPM_NODE:流程节点表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程节点标识 | √ | |
CLASS_ | 节点类型: C: org.jbpm.graph.node.ProcessState D: org.jbpm.graph.node.Decision E: org.jbpm.graph.node.EndState F: org.jbpm.graph.node.Fork J: org.jbpm.graph.node.Join K: org.jbpm.graph.node.TaskNode N: org.jbpm.graph.def.Node R: org.jbpm.graph.node.StartState S: org.jbpm.graph.node.State U: org.jbpm.graph.def.SuperState | ||
NAME_ | 流程节点名称 | ||
SUBPROCESSDEFINITION_ | 节点类型为ProcessState时使用,代表子流程模版id | √ | |
ISASYNC_ | 节点是否支持异步机制 | ||
ACTION_ | 节点中指定的action,对应JBPM_ACTION表 | √ | |
SUPERSTATE_ | 节点对应的SuperState的id,表明该节点属于某个SuperState | √ | |
PROCESSDEFINITION_ | 节点所在的流程模版id | √ | |
DECISIONDELEGATION | 节点类型为Decision时使用,表明Decision对应的代理类,对应JBPM_DELEGATION表 | √ | |
DECISIONEXPRESSION_ | 节点类型为Decision时使用,该属性表示Decision中使用的判断表达式 | ||
SIGNAL_ | 节点类型为Task | ||
CREATETASKS_ | 节点类型为Task | ||
ENDTASKS_ | 节点类型为Task | ||
NODECOLLECTIONINDEX_ | 节点类型为SuperState时使用, |
1.3 JBPM_TRANSITION:流程迁移表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程迁移标识 | √ | |
NAME_ | 流程迁移名称 | ||
PROCESSDEFINITION_ | 迁移所在的流程模版id | √ | |
FROM_ | 迁移来源,对应Node的id | √ | |
TO_ | 迁移目的,对应Node的id | √ | |
FROMINDEX_ | ? |
1.4 JBPM_ACTION:流程动作表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程动作标识 | √ | |
NAME_ | 流程动作名称 | √ | |
CLASS_ | 流程动作分类: A(动作): org.jbpm.graph.def.Action S(脚本): org.jbpm.graph.action.Script C(创建定时器): org.jbpm.scheduler.def.CreateTimerAction I(取消定时器): org.jbpm.scheduler.def.CancelTimerAction | ||
ISPROPAGATIONALLOWED_ | ? | ||
ACTIONEXPRESSION_ | 动作类行为I时使用,表示动作执行的脚本 | ||
ISASYNC_ | 动作是否支持异步机制 | ||
REFERENCEDACTION_ | 动作中引用的动作,对应JBPM_ACTION | √ | |
ACTIONDELEGATION_ | 动作类型为A时使用,表示动作执行的代理类,对应JBPM_DELEGATION | √ | |
EVENT_ | 动作中指定的事件,对应JBPM_EVENT | ||
PROCESSDEFINITION_ | 动作所在的流程模版id | √ | |
TIMERNAME_ | 定时器名称 | ||
DUEDATE_ | 定时器间隔时间 | ||
REPEAT_ | 定时器动作执行次数 | ||
TRANSITIONNAME_ | 动作指定后指向的Transition | ||
TIMERACTION_ | 定时器动作代理类,对应JBPM_ACTION | ||
EXPRESSION_ | 定时器执行表达式 | ||
EVENTINDEX_ | ? | ||
EXCEPTIONHANDLER_ | 异常处理类,对应JBPM_EXCEPTIONHANDLER | ||
EXCEPTIONHANDLERINDEX_ | ? |
1.5 JBPM_EVENT:流程事件表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程事件标识 | √ | |
EVENTTYPE_ | 流程事件类型名称 | ||
TYPE_ | 流程事件所在的图形节点类型 "A" :Task "C" :ProcessState "D" :Decision" "E" :EndState" "F" :Fork" "J" :Join" "K" :TaskNode" "N" :Node" "P" :ProcessDefinition" "R" :StartState" "S" :State" "T" :Transition" "U" :SuperState" | ||
GRAPHELEMENT_ | 流程事件所在的图形节点的ID | ||
PROCESSDEFINITION_ | 流程事件所属流程定义,对应JBPM_PROCESSDEFINITION | √ | |
NODE_ | 流程事件所属节点,对应JBPM_NODE | √ | |
TRANSITION_ | 流程事件所属迁移,对应JBPM_ TRANSITION | √ | |
TASK_ | 流程事件所属任务,对应JBPM_TASK | √ |
1.6 JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的action类)
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程代理标识 | √ | |
CLASSNAME_ | 流程代理类名称 | ||
CONFIGURATION_ | 流程代理类配置信息 | ||
CONFIGTYPE_ | 流程代理类配置类型 | ||
PROCESSDEFINITION_ | 流程代理类所属流程定义,对应JBPM_PROCESSDEFINITION | √ |
1.7 JBPM_TASK:流程任务表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程任务标识 | √ | |
NAME_ | 流程任务名称 | ||
PROCESSDEFINITION_ | 流程任务所属流程定义,对应JBPM_PROCESSDEFINITION | √ | |
DESCRIPTION_ | 流程任务描述 | ||
ISBLOCKING_ | 任务是否为阻塞(任务不完成、流程不能继续) | ||
ISSIGNALING_ | 任务是否可以驱动TOKEN | ||
DUEDATE | 任务持续时间,表明任务应在多长时间内完成 | ||
ACTORIDEXPRESSION | ? | ||
POOLEDACTORSEXPRESSION | ? | ||
TASKMGMTDEFINITION_ | 任务所属的任务管理模块ID,对应JBPM_MODULEDEFIFNITION | √ | |
TASKNODE_ | 任务所属的TASK_NODE,对应JBPM_NODE | √ | |
STARTSTATE | 任务所属的START_NODE,对应JBPM_NODE | √ | |
ASSIGNMENTDELEGATION | ? | √ | |
SWIMLANE | 执行该任务的泳道(角色) | √ | |
TASKCONTROLLER_ | ? |
1.8 JBPM_TASKCONTROLLER:流程任务控制器
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程任务控制器标识 | √ | |
TASKCONTROLLERDELEGATION_ | 流程任务控制器对应的代理,对应JBPM_DELEGATION | √ |
1.9 JBPM_VARIABLEACCESS:流程变量表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程变量标识 | √ | |
VARIABLENAME_ | 流程变量名称 | ||
ACCESS_ | 流程变量存取方式 | ||
MAPPEDNAME | ?(暂时不使用) | ||
PROCESSSTATE | 流程变量所属的流程节点,对应JBPM_NODE | √ | |
TASKCONTROLLER | 流程变量所属的流程任务控制器,对应JBPM_ TASKCONTROLLER | √ | |
INDEX_ | ? | ||
SCRIPT | 流程变量所属的ACTION,对应JBPM_ ACTION | √ |
1.10 JBPM_MODULEDEFINITION:流程模块定义表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程模块标识 | √ | |
CLASS_ | 流程模块类型: M : org.jbpm.module.def.ModuleDefinition C : org.jbpm.context.def.ContextDefinition F : org.jbpm.file.def.FileDefinition L: org.jbpm.logging.def.LoggingDefinition I: org.jbpm.scheduler.def.SchedulerDefinition T: org.jbpm.taskmgmt.def.TaskMgmtDefinition | ||
NAME_ | 流程模块名称 | ||
PROCESSDEFINITION_ | 流程模块所属流程定义,对应JBPM_PROCESSDEFINITION | √ | |
STARTTASK | 类型为T时使用,对应JBPM_TASK | √ |
1.11JBPM_EXCEPTIONHANDLER:流程异常处理器表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 流程异常处理器标识 | √ | |
EXCEPTIONHANDLERNAME_ | 流程异常处理器名称 | ||
TYPE_ | 流程异常处理器所在的图形节点类型 "A" :Task "C" :ProcessState "D" :Decision" "E" :EndState" "F" :Fork" "J" :Join" "K" :TaskNode" "N" :Node" "P" :ProcessDefinition" "R" :StartState" "S" :State" "T" :Transition" "U" :SuperState" | ||
GRAPHELEMENT_ | 流程异常处理器所在的图形节点的ID | ||
PROCESSDEFINITION_ | 流程异常处理器所属流程定义,对应JBPM_PROCESSDEFINITION | √ | |
NODE_ | 流程异常处理器所属节点,对应JBPM_NODE | √ | |
TRANSITION_ | 流程异常处理器所属迁移,对应JBPM_ TRANSITION | √ | |
TASK_ | 流程异常处理器所属任务,对应JBPM_TASK | √ | |
GRAPHELEMENTINDEX_ | 流程异常处理器中包含的ACTION集合的索引(?) |
1.12 JBPM_DECISIONCONDITION:DECISION节点判断条件表
字段名 | 字段含义 | 主键 | 外键 |
INDEX_ | 标识 | √ | |
DECISION_ | 所属的DECISION,对应JBPM_NODE | √ | |
TRANSITIONNAME_ | DECISION节点的“离开节点名称” | ||
EXPRESSION | 每一个“离开节点名称”对应的条件表达式 |
1.13 JBPM_ SWINLANE:DECISION节点判断条件表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 标识 | √ | |
NAME_ | 泳道名称 | √ | |
TRANSITIONNAME_ | DECISION节点的“离开节点名称” | ||
EXPRESSION | 每一个“离开节点名称”对应的条件表达式 |
2 流程运行类数据库表:
2.1 JBPM_PROCESSINSTANCE:流程实例表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 标识 | √ | |
VERSION_ | 版本 | ||
START_ | 流程实例开始时间 | ||
END_ | 流程实例结束时间 | ||
ISSUSPENDED | 流程实例是否暂停 | ||
PROCESSDEFINITION_ | 流程实例所属的流程模版,对应JBPM_PROCESSDEFINITION | √ | |
ROOTTOKEN_ | 流程实例对应的TOKEN,对应JBPM_TOKEN | √ | |
SUPERPROCESSTOKEN_ | 父流程的当前TOKEN的ID,当流程实例为子流程实例时使用,表明由父流程进入子流程时,父流程的当前TOKEN。对应JBPM_TOKEN | √ |
2.2 JBPM_TOKEN:流程TOKEN表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 标识 | √ | |
VERSION_ | 版本 | ||
START_ | TOKEN开始时间 | ||
END_ | TOKEN结束时间 | ||
NODEENTER_ | TOKEN进入当前节点(TOKEN当前所处的节点)的时间 | ||
NEXTLOGINDEX_ | ? | ||
ISABLETOREACTIVATEPARENT_ | 能否重新激活父TOKEN标志 | ||
ISTERMINATIONIMPLICIT_ | 能够强制终止TOKEN标志 | ||
ISSUSPENDED_ | TOKEN是否处于暂停状态 | ||
NODE_ | TOKEN所在的当前节点,对应JBPM_NODE | √ | |
PROCESSINSTANCE_ | TOKEN所属的流程实例,对应JBPM_PROCESSINSTANCE | √ | |
PARENT_ | TOKEN的父TOKEN,当TOKEN是由fock产生或处于子流程中时使用,对应JBPM_TOKEN | √ |
2.3 JBPM_LOG:流程日志表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 标识 | √ | |
CLASS_ | 日志类型: A: ActionLog B: ByteArrayUpdateLog C: CompositeLog D: VariableDeleteLog E: DateUpdateLog F: HibernateStringUpdateLog G: LongUpdateLog H: HibernateLongUpdateLog I: ProcessInstanceCreateLog L: DoubleUpdateLog M: MessageLog N: NodeLog O: TokenCreateLog P: ProcessLog R: VariableCreateLog S: SignalLog T: TransitionLog U: StringUpdateLog V: VariableLog W: VariableUpdateLog X: ProcessInstanceEndLog Y: TokenEndLog 0: TaskLog 1: TaskCreateLog 2: TaskAssignLog 3: TaskEndLog 4: SwimlaneLog 5: SwimlaneCreateLog 6: SwimlaneAssignLog | ||
INDEX_ | ? | ||
DATE_ | 日志产生时间 | ||
TOKEN _ | 日志所属TOKEN | ||
PARENT_ | 日志的父日志,对应JBPM_LOG | ||
CHILD_ | 创建的子TOKEN,对应TokenCreateLog 结束的子TOKEN,对应TokenEndLog | ||
MESSAGE_ | 消息信息,当日志类型为M(MessageLog)时使用 | ||
EXCEPTION_ | 日志异常信息,对应ActionLog | ||
ACTION_ | 日志所属ACTION,当日志类型为A(ActionLog)时使用 | ||
NODE_ | 日志所属NODE,当日志类型为N(NodeLog)时使用 | ||
ENTER_ | 进入节点时间,对应NodeLog | ||
LEAVE_ | 离开节点时间,对应NodeLog | ||
DURATION_ | 节点停留时间,对应NodeLog | ||
TRANSITION_ | 日志所属TRANSITION | ||
SOURCENODE_ | TRANSITION的起点,对应TransitionLog | ||
DESTINATIONNODE_ | TRANSITION的终点,对应TransitionLog | ||
VARIABLEINSTANCE_ | 日志所属的流程变量实例,对应VariableLog | ||
OLDBYTEARRAY_ | 原BYTEARRAY值,对应ByteArrayUpdateLog | ||
NEWBYTEARRAY | 新BYTEARRAY值,对应ByteArrayUpdateLog | ||
OLDDATEVALUE | 原DATE值,对应DateUpdateLog | ||
NEWDATEVALUE | 新DATE值,对应DateUpdateLog | ||
OLDDOUBLEVALUE_ | 原DOUBLE值,对应DoubleUpdateLog | ||
NEWDOUBLEVALUE_ | 新DOUBLE值,对应DoubleUpdateLog | ||
OLDLONGIDCLASS_ | 原LONGIDCLASS值,对应HibernateLongUpdateLog | ||
NEWLONGIDCLASS_ | 新LONGIDCLASS值,对应HibernateLongUpdateLog | ||
OLDLONGIDVALUE_ | 原LONGID值,对应HibernateLongUpdateLog | ||
NEWLONGIDVALUE_ | 新LONGID值,对应HibernateLongUpdateLog | ||
OLDSTRINGIDCLASS_ | 原STRINGIDCLASS值,对应HibernateStringUpdateLog | ||
OLDSTRINGIDVALUE_ | 原STRINGID值,对应HibernateStringUpdateLog | ||
NEWSTRINGIDCLASS_ | 新STRINGIDCLASS值,对应HibernateStringUpdateLog | ||
NEWSTRINGIDVALUE_ | 新STRINGID值,对应HibernateStringUpdateLog | ||
OLDLONGVALUE_ | 原LONG值,对应LongUpdateLog | ||
NEWLONGVALUE_ | 新LONG值,对应LongUpdateLog | ||
OLDSTRINGVALUE_ | 原STRING值,对应StringUpdateLog | ||
NEWSTRINGVALUE_ | 新STRING值,对应StringUpdateLog | ||
TASKINSTANCE_ | 日志所属的TASKINSTANCE,对应TaskLog TaskCreateLog TaskAssignLog TaskEndLog | ||
TASKACTORID_ | 任务的新ACTORID,对应TaskAssignLog TaskCreateLog SwimlaneCreateLog SwimlaneAssignLog | ||
TASKOLDACTORID_ | 任务的原ACTORID,对应TaskAssignLog SwimlaneAssignLog | ||
SWIMLANEINSTANCE_ | 日志所属的SWIMLANEINSTANC,对应SwimlaneLog SwimlaneCreateLog SwimlaneAssignLog |
2.4 JBPM_RUNTIMEACTION:流程实时ACTION表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 标识 | √ | |
VERSION_ | 版本 | ||
EVENTTYPE_ | 实时ACTION所处的事件类型名称 | ||
TYPE_ | 实时ACTION所在的图形节点类型 "A" :Task "C" :ProcessState "D" :Decision" "E" :EndState" "F" :Fork" "J" :Join" "K" :TaskNode" "N" :Node" "P" :ProcessDefinition" "R" :StartState" "S" :State" "T" :Transition" "U" :SuperState" | ||
GRAPHELEMENT_ | 实时ACTION所在的图形节点的ID | ||
PROCESSINSTANCE_ | 实时ACTION所在的流程实例,对应JBPM_PROCESSINSTANCE | ||
ACTION_ | 实时ACTION对应的ACTION,对应JBPM_ACTION | ||
PROCESSINSTANCEINDEX_ | ? |
2.5 JBPM_VARIABLEINSTANCE:流程变量实例表
字段名 | 字段含义 | 主键 | 外键 |
ID_ | 标识 | ||
CLASS_ | 变量类型: V : org.jbpm.context.exe.VariableInstance B : org.jbpm.context.exe.variableinstance.ByteArrayInstance D : org.jbpm.context.exe.variableinstance.DateInstance O : org.jbpm.context.exe.variableinstance.DoubleInstance H : org.jbpm.context.exe.variableinstance.HibernateLongInstance I : org.jbpm.context.exe.variableinstance.HibernateStringInstance L : org.jbpm.context.exe.variableinstance.LongInstance S : org.jbpm.context.exe.variableinstance.StringInstance N : org.jbpm.context.exe.variableinstance.NullInstance | ||
NAME_ | 变量名称 | ||
TYPE_ | ? | ||
CONVERTER_ | 数值转换器 | ||
TOKEN_ | 变量所在的TOKEN,对应JBPM_TOKEN | √ | |
TOKENVARIABLEMAP_ | 该变量所属的TOKEN的变量映射,对应JBPM_TOKENVARIABLEMAP | √ | |
PROCESSINSTANCEINDEX_ | ? | ||
PROCESSINSTANCE_ | 变量所在的流程实例,对应JBPM_PROCESSINSTANCE | √ | |
BYTEARRAYVALUE_ | 当流程变量是ByteArray类型时,变量的值,对应JBPM_BYTEARRAY | ||
DATEVALUE_ | 当流程变量是DATE类型时,变量的值 | ||
DOUBLEVALUE_ | 当流程变量是DOUBLE类型时,变量的值 | ||
LONGIDCLASS_ | 当流程变量是了HibernateLongInstance类型时,变量的类型 | ||
LONGVALUE_ | 当流程变量是了HibernateLongInstance/Long类型时,变量的值 | ||
STRINGIDCLASS_ | 当流程变量是了HibernateStringInstance类型时,变量的类型 | ||
STRINGVALUE_ | 当流程变量是了HibernateStringInstance/String类型时,变量的值 | ||
TASKINSTANCE_ | 变量所在的任务实例,对应JBPM_TASKINSTANCE |