http://blog.163.com/[email protected]/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 |