工作流程簡報可定義數值限制,讓您可傳遞至工作流程的輸入參數,如預先定義的數值清單或特定範圍的數值。為確保工作流程順利執行,您必須按照工作流程簡報定義,驗證傳遞至工作流程輸入參數的數值。

開始之前

請確認您已在 Orchestrator 中匯入範例工作流程套件。套件包含在 Orchestrator 範例應用程式 ZIP 檔案中,您可從 Orchestrator 說明文件頁面下載此檔案。

執行這項作業的原因和時機

當您在自訂應用程式中整合工作流程時,您可能需要建立精靈,以便在執行工作流程時輸入用於工作流程輸入參數的數值。您可以透過使用工作流程呈現服務,具現化工作流程呈現,並針對與不同精靈畫面對應的部分輸入參數傳遞數值。您可針對在工作流程簡報中定義的限制,驗證傳遞至輸入參數的數值。

程序

  1. 在包含工作流程定義的 URL 提出 GET 要求,擷取您要執行工作流程的定義:
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/

    您會在要求的回應本體中收到工作流程的定義。在工作流程定義中,您可檢視工作流程的輸入參數、工作流程描述及其他資訊。

  2. 在工作流程簡報的 URL 提出 GET 要求,擷取工作流程簡報定義:
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/presentation/
  3. 在要求的回應本體中,檢查工作流程簡報的定義是否有任何可傳遞至輸入參數的數值限制。

    例如:輸入參數可擁有預先定義的數值清單供人選擇。

  4. 在簡報執行個體的 URL 提出 POST 要求,舉例說明工作流程簡報:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/presentation/instances/
  5. 在要求本體中提供 execution-context 元素,舉例說明簡報。

    您可以針對部分輸入參數只傳遞空的 execution-context 或傳遞含有數值的 execution-context

  6. 若要傳遞數值至部分輸入參數,請視需要在擁有簡報執行個體的 URL 提出多數 POSTPUT 要求:
    PUT https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/presentation/instances/{executionID}/
  7. 檢閱您提出的 POSTPUT 要求回應本體。

    若您傳遞至輸入參數的數值有效,則會在 execution 標籤中發現 valid="true" 屬性。若簡報有效,您可取得列於回應 out-parameters 元素中的數值,並在您執行工作流程時當成數值傳遞至輸入參數。

  8. 若輸入參數的數值有效,請在擁有工作流程執行的 URL 提出 POST 要求以執行工作流程:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/
  9. 提供有效的數值至 execution-context 元素中的工作流程輸入參數。

驗證工作流程的輸入參數,執行 Send Hello 工作流程

您可根據工作流程簡報的定義驗證工作流程的輸入參數,執行 Send Hello 工作流程。

  1. 在擁有 Send Hello 工作流程定義的 URL 提出 GET 要求:

    GET https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/

    您會在要求的回應本體中,收到工作流程定義:

    <xml version="1.0" encoding="UTF-8" standalone="yes">
    <workflow xmlns="http://www.vmware.com/vco" customized-icon="false"
       href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/">
       <relations>
          <link rel="up"
              href="https://localhost:8281/vco/api/inventory/System/Workflows/Samples/HelloWorld/" />
          <link rel="add"
              href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/executions/" />
          <link rel="down"
              href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/executions/" />
          <link rel="down"
              href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/presentation/" />
          <link rel="down"
      	       href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/tasks/" />
          <link rel="down"
              href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/icon/" />
       </relations>
       <input-parameters>
          <parameter name="name" type="string" />
       </input-parameters>
       <output-parameters>
          <parameter name="message" type="string" />
       </output-parameters>
       <name>Send Hello</name>
    	  <description></description>
    </workflow>
  2. 在擁有工作流程簡報定義的 URL 提出 GET 要求:

    GET https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/presentation/
  3. 在擁有工作流程簡報執行個體的 URL 提出 POST 要求:

    POST https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/presentation/instances/ 

    提供空的 execution-context,以便在不提供任何輸入參數數值的情況下舉例說明簡報。

    <execution-context xmlns="http://www.vmware.com/vco"/>

    回應本體包含附加至各欄位的錯誤訊息,說明用於輸入參數的該數值無效。

    .......
    <fields>
      <field type="string" hidden="false" id="name">
        <display-name>name</display-name>
        <description>name</description>
        <messages>
           <message severity="ERROR" code="VCO-CNS0002">
              <Summary>
                    The minimum number of characters allowed for this field is 3.0
              </Summary>
           </message>
        </messages>
        <constraints>
           <number-range max="15.0" min="3.0" />
        </constraints>
    .......
  4. 在擁有特定簡報執行個體的 URL 提出 POST 要求:

    POST https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/presentation/instances/888080808080808080808080808080803F8080800132145338690643f66a027ec/

    在要求本體中,提供用於輸入參數的數值:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
     <execution-context xmlns="http://www.vmware.com/vco">
      <parameters>
        <parameter name="name" type="string">
          <string>John Smith</string>
        </parameter>
      </parameters>
    </execution-context>

    在要求回應本體中,您可檢查輸入參數的數值是否有效:

    <execution started-by="vcoadmin" .... valid="true".....>
  5. 若簡報有效,請在擁有工作流程執行的 URL 提出 POST 要求以執行工作流程:

    POST https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/executions/

    在要求本體中,傳遞數值至工作流程的輸入參數。使用當成工作流程簡報輸出參數傳回的相同數值,或直接使用上次您在工作流程簡報提出 POST 要求的要求本體。