Перейти к основному содержимому

Параллельная подготовка заказа

После проверки корзины несколько операций можно выполнять независимо. В этом уроке параллельно зарезервируем товары и рассчитаем условия доставки.

Две независимые ветви внутри параллельного блока.

Когда нужен параллельный блок​

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

Загрузка изображения...
Готовая стартовая пара становится точкой входа в следующий этап сценария

Добавьте новый шаг и выберите Параллельное выполнение. Введите описание, которое объясняет общий смысл сгруппированных действий.

Загрузка изображения...
Описание блока объединяет независимые действия одного этапа

После сохранения в списке появляется пустой блок. Кнопка + внутри него добавляет шаги именно в эту вложенную последовательность, а не в основной поток.

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

Первая ветвь​

В первой ветви Order management subsystem обращается к Inventory management system. Создайте команду Резервирует товары, выберите инициатора и целевую систему. Связь Взаимодействует через REST API подставится автоматически.

На структурной диаграмме связь намеренно остаётся обобщённой: она показывает устойчивую архитектурную зависимость. Конкретное действие Резервирует товары относится к сценарию и поэтому задаётся на уровне потока данных. Стрелка идёт от подсистемы заказа к системе запасов, потому что инициатор знает о своей зависимости; обратный ответ в потоке не создаёт обратную структурную связь.

Загрузка изображения...
Первая вложенная команда резервирует товары через обобщённую REST-связь

Добавьте ответ на эту команду. На диаграмме появится обратное направление, а в списке блока будет видна законченная пара действий.

Загрузка изображения...
Ответ подтверждает резервирование товаров

Вторая ветвь​

По той же схеме создайте команду Рассчитывает доставку от Order management subsystem к Delivery management system и связанный ответ Параметры доставки получены. Повторяющиеся действия удобно выполнять горячими клавишами: 1 выбирает взаимодействие, 2 команду, 3 ответ, а Ctrl+Enter или ⌘ + Enter сохраняет форму.

Загрузка изображения...
Вторая вложенная команда передаёт параметры для расчёта доставки

Готовый блок содержит две независимые пары. Они относятся к одному этапу потока, но не задают порядок выполнения между собой.

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

Проверка проигрыванием​

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

Загрузка изображения...
Текущая команда выделяется на диаграмме и в списке вложенных шагов

Продолжите проигрывание, чтобы проверить вторую ветвь и направление её ответа.

Загрузка изображения...
Вторая пара возвращает рассчитанные параметры доставки

Таймкоды​

  • 00:00 - параллельная обработка;
  • 00:05 - добавление шага;
  • 00:07 - выбор типа блока;
  • 00:15 - пустой параллельный блок;
  • 00:19 - первая ветвь;
  • 00:53 - ответ первой ветви;
  • 01:09 - первая ветвь готова;
  • 01:12 - ускорение повторяющихся действий;
  • 01:16 - вторая ветвь;
  • 01:44 - ответ второй ветви;
  • 02:05 - заполненный блок;
  • 02:11 - меню потока;
  • 02:22 - запуск сценария;
  • 02:27 - проигрывание первой ветви;
  • 02:32 - проигрывание второй ветви;
  • 02:36 - остановка;
  • 02:41 - результат урока.

Предыдущий урок: Первые шаги потока данных.

Следующий урок: Внутренние действия и альтернативные исходы.