AXIN的gravatar头像
AXIN2014-03-14 14:34:39

JBPM 入门教程及框架搭建实例代码

JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。

     JBPM 部署安装请参照:http://blog.csdn.net/callsin/article/details/21102469

进入主题,尝试用一个例子来让大家体会一下

项目结构如下:

JBPM 入门教程及框架搭建实例代码

1、先建立数据库(用的是MySQL),执行代码zuidaima.config.InitDB

  注:hibernate.cfg.xml数据库配置,修改成你的帐号和密码

生成的表如下:

JBPM 入门教程及框架搭建实例代码

2、接下来绘制一个工作流,这里基本上用到jbpm的一个工作流绘制的插件。
绘制了一个简单的流程:
大体过程如下:起始状态--》任务1--》任务2--》结束 

JBPM 入门教程及框架搭建实例代码

生成qj下面的processdefinition.xml

<?xml version="1.0" encoding="UTF-8"?>

<process-definition  xmlns=""  name="qj">
	<start-state name="start-state1">
		<transition to="apply"></transition>
	</start-state>
	<task-node name="apply">
		<task name="apply">
			<assignment actor-id="1"></assignment>
		</task>
		<transition to="approve"></transition>
	</task-node>
	<task-node name="approve">
		<task name="approve">
			<assignment actor-id="2"></assignment>
		</task>
		<transition to="end-state1"></transition>
	</task-node>
	<end-state name="end-state1"></end-state>
</process-definition>

3、发布流程,执行代码,zuidaima.config.Deploy,则会出现如下:

JBPM 入门教程及框架搭建实例代码

JBPM 入门教程及框架搭建实例代码

4、创建一个流程实例,执行代码zuidaima.CreatePDInstance,会产生下面结果

JBPM 入门教程及框架搭建实例代码JBPM 入门教程及框架搭建实例代码

解释一下代码:signal();方法是将状态进行转换,由于转至第二个状态,所以apply任务在结束完起始状态的时候会被同步创建创建。

5、由于apply任务是分配给actorId=1进行处理的,下面我们看看autorId=1的任务列表

 执行代码zuidaima.TaskActor1,结果如下:

public class TaskActor1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		TaskActor1 ta1 = new TaskActor1();
		ta1.showList();
		//ta1.startTask(new Long(1));
		//ta1.endTask(new Long(1));
	}

可以看到该用户权限下的任务列表
ID :1
ActorId :1
任务名称 :apply
开始时间 :2014-03-14 14:01:50.0
开始时间 :null
结束时间 :null

如图:

JBPM 入门教程及框架搭建实例代码


最代码官方编辑于2014-3-18 23:04:31


打赏

文件名:jbpm_zuidaima.rar,文件大小:7064.533K下载
最代码最近下载分享源代码列表最近下载
qaz188250 LV12020年7月8日
星星
xuyongff LV232020年3月3日
太阳月亮星星星星星星
cp19791101 LV112019年5月25日
月亮月亮星星星星星星
hanl LV122019年2月22日
月亮月亮月亮
Koalaer LV12018年10月25日
星星
a13875527325 LV42018年9月18日
月亮
gates-gt LV72018年7月25日
月亮星星星星星星
wanglun_wl LV92018年7月19日
月亮月亮星星
xiaomiao520 LV122018年7月17日
月亮月亮月亮
陈123456 LV92018年7月16日
月亮月亮星星
最代码最近浏览分享源代码列表最近浏览
hollwomanc LV14月9日
星星
pxqtsht LV144月1日
月亮月亮月亮星星星星
ztx03272月2日
暂无贡献等级
zhaoyu_2016 LV21月12日
星星星星
chenliuyang2020年10月12日
暂无贡献等级
157554513749 LV112020年8月1日
月亮月亮星星星星星星
wkc LV212020年7月29日
太阳月亮星星
myjbpm2020年7月17日
暂无贡献等级
qaz188250 LV12020年7月8日
星星
aci4568522020年6月28日
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友