JBPM 工作流引擎 JBPM指南 例子:Hello World 流程定义(3.1)

原创 2006年01月24日 14:42:00

声明:

本人EVeryVeryPoor,又是刚刚开始学习JBPM工作流引擎,对原文及概念等理解不当的地方,请网友不吝赐教,吾将及时修改和更正。

本文仅是本人自己学习JBPM,对JBPM指南的学习理解过程。

还望可以对入门者有所帮助。共享之。

需要中英文对照Word文档者请联系:gutengcom@hotmail.com或留下邮件地址。

 

3 JBPM 指南

本篇指南将为你展示JBPM的管理运行时刻API的用法和在jpdl中的基本流程的建立。

本篇指南的格式是一组例子的说明。这些例子主要集中在说明详细的主题和包含的广泛的注释。这些例子可以在JBPM的下载包的例子目录中找到。

最好的学习方法是通过给出的例子建立各种变化来创建一个项目和实验。

对于使用eclipse的用户:下载jbpm-3.0-[version].zip解压。然后 在eclipse"File" --> "Import..." --> "Existing Project into Workspace""Next",然后浏览到JBPM根目录,点"Finish".这样你就有了一个在你的工作间里JBPM.3的项目了。你可以在目录src/java.examples/中找到指南中的例子。你可以在"Run" --> "Run As..." --> "JUnit Test"中运行它。

jBPM包括一个创建XML文件的图形化的设计工具,可以在例子中使用。你可以在

http://sourceforge.net/project/showfiles.php?group_id=70542

http://sourceforge.net/project/showfiles.php?group_id=70542&package_id=116692

下载图形化设计工具和使用说明。

 

3.1例子:Hello World

一个流程的定义是一个定向的图形,由节点(nodes)和转换(transitions)(或叫跃迁)组成。The hello world流程有3个节点。要看它是如何组合拼凑的,我们将从不使用图形设计工具开始一个简单的流程。

Figure 3.1. The hello world process graph

public void testHelloWorldProcess() {

 

/*

这个方法说明了一个流程定义和一个流程定义的执行。这个流程

定义有3个节点:an unnamed start-state, a state 's' and an

end-state named 'end'.

下面的文本行解析了一个XML文本片段成为一个流程定义。一个流程定义

是一个标准的把一个流程描绘为一个java object (java对象)的描述.

*/

  ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(

    "<process-definition>" +

    "  <start-state>" +

    "    <transition to='s' />" +

    "  </start-state>" +

    "  <state name='s'>" +

    "    <transition to='end' />" +

    "  </state>" +

    "  <end-state name='end' />" +

    "</process-definition>"

  );

 

/*

下面的文本行在构造实例之后创建了一个流程定义的执行。这个流程的执行有一个主要的执行路线(path)或叫(轨迹)根tokenthe root token)它被定位在启始状态(start-state)的位置上。

*/

 

  ProcessInstance processInstance =

      new ProcessInstance(processDefinition);

 

 /*

在构造实例之后,这个流程执行有了主要的执行路线(path)或叫(轨迹)根tokenthe root token

*/

  Token token = processInstance.getRootToken();

 

 

/*

也是在构造实例之后,它被定位在启始状态(start-state)的位置上。

*/

  assertSame(processDefinition.getStartState(), token.getNode());

 

 

/*

让我们启动流程执行,离开启始状态转换到缺省的transition上。

*/

  token.signal();

 

/*

Signal方法将会阻止流程执行,直到进入一个等待状态a wait state

这个流程执行将会进入第一个等待状态,state ‘s’,因此这个主要执行路线(path)将被定位到 state ‘s’上。

*/

  assertSame(processDefinition.getNode("s"), token.getNode());

 

 

/*

让我们发送另一个信号。这将会重新启动执行,通过离开状态‘s’(state 's'),转换到它缺省的transition上。

*/

  token.signal();

 

/*

现在这个signal方法被送回,以为流程实例已经到达了结束状态end-state

*/

 

  assertSame(processDefinition.getNode("end"), token.getNode());

}

 

待续….

相关文章推荐

Activiti源码分析

Activiti是业界很流行的java工作流引擎,关于Activiti与JBPM5的关系和如何选择不是本文要讨论的话题,相关内容可以baidu一下。Activiti从架构角度看是比较优秀的,是很面向对...

业务工作流引擎调度算法简析(一):

     在工作流系统中,系统调度是核心,调度算法的生效程度和成熟性直接决定了工作流系统的可用性。本文章描述工作流如何推进和回退,并且描述在分之、合并、跳转等特殊情况下的流转规则处理。基本概念1.1 ...

工作流引擎:jbpm和activiti

目前流行的工作流引擎有Activiti和jBPM5,而在jBPM5发布以前大多数项目、平台都是基于jBPM3、jBPM4开发的。jbpmJBPM,全称是Java Business Process Ma...

jbpm工作流引擎总结文档

  • 2013年08月28日 15:51
  • 3KB
  • 下载

Java工作流引擎学习----JBPM(二)

四、Demo练习 创建一个java项目,名称:叫jbpm,在src目录下,创建一个demo.jpdl.xml 添加jar包+添加配置文件      将lib中的sub...以上的j...

Java工作流引擎:jBPM、Activiti以及SWF

这只是一篇非常粗浅的记录我对工作流引擎认识的文章。 知道工作流引擎是很久之前了,但是一直都没有机会尝试,一是没有业务上的需要,二是感觉工作流入门不容易。最近,项目中用到了一点工作流的东西,虽然我...

浅析JBPM工作流引擎

转至http://blog.csdn.net/a1314517love/article/details/18942127   1.      JBPM工作流引擎是用来做什么的 首先要说明的一点是...

JBPM4.4工作流引擎学习(五)

 执行服务ExecutionService ExecutionService主要用于维护流程实例,执行等待状态的流程,并且包含了流程实例的查询和流程变量的操作。 1.启动新的...

工作流引擎开发包jbpm

  • 2012年09月06日 11:59
  • 22.03MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBPM 工作流引擎 JBPM指南 例子:Hello World 流程定义(3.1)
举报原因:
原因补充:

(最多只允许输入30个字)