Service Brokerの申請フォームをカスタマイズするときに、vRealize Orchestrator アクションの結果に基づいていくつかのフィールドの動作を設定することができます。
vRealize Orchestratorアクションを使用する方法はいくつかあります。3 番目のソースからデータを取得するアクションや、サイズとコストを定義するスクリプトを使用できます。
最初の例では、手動で追加したフィールドを使用して基盤となるプロセスを理解します。2 つ目の例では、同じ前提の下でテンプレート フィールドを使用します。
3 つ目の例は、カタログ申請フォームに追加されるカスタム オプションに基づいています。ここでは、ユーザーはカスタム vRealize Orchestratorアクションの結果に基づいてフォルダを選択します。
4 番目の例では、vRealize Orchestratorワークフロー属性を使用して、申請フォームのフィールドをカスタマイズします。
次の例以外の例については、VMware Cloud Management ブログを参照してください。
手動で追加したフィールドのサイズとコストの例
この使用事例では、カタログ ユーザーが仮想マシンのサイズを選択したらそのマシンの 1 日あたりのコストを表示できるようにします。この例を実行するには、サイズとコストを関連付けるvRealize Orchestratorスクリプトを使用します。次に、サイズ フィールドとコスト フィールドをテンプレートのカスタム フォームに追加します。コスト フィールドに表示される値は、サイズ フィールドによって決まります。
- vRealize Orchestratorで、getWindows10Cost という名前のアクションを構成します。

- スクリプトを追加します。
次の例のスクリプトを使用できます。
var cost = "Unknown"; switch(deploymentSize) { case 'small' : cost = "$15";break; case 'medium' : cost = "$25";break; case 'large' : cost = "$45";break ; default : break ; } return cost; - deploymentSizeを入力文字列として追加します。
- Service Brokerで、[サイズ] フィールドをテンプレートのカスタム フォームに追加し、設定します。
サイズ フィールドは、Small、Medium、および Large の値を含むドロップダウン要素として設定します。
[値] タブで、次のプロパティ値を構成します。
- デフォルト値 = Large
- 値のオプション
- 値のソース = 定数
- 値の定義 = small|Small,medium|Medium,large|Large
- [サイズ] フィールドで選択された値に基づいてvRealize Orchestratorアクションに定義されているようにコストを表示する [コスト] フィールドを、テキスト フィールドとして追加します。
![カスタム フォームで入力された [コスト] フィールドの値。](images/GUID-860D2C20-4E9C-49EA-BEC1-00482F619BC6-low.png)
[値] タブで、次のプロパティ値を構成します。
- デフォルト値 = 外部ソース
- アクションの選択 = <vRealize Orchestratorアクション フォルダ>/getWindows10Cost
- アクションの入力
- deploymentSize。この値は、アクションで入力として設定されています。
- フィールド
- サイズ:これは、以前に作成したフィールドです。
- カスタム フォームを有効にし、保存します。
- これが機能していることを確認するには、カタログ内のアイテムを要求します。選択した [サイズ] 値に基づいて [コスト] フィールドに値が入力されることを確認します。

スキーマ要素に基づくコストの例
この使用事例では、テンプレートのフレーバー プロパティに基づく 1 日あたりのマシンのコストがカタログ ユーザーに表示されるようにします。この例を実行するには、前の例のvRealize Orchestratorスクリプトを使用します。ただし、この使用事例でのコストは、ユーザーが Service Brokerカタログ アイテムを要求するときにカスタム フォームで選択したフレーバー サイズに基づいて計算されます。
カスタム アクションに基づくターゲット フォルダの例
この使用事例では、カタログ ユーザーがマシンをあるフォルダから別のフォルダに移動するときに、使用可能なフォルダから選択できるようにします。この例を実行するには、カタログでアクションを要求するユーザーが使用できるフォルダを返すカスタム アクションをvRealize Orchestrator内で作成します。次に、カタログ申請フォームの [ターゲット フォルダ] フィールドをカスタマイズします。
カタログでは、この例で使用されている [仮想マシンをフォルダに移動] ワークフローは、Cloud Assembly で作成されたカスタム リソース アクションとして公開されます。
- vRealize Orchestratorで、getFolderForUser という名前のアクションを作成します。
- [スクリプト] タブで、アクションの入力を追加し、出力の戻り値のタイプを選択して、スクリプトを追加します。
次の例のスクリプトを使用できます。
var parentTargetDirName = "users"; var sdkConnection = VcPlugin.findSdkConnectionForUUID(vcUuid); var rootFolder = sdkConnection.getAllVmFolders(null, "xpath:matches(name,'" + parentTargetDirName + "')")[0]; var result = new Array(); for each(var folder in rootFolder.childEntity) { if (folder instanceof VcFolder && folder.permission.length > 0) { var entityPrivilege = sdkConnection.authorizationManager.hasUserPrivilegeOnEntities([folder], username, ["System.Read"])[0]; if (entityPrivilege.privAvailability[0].isGranted) { result.push(folder); } } } return result; - アクションの編集を終了したら、[保存] をクリックします。
- [スクリプト] タブで、アクションの入力を追加し、出力の戻り値のタイプを選択して、スクリプトを追加します。
- Cloud Assemblyで、ChangeFolder という名前のカスタム リソース アクションを作成します。
- [Cloud.vSphere.Machine] リソース タイプを選択します。
- [仮想マシンをフォルダに移動] ワークフローを選択します。
- ユーザーがアクションを申請するときに表示される申請フォームをカスタマイズします。
- ChangeFolderアクションを開きます。
- [要求パラメータの編集] をクリックします。
- [ターゲット フォルダ] フィールドの表示方法をカスタマイズします。
値のオプション サンプル値 値のソース 外部ソース アクションの選択 getFolderForUser アクションの入力 username Field
の順に移動します。 [選択] をクリックします。
アクションの入力 vcUuid
の順にクリックします。 [選択] をクリックします。
- [保存] をクリックします。
ユーザーはカタログ内のアクションを申請するとき、仮想マシンのターゲット フォルダを使用可能なフォルダから選択できます。
ワークフロー属性に基づくホスト名の例
- vRealize Orchestratorで、既存のワークフローを作成またはクローン作成します。たとえば、[REST ホストの追加] ワークフローのクローンを作成します。
- [変数] タブで、変数を追加して構成要素にバインドします。
値のオプション サンプル値 名前 hostname タイプ string 設定 [構成にバインド] オプションを有効にします。 [構成] テキスト ボックスで、変数をバインドする構成を選択します。たとえば、カスタムの [vRO 構成: hostname] 要素を選択します。
- ワークフローを保存します。
- [変数] タブで、変数を追加して構成要素にバインドします。
- Service Brokerにワークフローをインポートします。
- 申請フォームをカスタマイズします。
- フォーム デザイナで [URL] 要素をクリックします。
- [値] タブで、値のソースを [バインド フィールド] に設定します。
- の順にクリックします。
- hostname 変数、または使用可能な任意のワークフロー属性を選択します。
- フォームを保存して有効にします。
ユーザーがカタログからワークフローを申請すると、URL フィールドは hostname 変数に基づいて入力されます。
別のプロジェクトに切り替えると、ワークフローの取得元が別の vRealize Orchestrator統合に変更される可能性があるため、ワークフロー属性は再計算されます。