Orchestrator

Configurer un workflow

Le contenu est traduit de l’anglais par Phrase Language AI.

Pour continuer avec l'exemple de workflow, vous devez le configurer.

Vous pouvez accéder à la configuration du bloc en cliquant sur Edit parameters dans l'onglet Configure, ou en faisant un clic droit sur le bloc et en sélectionnant Edit parameters pour ouvrir la fenêtre Edit parameters. Une fois qu'un bloc possède des paramètres, le bouton Add parameters devient Edit parameters.

Pour configurer les blocs de l'exemple, suivez ces étapes :

  1. Ouvrez la fenêtre Edit parameters pour l'action language-blue.svgList locales.

  2. Les champs Access token et Project nécessiteront des valeurs dynamiques qui sont résolues au moment de l'exécution.

    1. Cliquez sur l'icône de lien Linking Icon pour le champ Access token et sélectionnez l'action circle-blue.svgFetch access tokens.

      Le lien devient vert et le champ peut être modifié.

    2. La syntaxe permettant d'accéder aux propriétés d'un déclencheur ou d'une action faisant l'objet d'une référence est la suivante :

      {{$.path.to.value}}

      La sortie de circle-blue.svgFetch access tokens est la suivante :

      { "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }

      l'expression requise pour le champ Access token est donc {{$.tokens.strings_token}}.

    3. Cliquez sur l'icône de lien Linking Icon pour le champ Project et sélectionnez le déclencheur history-orange.svguploads:create.

      Le lien devient vert et le champ peut être modifié.

    4. La sortie du déclencheur history-orange.svguploads:create se présente comme suit :

      {
        "branch": {
          "name": "my_branch"
        },
        "event": "uploads:create",
        "message": "user-1 initialized file upload file.yml in project name_1672734591_11 within branch my_branch\n",
        "project": {
          "created_at": "2023-01-03 08:29:51 UTC",
          "id": "abcdabcdabcdabcd-11",
          "main_format": "yml",
          "name": "name_1672734591_10",
          "point_of_contact": null,
          "project_image_url": null,
          "slug": "name_1672734591_10",
          "updated_at": "2023-01-03 08:29:51 UTC"
        },
        "upload": {
          "created_at": "2023-01-03 08:29:48 UTC",
          "filename": "file.yml",
          "format": "yml",
          "id": "upload-1",
          "state": "initialized",
          "summary": {},
          "tag": null,
          "updated_at": "2023-01-03 08:29:48 UTC"
        },
        "user": {
          "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94",
          "id": "9c365b9a6f77c247c3de959f6152b231",
          "name": "Joe Sixpack",
          "username": "user-1"
        }
      }
      

      L'expression requise pour le champ Project est donc {{$.project.id}}.

    5. Cliquez sur Enregistrer.

      La fenêtre Edit parameters se ferme et les paramètres de l'action sont enregistrés

  3. Pour créer une tâche, il faut transmettre l'ID des paramètres régionaux par défaut du projet à l'action work-blue.svgCreate Job. L'action circle-blue.svgTransform JSON with jq reçoit des données JSON, applique le filtre indiqué, puis produit une sortie au format JSON

    1. Dans l'onglet Actions de la fenêtre Workflow blocks, recherchez phrase-jq.

      Faites glisser le bloc d'action circle-blue.svgTransform JSON with jq sous l'action language-blue.svglist locales et déposez-le pour les connecter.

    2. Ouvrez la fenêtre Edit parameters pour l'action Transform JSON with jq.

    3. Sélectionnez JSON dans la liste déroulante Input Type.

    4. Cliquez sur l'icône de lien Linking Icon pour le champ Input et sélectionnez l'action language-blue.svglist locales.

      Le lien devient vert et le champ peut être modifié.

    5. Le champ Input reçoit les données JSON en entrée. Une expression fixe spéciale (@ au lieu de $) garantit que la totalité de la sortie de l'action référencée est transmise dans le champ.

      Saisissez l'expression {{@.outputs.result}} dans le champ Input.

    6. Cliquez sur l'icône de lien Linking Icon pour le champ Jq et sélectionnez l'action language-blue.svglist locales.

      Le lien devient vert et le champ peut être modifié.

    7. Un filtre de la liste des paramètres régionaux qui renvoie une nouvelle liste contenant tous les éléments où la propriété default est true est requis.

      Il ne peut y avoir qu'un seul paramètre régional par défaut par projet et la liste contient un élément identifiable et requis. On accède directement à cet élément avec la syntaxe de tableau .[0].

      Saisissez l'expression map(select(.default))|.[0] dans le champ Jq.

    8. Cliquez sur Enregistrer.

      La fenêtre Edit parameters se ferme et les paramètres de l'action sont enregistrés

  4. L'action work-blue.svgCreate a job peut maintenant être configurée en suivant les mêmes principes que pour les blocs précédents.

    1. Cliquez sur l'icône de lien Linking Icon pour le champ Access token et sélectionnez l'action circle-blue.svgFetch access tokens.

      Le lien devient vert et le champ peut être modifié.

      Saisissez l'expression {{$.tokens.strings_token}}.

    2. Cliquez sur l'icône de lien Linking Icon pour le champ Project et sélectionnez le déclencheur language-orange.svguploads:create.

      Le lien devient vert et le champ peut être modifié.

      Saisissez l'expression {{$.project.id}}.

    3. Cliquez sur l'icône de lien Linking Icon pour le champ Source locale et sélectionnez l'action Transform JSON with jq.

      Le lien devient vert et le champ peut être modifié.

      Saisissez l'expression {{@.outputs.result}}.

    4. La date d'échéance peut être calculée à l'aide de fonctions sprig ou Expr, mais cet exemple utilise une date fixe reconnue par l'API.

      Dans le champ Due date, saisissez 2023-12-31T12:00:00Z.

    5. Cliquez sur Enregistrer.

      La configuration est enregistrée et les détails peuvent être consultés dans l'onglet Configure.

  5. Chaque action peut avoir une ou plusieurs conditions combinées à l'aide des opérateurs logiques AND et OR. Ces conditions sont évaluées lors de l'exécution, et l'action ainsi que ses actions enfants ne s'exécuteront que si la condition est remplie.

    Pour refléter cela dans l'exemple, une fois l'action work-blue.svgCreate a job sélectionnée, cliquez sur Edit conditions dans l'onglet Conditions ou faites un clic droit sur le bloc et sélectionnez Edit conditions.

    La fenêtre Edit conditionals s'ouvre.

    1. Comme pour les blocs précédents, liez le champ variable au déclencheur language-orange.svguploads:create et saisissez l'expression {{$.upload.tag}}.

    2. Sélectionnez NOT dans la première liste déroulante pour inverser la condition.

    3. Sélectionnez IsNull dans la liste déroulante compare.

    4. Cliquez sur Enregistrer.

      La condition s'affiche dans l'onglet Conditions.

    Le flux de travail s'arrêtera à ce stade si le téléversement ne contient pas de balise (ce qui signifie qu'il n'y avait pas de nouvelles clés ou traductions, ni de clés ou traductions mises à jour).

  6. Les paramètres régionaux cibles sont désormais requis pour le travail. Aux fins de cet exemple, deux paramètres régionaux seront créés : un pour l'espagnol (es-ES) et un pour l'allemand (de-DE). Les paramètres régionaux seront ajoutés aux deux actions circle-blue.svgTransform JSON with jq dans la fenêtre Edit parameters comme à l'étape 3.

    1. Dans le champ Input des deux actions, saisissez l'expression {{@.outputs.result}}, créez un lien vers l'action language-blue.svgList locales et enregistrez le paramètre.

    2. Dans le champ Jg d'une action, saisissez l'expression map(select(.name == "es-ES"))|.[0] et créez un lien vers l'action language-blue.svgList locales.

      Enregistrez le paramètre.

    3. Dans la deuxième action, saisissez l'expression map(select(.name == "de-DE"))|.[0] et créez un lien vers l'action language-blue.svgList locales.

      Enregistrez le paramètre.

  7. Les paramètres régionaux seront désormais utilisés lors de la création de la tâche.

    Configurez les deux actions work-blue.svgAdd a target locale to a job selon la même méthode que précédemment.

  8. La tâche peut maintenant être démarrée.

    Configurez l'action work-blue.svgStart a job selon la même méthode que précédemment.

Exécution d'un workflow à la demande

Une fois les blocs configurés, vous pouvez exécuter le workflow à la demande pour le tester, sans attendre qu'il soit déclenché par une planification ou un webhook.

Démarrez une exécution de l'une des manières suivantes :

  • Dans l'éditeur de workflow, utilisez le bouton Run pour ouvrir la boîte de dialogue Run.

  • Envoyez une requête POST vers /orchestrator/api/v1/workflows/{workflow_id}/executions dans l'API publique.

Une exécution utilise toujours la dernière révision du workflow. La révision n'a pas besoin d'être publiée, mais elle doit passer la validation requise pour la publication. Chaque lancement crée une nouvelle exécution, répertoriée sur la page Executions avec l'étiquette Manual.

Remarque

Les exécutions à la demande ne sont disponibles que pour les workflows utilisant le moteur de workflow de nouvelle génération. Pour les workflows d'ancienne génération, le bouton Run ne s'affiche pas dans l'éditeur et l'API renvoie une erreur 422.

Les ensembles d'actions et les modèles ne peuvent pas être exécutés, et le workflow doit avoir un propriétaire.

Cet article vous a-t-il été utile ?
★ ★ ★ ★ ★

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.