jbpm原理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流程定义
task(任务) :Task 是是流程定义里的一部分, 它决定了task instance的创建和分配
task-node (任务节点) :其性质和node节点一样, ( ) node 在没有task的时候,也都是自动执行,不等待。 task-node被归类为一个等待节点,是指在tasknode中的task列表中的task没有全部执行完之前, 它会一直等待。
流程定义
controller(控制器):在任务执行时,可能需要 读、写流程变量;在任务完成并提交时,可能 需要写流程变量。为此,jBPM提供了"任务变 量"的概念。在某些情况下,任务变量和流 程 变量并非简单的一一对应关系
流程定义
condition 条件 exception-handler 异常处理 :jBPM的异常处 理机制仅仅集中于java异常,流程定义本身的 执行不会导致什么异常,只有在执行委托类时 才会导致异常。
GRAPHELEMENT_ PROCESSDEFINITION_ NODE_ TRANSITION_ TASK_
流程事件所在的图形节点的ID 流程事件所属流程定义,对应 JBPM_PROCESSDEFINITION 流程事件所属节点,对应JBPM_NODE
√ √ √ √
流程事件所属迁移,对应JBPM_ TRANSITION
JBPM_TRANSITION:流程迁移表 :
字段名 ID_ 字段含义 流程迁移标识 主键 √ 外键
NAME_ PROCESSDEFINITIO N_ FROM_
流程迁移名称
迁移所在的流程模版id
√
迁移来源,对应Node的id
√
TO_
迁移目的,对应Node的id
√
FROMINDEX_
?
JBPM_ACTION:流程动作表 :
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"
action(动作) :一个action是一段java代码。在流程执 行期间在一些事件之上定义,这样会在相关事件触发 时自动在工作流引擎上执行。
流程定义
variable(变量) :一个是变量是一种key-value对。 它与过程实例(一次过程执行)相关联。Key 是java.lang.string,value是任何java类型的任 何pojo。所以任何是java类型,即使不给jbpm 知道也能被应用到变量中。JBPM的流程变量 在尽量模仿java.util.map的语义。
流程事件所属任务,对应JBPM_TASK
JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的 :流程代理类表(用于实例化 中的action类) 中的 类
字段名
字段含义
主键
外键
ID_
流程代理标识
√
CLASSNAME_
流程代理类名称
CONFIGURATION_
流程代理类配置信息
CONFIGTYPE_
字段名 ID_ NAME_ CLASS_ ISPROPAGATIONALLOWED_ ACTIONEXPRESSION_ ISASYNC_ REFERENCEDACTION_ ACTIONDELEGATION_ EVENT_ PROCESSDEFINITION_ TIMERNAME_ DUEDATE_ REPEAT_ TRANSITIONNAME_ TIMERACTION_ EXPRESSION_ EVENTINDEX_ EXCEPTIONHANDLER_ EXCEPTIONHANDLERINDEX_ ? 动作类行为I时使用,表示动作执行的脚本 动作是否支持异步机制 动作中引用的动作,对应JBPM_ACTION 动作类型为A时使用,表示动作执行的代理类,对应JBPM_DELEGATION 动作中指定的事件,对应JBPM_EVENT 动作所在的流程模版id 定时器名称 定时器间隔时间 定时器动作执行次数 动作指定后指向的Transition 定时器动作代理类,对应JBPM_ACTION 定时器执行表达式 ? 异常处理类,对应JBPM_ EXCEPTIONHANDLER ? √ √ √ 流程动作标识 流程动作名称 字段含义 主键 √ √ 外键
流程定义
swimlane(泳道) :在jBPM中通过创建一个 swimlane并且把swimlane赋给一个task的方式 来设置当前task的参与者(actor)。 assignment(委派) :当流程执行到某个Task的 时候,引时流程引挚要调用相应的swimlane或 assignment将当前的task分配(委派)给某个 参与者,外部参与者可以是一个人也可以是某 个系统等。
流程定义
decision(决策) :一个decision用以决定在多个执 行路径中哪个才可以被执行。 transition(转换) :转换用来指定节点之间的连接。 transition元素放在node里面,那么这个transition 就会从这个节点处离开。
流程定义
event(事件) :jBPM定义了一系列与工作流节点元素相 关联的事件,例如,流程实例运行过程中,可以触发节 点进入(node-enter)、节点离开 (node-leave)、流 程启动(process-start)、流程结束(process-end)、 任务创建(task-create)、 任务分派(task-assign)、 任务启动(task-start)等事件。
流程定义
fork(分支) :一个fork把一个执行路线分割成多 个执行路线. 默认分支的行为是为每个离开分支 转换建立一个子令牌,在令牌要到达的分支之间 建立一个父母-子女关系 join(联合)默认联合(join)假设所有来自同一个父 母的子令牌联合,当在上使用fork(分支)这个情 形就出现了并且所有令牌分支建立,并且到达 同一个联合(join)。
VERSION_
×
×
ISTERMINATIONIMPLI CIT_ STARTSTATE_
是否支持强行终止流程(目前 理解) 起始节点ID,在JBPM_NODE表 中
×
×
×
√
JBPM_NODE:流程节点表 :
字段名 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时使用, √ √ √ √ √ 流程节点标识 字段含义 主键 √ 外键
JBPM_TASKCONTROLLER:流程任务控制器 :
字段名
字段含义
主键
外键
ID_
流程任务控制器标识
√
TASKCONTROLLE RDELEGATION _
流程任务控制器对应的代理, 对应JBPM_DELEGATION
√
JBPM_VARIABLEACCESS:流程变量表 :
字段名 字段含义 主键 外键
流程代理类配置类型
PROCESSDEFINITIO N_
流程代理类所属流程定义,对应 JBPM_PROCESSDEFINITION
√
JBPM_TASK:流程任务表 :
字段名 ID_ NAME_ PROCESSDEFINITION_ DESCRIPTION_ ISBLOCKING_ ISSIGNALING_ DUEDATE ACTORIDEXPRESSION POOLEDACTORSEXPRESSION TASKMGMTDEFINITION_ TASKNODE_ STARTSTATE ASSIGNMENTDELEGATION SWIMLANE TAபைடு நூலகம்KCONTROLLER_ 流程任务标识 流程任务名称 流程任务所属流程定义,对应JBPM_PROCESSDEFINITION 流程任务描述 任务是否为阻塞(任务不完成、流程不能继续) 任务是否可以驱动TOKEN 任务持续时间,表明任务应在多长时间内完成 ? ? 任务所属的任务管理模块ID,对应JBPM_MODULEDEFIFNITION 任务所属的TASK_NODE,对应JBPM_NODE 任务所属的START_NODE,对应JBPM_NODE ? 执行该任务的泳道(角色) ? √ √ √ √ √ √ 字段含义 主键 √ 外键
流程定义
handler(句柄) :Handler是在定义一个decision 时需要为其定义一个DecisionHandler时采用。 timer(定时器):定时器timer可以被用于decision fork join node process-state state super-state task-node,可以设置开始时间duedate和频率 repeat,定时器动作可以是所支持的任何动作 元素,如action或script。
流程定义表
流程代理类表
流程异常处理器表
流程模块定义表
流程迁移表
流程事件表
流程动作表
流程任务控制器
流程变量表
流程任务表
泳道表
流程节点表
DECISION节点判断条件表
JBPM_PROCESSDEFINITION:流程模版表 :
字段名 ID_ NAME_ 字段含义 流程模版标识 流程模版名称 流程模版版本,对于同一流程 模版,多次插入数据库时, 数据库中有多条记录,每 条记录中的版本号一次增 加 主键 √ × 外键 × ×
ID_
流程变量标识
√
VARIABLENAME_
流程变量名称
ACCESS_
流程变量存取方式
MAPPEDNAME
?(暂时不使用)
PROCESSSTATE
流程变量所属的流程节点,对应JBPM_NODE
√
TASKCONTROLLER
流程变量所属的流程任务控制器,对应JBPM_ TASKCONTROLLER
√
掀起jBPM的盖头来 的盖头来 掀起
之:表结构(上)
概要
jBPM基本概念 jBPM表的关系 jBPM表结构 小结
流程定义图
流程定义
start-state(开始状态) :整个流程的开始节点,所有 的流程实例从这里开始。 end-state(结束节点) :对于每一个流程定义都会有一 个结束节点,与开始节点对应 state(状态) :State节点也叫手工节点,进入到这种 节点,整个流程的执行就会中断。直到系统外参与者 发起继续执行的命令,即调用signal或end方法,业务 程序实例的执行才能够继续下去。
INDEX_
?
SCRIPT
流程变量所属的ACTION,对应JBPM_ ACTION
√
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.SchedulerDefiniti on T: org.jbpm.taskmgmt.def.TaskMgmtDefini tion