recursive sub-processes

Hi Team, is it possible to have recursive sub-processes.  Reason: avoid defining a loop within a process.
In standard BP Designer a process does not show itself as an option for a sub-process.  Wondering if there is a flag or other setting to turn this on.

Like 0

Like

2 comments

Hello! Recursive sub-processes-where a process calls itself directly as a sub-process-are not supported natively in the Business Process Designer, and for good reasons:

Why it's not allowed by default:
Recursion can easily result in infinite process executions if not managed carefully (e.g., no base case or exit condition).

Recursive calls could overload the scheduler queue and background processes.

The BP Designer intentionally filters out the current process from the list of available subprocesses to avoid this scenario.

Alternative Solutions:
1. Create a secondary wrapper process (e.g., MyProcessWrapper) that calls the main process (MyRecursiveProcess).

Inside MyRecursiveProcess, under certain conditions, call the wrapper again.

This technically breaks the direct recursion and gives more control.

2. Instead of recursion, Creatio recommends modeling loops with Gateways (Exclusive or Inclusive) and Intermediate Timer or Signal Events to create a controlled looping behavior.

3. If your recursion is simple (e.g., batch iteration or hierarchical processing), consider using Script Tasks with logic in C# to handle recursion internally. This avoids BPM overhead.

Nick Ovchynnik,

Thank you Nick for the detailed response.

Show all comments