JBPM 走流程 初学

1.下载JBPM4
http://sourceforge.net/projects/jbpm/files/
下载后解压,你将看到有以下的子目录

  • db: 数据库结构创建脚本
  • doc: 用户手册,javadoc和开发指南
  • examples: 用户手册中用到的示例流程
  • gpd: 图形化流程编辑器插件,作为一个eclipse归档网址
  • jboss: JBoss安装器来把jBPM安装到jBoss中
  • lib: 第三方库和一些特定的jBPM依赖库
  • src: 源代码
  • jbpm.jar: jBPM主库归档



2.下载jdk(标准java5或更高版本)

3.在eclipse官网下载最新版本的eclipse

4.在eclipse上安装GPD插件
步骤如下

  • Help-->Install New Software
  • 点击Add
  • 在Add Site 对话框里点击Archive....
  • 在JBPM4.0 HOME中找到gpd/jbpm-gpd-site.zip 并点击 '打开'
  • 选择出现的 jPDL 4 GPD 更新站点
  • 点击 下一步.. 然后点击 完成
  • 接受协议..
  • 当它询问的时候重启eclipse


注意:安装过程会很慢,一定要耐心的等待。

5.新建一个java项目,加入jbpm4的依赖包。

引用

*JBPM4_HOME/jbpm.jar
*JBPM4_HOME/lib/*.jar



6.在项目的src目录下点击右键-->New-->JBPM 4 Process Definetion,在弹出的对话框的File Name 中填写hello,该文件是以jpdl.xml为后缀结尾的,然后点击Finish。

7.在hello.jpdl.xml中绘制一个简单的流程图,包含一个start活动,一个state活动和一个end活动,然后用转移(transition)将他们链接起来.

Java代码 复制代码
  1. "1.0" encoding="UTF-8"?>   
  2.   
  3. "hello" xmlns="http://jbpm.org/4.0/jpdl">   
  4.    "start1" g="247,64,48,48">   
  5.       "to state1" to="state1" g="-59,-17"/>   
  6.       
  7.    "state1" g="254,167,92,52">   
  8.       "to end1" to="end1" g="-47,-17"/>   
  9.       
  10.    "end1" g="244,277,48,48"/>   
  11.   



   
      
   
   
      
   
   



8.把JBPM4_HOME/examples/src中除org外的文件全部拷贝到你项目下的src目录中。

9.在你项目的src目录下建一个测试类

Java代码 复制代码
  1. package zzg;   
  2.   
  3. import org.jbpm.api.Configuration;   
  4. import org.jbpm.api.ExecutionService;   
  5. import org.jbpm.api.ProcessEngine;   
  6. import org.jbpm.api.ProcessInstance;   
  7. import org.jbpm.api.RepositoryService;   
  8. import junit.framework.TestCase;   
  9.   
  10. public class HelloTest extends TestCase {   
  11.     //定义一个jbpm4的外观接口,所有的功能服务都是从ProcessEngine里获取的   
  12.     ProcessEngine processEngine = null;   
  13.     String deployId = null;   
  14.     //主要是用来发布流程   
  15.     RepositoryService repositoryService = null;   
  16.     //主要用来启动流程,执行流程   
  17.     ExecutionService executionService = null;   
  18.   
  19.     protected void setUp() {   
  20.         processEngine = new Configuration().buildProcessEngine();   
  21.         repositoryService = processEngine.getRepositoryService();   
  22.         executionService = processEngine.getExecutionService();   
  23.         //将定义的流程配置文件部署到数据库中   
  24.         deployId = repositoryService.createDeployment()   
  25.                 .addResourceFromClasspath("hello.jpdl.xml")   
  26.                 .deploy();   
  27.     }   
  28.   
  29.     protected void tearDown() {   
  30.         repositoryService.deleteDeploymentCascade(deployId);   
  31.   
  32.     }   
  33.   
  34.     public void testEndHelloWorld() {   
  35.         //启动流程实例   
  36.         ProcessInstance processInstance = executionService   
  37.                 .startProcessInstanceByKey("hello");   
  38.         //启动流程后我们的流程会自动进入到state1活动,并处在等待状态   
  39.         assertTrue(processInstance.isActive("state1"));   
  40.         String pid = processInstance.getId();   
  41.         //让state1活动继续往下执行,并进入结束活动,流程结束   
  42.         processInstance = executionService.signalExecutionById(pid);   
  43.         assertTrue(processInstance.isEnded());   
  44.     }   
  45.   
  46. }  

你可能感兴趣的:(JAVA)