Orchestrator

Настроить рабочий процесс

Контент автоматически переведен с английского языка с помощью Phrase Language AI.

Чтобы продолжить с примером рабочего процесса, его необходимо настроить.

Конфигурацию блока можно получить, либо нажав Редактировать параметры на вкладке Настроить, либо щелкнув правой кнопкой мыши на блоке и выбрав Редактировать параметры, чтобы открыть окно Редактировать параметры. Как только у блока есть параметры, кнопка Добавить параметры переключается на Редактировать параметры.

Чтобы настроить блоки для примера, выполните следующие шаги:

  1. Откройте окно Редактировать параметры для действия language-blue.svgСписок локалей.

  2. Поля Токен доступа и Проект потребуют динамических значений, которые разрешаются во время выполнения.

    1. Нажмите на значок ссылки Linking Icon для поля Токен доступа и выберите действие circle-blue.svgПолучить токены доступа.

      Значок ссылки становится зеленым, и поле можно редактировать.

    2. Синтаксис для доступа к свойствам ссылочного триггера или действия выглядит так:

      {{$.path.to.value}}

      С выводом для circle-blue.svgПолучить токены доступа следующим образом:

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

      что делает выражение обязательным для поля Токен доступа {{$.tokens.strings_token}}.

    3. Нажмите на значок ссылки Linking Icon для поля Проект и выберите триггер history-orange.svguploads:create.

      Значок ссылки становится зеленым, и поле можно редактировать.

    4. Вывод триггера history-orange.svguploads:create выглядит следующим образом:

      {
        "ветвь": {
          "имя": "my_branch"
        },
        "событие": "uploads:create",
        "сообщение": "user-1 инициализировал загрузку файла file.yml в проекте name_1672734591_11 в ветви my_branch\n",
        "проект": {
          "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": "Джо Сикспак",
          "username": "user-1"
        }
      }
      

      создание выражения, необходимого для поля Проект {{$.project.id}}.

    5. Нажмите Сохранить.

      Окно Редактировать параметры закрывается, и параметры действия сохраняются.

  3. Необходим языковой стандарт проекта по умолчанию для создания задания, передав идентификатор в действие work-blue.svgСоздать задание. Действие circle-blue.svgПреобразовать JSON с помощью jq принимает входные данные в формате JSON, применяет указанный фильтр и затем снова выводит JSON.

    1. На вкладке Действия в окне Блоки рабочего процесса найдите фраза-jq.

      Перетащите блок действия circle-blue.svgПреобразовать JSON с помощью jq ниже действия language-blue.svgсписок языковых стандартов, чтобы соединить их.

    2. Откройте окно Редактировать параметры для действия Преобразовать JSON с помощью jq.

    3. Выберите JSON из выпадающего поля Тип входных данных.

    4. Нажмите на значок ссылки Linking Icon для поля Входные данные и выберите действие language-blue.svgсписок языковых стандартов.

      Значок ссылки становится зеленым, и поле можно редактировать.

    5. Поле Входные данные принимает входные данные в формате JSON. Специальное фиксированное выражение (@ вместо $) гарантирует, что весь вывод ссылочного действия будет передан в поле.

      Введите выражение {{@.outputs.result}} в поле Входные данные.

    6. Нажмите на значок ссылки Linking Icon для поля Jq и выберите действие language-blue.svgсписок языковых стандартов.

      Значок ссылки становится зеленым, и поле можно редактировать.

    7. Фильтр списка языковых стандартов, который возвращает новый список, содержащий все элементы, где свойство по умолчанию равно true, требуется.

      В проекте может быть только один языковой стандарт по умолчанию, и в списке есть один идентифицируемый и обязательный элемент. Этот элемент доступен напрямую с помощью синтаксиса массива .[0].

      Введите выражение map(select(.default))|.[0] в поле Jq.

    8. Нажмите Сохранить.

      Окно Редактировать параметры закрывается, и параметры действия сохраняются.

  4. Теперь действие work-blue.svgСоздать задание можно настроить, и оно будет использовать шаблоны из предыдущих блоков.

    1. Нажмите на значок ссылки Linking Icon для поля Токен доступа и выберите действие circle-blue.svgПолучить токены доступа.

      Значок ссылки становится зеленым, и поле можно редактировать.

      Введите выражение {{$.tokens.strings_token}}.

    2. Нажмите на значок ссылки Linking Icon для поля Проект и выберите триггер language-orange.svguploads:create.

      Значок ссылки становится зеленым, и поле можно редактировать.

      Введите выражение {{$.project.id}}.

    3. Нажмите на значок ссылки Linking Icon для поля Исходный языковой стандарт и выберите действие Преобразовать JSON с помощью jq.

      Значок ссылки становится зеленым, и поле можно редактировать.

      Введите выражение {{@.outputs.result}}.

    4. Срок выполнения может быть рассчитан с помощью функций sprig или Expr, но для целей этого примера будет использована жестко закодированная дата, понятная API.

      В поле Срок выполнения введите 2023-12-31T12:00:00Z.

    5. Нажмите Сохранить.

      Конфигурация сохранена, и детали можно просмотреть на вкладке Настроить.

  5. Каждое действие может иметь одно или несколько условий, объединенных логическими И и ИЛИ. Эти условия оцениваются во время выполнения, и действие и его дочерние элементы будут выполняться только в том случае, если условие истинно.

    Чтобы отразить это в примере, выбрав действие work-blue.svgСоздать задание, нажмите Редактировать условия на вкладке Условия или щелкните правой кнопкой мыши на блоке и выберите Редактировать условия.

    Открывается окно Редактировать условия.

    1. Следуя шаблонам из предыдущих блоков, свяжите поле переменная с триггером language-orange.svgзагрузки:создать и введите выражение {{$.upload.tag}}.

    2. Выберите НЕ из первого выпадающего списка, чтобы инвертировать утверждение.

    3. Выберите ЯвляетсяNull из выпадающего списка сравнить.

    4. Нажмите Сохранить.

      Условие представлено на вкладке Условия.

    Рабочий процесс остановится на этом этапе, если загрузка не содержит тег (что означает, что не было новых/обновленных ключей/переводов).

  6. Целевые языковые стандарты теперь обязательны для задания. Для целей примера будут созданы два языковых стандарта; один для испанского (es-ES) и один для немецкого (de-DE). Языковые стандарты будут добавлены к двум действиям circle-blue.svgПреобразовать JSON с помощью jq в окне Редактировать параметры как в шаге 3.

    1. В поле Ввод обоих действий введите выражение {{@.outputs.result}}, свяжите с действием language-blue.svgСписок языковых стандартов и сохраните параметр.

    2. В поле Jg одного действия введите выражение map(select(.name == "es-ES"))|.[0] и свяжите с действием language-blue.svgСписок языковых стандартов.

      Сохраните параметр.

    3. Во втором действии введите выражение map(select(.name == "de-DE"))|.[0] и свяжите с действием language-blue.svgСписок языковых стандартов.

      Сохраните параметр.

  7. Языковые стандарты теперь будут применены к созданию задания.

    Настройте два действия work-blue.svgДобавить целевой языковой стандарт к заданию с теми же шаблонами, что и ранее определенные.

  8. Теперь задание можно запустить.

    Настройте действие work-blue.svgНачать задание с теми же шаблонами, что и ранее определенные.

Была ли эта статья полезной?

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.