How to dynamically switch between Dispatcher and Performer roles within the same REFramework process without duplicating workflows?

I am working with the UiPath REFramework and have a requirement where the same automation needs to act as a Dispatcher in some runs and as a Performer in others, based on a runtime configuration value (e.g., from Config.xlsx or Orchestrator Asset).

I want to avoid maintaining two separate REFramework projects.

Specifically:
How can I control the execution flow so that:
In Dispatcher mode → only GetTransactionData and queue creation logic executes
In Performer mode → normal queue-based transaction processing happens
What is the best practice to implement this without breaking REFramework principles?
Which state(s) should contain this logic?

Hi @Alex_Hunter ,

Try this solution :

Use a config or asset value in Init.xaml to decide the mode. If it’s Dispatcher, run a dispatcher workflow from Init to add queue items and then end the process. If it’s Performer, continue with the normal REFramework flow. Keep dispatcher logic out of Get Transaction Data and Process.

@Alex_Hunter

the ask that you hae simply complicates instead of simplifying

first thing if dispatcher does not do any manipulations or external interactions then just add in init state and try using bulk add queue items to make it faster..

if it has logic or external interactions then better create a separate process all together

if you still need to combine then you might need to duplicate transaction item with teo different types of variablea and all conditions that you have should replicate for both..thats why it gets complicated

cheers

Combining Dispatcher and Performer in one REFramework may look good, but in practice it often complicates design, testing, and also maintenance.
Only combine when the Dispatcher is extremely simple; otherwise, split the processes.

If you want to do it in one process only, create a workflow and invoke it in init stage. You can create an asset or add a field in config file. Based on this field, check this and execute the dispatcher workflow. (simple - use if condition based on field set in config/asset)

Thanks it worked for me

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.