`

深入浅出JBPM读书笔记(三)_helloworld

    博客分类:
  • jbpm
阅读更多
1.建立一个jbpm project,这里就不作讲解。

2.在项目的jpdl目录下建立一个名为helloworld的process Definition.也就是定义一个流程。并打开流程设计器。

3.在流程设计器中设计一个简单的流程图,如下图



代码如下:
<?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="state1"></transition>
	</start-state>

	<state name="state1">
		<transition to="node1"></transition>
	</state>

	<node name="node1">
		<transition to="state2"></transition>
	</node>

	<state name="state2">
		<transition to="end-state1"></transition>
	</state>

	<end-state name="end-state1"></end-state>

</process-definition>


4.节点讲解
Start节点:开始
End节点:结束
Node节点:自动类型的节点.
在该节点里可以定义一个Action,当流程到达该节点时会触发该Action的执行,然后流程就会停留在该节点上。
如果没有定义Action,到达该节点后不会停留,如果有定义事件就会触发相关事件,然后流转到下一个节点。
State节点:当流程走到State节点后不会自动往下运行,而会处于等待状态,直到通过代码触发后才会流转到下一个节点。
Transition:是流程节点之间流转路径,可以使流程从一个节点流转到另一个节点。

5.测试helloworld流程
package com.test;

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

public class HelloWroldProcessTest {
	@Test
	public void testSimpleProcess() {
		//解析流程模板对应的XML文件来创建一个流程模板对象
		ProcessDefinition processDefinition = ProcessDefinition
				.parseXmlResource("helloworld/processdefinition.xml");
		//通过processDefinition创建一个流程实例
		ProcessInstance processInstance = processDefinition
				.createProcessInstance();
		
		//通过绝对路径读取流程模板XML文件生成流程模板对象
//		String processDefinitionFileLocation="D://myeclipse8.5/workspace/jpbm-test/src/main/jpdl/helloworld/processdefinition.xml";
//		try {
//			InputStream inputStream = new FileInputStream(new File(processDefinitionFileLocation));
//			ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(inputStream);
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//		}

		Token token = processInstance.getRootToken();

		//因为只建立了流程实例,流程实例并没有向下流转,所以该实例停留在start-state1节点上
		System.out.println("1 当前流程所处的节点名称:" + token.getNode().getName());

		//让流程实例向下流转一步
		token.signal();
		
		//state1
		System.out.println("2 当前流程所处的节点名称:" + token.getNode().getName());

		token.signal();

		//自动执行node1节点,流程向下流转,停留在state2
		System.out.println("3 当前流程所处的节点名称:" + token.getNode().getName());

		token.signal();

		System.out.println("4 当前流程所处的节点名称:" + token.getNode().getName());

		//打印出当前流程是否结束
		System.out.println("5 当前流程状态:" + token.getProcessInstance().hasEnded());
	}
}


  • 大小: 41.9 KB
分享到:
评论
4 楼 smallhand 2011-06-14  
解析XML那部分与Spring的处理方式类似吗?
3 楼 comsci 2011-06-14  
是否可以推出一个JBPM的常用流程图的运行控制代码集合呢? 方便大家使用,而不是每一次画图都要自己重新写一段代码
2 楼 comsci 2011-05-06  
#  ProcessDefinition processDefinition = ProcessDefinition 
#                 .parseXmlResource("helloworld/processdefinition.xml"); 

可否把JBPM解析XML文档的代码介绍一下,大家对这个比较有兴趣
1 楼 comsci 2011-05-02  
如果每一个流程都需要个对应的代码来控制,是否显得太麻烦了?

相关推荐

    深入浅出_jBPM_电子书

    深入浅出 jBPM 电子书,很适合初学者学习的一个开发文档

    JBPM_DEMO例子 Hello World

    【JBPM_DEMO例子 Hello World】是入门级的教程,主要展示了如何使用JBPM(Java Business Process Management)工作流引擎实现一个简单的“Hello World”流程。这个例子旨在帮助初学者理解JBPM的基本概念和操作流程。...

    jbpm3.rar_bpm_bpm jbpm_jbpm3_workflow_workflow process bpm

    **jbpm3.rar_bpm_bpm jbpm_jbpm3_workflow_workflow process bpm** **jbpm3** 是一个基于Java的企业级工作流引擎,是**BPM(Business Process Management)**领域的重要工具。它允许开发者设计、执行和管理业务流程...

    深入浅出 jBPM 电子书, ,综合大量例子和资料

    深入浅出jBPM 电子文档,内容包括:面向图的程序设计,流程建模,节点——Node 职责,task-node节点,state节点类型,decision节点类型.等等,.还 综合大量例子和资料 , 是 学习 JBPM 必读首选! 希望这部书,大家能...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    总的来说,jbPM 3.2是一个强大的工作流管理系统,通过深入理解和实践,开发者可以构建出高效、灵活的业务流程,提高企业的业务自动化水平。希望这份知识总结能对你在jbPM的学习和使用上提供帮助。

    深入浅出jBPM完整版part1

    .........................................7 1.3 jBPM版helloworld.....................................10 1.3.1 创建helloworld流程......................13 1.3.2 设计流程图 ..................................

    深入浅出jBPM完整版.part4

    《深入浅出jBPM》深入浅出,示例丰富,实用性强,适合有一定Java基础的读者阅读。

    深入浅出JBPM

    **深入浅出JBPM** JBPM,全称Java Business Process Management,是一款开源的工作流管理系统,由JBoss组织开发,现在是Red Hat公司的产品。它提供了一整套解决方案,用于设计、执行、监控和优化业务流程。JBPM的...

    jbpm3.2表说明

    JBPM_NODE JBPM_NODE FK_PROCST_SBPRCDEF SUBPROCESSDEFINITION_ 子流程的指定在父流程离开之前子流程将完整的执行 JBPM_NODE JBPM_NODE FK_NODE_PROCDEF PROCESSDEFINITION_ 此NODE自身存在的流程ID JBPM_NODE ...

    深入浅出jBPM电子书

    深入浅出jBPM电子书,JBOSS jBPM是一个灵活的、可扩展的工作流管理系统。JBOSS jBPM拥有直观的流程语言,用任务、异步的等待状态、定时器、自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS jBPM就拥有...

    jbpm_websale.rar_JSF_java JBPM_jbpm_jbpm websale_websale jb

    【jbpm_websale.rar】是一个包含JBPM(Business Process Management)网上销售示例的压缩包,这个实例对于初学者理解和掌握JBPM技术及其在Java Web应用中的实践非常有帮助。该实例结合了JSF(JavaServer Faces)前端...

    深入浅出jBPM.1-6章测试代码_jbpm-test.rar

    《深入浅出jBPM:1-6章测试代码详解》 jBPM,全称为Java Business Process Management,是一款开源的工作流管理系统,用于处理业务流程的建模、部署、执行和监控。它提供了灵活的工作流定义,支持BPMN 2.0标准,...

    jbpm4.rar_jbpm_jbpm designer_jbpm4

    通过阅读这份文档,开发者可以深入了解jBPM 4的工作原理,掌握如何有效地利用它来管理和优化业务流程。 总结起来,jBPM 4是一个强大的业务流程管理框架,其jBPM Designer提供了图形化的流程建模工具,使得业务流程...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...

    深入浅出JBPM 采购实例

    【深入浅出JBPM 采购实例】是一个基于Myeclipse8.5、Tomcat6.0和JBPM3.2.3的实践教程,旨在帮助读者理解并掌握工作流管理系统JBPM在采购流程中的应用。在这个实例中,作者省略了邮件功能,因为JBPM3.2.3版本不包含...

    JBPM工作原理及表结构详解

    本文将深入探讨JBPM的工作原理、表结构及其在实际操作中的应用。 1. **JBPM特色** - **灵活的建模**:JBPM支持BPMN 2.0标准,允许用户通过图形化界面设计复杂的工作流程。 - **持久化存储**:JBPM将流程实例和...

Global site tag (gtag.js) - Google Analytics