Skip to content

模型关系

活动的出入参定义

一个活动就像一个函数,需要定义入参和出参,调用活动时,需要指定出入参在执行上下文变量集合中的名称或路径

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
    }
  } 
}