Orchestrator

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

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

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

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

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

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

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

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

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

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

      {{$.path.to.value}}

      При этом результат для circle-blue.svgFetch access tokens будет:

      { "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. Нажмите Сохранить.

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

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

    1. На вкладке Actions в окне Workflow blocks найдите phrase-jq.

      Перетащите блок действия circle-blue.svgTransform JSON with jq под действие language-blue.svglist locales, чтобы соединить их.

    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. Нажмите Сохранить.

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

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

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

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

      Введите выражение {{$.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. Эти условия оцениваются во время выполнения, и действие вместе с дочерними элементами будет выполнено только в том случае, если условие оценивается как true.

    Чтобы отразить это в примере, при выбранном действии 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(Выбрать(.name == \"es-ES\"))|.[0] и свяжите с действием language-blue.svgсписок языковых стандартов.

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

    3. Во втором действии введите выражение map(Выбрать(.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.