`
royzhou1985
  • 浏览: 254512 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JBPM-HelloWorld

    博客分类:
  • JBPM
阅读更多
在Eclipse下创建一个新的process-project工程jbpm-test,目录结构如下图所示:

可以看出,通过前面指定jbpm的运行环境,工程自动为我们引入了第三方jar包和需要的配置文件,这个我喜欢,哈,不用自己去导入那么多的jar包,同时工程中还自动生成了一个名叫sample的流程定义文件及其相关的测试用例。使用eclipse流程设计器打开这个processdefinition.xml文件,就可以看到流程设计器的界面:

打开junit测试用例类SimpleProcessTest运行测试用例,可以得到如下结果:


具体的代码我们暂时不需要去理会。下面我们开始我们的HelloWorld之旅。

新建一个helloworld流程,New->Other->jBoss-jBpm->processdefinition,process-name为helloworld,finish之后我们来到流程设计界面,流程设计器分为上下两部分,上面是流程设计主框体,下面是一些属性的配置。虽然jboss为我们提供了流程设计器,但是它不能帮助我们完成全部的流程设计工作,实际开发中我们仍然需要手动去增加一些工作

对于任何流程,都必须有且只有一个start节点和一个end节点。如果缺少了其中一个,流程将不能正常运转。我们的helloworld流程还需要一个node节点和一个state节点
Node节点是JBPM中的自动类型节点,可以对它定义一个Action(实现ActionHandler接口),流程流转到node节点是将会触发Action的执行,然后流程就是处于等待状态,等待流程触发到下一个节点。注意,如果我们没有对Node节点设置action的话,流程将不会在这个节点停留,而是直接流往node节点的下一个节点。State节点与Node节点不同之处在于State节点没有自动流转的功能,必须通过代码触发流程流转。通过Transition指定流程流转的路径。

现在我们开始我们的helloworld流程的设计。Statr -> Node -> State -> End

对应的流程定义文件xml为:
<?xml version="1.0" encoding="UTF-8"?>
<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="helloworld">
	<start-state name="start-state1">
		<transition to="node1"></transition>
	</start-state>
	<state name="state1">
		<transition to="end-state1"></transition>
	</state>
	<node name="node1">
		<transition to="state1"></transition>
	</node>
	<end-state name="end-state1"></end-state>
</process-definition>


下面我们编写一个测试类来测试我们的流程
package com.royzhou.test;

import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;

public class HelloWorld {
	
	public static void main(String[] args) {
		//获取流程定义
		ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("helloworld/processDefinition.xml");
		/**
		 * 生成流程实例
		 * 此时流程还没有开始流转
		 * 必须给令牌发送信令驱动流程流转
		 */
		ProcessInstance processInstance = new ProcessInstance(processDefinition);
		//得到流程令牌
		Token token = processInstance.getRootToken();
		
		//打印流程当前所处节点
		System.out.println("1:流程现在所处节点:" + token.getNode().getName());
		
		//触发流程流转到下一个节点Node
		token.signal();
		
		/**
		 * 注意因为Node节点没有设置Action
		 * 所以流程会自动流转到下一个节点
		 * 也就是State1
		 */
		System.out.println("2:流程现在所处节点:" + token.getNode().getName());
		
		//触发流程流转到下一个节点End
		token.signal();
		System.out.println("3:流程现在所处节点:" + token.getNode().getName());
		System.out.println("流程状态是否结束:" + token.getProcessInstance().hasEnded());
	}
}


运行上面的测试类,得到预期的输出结果:
1:流程现在所处节点:start-state1
2:流程现在所处节点:state1
3:流程现在所处节点:end-state1
流程状态是否结束:true
(测试例子中所使用的代码我们在后面的文章中会专门介绍)

通过helloworld的例子,相信大家已经对jbpm建立了一定的感觉了,不过应该还有很多不明白的东西,,  哈哈  ……  那就加油把 。。。


  • 大小: 49.1 KB
  • 大小: 17.7 KB
  • 大小: 9.7 KB
  • 大小: 8.1 KB
分享到:
评论

相关推荐

    JBPM-helloworld.rar_jbpm_world

    Simple workflow hello World jBPM

    Jbpm4HelloWorld

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

    Mule + JBPM by Maven - HelloWorld

    【标题】"Mule + JBPM by Maven - HelloWorld" 指的是一个使用Mule ESB集成JBPM工作流引擎的示例项目,通过Maven构建。这个项目旨在帮助开发者理解如何将Mule与JBPM结合,实现业务流程管理功能。 Mule ESB...

    jbpm4 helloworld

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

    JBPM_DEMO例子 Hello World

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

    jbpm-7.18.0.Final-examples.zip

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

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

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

    Jbpm HelloWorld

    **Jbpm HelloWorld** Jbpm(Business Process Management Suite)是一款开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理能力。Jbpm在IT行业中被广泛应用于自动化业务流程,实现工作流的标准化和规范...

    JBPM-v3.2-userguide

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

    jbpm4之HelloWorld实例

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

    jbpm-bpel.pdf

    - 类似于Hello World示例,但涉及更复杂的业务逻辑和更多的服务交互。 3. **Purchase Order 示例**: - 这个示例展示了如何处理采购订单的完整流程,包括接收订单、审核、付款处理等环节。 #### 五、结论 通过...

    jbpm-bpel-1.1.1 userguide\

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

    jbpm-4.4实用教材helloword.txt

    ### JBPM 4.4 实用教材:HelloWorld 示例详解 #### 一、JBPM简介与应用场景 JBPM(Java Business Process Management)是一款开源的工作流引擎,它支持业务流程管理和控制,尤其适用于需要灵活定制流程的企业级...

    Maven3+JBPM4.4+mysql helloworld例子

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

    JBPM4环境搭建.docx

    最后,读者可以导入示例项目,例如 HelloWorld 项目。首先,需要将示例解压至 Eclipse 的 workspace 目录下,然后在 Eclipse 的 Package Explorer 中,点击右键,选择“Import”选项,选择“Existing Projects into ...

    JBPM相关文档大全

    JBPM4.4之HelloWorld示例.doc jbpm4.4会签实例.doc jbpm4.4安装配置step by step.doc jbpm4自带数据库分析.doc jBPM_4教程PPT.pdf JBPM与SSH架构融合.doc 工作流模型分析_v1.1.pdf 揭秘jbpm流程引擎内核设计...

Global site tag (gtag.js) - Google Analytics