一步一步学JBPM之第一个JBPM实例

近段时间公司要用JBPM做工作流引擎,不得不学习了。
1.什么是jBPM?
    jBoss jBPM是一个灵活、可拓展的流程语言框架。jPDL是建立在这个通用框架之上的一个流程语言。它使用直观的流程语言以图形化的方式来表示业务流程,使用术语任务、异步通讯呆呆状态、定时器、自动操作等。为了将这些操作绑定在一起,jPDL提供了强有力的、可拓展的流程控制机制。
     jPDL有一个具有最小的依赖性和尽可能简单易用的java库。但它也能被部署在高吞吐量极为关键的J2EE集群应用服务器的环境里。
     jPDL能够使用任何数据库来进行配置,同时也能任何应用服务器上进行部署。
2.下载并安装jBPM
   2.1 下载jbpm-jpdl-suite-3.2.GA

   2.2 下载eclipse-SDK-3.2.1-win32.zip

   2.3 将jbpm-jpdl-suite-3.2.GA解压至电脑上,其目录结构如下:

   

一步一步学JBPM之第一个JBPM实例

   2.4 将eclipse-SDK-3.2.1-win32.zip解压到%jBPM_HOME%\designer在覆盖其中的Eclipse文件夹

   2.5 点击%jBPM_HOME%\designer\designer.bat即可启动eclipse。

3.开发第一个jBPM的实例 

  3.1 点File->New->Others,如下图
一步一步学JBPM之第一个JBPM实例
 

  3.2选择Process Project,键入工程名,一直Next直至Finish。如下图:
一步一步学JBPM之第一个JBPM实例
   3.3运行test目录下的testSimpleProcess方法。第一个实例结束。

4.第一个实例的讲解

      从流程定义文件看起,processdefinition.xml定义了我们的流程规则,用eclipse的可视化工具打开,可很直观的看到流程,其是由xml定义的,gpd.xml文件定义了生成图片的位置。processdefinition.xml详细说明:

<?xml version="1.0" encoding="UTF-8"?>
<process-definition 
  xmlns="urn:jbpm.org:jpdl-3.2"
  name="simple"><!-- 根节点 -->
   <start-state name="start"><!-- 开始节点 -->
      <transition name="to_state" to="first"><!-- 定义一个扭转,并设置其扭转动作 -->
         <action name="action" class="com.sample.action.MessageActionHandler">
            <message>Going to the first state!</message>
         </action>
      </transition>
   </start-state>
   <state name="first">
      <transition name="to_end" to="end">
         <action name="action" class="com.sample.action.MessageActionHandler">
            <message>About to finish!</message>
         </action>
      </transition>
   </state>
   <!-- 定义一个结束节点 -->
   <end-state name="end"></end-state>
</process-definition>