`

jBPM-jPDL学习笔记—框架设计简介(三)

 
阅读更多

jBPM-jPDL学习笔记—框架设计简介(三)

关键字: jbpm jpdl 元素定义

 

上接 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):

  • processdefinition_-指向task所属的流程定义ID
  • taskmgmtdefinition_ - 指向task引用的TaskMgmtDefintion对象ID
  • tasknode_ - 指向task所属的任务结点ID
  • startstate_ -指向task所属流程的起始结点ID
  • assignmentdelegation_ - 指定task委派处理的class对象的ID
  • swimlane_ - 指定task要授权的swimlane(角色)ID
  • taskcontroller_ - 指定一个task赋值的委托类
上述我们剖析了jPDL业务流程定义中最重要的几个静态对象,说明了它们的概念、作用、行为特征及关联关系。在正式的运行环境中,这些对象定义被jPDL持久化于数据库中,当用户发起一个业务流程时,被系统实例化。在下面的小节中,我们要讲述流程被实例化后的数据模型。

具体化的流程实例模型

本章节介绍流程实例中最重要的三个对象:流程实例(Process Instance)、令牌(Token)、任务实例(Task Instance.

编号 PI-001
对象 流程实例(Process Instance
描述 流程实例是流程定义的运行时状态,它记录了一个流程运行的起始时间、结束时间等状态信息
Java对象 org.jbpm.graph.exe.ProcessInstance
数据库表 JBPM_PROCESSINSTANCE该表存储运行时的流程对象信息。
表关联说明

JBPM_PROCESSINSTANCE表中,每条记录有自己的数据库流水号

 

ID_JBPM_PROCESSINSTANCE的外键(Foreign Keys):

  • processdefinition_ - 该流程实例对应的流程定义的ID
  • roottoken_ - 该流程实例引用的跟令牌
  • superprocesstoken_ - 如果当前流程是某个流程实例的子流程,则指向该父流程的ID
编号 PI-002
对象 令牌(Token
描述 令牌代表一个流程执行的路径,它维护着流程定义中各个结点的指针,同时记录了流程当前执行的位置。
Java对象 org.jbpm.graph.exe.Token
数据库表 JBPM_TOKEN该表存储运行时令牌对象信息,它表示当前流程执行到的位置。
表关联说明

JBPM_TOKEN表中,每条记录有自己的数据库流水号ID_

 

JBPM_TOKEN的外键(Foreign Keys):

  • processinstance_ - 指向该令牌所属的流程实例的ID
  • subprocessinstance_ - 指向该令牌所属的子流程实例ID
  • node_ - 令牌所在(所指向的)的当前节点ID.
  • parent_ - 如果当前令牌是一个分支流程或子流程的令牌,则该值指向其父令牌ID
编号 PI-003
对象 任务实例(Task Instance
描述 一个任务实例对象可以分配给指定的操作者处理,当任务完成后,将触发流程继续下行。任务实例的生命周期很简单,生成实例-->开始处理-->任务结束。从弹性设计考虑出发,任务的分配不属于实例生命周期的一部分,任务是否被分配是不会影响其生命周期过程的。当流程进入一个任务结点的时候,结点上任务被实例化;用户通过访问系统的界面组件,获取自己的任务列表,可以进行任务委派、处理或直接结束任务。任务实例记录着任务创建的时间、结束时间,这些信息可以通过TaskInstance对象中的getter方法获取。一个任务实例的结束时间标识它的完成,在后绪的任务查询中,该实例不会被取出,但实例的记录仍保留于数据库中。
Java对象 org.jbpm.taskmgmt.exe.TaskInstance
数据库表 JBPM_TASKINSTANCE该表存储运行时任务实例信息。
表关联说明

JBPM_TASKINSTANCE表中,每条记录有自己的数据库流水号ID_

 

JBPM_TASKINSTANCE的外键(Foreign Keys):

  • task_ - 指向定义该实例的任务ID
  • token_ - 指向任务实例对应的令牌ID
  • swimlaneinstatnce_- swimlane 实例,表示处理该任务的角色
  • taskmgmtinstance_ - 管理该任务的模块实例ID

 

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,可以在 eventstransitions中通过命名引用
task 元素 [0..*] 全局定义的task,可以在action中使用命名来引用.
exception-handler 元素 [0..*] 异常处理类,用来处理委派类抛出的异常.

<node>(节点)

名称 类型 多样性 描述
{action|script|create-timer |cancel-timer} 元素 1 定制的结点动作
common node elements     参考common node elements

 

 

 

下接 jBPM-jPDL学习笔记—框架设计简介(四)

分享到:
评论

相关推荐

    jBPM-jPDL学习笔记—框架设计简介

    总的来说,jBPM-jPDL框架为开发者提供了一套全面的工具和语言,用于设计、实现和管理企业级的业务流程。通过图形化设计、用户认证、数据库持久化以及监控控制台等功能,jBPM-jPDL简化了业务流程的开发和维护,使得...

    jBPM-jPDL学习笔记

    2、框架设计简介: jBPM的设计旨在提供一个完整的业务流程生命周期管理解决方案,包括建模、部署、执行和监控。分发包通常包含库文件、源代码、文档以及示例。业务流程模型通过jPDL来定义,它涵盖了流程的开始、结束...

    《jBPM学习笔记_框架设计简介》

    ### jBPM学习笔记_框架设计简介 #### JPDL与jBPM框架设计概述 jBPM(Java Business Process Model)是一种开源的工作流引擎,它提供了用于定义、执行和管理业务流程的功能。JPDL(jBPM Process Definition ...

    jbpm jbpm3 jbpm4 用户和开发指南+教程+最佳实践全套

    "jBPM-jPDL学习笔记.pdf"可能是一份针对jPDL的学习资料,jPDL是一种XML格式的语言,用于描述jbpm中的业务流程。这份笔记可能会讲解如何通过jPDL定义活动、分支、循环等流程元素,并提供实例解析。 "jBPM4.0.pdf"很...

    JPBM实战经验以及相关参考文档

    在安装配置方面,"jBPM-jPDL学习笔记—框架设计简介.doc"和"jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL.doc"将是你的重要参考资料。这两个文档详细介绍了如何搭建jBPM开发环境,包括下载和安装jBPM工具,配置...

    jbpm实战讲解.pdf

    #### 三、JBPM学习笔记系列 **1.1 Ant构建与数据库环境配置** - 重点介绍了如何使用Ant进行构建和部署,以及如何配置数据库环境,为后续的流程定义和执行打下基础。 **1.2 MyEclipse整合JBPM配置** - 讲述了...

Global site tag (gtag.js) - Google Analytics