The presentation of a user interaction might define constraints for the values that you can pass to the input parameters of the workflow. When you answer to a user interaction, you can validate the values that you pass to the input parameters against the constraints that are defined in the presentation of the user interaction.

Before you begin

Verify that you have imported the sample workflows package in Orchestrator. The package is included in the Orchestrator sample applications ZIP file that you can download from the Orchestrator documentation page.

Procedure

  1. Retrieve the list of all user interaction objects by making a GET request at the URL that holds the available user interaction objects, or by filtering only the waiting user interactions:

    URL

    Description

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

    Holds the available user interaction objects in Orchestrator.

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

    Filters only the waiting user interaction objects.

    You receive a list of the available user interaction objects. User interactions that are waiting have an attribute with name state and value waiting.

  2. Make a GET request at the URL that holds the inventory item of the waiting user interaction that you want to answer:
    GET https://{orchestrator_host}:{port}/vco/api/catalog/System/UserInteraction/{userInteractionID}/

    The response body contains a link to the user interaction instance. The user interaction instance is associated with a particular workflow run.

  3. Make a GET request at the URL of the user interaction instance:
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/

    In the response body, you find a down link to the presentation of the user interaction.

  4. Make a GET request at the URL of the presentation of the user interaction:
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/presentation/

    You receive the definition of the user interaction presentation in the response body.

  5. In the presentation definition, check for constraints of the values that you can pass to the input parameters.
  6. Run the user interation presentation by making a POST request at the URL where the instances of the presentation reside:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/presentation/instances/
  7. In the request body, provide values for the input parameters in an execution-context element.

    In the response body, you receive the instance of the user interaction presentation. If the values that you passed to the input parameters are valid, you find a valid="true" attribute in the execution element. In the output-parameters element, you find the valid values for the input parameters that you can use to answer to the user interaction.

  8. Answer to the user interaction by making a POST request at the URL where the user interaction instance resides:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/{executionID}/interaction/
  9. In the request body, pass an execution-context context with the values for the input parameters.

    You can use the same request body as the one for the POST request that you made at the URL for the user interaction presentation.

Results

If the last request is successful, you receive a status code 204 and an empty response body.

Answer to the User Interaction of the Interactive Hello World Workflow by Validating Input Parameters

You can answer to the user interaction of the Interactive Hello World workflow by validating the values of the input parameters against the constraints that are defined in the presentation of the user interaction.

  1. Search for the waiting user interactions of the workflow by making a GET request at the endpoint for the user interaction objects of the Catalog service:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction?status=0
  2. Locate the user interaction inventory object for the Interactive Hello World workflow and make a GET request at its URL:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/
  3. Make a GET request at the URL of the user interaction instance:

    GET https://localhost:8281/vco/api/catalog/System/UserInteraction/888080808080808080808080808080805A8080800132145338690643f66a027ec/interaction/
  4. Make a GET request at the URL of the user interaction presentation:

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

    The presentation defines the input parameter as mandatory, and contains a constraint for the length of the string that you can pass.

  5. Make a POST request at the URL that holds the instances of the user interaction presentation:

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

    Provide a value for the input parameter in the request body:

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

    The execution element of the response body contains a valid="true" attribute, indicating that the input parameter value is valid against the constraints in the user interaction presentation. The valid value is listed in the output-parameters element:

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

  6. Make a POST request at the URL of the user interaction instance by passing the same request body as in the POST request in step 5.

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