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 выглядит следующим образом:

      {
        "branch": {
          \"name\": \"my_branch\"
        },
        \"event\": \"uploads:create\","
        \"message\": \"пользователь-1 инициировал загрузку файла file.yml в проект name_1672734591_11 в ветви my_branch\\n\","
        "project": {
          \"created_at\": \"2023-01-03 08:29:51 UTC\",",translation_2:
          \"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"
        },
        "загрузить": {
          "created_at": "2023-01-03 08:29:48 UTC",
          "filename": "file.yml",
          "формат": "yml",
          "Идентификатор": "upload-1",
          "state": "initialized",
          "summary": {},
          "тег": null,
          "updated_at": "2023-01-03 08:29:48 UTC"
        },
        "user": {
          "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94",
          "id": "9c365b9a6f77c247c3de959f6152b231",
          "name": "Joe Sixpack",
          "username": "user-1"
        }
      }
      

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

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

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

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

    1. На вкладке Actions в окне Рабочий процесс блоки найдите phrase-jq.

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

    2. Откройте окно редактировать параметры для действия Transform JSON with jq.

    3. Выбрать JSON из раскрывающегося списка Input Type.

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

      Ссылка станет зеленой, и поле можно будет редактировать.

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

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

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

      Ссылка станет зеленой, и поле можно будет редактировать.

    7. Требуется фильтровать список языковой стандарт, который возвращает новый список, содержащий все элементы, где свойства default равно 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 для поля оригинал языковой стандарт и выберите действие Transform JSON with jq.

      Ссылка станет зеленой, и поле можно будет редактировать.

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

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

      В поле Due date введите 2023-12-31T12:00:00Z.

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

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

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

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

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

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

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

    3. Выбрать IsNull из раскрывающегося список Сравнить.

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

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

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

  6. Теперь для задание требуются языковой стандарт перевод. Для целей этого примера будут созданы два языковой стандарт; один для испанского (es-ES) и один для немецкого (de-DE). Языковые стандарты будут добавлены к двум действиям circle-blue.svgTransform JSON with jq в окне редактировать параметры, как на этап 3.

    1. В поле Input обоих действий введите выражение {{@.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.