1、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.
2、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.StartStateS: org.jbpm.graph.node.StateU: org.jbpm.graph.def.SuperState NAME_ 流程节点名称 S
3、UBPROCESSDEFINITION_节点类型为 ProcessState 时使用,代表子流程模版 idISASYNC_ 节点是否支持异步机制 ACTION_节点中指定的 action,对应 JBPM_ACTION 表SUPERSTATE_节点对应的 SuperState 的 id,表明该节点属于某个 SuperStatePROCESSDEFINITION_节点所在的流程模版 id DECISIONDELEGATION节点类型为 Decision 时使用,表明 Decision 对应的代理类,对应 JBPM_DELEGATION 表DECISIONEXPRESSION_节点类型为 Decis
4、ion 时使用,该属性表示 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_A
5、CTION:流程动作表字段名 字段含义 主键 外键ID_ 流程动作标识 NAME_ 流程动作名称 CLASS_流程动作分类:A(动作): org.jbpm.graph.def.ActionS(脚本): org.jbpm.graph.action.ScriptC(创建定时器):org.jbpm.scheduler.def.CreateTimerAction I(取消定时器):org.jbpm.scheduler.def.CancelTimerAction ISPROPAGATIONALLOWED_? ACTIONEXPRESSION_动作类行为 I 时使用,表示动作执行的脚本ISASYNC_ 动
6、作是否支持异步机制 REFERENCEDACTION_动作中引用的动作,对应 JBPM_ACTIONACTIONDELEGATION_动作类型为 A 时使用,表示动作执行的代理类,对应 JBPM_DELEGATIONEVENT_动作中指定的事件,对应 JBPM_EVENTPROCESSDEFINITION_动作所在的流程模版 id TIMERNAME_ 定时器名称 DUEDATE_ 定时器间隔时间 REPEAT_ 定时器动作执行次数 TRANSITIONNAME_动作指定后指向的 Transition TIMERACTION_定时器动作代理类,对应 JBPM_ACTIONEXPRESSION_
7、 定时器执行表达式 EVENTINDEX_ ? EXCEPTIONHANDLER_异常处理类,对应 JBPM_ EXCEPTIONHANDLEREXCEPTIONHANDLERINDEX_? 1.5 JBPM_EVENT:流程事件表字段名 字段含义 主键 外键ID_ 流程事件标识 EVENTTYPE_ 流程事件类型名称 TYPE_流程事件所在的图形节点类型“A“ :Task“C“ :ProcessState“D“ :Decision“E“ :EndState“ “F“ :Fork“J“ :Join“ “K“ :TaskNode“ “N“ :Node“ “P“ :ProcessDefinitio
8、n“R“ :StartState“ “S“ :State“ “T“ :Transition“U“ :SuperState“ GRAPHELEMENT_ 流程事件所在的图形节点的 ID PROCESSDEFINITION_流程事件所属流程定义,对应 JBPM_PROCESSDEFINITIONNODE_流程事件所属节点,对应 JBPM_NODETRANSITION_流程事件所属迁移,对应 JBPM_ TRANSITIONTASK_流程事件所属任务,对应 JBPM_TASK1.6 JBPM_DELEGATION:流程代理类表(用于实例化 jbpm 中的 action类)字段名 字段含义 主键 外键
9、ID_ 流程代理标识 CLASSNAME_ 流程代理类名称 CONFIGURATION_ 流程代理类配置信息 CONFIGTYPE_ 流程代理类配置类型 PROCESSDEFINITION_流程代理类所属流程定义,对应 JBPM_PROCESSDEFINITION1.7 JBPM_TASK:流程任务表字段名 字段含义 主键 外键ID_ 流程任务标识 NAME_ 流程任务名称 PROCESSDEFINITION_流程任务所属流程定义,对应 JBPM_PROCESSDEFINITIONDESCRIPTION_ 流程任务描述 ISBLOCKING_任务是否为阻塞(任务不完成、流程不能继续)ISSIG
10、NALING_ 任务是否可以驱动 TOKEN DUEDATE任务持续时间,表明任务应在多长时间内完成ACTORIDEXPRESSION? POOLEDACTORSEXPRESSION? TASKMGMTDEFINITION_任务所属的任务管理模块 ID,对应 JBPM_MODULEDEFIFNITIONTASKNODE_任务所属的 TASK_NODE,对应JBPM_NODESTARTSTATE任务所属的 START_NODE,对应 JBPM_NODEASSIGNMENTDELEGATION? SWIMLANE 执行该任务的泳道(角色) TASKCONTROLLER_? 1.8 JBPM_TAS
11、KCONTROLLER:流程任务控制器字段名 字段含义 主键 外键ID_ 流程任务控制器标识 TASKCONTROLLERDELEGATION_流程任务控制器对应的代理,对应 JBPM_DELEGATION1.9 JBPM_VARIABLEACCESS:流程变量表字段名 字段含义 主键 外键ID_ 流程变量标识 VARIABLENAME_ 流程变量名称 ACCESS_ 流程变量存取方式 MAPPEDNAME ?(暂时不使用) PROCESSSTATE流程变量所属的流程节点,对应 JBPM_NODETASKCONTROLLER 流程变量所属的流程任务控制 器,对应 JBPM_ TASKCONTR
12、OLLERINDEX_ ? SCRIPT流程变量所属的 ACTION,对应JBPM_ ACTION1.10 JBPM_MODULEDEFINITION:流程模块定义表字段名 字段含义 主键 外键ID_ 流程模块标识 CLASS_流程模块类型:M : org.jbpm.module.def.ModuleDefinition C : org.jbpm.context.def.ContextDefinitionF : org.jbpm.file.def.FileDefinition L: org.jbpm.logging.def.LoggingDefinition I: org.jbpm.sched
13、uler.def.SchedulerDefinition T: org.jbpm.taskmgmt.def.TaskMgmtDefinition NAME_ 流程模块名称 PROCESSDEFINITI 流程模块所属流程定义,对应 J ON_ BPM_PROCESSDEFINITIONSTARTTASK类型为 T 时使用,对应 JBPM_TASK1.11JBPM_EXCEPTIONHANDLER:流程异常处理器表字段名 字段含义 主键 外键ID_ 流程异常处理器标识 EXCEPTIONHANDLERNAME_流程异常处理器名称 TYPE_流程异常处理器所在的图形节点类型“A“ :Task“C“
14、 :ProcessState“D“ :Decision“E“ :EndState“ “F“ :Fork“J“ :Join“ “K“ :TaskNode“ “N“ :Node“ “P“ :ProcessDefinition“R“ :StartState“ “S“ :State“ “T“ :Transition“U“ :SuperState“ GRAPHELEMENT_流程异常处理器所在的图形节点的 IDPROCESSDEFINITION_流程异常处理器所属流程定义,对应 JBPM_PROCESSDEFINITIONNODE_流程异常处理器所属节点,对应 JBPM_NODETRANSITION_流
15、程异常处理器所属迁移,对应 JBPM_ TRANSITIONTASK_流程异常处理器所属任务,对应 JBPM_TASKGRAPHELEMENTINDEX_流程异常处理器中包含的 ACTION 集合的索引(?)1.12 JBPM_DECISIONCONDITION:DECISION 节点判断条件表字段名 字段含义 主键 外键INDEX_ 标识 DECISION_所属的 DECISION,对应 JBPM_NODE TRANSITIONNAME_DECISION 节点的 “离开节点名称”EXPRESSION每一个“离开节点名称”对应的条件表达式1.13 JBPM_ SWINLANE:DECISION
16、 节点判断条件表字段名 字段含义 主键 外键ID_ 标识 NAME_ 泳道名称 TRANSITIONNAME_DECISION 节点的 “离开节点名称”EXPRESSION每一个“离开节点名称”对应的条件表达式2 流程运行类数据库表:2.1 JBPM_PROCESSINSTANCE:流程实例表字段名 字段含义 主键 外键ID_ 标识 VERSION_ 版本 START_ 流程实例开始时间 END_ 流程实例结束时间 ISSUSPENDED 流程实例是否暂停 PROCESSDEFINITION_流程实例所属的流程模版,对应 JBPM_PROCESSDEFINITIONROOTTOKEN_流程实例
17、对应的 TOKEN,对应JBPM_TOKENSUPERPROCESSTOKEN_父流程的当前 TOKEN 的 ID,当流程实例为子流程实例时使用,表明由父流程进入子流程时,父流程的当前 TOKEN。对应 JBPM_TOKEN2.2 JBPM_TOKEN:流程 TOKEN 表字段名 字段含义 主键 外键ID_ 标识 VERSION_ 版本 START_ TOKEN 开始时间 END_ TOKEN 结束时间 NODEENTER_TOKEN 进入当前节点(TOKEN当前所处的节点)的时间NEXTLOGINDEX_ ? ISABLETOREACTIVATEPARENT_能否重新激活父 TOKEN 标志
18、 ISTERMINATIONIMPLICIT_能够强制终止 TOKEN 标志 ISSUSPENDED_ TOKEN 是否处于暂停状态 NODE_TOKEN 所在的当前节点,对应JBPM_NODEPROCESSINSTANCE_TOKEN 所属的流程实例,对应JBPM_PROCESSINSTANCEPARENT_TOKEN 的父 TOKEN,当 TOKEN 是由 fock 产生或处于子流程中时使用,对应 JBPM_TOKEN2.3 JBPM_LOG:流程日志表字段名 字段含义 主键 外键ID_ 标识 CLASS_日志类型:A: ActionLogB: ByteArrayUpdateLog C:
19、CompositeLogD: VariableDeleteLog E: DateUpdateLogF: HibernateStringUpdateLogG: LongUpdateLogH: HibernateLongUpdateLog I: ProcessInstanceCreateLogL: DoubleUpdateLog M: MessageLogN: NodeLogO: TokenCreateLogP: ProcessLogR: VariableCreateLog S: SignalLogT: TransitionLogU: StringUpdateLog V: VariableLogW
20、: VariableUpdateLog X: ProcessInstanceEndLog Y: TokenEndLog0: TaskLog1: TaskCreateLog 2: TaskAssignLog3: TaskEndLog 4: SwimlaneLog5: SwimlaneCreateLog6: SwimlaneAssignLog INDEX_ ? DATE_ 日志产生时间 TOKEN _ 日志所属 TOKEN PARENT_日志的父日志,对应 JBPM_LOGCHILD_ 创建的子 TOKEN,对应 Toke nCreateLog结束的子 TOKEN,对应 TokenEndLogME
21、SSAGE_消息信息,当日志类型为 M(MessageLog)时使用EXCEPTION_日志异常信息,对应 ActionLogACTION_日志所属 ACTION,当日志类型为 A(ActionLog)时使用NODE_日志所属 NODE,当日志类型为 N(NodeLog)时使用ENTER_进入节点时间,对应 NodeLogLEAVE_离开节点时间,对应 NodeLogDURATION_节点停留时间,对应 NodeLogTRANSITION_ 日志所属 TRANSITION SOURCENODE_TRANSITION 的起点,对应 TransitionLogDESTINATIONNODE_TRA
22、NSITION 的终点,对应 TransitionLogVARIABLEINSTANCE_日志所属的流程变量实例,对应 VariableLogOLDBYTEARRAY_原 BYTEARRAY 值,对应 ByteArrayUpdateLogNEWBYTEARRAY 新 BYTEARRAY 值,对应 ByteArrayUpdateLogOLDDATEVALUE原 DATE 值,对应 DateUpdateLogNEWDATEVALUE新 DATE 值,对应 DateUpdateLogOLDDOUBLEVALUE_ 原 DOUBLE 值,对应 DoubleUpdateLogNEWDOUBLEVALUE
23、_新 DOUBLE 值,对应 DoubleUpdateLogOLDLONGIDCLASS_原 LONGIDCLASS 值,对应 HibernateLongUpdateLogNEWLONGIDCLASS_ 新 LONGIDCLASS 值,对应 HibernateLongUpdateLogOLDLONGIDVALUE_ 原 LONGID 值,对应 HibernateLongUpdateLogNEWLONGIDVALUE_新 LONGID 值,对应 HibernateLongUpdateLogOLDSTRINGIDCLASS_原 STRINGIDCLASS 值,对应 HibernateStringU
24、pdateLogOLDSTRINGIDVALUE_原 STRINGID 值,对应 HibernateStringUpdateLogNEWSTRINGIDCLASS_ 新 STRINGIDCLASS 值,对应 HibernateStringUpdateLogNEWSTRINGIDVALUE_新 STRINGID 值,对应 HibernateStringUpdateLogOLDLONGVALUE_ 原 LONG 值,对应 LongUpdateLogNEWLONGVALUE_ 新 LONG 值,对应 LongUpda teLogOLDSTRINGVALUE_原 STRING 值,对应 StringU
25、pdateLogNEWSTRINGVALUE_新 STRING 值,对应 StringUpdateLogTASKINSTANCE_ 日志所属的 TASKINSTANCE,对应 TaskLogTaskCreateLogTaskAssignLogTaskEndLog TASKACTORID_ 任务的新 ACTORID,对应 TaskAssignLogTaskCreateLogSwimlaneCreateLogSwimlaneAssignLogTASKOLDACTORID_ 任务的原 ACTORID,对应 TaskAssignLogSwimlaneAssignLogSWIMLANEINSTANCE_
26、日志所属的 SWIMLANEINSTANC,对应 SwimlaneLogSwimlaneCreateLogSwimlaneAssignLog2.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“ :Pro
27、cessDefinition“R“ :StartState“ “S“ :State“ “T“ :Transition“U“ :SuperState“ GRAPHELEMENT_ 实时 ACTION 所在的图形节点 的 IDPROCESSINSTANCE_ 实时 ACTION 所在的流程实例,对应 JBPM_PROCESSINSTANCEACTION_ 实时 ACTION 对应的 ACTION,对应 JBPM_ACTIONPROCESSINSTANCEINDEX_ ? 2.5 JBPM_VARIABLEINSTANCE:流程变量实例表字段名 字段含义 主键 外键ID_ 标识 CLASS_ 变量类
28、型:V : org.jbpm.context.exe.VariableInstanceB : org.jbpm.context.exe.variableinstance.ByteArrayInstanceD : org.jbpm.context.exe.variableinstance.DateInstanceO : org.jbpm.context.exe.variableinstance.DoubleInstanceH : org.jbpm.context.exe.variableinstance.HibernateLongInstanceI : org.jbpm.context.exe.
29、variableinstance.HibernateStringInstanceL : org.jbpm.context.exe.variableinstance.LongInstanceS : org.jbpm.context.exe.variableinstance.StringInstanceN : org.jbpm.context.exe.variableinstance.NullInstanceNAME_ 变量名称 TYPE_ ? CONVERTER_ 数值转换器 TOKEN_变量所在的 TOKEN,对应 JBPM_TOKENTOKENVARIABLEMAP_该变量所属的 TOKEN
30、 的变量映射,对应 JBPM_TOKENVARIABLEMAPPROCESSINSTANCEINDEX_ ? PROCESSINSTANCE_变量所在的流程实例,对应 JBPM_PROCESSINSTANCEBYTEARRAYVALUE_当流程变量是 ByteArray 类型时,变量的值,对应 JBPM_BYTEARRAYDATEVALUE_当流程变量是 DATE 类型时,变量的值DOUBLEVALUE_当流程变量是 DOUBLE 类型时,变量的值LONGIDCLASS_当流程变量是了 HibernateLongInstance 类型时,变量的类型LONGVALUE_当流程变量是了 Hiber
31、nateLongInstance/Long 类型时,变量的值STRINGIDCLASS_当流程变量是了 HibernateStringInstance 类型时,变量的类型STRINGVALUE_ 当流程变量是了 HibernateStringInstance/String 类型时,变量的值TASKINSTANCE_ 变量所在的任务实例,对应 JBPM_TASKINSTANCE2.6 JBPM_COMMENT:流程备注信息表字段名 字段含义 主键 外键ID_ 标识 VERSION_ 版本 ACTORID_ 产生该备注的 ACTOR TIME_ 流程备注产生时间 MESSAGE_ 流程备注信息 T
32、OKEN_ 流程备注所属的 TOKEN,对应JBPM_TOKENTASKINSTANCE_ 流程备注所属的 TASKINSTANCE,对应 JBPM_TASKINSTANCETOKENINDEX_ ? TASKINSTANCEINDEX_? 2.7 JBPM_MESSAGE:流程异步消息表字段名 字段含义 主键 外键ID_ 标识 CLASS_消息类型M : org.jbpm.msg.Message T : org.jbpm.msg.db.TextMessageA : mand.ExecuteActionCommandN : mand.ExecuteNodeCommandS : mand.Sig
33、nalCommandK : mand.TaskInstanceEndCommand DESTINATION_ 消息目的源 EXCEPTION_ 消息异常信息 ISSUSPENDED_ ? TOKEN_ 流程消息所属的 TOKEN,对应JBPM_TOKENTASKINSTANCE_ 流程消息所属的 TASKINSTANCE,对应 JBPM_TASKINSTANCETEXT_ 消息内容 ACTION_ 流程消息所属的 ACTION,对应JBPM_ ACTIONNODE_ 流程消息所属的 NODE,对应 JBPM_ NODE TRANSITIONNAME_ ? 2.8 JBPM_TIMER:流程定时
34、器表字段名 字段含义 主键 外键ID_ 标识 NAME_ 定时器名称 DUEDATE_ 定时器每次执行的间隔时间 REPEAT_ 定时器是否重复执行 TRANSITIONNAME_定时器执行后,流程的目的 TRANSITION 名称EXCEPTION_ 流程备注所属的 TOKEN,对应JBPM_TOKENISSUSPENDED_ ACTION_定时器所属的 ACTION,对应 JBPM_ ACTIONTOKEN_定时器所属的 TOKEN,对应 JBPM_ TOKENPROCESSINSTANCE_定时器所属的 PROCESSINSTANCE,对应 JBPM_PROCESSINSTANCETAS
35、KINSTANCE_定时器所属的 TASKINSTANCE,对应 JBPM_TASKINSTANCEGRAPHELEMENTTYPE_ 定时器所属的图形元素类型 GRAPHELEMENT_ 定时器所属的图形元素 2.9 JBPM_TOKENVARIABLEMAP:流程 TOKEN 变量 MAP 表字段名 字段含义 主键 外键ID_ 标识 TOKEN_ 流程 TOKEN 变量映射所属的 TOKEN,对应 JBPM_TOKENCONTEXTINSTANCE_ 流程 TOKEN 变量映射所属的流程上下文实例,对应 JBPM_MODULEINSTANCE2.10 JBPM_MODULEINSTANCE
36、:流程模块实例表字段名 字段含义 主键 外键ID_ 标识 CLASS_ 模块实例类型:M: org.jbpm.module.exe.ModuleInstanceC: org.jbpm.context.exe.ContextInstanceL: org.jbpm.logging.exe.LoggingInstanceI: org.jbpm.scheduler.exe.SchedulerInstanceT: org.jbpm.taskmgmt.def.TaskMgmtDefinition PROCESSINSTANCE_ 模块实例所属的流程实例,对应 JBPM_PROCESSINSTANCETASKMGMTDEFINITION_ 任务类模块实例所属的任务模块,对应 JBPM_MODULEDEFINITIONNAME_ 模块实例名称 2.11 JBPM_BYTEARRAY:文件模块形式的流程变量实例表字段名 字段含义 主键 外键ID_ 标识 NAME_ 流程变量名称 FILEDEFINITION_FILEMODULE,对应 JBPM_MODULEDEFINITION2.12 JBPM_BYTEBLOCK:字段名 字段含义 主键 外键PROCESSFILE_ 对应 JBPM_BYTEARRAY BYTES_ 序列化流程变量 INDEX_ 标识