Поиск и создание потоков выполнения

Перечень стандартных потоков выполнения включен в официальный комплект поставки Юниверс MDM и отображается в левой части раздела "Потоки выполнения" (Рисунок 1).

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

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

Пример отображения раздела "Потоки выполнения" и выбранного потока

Рисунок 1 - Пример отображения раздела "Потоки выполнения" и выбранного потока

Создание потока выполнения

Чтобы создать поток выполнения:

  1. Перейдите в раздел "Потоки выполнения", если это не сделано ранее.

  2. Нажмите кнопку image1 "Создать", расположенную в нижней части списка потоков выполнения (Рисунок 1).

  3. В результате откроется список стартовых сегментов, из которых нужно выбрать один.

    • Обязательно. Если сегмент не был выбран сразу, то задайте сегмент в области Start: нажмите кнопку "Выбрать сегмент" и выберите сегмент из списка.

  4. Введите имя объекта в поле "Объект", расположенное над блоком стартовых сегментов.

  5. Задайте сегмент типа Point, в котором будет выполняться основная логика потока. Для этого нажмите кнопку "Добавить сегмент", расположенную под областью "Start" и выберите требуемый сегмент.

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

    • Наличие сегментов Point и Connector зависит от выбранного стартового сегмента.

    • Сегментов типа Point и Connector может быть несколько.

    • Доступна настройка порядка запуска таких сегментов.

  7. При необходимости задайте сегмент, который будет обрабатывать ошибку выполнения потока. Для этого в области Fallback нажмите кнопку "Выбрать сегмент" и выберите требуемый сегмент из списка.

    • Наличие такого сегмента зависит от выбранного стартового сегмента.

  8. Обязательно. Задайте сегмент, которым будет завершаться поток выполнения. В области Finish нажмите "Выбрать сегмент" и выберите требуемый сегмент из списка.

  9. Нажмите кнопку image2 "Сохранить", расположенную в правом верхнем углу экрана.

Примечания:

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

Пример: поток без subjectId - [RECORD_UPSERT_START], с subjectId - [RECORD_UPSERT_START]${reindex-records-worker-pipeline}.

В коде можно заранее указать subjectId и получить поток выполнения по id + subjectId, а затем выполнить какое-то действие в этом потоке.

Если действие запрашивается по id потока выполнения, то стартовый сегмент сначала вычисляет subjectId по вводным данным.

  • Если в системе существует поток с полученным subjectId и указанным id, то используется он.

  • Если такого потока нет - то используется поток с пустым subjectId.

Например, сегмент RECORD_UPSERT_START вычисляет subjectId по имени реестра/справочника записи, которая вставляется. Таким образом для каждого реестра можно настроить свой поток выполнения.

Редактирование потока выполнения

Чтобы отредактировать поток выполнения:

  1. Выберите необходимый поток выполнения из списка существующих.

  2. Измените или удалите требуемые сегменты потока.

  3. Нажмите кнопку image2 "Сохранить", расположенную в правом верхнем углу экрана.

Чтобы удалить поток выполнения:

  1. Нажмите кнопку image3 "Удалить", расположенную в правом верхнем углу экрана.

  2. Подтвердите или отмените удаление.

Типы сегментов потока выполнения

  • Start. Сегмент, с которого будет начинаться поток выполнения. Все последующие сегменты потока предлагаются контекстно, в зависимости от выбранного стартового сегмента.

  • Point. Сегмент выполнения основной логики потока. Поток выполнения может содержать сразу несколько сегментов Point. Порядок запуска сегментов зависит от порядка их расположения.

  • Connector. Сегмент подключения новых потоков выполнения. Используется в случае, если в работе одного потока необходимо задействовать другой поток (например, в потоке получения записей использовать поток получения связей).

  • Selector. Сегмент ветвления стандартного потока на несколько других.

  • Fallback. Сегмент обработки ошибки выполнения потока. Запускается в случае, если основная логика потока (Start, Point и Connector) завершилась с ошибкой.

  • Finish. Сегмент, которым будет завершаться поток выполнения.