Orchestrator

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

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

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

Чтобы перейти к настройке блока, нажмите «Изменить параметры» на вкладке «Настройка» или щелкните блок правой кнопкой мыши и выберите «Изменить параметры». Откроется окно «Изменить параметры». Когда у блока появляются параметры, кнопка «Добавить параметры» меняется на «Изменить параметры».

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

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

  2. Для полей «Токен доступа» и «Проект» нужны динамические значения, которые определяются во время выполнения.

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

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

    2. Для доступа к свойствам триггера или действия, на которые указывает ссылка, используется следующий синтаксис:

      {{$.path.to.value}}

      Если вывод действия circle-blue.svg«Получить токены доступа» выглядит так:

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

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

    3. Нажмите значок связи Значок связи рядом с полем «Проект» и выберите триггер history-orange.svg«uploads:create».

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

    4. Вывод триггера history-orange.svg«uploads:create» выглядит примерно так:

      {
        "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"
        }
      }
      

      Для поля «Проект» потребуется выражение {{$.project.id}}.

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

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

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

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

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

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

    3. В раскрывающемся списке «Тип ввода» выберите «JSON».

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

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

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

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

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

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

    7. Нужен фильтр, который возвращает список локалей со значением свойства default, равным true.

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

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

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

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

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

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

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

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

    2. Нажмите значок связи Значок связи рядом с полем «Проект» и выберите триггер language-orange.svg«uploads:create».

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

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

    3. Нажмите значок ссылки Linking Icon для поля «Source locale» и выберите действие «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«Create a job» и нажмите «Edit conditions» на вкладке «Conditions» или щёлкните правой кнопкой мыши по блоку и выберите «Edit conditions».

    Открывается окно «Edit conditionals».

    1. По аналогии с предыдущими блоками свяжите поле «variable» с триггером language-orange.svg«uploads:create» и введите выражение {{$.upload.tag}}.

    2. В первом раскрывающемся списке выберите «NOT», чтобы изменить результат проверки условия на противоположный.

    3. В раскрывающемся списке «compare» выберите «IsNull».

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

      Условие отображается на вкладке «Conditions».

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

  6. Теперь для задания требуются целевые локали. В этом примере будут созданы две локали: для испанского (es-ES) и немецкого (de-DE). Как и на шаге 3, локали добавляются в окне «Edit parameters» для двух действий circle-blue.svg«Transform JSON with jq».

    1. В поле «Input» обоих действий введите выражение {{@.outputs.result}}, свяжите его с действием language-blue.svg«List locales» и сохраните параметр.

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

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

    3. Во втором действии введите выражение map(select(.name == "de-DE"))|.[0] и свяжите его с действием language-blue.svg«List locales».

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

  7. Теперь локали будут применяться при создании задания.

    Настройте два действия work-blue.svg«Add a target locale to a job» по той же схеме, что и ранее.

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

    Настройте действие work-blue.svg«Start a job» по той же схеме, что и ранее.

Запуск рабочего процесса по требованию

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

Запустите выполнение одним из следующих способов:

  • В редакторе рабочих процессов нажмите кнопку «Run», чтобы открыть диалоговое окно «Run».

  • Отправьте запрос POST на адрес /orchestrator/api/v1/workflows/{workflow_id}/executions в общедоступном API.

При запуске всегда используется последняя версия рабочего процесса. Версия не обязательно должна быть опубликована, но она должна пройти проверку для публикации. При каждом запуске создаётся новое выполнение рабочего процесса, которое отображается на странице «Executions» с тегом «Manual».

Примечание

Запуск по требованию доступен только для рабочих процессов, использующих механизм выполнения нового поколения. Для устаревших рабочих процессов кнопка «Run» не отображается в редакторе, а API возвращает ошибку 422.

Пакеты действий и шаблоны запускать нельзя; кроме того, у рабочего процесса должен быть владелец.

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

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.