当前位置:文档之家› jbpm原理

jbpm原理


GRAPHELEMENT_ PROCESSDEFINITION_ NODE_ TRANSITION_ TASK_
流程事件所在的图形节点的ID 流程事件所属流程定义,对应 JBPM_PROCESSDEFINITION 流程事件所属节点,对应JBPM_NODE 流程事件所属迁移,对应JBPM_ TRANSITION √ √ √ √

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
字段名 ID_ CLASS_ NAME_ SUBPROCESSDEFINITI ON_ ISASYNC_ ACTION_ SUPERSTATE_ PROCESSDEFINITION_ DECISIONDELEGATION DECISIONEXPRESSION _ SIGNAL_ CREATETASKS_ ENDTASKS_ NODECOLLECTIONIND EX_ 流程节点名称 节点类型为ProcessState时使用,代表子流程模版id 节点是否支持异步机制 节点中指定的action,对应JBPM_ACTION表 节点对应的SuperState的id,表明该节点属于某个SuperState 节点所在的流程模版id 节点类型为Decision时使用,表明Decision对应的代理类,对应 JBPM_DELEGATION表 节点类型为Decision时使用,该属性表示Decision中使用的判断表达 式 节点类型为Task 节点类型为Task 节点类型为Task 节点类型为SuperState时使用, √ √ √ √ √ 流程节点标识 字段含义 主键 √ 外键

流程定义

controller(控制器):在任务执行时,可能需要 读、写流程变量;在任务完成并提交时,可能 需要写流程变量。为此,jBPM提供了"任务变 量"的概念。在某些情况下,任务变量和流 程 变量并非简单的一一对应关系
流程定义

condition 条件

exception-handler 异常处理 :jBPM的异常处 理机制仅仅集中于java异常,流程定义本身的 执行不会导致什么异常,只有在执行委托类时 才会导致异常。
流程变量存取方式
MAPPEDNAME
?(暂时不使用)
PROCESSSTATE
流程变量所属的流程节点,对应JBPM_NODE

TASKCONTROLLER
流程变量所属的流程任务控制器,对应JBPM_ TASKCONTROLLER

INDEX_
?
SCRIPT
流程变量所属的ACTION,对应JBPM_ ACTION
流程定义

decision(决策) :一个decision用以决定在多个执 行路径中哪个才可以被执行。 transition(转换) :转换用来指定节点之间的连接。 transition元素放在node里面,那么这个transition 就会从这个节点处离开。

流程定义

event(事件) :jBPM定义了一系列与工作流节点元素相 关联的事件,例如,流程实例运行过程中,可以触发节 点进入(node-enter)、节点离开 (node-leave)、流 程启动(process-start)、流程结束(process-end)、 任务创建(task-create)、 任务分派(task-assign)、 任务启动(task-start)等事件。
流程定义

handler(句柄) :Handler是在定义一个decision 时需要为其定义一个DecisionHandler时采用。 timer(定时器):定时器timer可以被用于decision fork join node process-state state super-state task-node,可以设置开始时间duedate和频率 repeat,定时器动作可以是所支持的任何动作 元素,如action或script。
流程任务所属流程定义,对应JBPM_PROCESSDEFINITION
流程任务描述 任务是否为阻塞(任务不完成、流程不能继续) 任务是否可以驱动TOKEN 任务持续时间,表明任务应在多长时间内完成 ?

POOLEDACTORSEXPRESSION
TASKMGMTDEFINITION_ TASKNODE_ STARTSTATE ASSIGNMENTDELEGATION SWIMLANE TASKCONTROLLER_


流程定义

task(任务) :Task 是是流程定义里的一部分, 它决定了task instance的创建和分配
task-node (任务节点) :其性质和node节点一样, 在没有task的时候,也都是自动执行,不等待。 task-node被归类为一个等待节点,是指在tasknode中的task列表中的task没有全部执行完之前, 它会一直等待。
jBPM
之:表结构(上)
概要

jBPM基本概念 jBPM表的关系 jBPM表结构 小结
流程定义图
流程定义

start-state(开始状态) :整个流程的开始节点,所有 的流程实例从这里开始。 end-state(结束节点) :对于每一个流程定义都会有一 个结束节点,与开始节点对应 state(状态) :State节点也叫手工节点,进入到这种 节点,整个流程的执行就会中断。直到系统外参与者 发起继续执行的命令,即调用signal或end方法,业务 程序实例的执行才能够继续下去。
VERSION_
流程模版版本,对于同一流程 模版,多次插入数据库时,数 据库中有多条记录,每条记录 中的版本号一次增加
×
×
ISTERMINATIONIMPLI CIT_ STARTSTATE_
是否支持强行终止流程(目前 理解) 起始节点ID,在JBPM_NODE表 中
×
×
×

JBPM_NODE:流程节点表
字段名 ID_ NAME_ 流程动作标识 流程动作名称 字段含义 主键 √ √ 外键
CLASS_
ISPROPAGATIONALLOWED_ ACTIONEXPRESSION_ ISASYNC_ REFERENCEDACTION_ ACTIONDELEGATION_ EVENT_ PROCESSDEFINITION_ TIMERNAME_ DUEDATE_ REPEAT_ TRANSITIONNAME_ TIMERACTION_ EXPRESSION_ EVENTINDEX_ EXCEPTIONHANDLER_ ? 动作类行为I时使用,表示动作执行的脚本 动作是否支持异步机制 动作中引用的动作,对应JBPM_ACTION 动作类型为A时使用,表示动作执行的代理类,对应JBPM_DELEGATION 动作中指定的事件,对应JBPM_EVENT 动作所在的流程模版id 定时器名称 定时器间隔时间 定时器动作执行次数 动作指定后指向的Transition 定时器动作代理类,对应JBPM_ACTION 定时器执行表达式 ? 异常处理类,对应JBPM_ EXCEPTIONHANDLER √ √ √

action(动作) :一个action是一段java代码。在流程执 行期间在一些事件之上定义,这样会在相关事件触发 时自动在工作流引擎上执行。
流程定义

variable(变量) :一个是变量是一种key-value对。 它与过程实例(一次过程执行)相关联。Key 是ng.string,value是任何java类型的任 何pojo。所以任何是java类型,即使不给jbpm 知道也能被应用到变量中。JBPM的流程变量 在尽量模仿java.util.map的语义。
字段含义
主键
外键
ID_
流程任务控制器标识

TASKCONTROLLE RDELEGATION_
流程任务控制器对应的代理, 对应JBPM_DELEGATION

JBPM_VARIABLEACCESS:流程变量表
字段名 字段含义 主键 外键
ID_
流程变量标识

VARIABLENAME_
流程变量名称
ACCESS_
EXCEPTIONHANDLERINDEX_

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"
相关主题