tion("loan:1/request7836", "approve");
关于服务接口的更多信息,关于如何运行在持久化模式下, 可以在包 org.jbpm.pvm 的api doc找到 。
jBPM-4.0中文开发指南-第13章 执行模式(4)
时间:2011-09-24
13.3. 嵌入执行模式
嵌入执行模式意味着路程的状态保存在 一个用户领域对象的字符串列中,比如一个loan.
public class Loan {
/** the loan process definition as a static resource */
private static final ClientProcessDefinition processDefinition = createLoanProcess ();
private static ClientProcessDefinition createLoanProcess() {
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();
return processDefinition;
}
/** exposes the process definition to the execution hibernate type */
private static ClientProcessDefinition getProcessDefinition() {
return processDefinition;
}
long dbid;
String customer;
double amount;
ClientExecution execution;
/** constructor for persistence */
protected Loan() {
}
public Loan (String customer, double amount) {
this.customer = customer;
this.amount = amount;
this.execution = processDefinition.startProcessInstance();
}
public void approve() {
execution.signal("approve");
}
public void reject() {
execution.signal("reject");
}
public void archiveComplete() {
execution.signal();
}
public String getState() {
return execution.getActivityName();
}
...getters...
}
jBPM-4.0中文开发指南-第13章 执行模式(5)
时间:2011-09-24
如果你暂时忽略加粗部分,你可以看到这是一个没有任何奇异的POJO. 它只是一个bean,可以保存到 hibernate中。 粗体部分展示了类的实现部分,这与流程和执行相关。 流程定义或者执行都没有暴露给 Loan类的用户。
每个Loan对象对应一个loan流程实例。 Loan类的一些方法 对应外部触发器, 这会在Loan对象的生命 周期被触发。
接下来我们演示如何使用这个类,为了开始,我们需要一个
hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate- configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration- 3.0.dtd">
<hibernate-configuration>
<
|