这个指南将向你展示如何用jpdl创建基本的流程以及如何使用API管理运行期的执行。这个指南的形式是解释一组示例,每个示例集中于一个特殊的主题,并且包含大量的注释,这些例子也可以在jBPM下载包的目录src/。最好的学****方法就是建立一个工程,并且通过在给定例子上做不同的变化进行实验。对eclipse用户来说可以如下方式开始:下载jbpm--[version].zip并且解压到自己的系统,然后执行菜单“File”-->“Import…”-->“ExistingProjectintoWorkspace”,然后点击“Next”,浏览找到jBPM根目录,点击“Finish”。现在,,你可以在src//…下找到本指南中的例子,当你打开这些例子时,你可以使用菜单“Run”-->“RunAs…”-->“JUnitTest”运行它们。jBPM包含一个用来创作例子中展示的XML的图形化设计器工具,你可以在“”中找到这个工具的下载说明,但是完成本指南不需要图形化设计器工具。,它由节点和转换组成。Helloworld流程有三个节点,下面来看一下它们是怎样组装在一起的,我们以一个简单的流程作为开始,不用使用设计器工具,下图展示了helloworld流程的图形化表示:(){ //这个方法展示了一个流程定义以及流程定义的执行。 //这个流程定义有3个节点:一个没有命名的开始状态, //一个状态“s”,和一个名称为“end”的结束状态。 //下面这行是解析一段xml文本到ProcessDefinition对象(流程定义)。 //ProcessDefinition把一个流程的规格化描述表现为java对象。 ProcessDefinitionprocessDefinition=( "<process-definition>"+ " <start-state>"+ " <transitionto='s'/>"+ " </start-state>"+ " <statename='s'>"+ " <transitionto='end'/>"+ " </state>"+ " <end-statename='end'/>"+ "</process-definition>" ); //下面这行是创建一个流程定义的执行。创建后,流程执行有一个 //主执行路径(=根令牌),它定位在开始状态。 ProcessInstanceprocessInstance= newProcessInstance(processDefinition); //创建后,流程执行有一个主执行路径(=根令牌)。 Tokentoken=(); //创建后,主执行路径被定位在流程定义的开始状态。 assertSame((),()); //让我们开始流程执行,通过它的默认转换离开开始状态。 (); //signal方法将会把流程阻塞在一个等待状态。 //流程执行进入第一个等待状态“s”,因此主执行路径现在定位 //在状态“s”。 assertSame(("s"),()); //让我们发送另外一个信号,这将通过使用状态“s”的默认转换 //离开状态“s”,恢复流程执行。 (); //现在signal方法将返回,因为流程示例已经到达结束状态。 assertSame(("end"),());} ,拥有把流程的执行持久化到数据库中的能力。下面的例子将向你展示怎样存储一个流程实例到数据库,例子中还会出现上下文。分开的方法被用来创建不同的用户代码,例如,一段代码在web应用中启动一个流程并且持久化执行到数据库,稍后,由一个消息驱动bean从数据库中加载流程实例并且恢复它的执行。有关jBPM持久化的更多信息可以在“第7章持久化”找到。lassHelloWorldDbTestextendsTestCase{ staticJbpmConfigu
jBPM指南 来自淘豆网www.taodocs.com转载请标明出处.