传智播客学习之JBPM实战

JBPM这个词对于我来说应该是非常新的一个词,记得曾经一位学者提出一个理论,大致意思就是说一个人知道的或者接触的知识面越广越害怕,越觉得自己渺小,记得当初来到传智前一月,学完java基础,感觉自己真的也是个java高手了,可是随着学习的深入,越来越恐惧,真的有太多未知的东西了,学习的路还有很漫长,就像jbpm一样,第一天上课,真的有点慌了,因为这是来传智这么久了,第一次感觉有点晕晕的,不明白,不过还好的是教课的汤老师极具耐心,为了帮我彻底弄懂jbpm,显示举例,然后又画图,一遍遍,最后算是彻底明白了,而且,汤老师教给了我们很多自学的方法,最近学习感觉还是很开心的,所以今天小试牛刀,编写我的第一个流程定义的程序。

一、第一个小程序

1. 安装插件,并准备环境

按照要求安装插件,然后导入jar包。

安装插件:

1)MyEclipse6.x

在Eclipse安装目录下的eclipse目录中创建links目录(有就不用创建了), 然后建立一个.link文件,然后加入path即可。

2)MyEclipse7.x

a) 与MyEcplise6.x的安装方式不一样,所使用的插件版本也不一样。从网上下载7.x的插件版本

b) 可以把插件放到dropins目录中。

1)插件在eclipse3.3的版本上才能正常工作,所以myeclipse5.1(eclipse3.2)不能使用这个插件。

2)指定的插件的路径中不能含有中文。

添加并修改配置文件(hibernate)

2. 创建表结构

3. 设计流程定义,然后打包成zip文件

4. 部署流程定义

解析流程定义有三种方式(ProcessDefinition的静态方法):

1) 解析xml文件:parseXmlResource或parseXmlInputStream和parseXmlReader;

2) 解析par包:parseParResource与parseParZipInputStream。

3) 是解析xml字符串:parseXmlString;

注意:parseParResource以及parseXmlResource(xmlResource)接受的参数是流程定义文件的路径,这个路径是相对于classpath的根路径的一个相对路径。

5. 执行流程

流程实例可以通过ProcessDefinition.createProcessInstance()方法创建,或者是使用jbpmContext.getGraphSession().findLatestProcessDefinition("流程定义文件名")或者new ProcessInstance(ProcessDefinition pd)并传递一个流程定义来创建,总之创建的流程实例一定是要是属于(使用)某个流程定义的。启动流程后不要忘了使用ProcessInstance.signal()方法离开开始状态。

a) 启动(创建)流程实例(Signal)

b) 获取任务列表(只是自已的任务实例列表)

jbpmContext.getTaskList(actorId)

c) 办理任务

i. 开始任务

TaskInstance.start();

ii. 结束任务

TaskInstance.end()

其中bc连个步骤是循环执行。

二、流程变量

1. 变量的生命周期

变量的访问和赋值是在某一个token上进行的,缺省时,是基于root Token。每个Token(执行路线)有它自己的一套流程变量。变量的作用域和所属的Token的生命周期一致,不同的Token上的同名变量互不影响。

我们通过org.jbpm.context.exe.ContextInstance来操作变量

2.值的要求

变量只支持以下类型:java.lang.Stringjava.lang.Booleanjava.lang.Characterjava.lang.Floatjava.lang.Doublejava.lang.Longjava.lang.Bytejava.lang.Shortjava.lang.Integerjava.util.Datejava.io.Serializableclasses that are persistable with hibernatebyte[]

注:如果变量值是classes that are persistable with hibernate,则POJO的id应为long型或String型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值