ユーザーが検索結果リストから値を選択するカスタム フォームを作成するときに、要素を追加できます。値ピッカーを使用すると、ユーザーは単一の値を選択できます。複数値ピッカーを使用すると、ユーザーは 1 つ以上の値を選択できます。
値ピッカーと複数値ピッカーは、カスタム フォームの [表示] タブで定義されているリファレンス タイプで動作します。リファレンス タイプは、vRealize Orchestrator リソースです。たとえば、AD:UserGroup または VC:Datastore です。リファレンス タイプを定義することで、ユーザーが検索文字列を入力するときに、結果が、一致するパラメータを持つリソースに制限されるようになります。
ピッカーでは、外部ソースを構成することによって可能な値をさらに制限することができます。
値ピッカーの操作
ユーザーがカタログ内のアイテムを申請すると、値ピッカーが検索オプションとしてフォームに表示されます。ユーザーが文字列を入力すると、ピッカーは文字列の構成方法に基づいてリストを表示します。
ピッカーは以下のようなユース ケースに基づいて使用できます。値ピッカーの最も価値のある用途は、外部ソース値とペアリングすることです。
- 定数値のソースを持つ値ピッカー。
この方法は、申請するユーザーが、事前定義された値の静的リストから選択するようにしたい場合に使用します。コンボボックス、ドロップダウン、複数選択、ラジオ グループの要素と同様、この方法は定義された定数値およびラベルに基づいて検索結果をリストに表示します。
- 定義された値ソースを持たない値ピッカー。
この方法は、申請するユーザーが、構成されたリファレンス タイプを持つ特定のオブジェクトを vRealize Orchestrator インベントリ内で検索するようにしたい場合に使用します。たとえば、リファレンス タイプが VC:Datastore で、ユーザーが取得されたリストからデータストアを選択する場合などです。
- 外部の値のソースを持つ値ピッカー。
この方法は、申請するユーザーが vRealize Orchestrator アクションに基づく結果からが選択するようにしたい場合に使用します。値ピッカーが外部ソースに基づいている場合、このアクションは文字列配列ではなく、プロパティ配列を返す必要があります。次のスクリプトは、値ピッカーで使用できる基本的な vRealize Orchestrator アクションの例を示しています。
var res = []; res.push(new Properties({label: 'label1',value: 'value1'})); res.push(new Properties({label: 'label2',value: 'value2'})); res.push(new Properties({label: 'label3',value: 'value3'})); return res;
注: [プロパティ] の入力をワークフローに入力することはできません。入力できるのは、カスタム フォームの中間値のみです。
複数値ピッカーの操作
複数値ピッカーは、値ピッカーと同様に、検索オプションとして申請フォームに表示されますが、1 つ以上の値を選択できます。ユーザーが文字列を入力すると、ピッカーは要素のプロパティの構成方法に基づいてリストを表示します。
複数値ピッカーは、値ピッカーで説明したユースケースに加えて、次のユースケースに基づいて使用できます。複数値ピッカーの最も便利な使い方は、リファレンス データ タイプおよび vRealize Orchestrator リファレンスと併用することです。
- 複雑なデータ タイプと定数値のソースを使用する複数値ピッカー
この方法は、申請するユーザーが、事前定義された値の静的リストから 1 つ以上の値を選択するようにしたい場合に使用します。データ グリッドと同様に、この方法は定義された定数値およびラベルに基づいて検索結果をリストに表示します。
- 複雑なデータ タイプと外部ソースを使用する複数値ピッカー
この方法は、申請するユーザーが、vRealize Orchestrator アクションに基づいて値リストから 1 つ以上の値を選択するようにしたい場合に使用します。この方法は、vRealize Orchestrator の複合タイプで使用できます。
- リファレンス データ タイプと vRealize Orchestrator リソース タイプを使用する複数値ピッカーこの方法は、申請するユーザーが、構成されたリファレンス タイプを持つ特定のオブジェクトを vRealize Orchestrator インベントリ内で検索するようにしたい場合に使用します。たとえば、リファレンス タイプが VC:Datastore で、ユーザーが取得されたリストからデータストアを選択する場合などです。ワークフロー フィルタが構成されている場合は、ワークフローをリファレンスとして使用できます。値を取得するには、フィルタが文字列配列ではなく、プロパティ配列で値を返す必要があります。ワークフロー フィルタの例については、次のセクションを参照してください。この例では、ユーザーが検索語を入力すると、フィルタリングがユーザー インターフェイスで実行されます。
- リファレンス データ タイプ、vRealize Orchestrator リファレンス タイプ、および外部ソースを使用する複数値ピッカー
この方法は、申請するユーザーが、最初にリファレンス タイプでフィルタリングされた結果から選択し、その次に vRealize Orchestrator アクションに基づく結果から選択するようにしたい場合に使用します。この組み合わせにより、結果をさらに絞り込んで、申請フォームへの入力時間を短縮することができます。リファレンス タイプの結果によってプロパティ配列が返される必要があるのと同様なことが、外部ソース アクションについても当てはまります。この例では、フィルタリングは vRealize Orchestrator で行われるため、リストの入力速度が上がります。特に、vRealize Orchestrator のアクションが多数ある場合は効果があります。
複数値ピッカー要素結果リストの vRealize Orchestrator 結果数の制限
ユーザーがアクションを検索するときに返されるアクションの数を制限するには、フィルタ アクションを作成し、フィルタ結果を検索語にバインドします。
- vRealize Orchestrator で、filterWorkflow という名前のアクションを作成します。
- [新しいアクション] をクリックします。 の順に選択して、
- [一般] タブで、次の値を入力するか、選択します。
オプション 値 名前 filterWorkflow モジュール com.vmware.library.workflow - [スクリプト] タブをクリックして、次のスクリプトを追加します。
var workflows = System.getModule("com.vmware.library.workflow").getAllWorkflows(); var result = []; for(var i = 0; i < workflows.length; i++) { if(workflows[i].name.indexOf(searchTerm) !== -1) { result.push(workflows[i]); } } return result;
- 次のプロパティを設定します。
プロパティのオプション 値 戻り値 Workflow と入力し、[アレイ] を選択します。 検索を実行する場合、返されたタイプのいずれかを使用できます。カスタム フォームで選択したリファレンス タイプが、このタイプと一致している必要があります。
この手順を実行する場合は、引き続きワークフローを使用します。
入力 searchTerm と入力します。 入力した searchTerm が、スクリプトで使用されている文字列と一致していることを確認してください。
- [作成] をクリックします。
- Service Broker のカスタム フォーム デザイナで、複数値ピッカーのプロパティを構成します。
- Service Broker で、 の順に選択し、変更しているテンプレートの左側にある縦に並んだドットをクリックして、[フォームのカスタマイズ] をクリックします。
- デザイン キャンバスで複数値ピッカー要素を追加または選択します。
- [プロパティ] ペインで [表示] をクリックして、次の値を構成します。
プロパティ 値 データ タイプ 参照 リファレンス タイプ Workflow と入力します。 この値が、vRealize Orchestrator の filterWorkflow アクションに対して選択された戻り値のタイプになっていて、配列にする必要があることに注意してください。
表示タイプ 複数値ピッカー - [値] タブをクリックして、次の値を構成します。
プロパティ 値 [値のオプション] > [値のソース] 外部ソース アクションの選択 フィルタ アクションを選択します。この例では、filterWorkflows を選択します。 [アクションの入力] の searchTerm フィールド および 検索語 を選択します。
- カタログ アイテムを申請して、フィルタをテストします。
フィルタによって、複数値ピッカー リストで使用される値が返され、カタログ アイテムが正しく展開されることを確認する必要があります。