Jbpm3.2 开发一个Hello World程序

来源:互联网 发布:python 矩阵函数相乘 编辑:程序博客网 时间:2024/06/09 08:33

    这是一个超级简单的请假流程,只是为了学习,其他的我就不说了直接开始了。

1.定义 流程processdefinition.xml

    流程文件定义文件是 processdefinition.xml,这个是一个关键文件。具体内容如下:

 


 

 

 

 

processdefinition.xml文件相关标签说明:

说明:

    流程的名称改成了 helloworld 。(呵呵,也就是这里和 helloworld 有关了)

       <controller> 标签定义了三个数据:姓名、请假天数、说明。

       <transition> 标签定了 request 节点的一个流程转向,这里是转到 confirm 节点。

       <action> 标签定义了流程由一个节点转到另一个节点时,所要执行的动作,动作封装在一个              

       ActionHandler 类中。比如这里当 request confirm 结点时将执行 RequestAction 类的 execute 方法。

       RequestAction 下面还有一个 <reason> (请假理由),它对应于 FinshAction 的属性 String reason

    例如:

 

      

 

 流程文件对应的流程图如下:


 

     在processdefinition.xml中定义2个ActionHandler,分别是RequestAction和ConfirmAction,具体代码如下:

 

说明:

ExecutionContext 是一个贯通流程的容器,他是个大宝箱,里面啥玩意都有,后面将更深入的提到。这里的reasion就是processdefinition.xml中的我要请假。


 

 

 到了这里,后台的程序基本写完了,下面开始对流程进行部署,用前面提到的方法如下:

 

 

 

 

运行此程序看是否成功,在这里我的是可以的,我们继续了。


我慢来看看jbpm数据相关表:如下图

 

 

 

并由此简单判断出各表的作用,表中各字段的作用由字段名也能知晓一二。

jbpm_processdefinition : 一个流程定义文件对应一条记录,可记录多个流程定义文件,可记录一个流程定义文件的对个版本。
 
jbpm_action  : 记录 ActionHandler 的对象实例(以名称为标识)
 
jbpm_delegation : 记录了 ActionHandler 全类名,以便于用反射方式来加载
 
jbpm_envent : 它的 transition 引用了 Jbpm_transition 表的 id ,再看其它字段,估计此表是表示流程转向事件的一个实例,或者是一个各表之间的联接表。
 
jbpm_node : 流程结点
 
jbpm_transition  : 流程的转向定义
 
jbpm_variableaccess  :  流程中携带的变量。 ACCESS 字段是这些变量的读写权限
 

 

 

原创粉丝点击