Appearance
模型关系
活动的出入参定义
一个活动就像一个函数,需要定义入参和出参,调用活动时,需要指定出入参在执行上下文变量集合中的名称或路径
xml
<Task>
<input to="a" from="data.a">
</input>
<output from="b" to="data.b">
</output>
</Task>
Process 进程
执行
java
/**
* 启动逻辑流
*/
public Object start(DelegateExecution execution, String transactionType){
// 如果开启事务,则创建响应的事务管理器
if (transactionType != null) {
return executeByTransaction(execution, transactionType)
} else {
return execute(execution);
}
}
/**
* 启用事务执行逻辑流
*/
private Object executeByTransaction(DelegateExecution execution,
String transactionType){
Transaction transaction = createTransactionByType(transactionType);
transaction.start();
try {
execute(DelegateExecution);
transaction.commit();
} catch (JdbcException e) {
transaction.rollback();
throw e
}
}
/**
* 不启用事务执行逻辑流程
*/
private Object execute(DelegateExecution execution){
// 处理错误边界事件
try {
// 执行开始节点
startEvent.execute(execution);
} catch (LogicTaskBusinessError e){
// 如果有对应的错误边界事件,调用边界事件
BoundaryEvent event = findBoundaryEventByError(e);
if(event != null) {
event.execute(execution);
} else {
throw e
}
}
}