您可以使用串行启动工作流并行启动工作流工作流在一组选定的对象上运行工作流。

您无法直接运行串行启动工作流并行启动工作流工作流。您必须将其包含在您创建的另一工作流中。若要使用串行启动工作流并行启动工作流工作流在一组选定的对象上运行工作流,您必须获取要在其上运行工作流的对象。将这些对象以及工作流所需的任何其他输入参数作为属性数组传递到工作流。串行启动工作流并行启动工作流工作流会将在一组选定对象上运行工作流所得到的结果处理为一个 WorkflowToken 对象数组。

串行启动工作流并行启动工作流工作流的实现方法相同。串行启动工作流工作流会在每个对象上按顺序运行工作流。并行启动工作流工作流会在所有对象上同时运行工作流。

前提条件

打开要在工作流编辑器中编辑的工作流。

过程

  1. 在工作流架构中,添加可编辑脚本任务操作元素以获取要在其上运行工作流的对象列表。
    例如,若要在某个虚拟机文件夹中的所有虚拟机上运行工作流,您可以将 getAllVirtualMachinesByFolder 操作添加到工作流。
  2. 链接脚本元素或操作并将其输入和输出绑定到工作流输入或变量。
    例如,您可以将 getAllVirtualMachinesByFolder 操作的 vmFolder 输入绑定到工作流输入参数,并将 actionResult 输出绑定到调用方工作流的工作流变量。
  3. 添加可编辑脚本任务元素以将对象列表转换为属性数组。
    例如,如果要在其上运行工作流的对象是虚拟机阵列(即 allVMs),且由 getAllVirtualMachinesByFolder 操作的 actionResult 输出返回,您可以编写以下脚本将对象转换为属性数组。
    propsArray = new Array();
    
    for each (var vm in allVMs) {
     var prop = new Properties();
     prop.put("vm", vm);
     propsArray.push(prop);
    }
  4. 将可编辑脚本任务的输入和输出绑定到工作流变量。
    在第 3 步的示例可编辑脚本任务元素中,将输入绑定到虚拟机的 allVMs 阵列,并以 Properties 对象数组形式创建 propsArray 输出变量。
  5. 工作流元素添加到工作流架构中。
  6. 选择串行启动工作流并行启动工作流工作流,并将工作流元素链接到其他元素。
  7. 要在对象上运行,请将串行启动工作流并行启动工作流工作流的 wf 输入绑定到工作流。
    例如,若要移除 getAllVirtualMachinesByFolder 操作返回的所有虚拟机的任何快照,请选择 移除所有快照工作流。
  8. 串行启动工作流并行启动工作流工作流的 parameters 输入绑定到 Properties 对象数组,此数组中包括要在其上运行工作流的对象。
    例如,将 parameters 输入绑定到第 4 步中定义的 propsArray 变量。
  9. (可选) 串行启动工作流并行启动工作流工作流的 workflowTokens 输出绑定到工作流中的变量。
  10. (可选) 继续添加更多使用串行启动工作流并行启动工作流工作流运行结果的元素。

结果

您即已创建了使用 串行启动工作流并行启动工作流工作流的工作流,可以在一组选定的对象上运行工作流。