JBPM 工作流引擎 JBPM指南 例子:Hello World 流程定义(3.1)
2006-01-24 14:42
567 查看
声明:
本人E文VeryVeryPoor,又是刚刚开始学习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)或叫(轨迹)根token(the root token)它被定位在启始状态(start-state)的位置上。
*/
ProcessInstance processInstance =
new ProcessInstance(processDefinition);
/*
在构造实例之后,这个流程执行有了主要的执行路线(path)或叫(轨迹)根token(the 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());
}
待续….
本人E文VeryVeryPoor,又是刚刚开始学习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)或叫(轨迹)根token(the root token)它被定位在启始状态(start-state)的位置上。
*/
ProcessInstance processInstance =
new ProcessInstance(processDefinition);
/*
在构造实例之后,这个流程执行有了主要的执行路线(path)或叫(轨迹)根token(the 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());
}
待续….
相关文章推荐
- 最新JBoss jBPM 3.1 开始指南之二---执行示例流程和管理执行中的流程
- JBPM 工作流引擎 JBPM指南 例子:上下文环境-业务变量(3.3)
- JBPM 工作流引擎 JBPM指南 例子:客户动作(action)例子(3.5)
- 最新JBoss jBPM 3.1 开始指南之---创建流程和部署流程
- jBPM用户指南 第16章 jBPM流程定义语言 (转载)
- jbpm用户指南翻译:第16章 jBPM流程定义语言(JPDL)
- JBPM 工作流引擎 JBPM指南 例子:任务指派实例(3.4)
- 最新JBoss jBPM 3.1 开始指南之三---创建流程和部署流程
- JBPM 工作流引擎 JBPM指南 例子:数据库 (3.2)
- jbpm流程定义实体(Process Definition)(转)
- jbpm解析流程定义的三种方式
- Maven 使用指南(2): 第一个例子Hello World
- 从一个工作流流转中人员设定的例子看WBISF流程引擎所定义的用户授权安全模型
- jBPM-jpdl流程定义元素
- JBPM流程部署之流程定义实体对象分析
- jbpm Could not execute JDBC batch update jbpm部署流程定义到MySql报乱码解决方案
- jbpm教程(二)创建公文 并把公文与流程定义文件相互绑定
- 最新JBoss jBPM 3.1 开始指南之一---下载并运行JBoss jBPM
- Jbpm流程定义的打包和部署
- jbpm的流程定义版本策略