用户交互的展示可能定义了可传递到工作流输入参数的值的限制。响应用户交互时,您可以根据用户交互的展示中定义的限制对传递到输入参数的值进行验证。

先决条件

确认您已导入 Orchestrator 中的示例工作流软件包。该软件包随 Orchestrator 示例应用程序 ZIP 文件附带提供。您可从 Orchestrator 文档页面中下载该文件。

过程

  1. 在持有可用用户交互对象的 URL 发起 GET 请求,或仅筛选等待中的用户交互,以检索所有用户交互对象的列表:

    URL

    描述

    https://orchestrator_host:port/vco/api/catalog/System/UserInteraction

    持有 Orchestrator 中的可用用户交互对象。

    https://orchestrator_host:port/vco/api/catalog/System/UserInteraction?status=0

    仅筛选等待中的用户交互对象。

    您会收到可用用户交互对象的列表。等待中的用户交互的属性包含名称 state 和值 waiting

  2. 在持有想要响应的等待中用户交互清单条目的 URL 发起 GET 请求:
    GET https://{orchestrator_host}:{port}/vco/api/catalog/System/UserInteraction/{userInteractionID}/

    响应正文包含用户交互实例的链接。用户交互实例与特定工作流运行关联。

  3. 在用户交互实例的 URL 发起 GET 请求:
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/

    在响应正文中,您会发现用户交互展示的下行链接。

  4. 在用户交互展示的 URL 发起 GET 请求:
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/presentation/

    您会在响应正文中收到用户交互展示的定义。

  5. 在展示定义中,查看您可以传递到输入参数的值的限制。
  6. 在展示实例驻留的 URL 发起 POST 请求来运行用户交互展示:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/presentation/instances/
  7. 在请求正文中,为 execution-context 元素中的输入参数提供值。

    在响应正文中,您会收到用户交互展示的实例。如果传递到输入参数的值有效,您会在 execution 元素中找到 valid="true" 属性。在 output-parameters 元素中,您会找到可用于响应用户交互的输入参数的有效值。

  8. 在用户交互实例驻留的 URL 发起 POST 请求来响应用户交互:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/
  9. 在请求正文中,传递包含输入参数值的 execution-context 上下文。

    您可以将此同一请求正文用于在用户交互展示的 URL 发起的 POST 请求中。

结果

如果上一请求成功,您会收到状态代码 204 和空响应正文。

验证输入参数来响应交互式“你好世界”工作流的用户交互

您可以根据用户交互展示中定义的限制对输入参数的值进行验证,从而对交互式“你好世界”工作流的用户交互作出响应。

  1. 在目录服务的用户交互对象端点处发起 GET 请求,搜索工作流内等待中的用户交互:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction?status=0
  2. 找到交互式“你好世界”工作流的用户交互清单对象,并在其 URL 发起 GET 请求:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/
  3. 在用户交互实例的 URL 发起 GET 请求:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/interaction/
  4. 在用户交互展示的 URL 发起 GET 请求:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/interaction/presentation/

    展示将输入参数定义为必需参数,并包含您可以传递的字符串的长度限制。

  5. 在持有用户交互展示的实例的 URL 发起 POST 请求:

    POST https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/interaction/presentation/instances/

    在请求正文中提供输入参数的值:

    <execution-context xmlns="http://www.vmware.com/vco">
       <parameters>
         <parameter name="name" type="string">
           <string>John Smith</string>
         </parameter>
       </parameters>
    </execution-context>

    响应正文的 execution 元素包含 valid="true" 属性,表示根据用户交互展示中的限制,输入参数值有效。有效值列出在 output-parameters 元素中:

    ............
    <output-parameters>
      <parameter name="name" type="string">
         <string>John Smith</string>
       </parameter>
    </output-parameters>
    ............

  6. 通过传递与步骤 5 中 POST 请求相同的请求正文以在用户交互实例的 URL 发起 POST 请求。

    POST https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/interaction/