[ワークフローの順次開始] ワークフローと [ワークフローの同時開始] ワークフローを使用すると、選択したオブジェクトに対してワークフローを実行できます。
[ワークフローの順次開始] ワークフローと [ワークフローの同時開始] ワークフローを直接実行することはできません。これらのワークフローは、ワークフローをもう 1 つ作成して、その中に含める必要があります。[ワークフローの順次開始] ワークフローと [ワークフローの同時開始] ワークフローを使用して、選択したオブジェクトに対してワークフローを実行するには、ワークフローの実行対象のオブジェクトを取得する必要があります。これらのオブジェクト、およびワークフローに必要なその他の入力パラメータを、プロパティの配列としてワークフローに渡します。[ワークフローの順次開始] ワークフローと [ワークフローの同時開始] ワークフローは、選択されたオブジェクトに対してワークフローを実行した結果を、WorkflowToken オブジェクトの配列として出力します。
[ワークフローの順次開始] ワークフローと [ワークフローの同時開始] ワークフローは、同じ方法で実装します。[ワークフローの順次開始] ワークフローは、ワークフローを各オブジェクトに対して順次実行します。[ワークフローの同時開始] ワークフローは、ワークフローを各オブジェクトに対して同時実行します。
前提条件
ワークフロー エディタで編集対象のワークフローを開きます。
手順
- ワークフローのスキーマで、[スクリプト化可能タスク] または [アクション要素] を追加して、ワークフローを実行するオブジェクトのリストを取得します。
たとえば、仮想マシン フォルダ内のすべての仮想マシンに対してワークフローを実行するには、ワークフローに
getAllVirtualMachinesByFolder アクションを追加します。
- スクリプト化した要素またはアクションをリンクし、スクリプト化した要素またはアクションの入出力をワークフローの入力または変数にバインドします。
たとえば、
getAllVirtualMachinesByFolder アクションの
vmFolder 入力をワークフロー入力パラメータにバインドし、
actionResult 出力を呼び出し側ワークフローのワークフロー変数にバインドします。
- [スクリプト化可能タスク] 要素を追加して、オブジェクトのリストをプロパティの配列にキャストします。
たとえば、ワークフローを実行する対象のオブジェクトが、
getAllVirtualMachinesByFolder アクションの
actionResult 出力によって返される仮想マシンの配列
allVMs である場合は、次のスクリプトを記述して、オブジェクトをプロパティの配列にキャストします。
propsArray = new Array();
for each (var vm in allVMs) {
var prop = new Properties();
prop.put("vm", vm);
propsArray.push(prop);
}
- スクリプト化可能なタスクの入出力をワークフロー変数にバインドします。
手順 3 のスクリプト化可能なタスク要素の例では、入力を仮想マシンの
allVMs 配列にバインドし、
propsArray 出力属性を
Properties オブジェクトの配列として作成します。
- [ワークフロー要素] をワークフロー スキーマに追加します。
- [ワークフローの順次開始] ワークフローまたは [ワークフローの同時開始] ワークフローを選択し、ワークフロー要素をその他の要素にリンクします。
- オブジェクトに対して実行するには、[ワークフローの順次開始] ワークフローまたは [ワークフローの同時開始] ワークフローの wf 入力を、ワークフローにバインドします。
たとえば、
getAllVirtualMachinesByFolder アクションによって返されるすべての仮想マシンのあらゆるスナップショットを削除するには、
[すべてのスナップショットを削除] ワークフローを選択します。
- [ワークフローの順次開始] ワークフローまたは [ワークフローの同時開始] ワークフローの parameters 入力を、ワークフローを実行する対象のオブジェクトが含まれている Properties オブジェクトの配列にバインドします。
たとえば、
parameters 入力を、手順 4 で定義した
propsArray 変数にバインドします。
- (オプション) [ワークフローの順次開始] ワークフローまたは [ワークフローの同時開始] ワークフローの workflowTokens 出力を、ワークフロー内の変数にバインドします。
- (オプション) 引き続き、[ワークフローの順次開始] ワークフローまたは [ワークフローの同時開始] ワークフローの実行結果を使用する要素をさらに追加します。
結果
これで、
[ワークフローの順次開始] ワークフローまたは
[ワークフローの同時開始] ワークフローを使用するワークフローが作成され、選択したオブジェクトに対してワークフローが実行されるようになりました。