在这个例子中,我们有2个流程,第一个流程“Workflow Process 1”包含一个Subflow,可以调用第二个流程“Workflow Process 2”。

图1:工作流程过程1和子流程到工作流程过程2

工作流程过程1有一个名为“firstStatus”的声明工作流程变量。

图2:工作流程2

工作流程过程2有一个名为“secondStatus”的声明工作流程变量。

子流程属性

标题

描述

Id

要调用的流程 

Execution

同步: 调用并创建子流实例,并等待子流程完成,然后再继续到工作流程过程中的下一个节点。
异步: 调用子流程并继续到流程中的下一个节点,无需等待

Subflow Parameters / Actual Parameters

子流程中的工作流程变量将与当前工作流程过程中的现有工作流程变量进行映射。子流参数实际参数中的条目数应该相同。

Id:工作流变量ID 
模式:

  • In: 仅在调用子流程过程时,将当前工作流程变量的值传递给子流程变量。
  • Out: 只有在完成子流程时,才将子流工作流程变量的值传递给当前工作流程的变量。
  • In and Out: 上述的组合

示例:

在上面的截图中,子流程将同步执行。参数设置为“ In and Out”。

让我们按照时间顺序浏览整个流程:

  1. 流程开始“工作流程过程1”
  2. “活动1”开始了。
  3. 以“firstStatus”设置为“a”完成的“活动1”。
  4. 子流程已启动。由于参数设置为“ In and Out”,现在将子流程的值“a”设置为“secondStatus”。
  5. “活动3”从“secondStatus”开始,初始化为“a”。
  6. 以“secondStatus”设置为“ab”完成“活动3”。
  7. “活动4”以“secondStatus”开始初始化为“ab”开始。
  8. “活动4”以“secondStatus”设置为“abc”完成。
  9. 子流程现在已经结束了。由于参数设置为“In and Out ”,所以值“abc”现在返回到父进程的“firstStatus”。“活动2”以“firstStatus”设置为“abc”开始。