當您建立自訂表單時,可以新增可供使用者從搜尋結果清單中選取值的元素。透過值選擇器,使用者可以選取單一值。透過多值選擇器,使用者可以選取一或多個值。

值選擇器和多值選擇器與自訂表單 [外觀] 索引標籤中定義的 [參考類型] 搭配使用。參考類型為 vRealize Orchestrator 資源。例如,AD:UserGroup 或 VC:Datastore。透過定義參考類型,當使用者輸入搜尋字串時,結果會限制為具有相符參數的資源。

對於選擇器,您可以透過設定外部來源來進一步限制可能的值。

使用值選擇器

當使用者請求目錄中的項目時,值選擇器會做為搜尋選項出現在表單中。使用者輸入字串,然後選擇器根據您設定的方式提供清單。

請求表單中的值選擇器,其中顯示清單、單一選取對話方塊以及表單中所選值的範例。

您可以根據下列使用案例使用選擇器。值選擇器最有價值的用途是將其與外部來源值配對。

  • 具有常數值來源的值選擇器。

    如果您希望請求使用者從預先定義的靜態值清單中選取,請使用此方法。與下拉式方塊、下拉式功能表、多重選取和選項按鈕群組元素類似,此方法會根據定義的常數值和標籤提供清單中的搜尋結果。

  • 不具有已定義的值來源的值選擇器。

    如果您希望請求使用者搜尋已設定參考類型之特定物件的 vRealize Orchestrator 詳細目錄,請使用此方法。例如,參考類型為 VC:Datastore,而您希望使用者從擷取的清單中選取資料存放區。

  • 具有外部值來源的值選擇器。

    如果您希望請求使用者從基於 vRealize Orchestrator 動作的結果中搜尋,請使用此方法。對於基於外部來源的值選擇器,動作必須傳回內容陣列而不是字串陣列。下列指令碼提供了適用於值選擇器的基本 vRealize Orchestrator 動作範例。

    var res = [];
    res.push(new Properties({id: 'id1',label: 'label1'}));
    res.push(new Properties({id: 'id2',label: 'label2'}));
    res.push(new Properties ({id: 'id3',label: 'label3'}));
    return res;

使用多值選擇器

與值選擇器類似,多值選擇器以搜尋選項的形式出現在請求表單中,但可以選取一或多個值。使用者輸入字串,然後選擇器根據您設定元素內容的方式提供清單。

請求表單中的多值選擇器,其中顯示清單、多重選取對話方塊以及表單中所選值的範例。

除了針對值選擇器所述的使用案例之外,還可以根據以下使用案例使用多值選擇器。多值選擇器最具價值的用途是將其與參考資料類型和 vRealize Orchestrator 參考搭配使用。

  • 多值選擇器與複雜資料類型和常數值來源搭配使用。

    如果您希望請求使用者從預先定義的靜態值清單中選取一或多個值,請使用此方法。與資料格類似,此方法會根據定義的常數值和標籤提供清單中的搜尋結果。

  • 多值選擇器與複雜資料類型和外部來源搭配使用。

    如果您希望請求使用者從基於 vRealize Orchestrator 動作的值清單中選取一或多個值,請使用此方法。可以將此方法與 vRealize Orchestrator 複合類型搭配使用。

  • 多值選擇器與參考資料類型和 vRealize Orchestrator 參考類型搭配使用。如果您希望請求使用者搜尋已設定參考類型之特定物件的 vRealize Orchestrator 詳細目錄,請使用此方法。例如,參考類型為 VC:Datastore,而您希望使用者從擷取的清單中選取資料存放區。或者,如果您已設定工作流程篩選器,則可以使用工作流程作為參考。若要進行擷取,篩選器必須傳回內容陣列而不是字串陣列中的值。下節提供了工作流程篩選器的範例。在此範例中,當使用者輸入搜尋詞彙時,會在使用者介面中完成篩選。
  • 多值選擇器與參考資料類型、vRealize Orchestrator 參考類型和外部來源搭配使用。

    如果您希望請求使用者從先按參考類型進行篩選再基於 vRealize Orchestrator 動作的結果中選取,請使用此方法。這種組合可以更徹底地細化結果,並更快地填入請求表單。如同參考類型結果必須傳回內容陣列一樣,外部來源動作也必須傳回。在此範例中,篩選會在 vRealize Orchestrator 中完成,並且可能會提高清單的填入速度,尤其是在有大量 vRealize Orchestrator 動作時。

針對多值選擇器元素結果清單限制 vRealize Orchestrator 結果

若要限制在使用者搜尋動作時傳回的動作數目,您可以建立篩選動作並將篩選結果繫結至搜尋詞彙。

  1. vRealize Orchestrator 中,建立名為 filterWorkflow 的動作。
    1. 選取程式庫 > 動作,然後按一下新增動作
    2. 一般索引標籤上,輸入或選取下列值。
      選項
      名稱 filterWorkflow
      模組 com.vmware.library.workflow
    3. 按一下指令碼索引標籤,然後新增下列指令碼。
      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;
      
    4. 設定下列內容。
      vRealize Orchestrator 動作的螢幕擷取畫面,其中包含上一個步驟中的範例指令碼和此步驟中提供的內容組態。
      內容選項
      傳回類型 輸入工作流程,然後選取陣列

      可以使用執行搜尋時傳回的任何類型。自訂表單中選取的參考類型必須與其相符。

      若為此程序,則繼續使用工作流程。

      輸入 輸入 searchTerm

      請注意,輸入 searchTerm 與指令碼中使用的字串相符。

    5. 按一下建立
  2. Service Broker 的自訂表單設計工具中設定多值選擇器內容。
    複合螢幕擷取畫面,其中顯示 [參考] 資料類型和 [工作流程] 參考類型以及 [值] 索引標籤。[值] 索引標籤顯示 [外部來源] 以及動作和欄位繫結。
    1. Service Broker 中,選取內容和原則 > 內容,然後按一下您要修改的範本左側的垂直點,然後按一下自訂表單
    2. 在設計畫布中新增或選取多值選擇器元素。
    3. 在 [內容] 窗格中,按一下外觀,然後設定下列值。
      內容
      資料類型 參考
      參考類型 輸入工作流程

      請注意,此值是在 vRealize Orchestrator 中為 filterWorkflow 動作選取的傳回類型,其必須為陣列。

      顯示類型 多值選擇器
    4. 按一下索引標籤,然後設定下列值。
      內容
      值選項 > 值來源 外部來源
      選取動作 選取篩選動作。在此範例中,選取 filterWorkflows
      動作輸入 searchTerm 選取欄位搜尋詞彙
  3. 透過請求目錄項目來測試篩選器。

    必須確保篩選器傳回了多值選擇器清單中的預期值,並且目錄項目已正確部署。