ReFramework official

Hi everyone!

This is the link to the official version of the UiPath ReFramework. It’s purpose is to provide a template which handles the basic needs of any business process automation, like reading and storing a configuration file, retrying Transactions that fail with an Application Exception and logging the status of all processed transactions, failed or successful.

The best way to get it is by pulling from our github, located at GitHub - UiPath/ReFrameWork: Robotic Enterprise Framework Template.

Be sure to read the included documentaion, which is available in the project subfolder Documentaion. It provides an explanation of the framework, the reasons for creating it, as well as the changes you need to make to suit the needs of your particular process.
You can also view it here: ReFrameWork/REFramework documentation.pdf at master · UiPath/ReFrameWork · GitHub


In this post i will link a fork of the ReFramework, hosted, for the moment, on my own github. As soon as we have updated the documentation and bug testing, it will be available on our official github. For now, you can download it here:

It aims to improve on the above linked version in the following ways:

  1. Split the template into functional layers: framework layer, business process layer, process logic layer, services layer. The services layer allows the dev to call another ReFramework within a ReFramework. This enables you isolate and solve specific problems and return the results up the call stack.
  2. SOC (separation of concerns): Minimum intervention in the framework layer and a clearer separation into what needs to be edited by the developer (business process layer and process logic layer). The dev needs to modify the workflows located in the “ProcessLayer” Folder.
  3. Implementing universal logging. You can now implement a single dashboard for any process because logs on all levels are linked together by parent/child relationships.

Documentation for this version is not yet complete.
Although it has gone through thorough bug testing, this is not yet the final version.
Even so, i would recommend you read the architecture document and, if you like it, implement using it as it should offer improvements over the above posted version.

Architecture UML:


This is nice. I love especially the logging and the separation of concerns. :+1:


Just to make your life easier, this is now included in the latest Studio as a project template :smiley:


Thanks a lot .:slight_smile: This is going to be a best way for Developer like us. Thank You.

Very Good framework to use it as base for any Uipath project :+1:

Hi Team,

Since, i am new to Framework i am asking this question. please dont mind if it is basic.

in set transaction status XAML file - if the exception type is system exception then it is closing all the application
but my trigger point is indicating to Init stage then what is the purpose of this.

Hi venkat,

The Init stage calls the InitAllApplications.xaml component which will restore your application environment!

Looks very promising, but “Architecture UML” link does not work. It results in a 404 Page not found error.

Hey @Mihai_Dunareanu,

This REFramework is what I were looking for, i’m trying to implement this framework, it will be great if you will provide a implementation sample project!!



Are we supposed to use the RE Framework only when we work with queues or it can be used for processes which doesn’t require queues in development.
I am bit confused as to when should I go for RE Framework or should I always use RE Framework for my developments.

Umesh Konar

Always. It provides good logging, screencapture on fail, etc


ReFramework is meant by design, As-Is, to handle transactional processes and with Queues however, It is possible with some minor tweaks to adapt it to a non-queue process (based on a datatable for example) or even an Attended/One time non transaction job.

  • Transactional with datatable/Datarows

You have example here, including xaml from our dear @loginerror.
The academy advanced training is also showing on the first assignement how to do so.

Attended/One Time (non-transactional)

  1. Connect all transitions going from “Process Transaction” State to “End Process”
  2. Delete the getTransaction State
  3. Connect the “Success” transition from “Init” to “Process Transaction State”

This should look like the screenshot bellow.
Of course you can tweak it a little more and remove some unused pieces inside the invoked workflow but this should be working like this.

This will permit you to keep most of the advantages of the Framework such as:

  • Out of the box exception handling/logs
  • Screenshot on exception
  • Credentials
  • Reusability of the CloseApplications
  • Config file



Where can I find the SendExceptionEmail workflow that is referred in Level 3 training?

Hi @Fer,

You can not find it since in the Reframework template it is something that you need to create during the assignment.


@Patryk.Sabbagh, thank you. Later I found out :slight_smile:

hope there must be video tutorials regarding each variables, arguments, system, and flow since it is extremely confusing and time-consuming to investigate this framework. thanks.

1 Like

You have the PDF document which explains everything.

1 Like

This is a very simple way of taking advantage of Reframework, nicely done !

1 Like