jbpm环境搭建

阅读更多
1.工作流
   使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。
   工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递。
2.Jbpm4.4介绍
  jbpm 即java Business Process Management,是基于java的业务流程管理系统引擎底层基于Active Diagram模型。jBPM4.4使用了hibernate(3.3.1版)。jBPM4.4共有18张表,用于存储业务流程数据。 概况如图:
jbpm环境搭建_第1张图片
  官方主页: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 如图: 
jbpm环境搭建_第2张图片
  Archive-->指定本地jbpm-gpd-site.zip这个路径 如图:
jbpm环境搭建_第3张图片
  勾选 JBPM JPDL4选项,且去掉Contact all update sites..选项-->Next 如图:
jbpm环境搭建_第4张图片
 
  查看是否成功安装了插件:WindowPreference中是否有Jboss jBPM项
  4>在Eclipse中添加jPDL4.4 Schema校验
  流程定义文件的xsd文件的路径为:jbpm-4.4\src\jpdl-4.4.xsd
  添加方法:
  Window --> Preferences 如图:
jbpm环境搭建_第5张图片
  
  
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 如图:
jbpm环境搭建_第6张图片  
  测试代码
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 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("办理完成!");
}
}
  
  • jbpm环境搭建_第7张图片
  • 大小: 41.8 KB
  • jbpm环境搭建_第8张图片
  • 大小: 81.9 KB
  • jbpm环境搭建_第9张图片
  • 大小: 50.1 KB
  • jbpm环境搭建_第10张图片
  • 大小: 65.9 KB
  • jbpm环境搭建_第11张图片
  • 大小: 15.3 KB
  • jbpm环境搭建_第12张图片
  • 大小: 19.5 KB
  • 查看图片附件

你可能感兴趣的:(jbpm)