...
  • June 22, 2022
  • Rohit Kashyap
  • 0

REFramework in UiPath

The Robotic Enterprise Framework is a project template provided by UiPath which follows all the best practices involved in development. It can be used to design all kinds of processes from simple to complex level. It is mostly used for projects which require scalable processing.

It is a state machine-based template, containing default state containers for various stages or blocks. Different transitions are defined to jump from one state to another. A view of the template is given below: –

The different blocks and their functions are explained below: –

  1. Initialization: This state is used to initialize the configuration file and all the other applications that are being accessed in the project. In case of an error (system exception), the flow will move to the End Process state and in case of a successful initialization, the flow moves to the Get Transaction Data state.
  1. Get Transaction Data: This state retrieves the next transaction item to be processed. In case of ‘no data’ is present for processing, the flow moves to End Process state, else it moves to Process Transaction to proceed with further execution.
  1. Process Transaction: This state will perform the actual processing for the retrieved transaction item. There can be three outcomes of processing – Success, System Exception and Business Exception. In case of a system exception, the transaction is retried, in case of a business exception, the transaction is skipped and the next one is retrieved from Get Transaction Data state. Lastly, in case of a success scenario, the flow will again move to Get Transaction Data state to retrieve the next item for processing.
  1. End Process: This is the final state of REFramework wherein all the used applications are closed, and the project is stopped.

Each of these blocks contain invoked workflows holding a different purpose. All the xamls within these blocks are placed inside the Framework folder of the project.

The Initialization block

The Initialization block

Below are the xamls present in Initialization block: –

  1. InitAllSettings.xaml: This workflow will initialize and output a dictionary type configuration file which will be referred to in the entire process. This config file is put into arguments and passed between various workflows to access the values within it. The Settings and Constants sheets are read from the Config file, which is placed inside the Data folder of project. Assets are taken from the orchestrator itself. A try catch is implemented to catch any system exception and move the flow to End Process state.
  1. KillAllProcesses.xaml: This workflow is used to close or kill any background or foreground application running so that your process starts with a clean environment and no interference happens in further execution. Closing all applications is recommended instead of directly killing them because it might cause abrupt behaviour.
  1. InitAllApplications.xaml: This workflow is used to open up or start any processes or applications which your process might use later, such as activities like Open Application or Open browser. You can also open up any website whose URL can be mentioned in the Config file.

The Get Transaction Data block

The Get Transaction Data block

Below are the xamls present in Get Transaction Data block: –

  1. GetTransactionData.xaml:- This workflow will get a transaction item to process it from Orchestrator queues, databases, mailboxes, etc, depending on the type of method used to push data. If there are no items present for processing, the flow shifts to End Process state. By default, Orchestrator queues are considered as the source of transaction data. If queues are not being used in your process, then replace the Get Transaction Item activity with the appropriate sequence.

The Process Block

The process block

Below are the xamls present in Process block: –

  1. Process.xaml: This workflow holds the actual processing that is to be done in your process. You can include multiple sequences or workflows within this block, which support your execution. The main part of your automation lies here. This part will be followed for every transaction item that is retrieved.
  2. Process.xaml: This workflow holds the actual processing that is to be done in your process. You can include multiple sequences or workflows within this block, which support your execution. The main part of your automation lies here. This part will be followed for every transaction item that is retrieved.
  3. Process.xaml: This workflow holds the actual processing that is to be done in your process. You can include multiple sequences or workflows within this block, which support your execution. The main part of your automation lies here. This part will be followed for every transaction item that is retrieved.
  4. Process.xaml: This workflow holds the actual processing that is to be done in your process. You can include multiple sequences or workflows within this block, which support your execution. The main part of your automation lies here. This part will be followed for every transaction item that is retrieved.
  5. Process.xaml: This workflow holds the actual processing that is to be done in your process. You can include multiple sequences or workflows within this block, which support your execution. The main part of your automation lies here. This part will be followed for every transaction item that is retrieved.

The End Process block

The End Process block

Below is the xaml present in End Process block –

  1. CloseAllApplications.xaml: This workflow ends and close all the applications which were initialized in the beginning of the process.

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *