浏览 2778 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-03
最后修改:2011-04-04
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()); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-02
如果每一个流程都需要个对应的代码来控制,是否显得太麻烦了?
|
|
返回顶楼 | |
发表时间:2011-05-06
# ProcessDefinition processDefinition = ProcessDefinition
# .parseXmlResource("helloworld/processdefinition.xml"); 可否把JBPM解析XML文档的代码介绍一下,大家对这个比较有兴趣 |
|
返回顶楼 | |
发表时间:2011-06-14
是否可以推出一个JBPM的常用流程图的运行控制代码集合呢? 方便大家使用,而不是每一次画图都要自己重新写一段代码
|
|
返回顶楼 | |
发表时间:2011-06-14
解析XML那部分与Spring的处理方式类似吗?
|
|
返回顶楼 | |