`
fndcz
  • 浏览: 50200 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入
社区版块
存档分类
最新评论

jBPM学习(六)----Hello World

    博客分类:
  • jBPM
阅读更多
六、 开发自己的工作流(Hello World)
1.         eclipse插件安装
jbpm提供了在eclipse下的一个可视化插件,通过它我们可以方便的定义工作流,打开jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature目录,我们可以看到下面有一个eclipse文件夹,这里我们通过link的方式为eclipse添加该插件。
在{eclipse_home}/link文件夹下新建jbpm-designer.link文件,用记事本打开该文件加入如下一行:
path=D:\\jbpm-starters-kit-3.1.4\\jbpm-designer\\jbpm-gpd-feature
后面的路径即为该插件的存放路径,根据个人情况修改。注意,这里的分隔符使用双斜杠 \\
2.         新建 jbpm 项目
主菜单“文件->新建->项目”,在弹出的对话框里,有“ Process Project ”项,如下图所示:
选上,单击“下一步”,工程起名“ myjbpm ”,点击下一步为此工程指定一个 jbpm location ,如果时第一次运行该插件,系统会提示你设置一个 jbpm location 。这里我们将 location 设置为 D:\jbpm-starters-kit-3.1.4\jbpm.3 。然后就可以单击“完成”了。然后就生成了如下图所示的一个项目结构:
这个项目和通常 Eclipse 的项目结构有点不同,不过这是一个现在非常流行的项目结构, src/main/java 存放源文件, src/test/java 存放相应的 JUnit 单元测试代码, src/main/jpdl 存放我们定义的工作流文件。
       项目创建起了,介绍一下里面的文件吧:
l         MessageActionHandler ,自动生成的一个 ActionHandler
l         hibernate.cfg.xml   jBPM 是用 Hibernate 进行工作流的数据存储的,这个就是 Hibernate 的配置文件。后面我们将讲到如何配置这个文件。
l         jbpm.cfg.xml   jbpm 本身的配置文件。现在是空的,它用的是缺省配置,你想知道有哪些配置就去看这个文件
D:\jbpm-starters-kit- 3.1.4\jbpm.3\src\java.jbpm\org\jbpm\default.jbpm.cfg.xml
l         log4j.properties  这个是日志 API log4j 的配置文件,用过 log4j 的都知道。
l         SimpleProcessTest.java  这个是对最重要的流程配置文件的 processdefinition.xml 单元测试代码。
l         gpd.xml  用于生成流程图的定义文件。都是一些方框的坐标和长宽
l         processdefinition.xml  这个是对最重要的流程配置文件,以后写流程要经常和它打交道。
l         processimage.jpg  一个流程图
3.         简单工作流定义
展开 myjbpm 工程,选中 src/main/jpdl 包,单击鼠标右键, new->other ,如下图:
新建一个 Process Definition process 命名为 HelloWorld ,单击 finish ,结果如下图:
右面的窗口为工作流定义的可视化窗口。选中该窗口单击 eclipse 菜单栏 view->show Grid 为该窗口添加网格,方便后面开发。
1)        定义基本流程
分别向编辑区拖入, start task node end 节点,用 transition 将他们依次连起来,并分别修改 task node 名为 show message end 节点名为 end ,两个 transition 分别命名为 send ok ,得到如下所示结果:
2)        定义泳道 (swimlane)
我们为该流程定义一个名为 user 的泳道 (swimlane) ,点击编辑窗口左下角的 swimlanes 按钮,得到添加泳道界面,单击 add 按钮,按照下图配置相关信息,这样我们就将用户 grover 加入到了泳道 user 中:
3)        定义节点任务
打开 eclipse 中的 outline 视图,我们可以看到一个名为 HelloWorld process 节点,展开该节点,如下图:
右击 start 节点,选择 add task
我们看到 start 节点下多出了一个名为 task task 节点:
双击该节点,打开节点编辑窗口,将该 task 改名为 input message ,如下:
选择左边的 controller 我们为该流程定义一个名为 message 的变量,这个变量就是我们后面要传递的信息,照下图配置该变量:
点击 ok ,完成 start 节点下的任务定义。
       按照以上步骤,我们再为 message show 节点定义一个名为 show message 的任务,这里的变量名也为 message ,但是属性只有 read ,我们通过这个任务读取前面所输入的 message 信息。注意两个任务的变量名要相对应,如下图:
      
下来点击 assignment 菜单,配置该任务的分配方式,如下图所示,将该任务分配给名为 user swimlane ,此 swimlane 包含了 grover 用户。结果如下图:
单击 ok ,我们就完成了该流程的任务定义。这里我们看到多出了两个 task ,如图:
 
4)        保存流程定义
单击保存按钮,我们保存该流程定义。保存成功后我们可以看到,在流程定义的包中多出了一个名为 processimage.jpg 的图像文件,该文件为我们定义流程的流程图,如下:
点击编辑窗口下的 source 按钮,我们可以查看通过图形编辑界面自动生成的该流程的 xml 定义,即 processdefinition.xml 中的内容。如下:

xml 代码
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < process-definition   
  3.   xmlns = "urn:jbpm.org:jpdl-3.1"   name = "HelloWorld" >   
  4.     < swimlane   name = "user" >   
  5.        < assignment   expression = "user(grover)" > </ assignment >   
  6.     </ swimlane >   
  7.     < start-state   name = "start" >   
  8.        < task   name = "input message" >   
  9.           < controller >   
  10.              < variable   name = "message"   access = "read,write,required" > </ variable >   
  11.           </ controller >   
  12.        </ task >   
  13.        < transition   name = "send"   to = "message show" > </ transition >   
  14.     </ start-state >   
  15.     < task-node   name = "message show" >   
  16.        < task   name = "show message"   swimlane = "user" >   
  17.           < controller >   
  18.              < variable   name = "message"   access = "read" > </ variable >   
  19.           </ controller >   
  20.        </ task >   
  21.        < transition   name = "OK"   to = "end" > </ transition >   
  22.     </ task-node >   
  23.     < end-state   name = "end" > </ end-state >   
  24. </ process-definition >   
对照刚才的流程定义,我们很容易可以看出各个 xml 标签所对应的意义。具体细节我们将在后面介绍。
5)        部署流程定义
首先我们要启动 jboss 服务,待服务启动成功后单击编辑窗口下的 deployment 按钮,按照下图配相应参数,然后点击 test connection ,如果弹出成功窗口,说明服务器连接正常,否则请检查你的参数设置。
测试连接成功后,我们点击下面的 deploy process archive 按钮,如果得到成功信息,恭喜你,说明我们定义的工作流已经成功的部署到了 jboss 上,如下图:
6)        使用工作流
打开 IE 浏览器,在地址栏中输入 http://localhost:8080/jbpm ,以 cookie monster 身份登陆系统。我们看到 Start New Process Execution 里面多了一项 Hello World ,这就是我们刚才部署过的工作流。
 
点击 input message 我们会看到以下画面:
 
注意到左面有个一名为 message 的文本框,这个文本框就是我们在流程定义里定义的变量 message 。右面是本流程的流程图,红色的框代表该流程现在运行到哪一步。我们在文本框内输入 Hello!Congratulations! 。然后点击 save and close task 按钮,提交该内容。之后页面跳转,我们会在上面看到这样一行提示信息: A new task has been assigned to ‘grover’ 。说明第一步流程已完成,将下一步任务委派给泳道 user 中的 grover 。我们点击屏幕左上角的 login as another user 。如图所示:
grover 身份登陆系统,我们可以看到在 grover 的主界面下的 tasklist 里多出了一项:
 
单击该任务,我们可以看到同样有一个名为 message 的文本框,但是他的内容是不可编辑的,这和我们定义工作流变量时的设置有关,并且里面的内容正是上一步中 cookie monster 用户所输入的内容。我们还可以注意到,右面流程图中标明该流程已经进入第二步。
继续点击 save and close task 按钮,页面跳转,得到信息: The process has finished 并且 tasklist 中刚才的任务项也不存在了。至此,整个工作流程执行完毕。
7)        工作流管理
Jbpm 为我们提供了简单的工作流管理,单击左面菜单栏的 monitoring 进入 monitoring 界面,点击链接 Process Definitions list ,如下:
得到如下界面,这里我们可以看到目前为止所有的工作流定义以及他们所拥有的实例数。通过该图可以得知 Hello World 目前只有一个实例,即我们刚才执行过的那个实例。
我们点击实例数 1 ,得到 Hello World 下所有的实例列表,如下图:
我们只初始化过一个实例,因此这里只有一项, start end 分别表示该实例开始和结束的时间,我们点击前面的 Id 号,查看该实例的详细信息:
其中, task 列表列出了该实例所有的 task ,其中 name 表示 task 的名字, actorId 表示由谁执行该 task date 表示该 task 结束的时间。 Variables 列表列出了该 task 中所有的变量及其值。我们在流程定义里只定义了一项变量,因此这里只有 message ,它的值即为刚才输入的内容。我们还可以通过 update 按钮向列表中添加修改变量。
下面的图,即为该流程的流程图。红色的框标明此实例已经结束。
       至此,一个简单的工作流就完成了,相信大家从中可以大致的了解 jbpm 定义工组流的基本过程,在后面的章节我们将进一步介绍更多的内容。

分享到:
评论
11 楼 zoutuo 2009-06-19  
大哥,我在第五步测试连接jboss的时候为什么总是说我连接错误?
An unexpected exception caused the test connection operation to fall.
详细信息只有:http://127.0.0.1:8080/jbpm/upload
我已经启动了jboss服务,而且IE里输入http://127.0.0.1:8080也能够访问到jboss服务器。


对了,我使用的是jboss4.2.2.和这个有关系吗?
10 楼 isky 2008-04-07  
支持以下  
9 楼 dapeng1525 2008-03-18  
顶!!!!讲解的太好了!楼主和陈刚是什么关系?
8 楼 343050143 2007-12-05  
能部能给个加入action和decision的例子。谢谢。。。。。
7 楼 huangyj2008 2007-12-03  
太感谢了,真的
6 楼 kayzhan 2007-12-03  
大哥,您用过maven整合jbpm没有啊?用maven的话有问题啊
5 楼 allen_hll 2007-10-26  
下面的章节什么时候出,大哥!!
4 楼 fndcz 2007-10-24  
那个包jboss的网站上有的,你仔细找找
3 楼 jszhiyang 2007-10-23  
有可运行的例子吗
给个学习学习可以吗
js_ocean@163.com 谢谢了
2 楼 jszhiyang 2007-10-23  
请教 我怎么下不到jbpm-starters-kit-3.1.4 这个包啊
1 楼 379548695 2007-09-12  
好东西啊。!

相关推荐

    Mule + JBPM by Maven - HelloWorld

    通过这个“Mule + JBPM by Maven - HelloWorld”项目,开发者不仅可以学习到Mule和JBPM的基本用法,还能了解到如何通过Maven构建和管理项目,以及如何将两个强大的框架集成在一起,实现流程驱动的应用程序开发。...

    JBPM-helloworld.rar_jbpm_world

    Simple workflow hello World jBPM

    JBPM_DEMO例子 Hello World

    JBPM通过使用XML来定义工作流,这种文件通常以.jpdl.xml为扩展名,就像压缩包中的"helloworld.jpdl.xml"。 在“Hello World”例子中,我们首先会看到"helloworld.jpdl.xml"文件。这个文件是流程定义的载体,它描述...

    Jbpm4HelloWorld

    【Jbpm4HelloWorld】是基于JBPM(Java Business Process Management)框架的入门示例,这个项目旨在帮助初学者快速理解并掌握JBPM的基本用法。JBPM是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务...

    jbpm-bpel-1.1.1 userguide\

    #### HelloWorld示例 本案例通过创建一个简单的BPEL文档,演示了从定义BPEL流程、部署流程定义到构建测试客户端的全过程,是初学者理解BPEL基本概念的理想起点。 #### 旅行预订系统 更进一步,旅行预订系统示例...

    Jbpm HelloWorld

    "HelloWorld"是学习任何新技术时的经典入门示例,Jbpm HelloWorld则是对Jbpm基础功能的初步探索。 在这个项目中,我们将深入理解Jbpm的核心概念和组件,以及如何通过编写简单的代码来实现一个工作流实例。Jbpm的...

    jbpm4.4的安装myeclipse配置还有helloworld实例

    ### jBPM 4.4 开发环境搭建与 HelloWorld 实例详解 #### 一、jBPM 4.4 开发环境搭建 ##### 1.1 准备所需工具 为了构建一个完整的 jBPM 4.4 开发环境,我们需要准备以下工具: - **jBPM 4.4**: `jbpm-4.4.zip` - **...

    jbpm4之HelloWorld实例

    【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...

    jbpm4 helloworld

    jbpm4 helloworld,详细参考 《partner4java 讲述jBPM4》之第一步:jBPM4概念 & helloworld http://blog.csdn.net/partner4java

    jbpm学习笔记jbpm学习笔记

    在这个测试类中,我们首先初始化流程引擎,然后通过`createDeployment()`方法创建并部署一个从类路径中读取的"helloworld.jpdl.xml"流程定义文件。部署成功后,我们可以查询当前部署的流程定义,并打印其ID。最后,...

    JBPM工作流开发指南

    2.2 、Hello World 例子 6 三、学习JPDL 11 3.1 、简介 11 3.2 、流程版本(Version) 11 3.3 、流程定义 12 3.3.1 process-definition(流程定义) 12 3.3.2 node(自动节点) 13 3.3.3 start-state(开始状态) 13 3.3.4...

    JBPM-v3.2-userguide

    通过简单的HelloWorld示例介绍如何快速启动并执行一个基本的JBPM流程。 #### 3.2 数据库示例 展示如何将JBPM与数据库集成,持久化流程实例和任务状态。 #### 3.3 上下文示例:流程变量 讲解如何在流程中使用变量,...

    Maven3+JBPM4.4+mysql helloworld例子

    本示例主要介绍如何使用Maven3与JBPM4.4集成,并在MySQL数据库环境下实现一个简单的 HelloWorld 应用。JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了完整的BPM解决方案...

    jbpm3 入门项目-环境搭建(1)

    6. **示例项目**:jbpm3通常包含一些入门示例项目,如“hello world”流程。这些示例帮助初学者理解如何创建流程定义、启动流程实例以及执行任务。按照博客中的指导,导入示例项目到IDE(如Eclipse或IntelliJ IDEA)...

    JBPM4的学习资料

    3. `helloworld.zip`:可能是一个示例项目或包含更多JBPM4配置和资源的压缩包。 **四、实验与实践** 在学习过程中,通过创建一个名为`com.linjw.helloworld`的项目进行实践是非常常见的。这个项目可能包括一个简单...

    jbpm-7.18.0.Final-examples.zip

    1. **HelloWorld**:最基本的示例,演示如何创建和执行一个简单的流程。 2. **TaskService**:展示了如何使用 Task Service API 来管理和完成任务。 3. **HumanTasks**:涵盖与人类参与者交互的业务流程,例如审批...

    jboss --JBPM介绍及应用

    #### 六、动作:JBoss jBPM集成机制 ##### 6.1 创建Hello World Action 为了更好地理解如何在流程中集成Java代码,可以创建一个简单的“Hello World”Action作为示例。 - **创建Action类**:在Java项目中新建一个...

Global site tag (gtag.js) - Google Analytics