Understanding Ways of Designing RPA Solutions — UiPath

Importance of designing your RPA solution?

Every business process we automate has its own complexity, unique steps, and stages. The suggested solution should also capture the same set of actions to be done automatically. However, automating a process does not mean that you have to follow the same manual steps. There can be different ways of doing the same task when it comes to the technological world. For example, while the user interacts with the interface of an application to perform a specific function, a robot could achieve the same task by:

  • Using UI interaction as the user
  • Perform API calls to send\ get the required data
  • Connect with the database directly to perform the required action
  • and many more…
  • Difficulty in scaling up the solution
  • As the complexity increases, managing a code built without a proper architecture is difficult.
  • Introducing new features can be complicated as it may not support the existing structure of the solution.

How Can We Design a Solution?

It does not require extraordinary skills :)

What is the Dispatcher and performer Concept?

The REFramework is designed to process the data as transactions. The framework is by default configured to integrate with Orchestrator Queues to manage the transactions (data) to be processed. The Queues allow us to split the process into multiple subprocesses that enable independent management and scheduling of each subprocess. The Dispatcher is the process that prepares the initial data and pushes it to the following subprocesses to process it. The Performer subprocess retrieves the transaction items from the Orchestrator Queue and processes them one by one by taking into account the business and application exceptions.

Note that both the dispatcher and performer are separate processes designed on REFramework

A business process that is automated end-to-end may contain multiple dispatcher and performer combinations. Further, depending on the business scenario, one dispatcher may provide data to various performer processes. Some of the significant advantages of using this concept are:

  • You can easily scale your automation processes.
  • The error handling and retrying capabilities can be easily incorporated into the process without much time and effort.
  • Considering the overall process, the automation workflows are much simple and less complicated.

It is important to identify the handover points and break the complex business process into multiple simple automation processes that connect through data handover features such as Queues, Data Tables, etc.

To understand this concept better, let’s consider the following business case.

  • A business user downloads a set of reports from two ERP applications
  • The downloaded data is processed and cleansed
  • Cleansed data is sent to specific users through email.
  • The receiver updates the file and replies to the business user
  • The business user validates each received email.
  • If any error is found, he replies to the email asking for a correction. If the data received is valid, the information is updated in another downstream application.

What factors should be considered to split the process, as shown above?

We can look at a few elements of the process:

  • What you get as input data
  • Out of all the input data, what dataset can act as the master dataset that refers to other input data? (This means we need to identify the main dataset that we can use as a reference to connect with all other data points, For example, the list of file paths in a folder to access data elements in each file)
  • What applications do you need to access to obtain the input data
  • If applications are involved, at what point/ screen you will be extracting the information, and what steps are carried out to get to that screen
  • Do you need to perform any additional actions to retrieve the data?
  • What are the business rules and application exceptions that you may encounter?
  • Once you retrieve the required information, what do you do next?
  • Do you process the data as individual transactions, or do you process it as a bulk?
  • When you process each data element, what conditions do you check? (business rules and application-related scenarios)
  • Once the data is processed, what is the output that you generate from the process?
  • What data is required to generate the required output
  • An excel file that contains the initial data points that help us dig into the details
  • Windows file system (file paths/ folder paths)
  • An application in which we need to download the main dataset.

Always ensure to use the REFramework to automate your processes. Do not overcomplicate the process. Find points where you can split the process into multiple sub REFramework solutions.

Do we always need to use the REFramework?

You might wonder why to use REFramework all the time, even if the process is sequential and linear. Let’s have a look at the following example.

  • Login to Application 1
  • Navigate to the required page
  • Provide the input values needed to generate the required report
  • Hit on download to download the report

The REFramework is highly customizable. You can easily change it to work as a linear process by fixing how it navigates between transactions.

Now let’s see how we can place the above-stated steps in a linear REFramework solution. Try mapping it into the key elements I mentioned earlier and follow the below diagram.

Is it always mandatory to use the dispatcher-performer concept? Even for a simple process?

As mentioned above, the use of REFramework is a good practice for any complex or linear process. However, the need for the dispatcher-performer concept may depend on the process complexity. If the process is complicated, we need to go for the dispatcher-performer concept as the example given above.

  • Log in to the HR system.
  • Extract Employee list
  • Identify the employees that need to regularize their attendance
  • Send out an email to the employee asking to regularize their attendance

Concluding…

As we discussed, RPA solutions may range from sequential to complex automation solutions. However, try to capture the key data elements required to design the solution and always try to map it to the REFramework and\or dispatcher-performer concept. By doing that, we can easily create a robust, efficient, and reliable solution.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Lahiru Fernando

Lahiru Fernando

UiPath MVP/ Executive Lead — Robotic Process Automation/ UiPath Community Leader for SAARC Region/ UiPath Community Moderator