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?
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.
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
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)