jbpm环境搭建

1.工作流
   使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。
   工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递。
2.Jbpm4.4介绍
  jbpm 即java Business Process Management,是基于java的业务流程管理系统引擎底层基于Active Diagram模型。jBPM4.4使用了hibernate(3.3.1版)。jBPM4.4共有18张表,用于存储业务流程数据。 概况如图:
[img]http://dl2.iteye.com/upload/attachment/0094/5832/f75a02d5-6beb-3b16-8362-46132c716db5.jpg[/img]
  官方主页:http://www.jboss.org/jbpm
3.准备jbpm环境
  1>Eclipse3.5或以上版本,个人使用eclipse-jee-galileo-win32,下载地址
  http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/galileosr2
  2>Jbpm4.4
  http://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4/
  3>eclipse流程设计器插件(GPD,Eclipse插件 )
  插件位于上面下载的jbpm4.4包中,具体位置:jbpm-4.4\install\src\gpd\jbpm-gpd-site.zip
  插件安装方法:
  Help --> Install New Software-->Add 如图: 
[img]http://dl2.iteye.com/upload/attachment/0094/5334/a3b2025d-a2e4-38e0-b54c-e7a5b7aeb8ee.png[/img]
  Archive-->指定本地jbpm-gpd-site.zip这个路径 如图:
[img]http://dl2.iteye.com/upload/attachment/0094/5338/701ddee0-4808-3d57-83ba-e8aa684bc757.png[/img]
  勾选 JBPM JPDL4选项,且去掉Contact all update sites..选项-->Next 如图:
[img]http://dl2.iteye.com/upload/attachment/0094/5340/a2b61710-9e2b-33e5-b326-27c9b31175dc.png[/img]
 
  查看是否成功安装了插件:WindowPreference中是否有Jboss jBPM项
  4>在Eclipse中添加jPDL4.4 Schema校验
  流程定义文件的xsd文件的路径为:jbpm-4.4\src\jpdl-4.4.xsd
  添加方法:
  Window --> Preferences 如图:
[img]http://dl2.iteye.com/upload/attachment/0094/5342/518a7ed8-dba9-334a-9081-d8b885006cec.png[/img]
  
  
4.Jbpm测试案例test
  1>新建java项目Test
  2>导入jar包
  3>加入配置文件,具体可从下载的jbpm4.4包中拷贝,位置:jbpm-4.4\examples\src,本人引入三个配置jbpm.cfg.xml、jbpm.hibernate.cfg.xml、log4j.properties,修改jbpm.hibernate.cfg.xml文件,修改对应数据库配置。
  4>建表,修改jbpm.hibernate.cfg.xml设置hibernate.hbm2ddl.auto为update
  5>测试程序
  新建流程图new --jbpm 4 process definetion 如图:
[img]http://dl2.iteye.com/upload/attachment/0094/5344/b4633f01-9c3a-3a6e-8181-ad36a3058fb9.png[/img]  
  测试代码
package cn.yang.test;

import java.util.List;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.junit.Test;

public class Test1 {

//核心对象
/**
* 创建流程引擎对象
* .setResource(resource):表示加载类路径下的jbpm.cfg.xml
*/
ProcessEngine processEngine =new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
//部署流程定义
@Test
public void testDeployDefinitionProcess(){
String deployementID = processEngine.getRepositoryService()//
.createDeployment()//
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml")//
.addResourceFromClasspath("helloworld/helloworld.png")//
.deploy();
System.out.println("deployementID:"+deployementID);
}
//启动流程实例
@Test
public void startProcessInstance(){
String processDefinitionKey = "helloword";
ProcessInstance pi = processEngine.getExecutionService()//
.startProcessInstanceByKey(processDefinitionKey);
System.out.println("id:"+pi.getId());//helloword.1001
System.out.println("key:"+pi.getKey());
System.out.println("processDefinitionId:"+pi.getProcessDefinitionId());
}

//查询我的个人任务列表
@Test
public void testFindMyTaskList(){
String userId = "test1";//指定任务办理人
List<Task> list = processEngine.getTaskService()//
.findPersonalTasks(userId);
for(Task task:list){
System.out.println("id:"+task.getId());//任务的ID
System.out.println("name:"+task.getName());//任务的名称
System.out.println("assignee:"+task.getAssignee());//任务的办理人
System.out.println("createTime:"+task.getCreateTime());//任务的创建日期
System.out.println("executionID:"+task.getExecutionId());//任务的执行ID(暂时就是流程实例ID)
}
}

//办理我的个人任务
@Test
public void testCompleteMyTask(){
String taskId = "30001";
processEngine.getTaskService()//
.completeTask(taskId);
System.out.println("办理完成!");
}
}
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值