La présentation d'un workflow peut définir des contraintes concernant les valeurs que vous pouvez transmettre aux paramètres d'entrée. Il peut par exemple s'agir d'une liste ou d'une gamme de valeurs. Pour assurer la réussite de l'exécution d'un workflow, vous devez valider les valeurs que vous transmettez aux paramètres d'entrée de ce workflow en vous référant à la définition de sa présentation.

Lorsque vous intégrez des workflows dans des applications personnalisées, il est parfois nécessaire de créer un assistant dans lequel vous saisissez les valeurs des paramètres d'entrée du workflow pendant son exécution. Grâce au service Présentation du workflow, vous pouvez instancier la présentation d'un workflow et transmettre les valeurs de ses paramètres d'entrée dans les parties qui correspondent aux différents écrans de l'assistant. Vous pouvez valider les valeurs transmises aux paramètres d'entrée en fonction des contraintes définies dans la présentation du workflow.

Conditions préalables

Vérifiez que vous avez importé le modèle de paquet de workflows dans Orchestrator. Ce paquet est inclus dans le modèle de fichier ZIP Orchestrator que vous pouvez télécharger depuis la page de la documentation Orchestrator.

Procédure

  1. Récupérez la définition du workflow que vous souhaitez exécuter en soumettant une demande GET au niveau de l'URL de la définition de ce workflow :
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/

    Vous obtenez la définition du workflow dans la réponse à la demande. La définition du workflow vous permet de consulter les paramètres d'entrée et la définition du workflow, ainsi que d'autres informations.

  2. Récupérez la définition de la présentation du workflow en soumettant une demande GET au niveau sont URL :
    GET https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/presentation/
  3. Dans la réponse à la demande, consultez la définition de la présentation du workflow pour vérifier les contraintes concernant les valeurs que vous pouvez transmettre aux paramètres d'entrée.

    Par exemple, un paramètre d'entrée peut présenter une liste prédéfinie de valeurs à sélectionner.

  4. Instanciez la présentation du workflow en soumettant une demande POST au niveau de l'URL des instances de présentation :
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/presentation/instances/
  5. Indiquez un élément execution-context dans le corps de la demande pour instancier la présentation.

    Vous pouvez transposer un execution-context vide ou un execution-context avec les valeurs de certains paramètres d'entrée uniquement.

  6. Pour transposer des valeurs aux paramètres d'entrée en plusieurs parties, soumettez autant de demandes POST ou PUT que vous le souhaitez au niveau de l'URL qui comporte l'instance de présentation :
    PUT https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/presentation/instances/{executionID}/
  7. Vérifiez la réponse à la demande POST ou PUT que vous avez soumise.

    Si les valeurs que vous avez transmises dans les paramètres d'entrée sont valides, vous obtenez un attribut valid="true" dans la balise execution. Si la présentation est valide, vous pouvez prendre les valeurs qui sont répertoriées dans l'élément out-parameters de la réponse et les transmettre en tant que valeurs aux paramètres d'entrée lorsque vous exécutez le workflow.

  8. Si les valeurs des paramètres d'entrée sont valides, exécutez le workflow en soumettant une demande POST au niveau de l'URL qui comporte les exécutions du workflow :
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/
  9. Fournissez les valeurs valides aux paramètres d'entrée du workflow dans un élément execution-context.

Exécuter le workflow Send Hello en validant ses paramètres d'entrée

Vous pouvez exécuter le workflow Send Hello en validant ses paramètres d'entrée en fonction des définitions de sa présentation.

  1. Soumettez une demande GET au niveau de l'URL qui comporte la définition du workflow Send Hello :

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

    Vous obtenez la définition du workflow dans la réponse à la demande :

    <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. Soumettez une demande GET au niveau de l'URL qui comporte la définition de la présentation du workflow :

    GET https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/presentation/
  3. Soumettez une demande POST au niveau de l'URL qui comporte les instances d'exécution de la présentation du workflow :

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

    Indiquez un execution-context vide afin d’instancier la présentation sans fournir aucune valeur pour les paramètres d'entrée :

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

    La réponse contient des messages d'erreur associés à chaque champ indiquant que les valeurs des paramètres d'entrée ne sont pas valides.

    .......
    <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. Soumettez une demande POST au niveau de l'URL qui comporte l'instance spécifique de la présentation :

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

    Dans le corps de la demande, indiquez les valeurs des paramètres d'entrée :

    <?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>

    Dans le corps de la réponse à la demande, vous pouvez vérifier la validité des valeurs des paramètres d'entrée :

    <execution started-by="vcoadmin" .... valid="true".....>
  5. Si la présentation est valide, exécutez le workflow en effectuant une demande POST au niveau de l'URL qui comporte les exécutions du workflow :

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

    Dans la demande, transposez les valeurs aux paramètres d'entrée du workflow. Utilisez les mêmes valeurs que celles retournées pour les paramètres de sortie de la présentation de workflow ou utilisez directement le corps de la dernière demande POST que vous avez effectuée dans la présentation de workflow.