jBPM-jPDL学习笔记—框架设计简介(三)
编号 | PD-006 |
对象 | 任务(Task) |
描述 | 任务作为流程定义中的一部分,定义了如何创建任务实例(Task instances)以及任务分配。任务可以在任务结点(Task-Node)和流程定义(process-definition)两个地方定义。通常会在一个任务结点中定义一个或多个的任务。在这种情况下,任务结点表示在流程中等待用户处理的交互操作。业务流程会停留在任务处,等待用户完成相应的操作之后继续。任务也可在流程定义中声明。通过任务名,可以找到相应的任务定义,并引用他们。实际上任何有命名的任务都可以通过名字被引用。在整个的流程定义中,任务名必须是唯一的。此外,还可以给任务设定优先级,这些优先级属性将成为任务实例化时的默认设置。任务实例可以在之后的运行中改变优先级。. |
Java对象 | org.jbpm.taskmgmt.def.Task |
数据库表 | JBPM_TASK该表存储流程定义中声明的任务对象。 |
表关联说明 | JBPM_TASK表中,每条记录有自己的数据库流水号ID_
JBPM_TASK的外键(Foreign Keys):
|
具体化的流程实例模型
本章节介绍流程实例中最重要的三个对象:流程实例(Process Instance)、令牌(Token)、任务实例(Task Instance).
编号 | PI-001 |
对象 | 流程实例(Process Instance) |
描述 | 流程实例是流程定义的运行时状态,它记录了一个流程运行的起始时间、结束时间等状态信息 |
Java对象 | org.jbpm.graph.exe.ProcessInstance |
数据库表 | JBPM_PROCESSINSTANCE该表存储运行时的流程对象信息。 |
表关联说明 | JBPM_PROCESSINSTANCE表中,每条记录有自己的数据库流水号
ID_JBPM_PROCESSINSTANCE的外键(Foreign Keys):
|
编号 | PI-002 |
对象 | 令牌(Token) |
描述 | 令牌代表一个流程执行的路径,它维护着流程定义中各个结点的指针,同时记录了流程当前执行的位置。 |
Java对象 | org.jbpm.graph.exe.Token |
数据库表 | JBPM_TOKEN该表存储运行时令牌对象信息,它表示当前流程执行到的位置。 |
表关联说明 | JBPM_TOKEN表中,每条记录有自己的数据库流水号ID_
JBPM_TOKEN的外键(Foreign Keys):
|
编号 | PI-003 |
对象 | 任务实例(Task Instance) |
描述 | 一个任务实例对象可以分配给指定的操作者处理,当任务完成后,将触发流程继续下行。任务实例的生命周期很简单,生成实例-->开始处理-->任务结束。从弹性设计考虑出发,任务的分配不属于实例生命周期的一部分,任务是否被分配是不会影响其生命周期过程的。当流程进入一个任务结点的时候,结点上任务被实例化;用户通过访问系统的界面组件,获取自己的任务列表,可以进行任务委派、处理或直接结束任务。任务实例记录着任务创建的时间、结束时间,这些信息可以通过TaskInstance对象中的getter方法获取。一个任务实例的结束时间标识它的完成,在后绪的任务查询中,该实例不会被取出,但实例的记录仍保留于数据库中。 |
Java对象 | org.jbpm.taskmgmt.exe.TaskInstance |
数据库表 | JBPM_ TASKINSTANCE该表存储运行时任务实例信息。 |
表关联说明 | JBPM_ TASKINSTANCE表中,每条记录有自己的数据库流水号ID_
JBPM_ TASKINSTANCE的外键(Foreign Keys):
|
jPDL语言主要XML元素大纲
本章节将介绍jPDL语言中,主要几个XML元素的属性及相关描述。
<process-definition>(流程定义)
名称 | 类型 | 多样性 | 描述 |
name | 属性 | 可选 | 流程的名称 |
swimlane | 元素 | [0..*] | 在流程中使用的swimlanes 。 swimlanes是过程中的用户角色,可以用于任务的委派分配 |
start-state | 元素 | [0..1] | 流程的起始状态结点 |
{end-state|state|node| task-node|process-state| super-state|fork|join|decision} | 元素 | [0..*] | 流程定义中出现的各类结点 |
event | 元素 | [0..*] | 流程中的事件,可看成是action的容器 |
{action|script|create-timer |cancel-timer} | 元素 | [0..*] | 全局定义的action,可以在 events和transitions中通过命名引用 |
task | 元素 | [0..*] | 全局定义的task,可以在action中使用命名来引用. |
exception-handler | 元素 | [0..*] | 异常处理类,用来处理委派类抛出的异常. |
<node>(节点)
名称 | 类型 | 多样性 | 描述 |
{action|script|create-timer |cancel-timer} | 元素 | 1 | 定制的结点动作 |
common node elements | 参考common node elements |