Отвлечемся от исходной задачи и рассмотрим паттерн «групповая обработка» на более простом примере –
Рис. 4. Групповая обработка
Комментарии к схеме:
- Заказы поступают от клиентов асинхронно и помещаются в базу данных со статусом «Ожидание»
- Процесс перевозки, стартующий каждое утро, собирает все заказы с этим статусом, выполняет перевозку и по завершению переводит все обработанные заказы в статус «Выполнено»
- По изменению статуса срабатывает событие-условие в клиентском процессе, после чего он переходит к расчетам по заказу и благополучно завершается.
Это был простейший вариант групповой обработки. При желании его можно усложнить, например, осуществлять перевозку раздельно по регионам получателей –
Рис. 5. Групповая обработка с циклом по объектам
К сожалению, моделер не может изобразить поток данных из задачи смены статуса внутри развернутого подпроцесса перевозки, поэтому стрелка к хранилищу данных идет от подпроцесса в целом.

