第 13 章 执行模式
这里有三种基本的流程执行模式:对象,持久化和嵌入。 对于持久化和嵌入执行模式, 流程执行必 须在一个事务中执行。在那种情况, 流程执行必须放在一个环境的内部。 环境将用来绑定流程执行,更 新到一个应用事务的事务中。 环境可以被用来绑定,比如一个JDBC连接, JTA,BMT,Spring事务等等。
13.1. 对象执行模式
对象执行模式是使用流程虚拟机的最简单形式。 这意味着通过客户端API直接使用流程定义和执行对 象。 让我们通过一个例子演示这个。 我们通过创建一个ClientProcessDefinition开始,看起来像这样 :
对象执行模式是使用流程虚拟机的最简单形式。 这意味着通过客户端API直接使用流程定义和执行对 象。 让我们通过一个例子演示这个。 我们通过创建一个ClientProcessDefinition开始,看起来像这样 :
开发指南-第13章 执行模式-jbpm开发入门指南">
图 13.1. 贷款流程
ClientProcessDefinition processDefinition = ProcessFactory.build("loan")
.activity("submit loan request").initial().behaviour(AutomaticActivity.class)
.transition().to("evaluate")
.activity("evaluate").behaviour(WaitState.class)
.transition("approve").to("wire money")
.transition("reject").to("end")
.activity("wire money").behaviour(AutomaticActivity.class)
.transition().to ("archive")
.activity("archive").behaviour(WaitState.class)
.transition ().to("end")
.activity("end").behaviour(WaitState.class)
.done();
ProcessFactory是一个帮助类, 为构建一个表现为流程定义的对象图提供方便。 AutomaticActivity 是一个通过活动, 没有任何操作发生,WaitState会等到外部signal发生。 这两个活动实现都会在后面 讨论更深。
processDefinition对象作为一个工厂,为流程实例对象。 一个流程实例表现为流程定义的一个执行 。 更准确的说,流程实例是执行的主路径。
ClientExecution execution = processDefinition.startProcessInstance();