Как работают блок задач и блок задержки в бизнес-процессах

В статье разобраны типовые ошибки, приводящие к дублированию задач или их не созданию в бизнес-процессах. Объяснены причины и даны рекомендации по правильной настройке блоков задач, задержек и вложенных процессов.

В конструкторе бизнес-процессов нашего приложения часто используются блоки задач и задержки. Правильная комбинация этих элементов позволяет строить чёткие, управляемые сценарии. Но если использовать их неосмотрительно — можно столкнуться с дублированием задач или не созданием задач.

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

Представим типичную ситуацию:

  • Есть две задачи: Задача 1 и Задача 2.

  • После их завершения должны быть созданы: Задача 11 и Задача 22.

  • Между ними стоит задержка.



Такой сценарий встречается часто. Можно предположить, что  как только обе задачи завершатся с произведенным результатом, после задержки создадутся следующие.
Но на деле:

  • Завершилась Задача 1 → стрелка в задержку → задержка сработала → блок задач создал Задачи 11 и 22.

  • Завершилась Задача 2 → всё повторяется → блок задач снова создал Задачи 11 и 22.

Итог: каждая следующая задача создаётся дважды.

Почему так происходит?

  • Блок задержки не объединяет потоки. Он срабатывает каждый раз независимо, на каждую входящую стрелку.

  • Блок задач, стоящий после задержки, отрабатывает на каждое её срабатывание — и каждый раз создаёт одни и те же задачи заново.


Как избежать дублирования задач 

Чтобы задачи 11 и 22 создавались только один раз после завершения обеих предыдущих:

  • Не ставьте задержку между группами задач.

  • Проведите стрелки напрямую от Задачи 1 и Задачи 2 в блоки задач.

  • Блоки задач будут ждать обе стрелки, и сработают только когда обе задачи завершатся.

На схеме: задача 11 создастся только после произведенного результата в задачах 1 и 2, задача 22 также создастся только после произведенного результата в задачах 1 и 2.


Задачи могут не создаваться, если входящие стрелки не выполняются

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

  • В блок задач ведёт несколько стрелок, и не все условия выполнения стрелок выполняются к моменту их активации. Например, вторая стрелка может быть невыполнима на момент создания задач (например, если не выполнены какие-то предшествующие условия или задачи).

❗ Задержка после блока задач не задерживает создание задач, потому что они создаются в момент активации блока. Она может применяться только к следующим действиям, но не к созданию задач.


Рекомендация: используйте вложенные процессы

Чтобы упростить схему и уменьшить количество связей:

  • Объедините логически связанные шаги в вложенные процессы

    • Например, Задача 1 и Задача 2 → в один процесс

    • Задача 11 и 22 → в другой процесс

  • В итоговом процессе свяжите их одной стрелкой: процесс → процесс

  • Это минимизирует ошибки, упростит визуальную логику и облегчит поддержку

Вывод

  • Задержка срабатывает на каждое входящее событие отдельно.

  • Блок задач ждёт все входящие стрелки — используйте это, чтобы избежать дублей.

  • Если хотя бы одна из входящих в блок задач стрелок не выполнима , задача не создастся.

  • Не ставьте задержку перед блоком задач, если ждёте завершения нескольких шагов перед ее созданием.

  • Вложенные процессы — отличный способ упрощения и локализации логики.

👆 На этом пока всё