Robotic Process Automation - in short RPA

Marcin Kasiński

Robotic Process Automation is a system which enables automation of repeatable processes, which are characterized by a low degree of exceptions in algorithms. It aims at replacing people by a computer system, obviously in the areas of repeatable activities.


Using RPA, people can automate processes which:
– are characterized by repetitiveness,
– do not depend on a person’s subjective assessment,
– are based on numerous, repetitive data multiplication, processing and transferring,
–  require a time input.


RPA Advantages:

– emulation of users’ behaviour in a browser
– process creation does not demand big programming knowledge
– minimalized cost of employment
– error elimination
– it can work 24 hours a day, seven days a week, also on non-trading Sundays and holidays, as it is not covered by labor law, it does not need breaks, does not get tired or ill, does not go on family holiday.

It is possible to automate processes which are processed in an organization or a certain department:
– IT,
– purchases and orders,
– accounting and finances,
– logistics,
– marketing,
– sales,
– human resources,
– legal department.

Automated system may conduct such activities as:
– entering trade partner’s data to the system,
– sending emails,
– scanning invoices to the system.
– Simulation of system user’s behaviour
– Not required programming knowledge
– Smaller amount of time needed to prepare an RPA process
– RPA processes management in case of changes in application’s modules means sequence editing in the process

Practical Use of RPA

Imagine a system of servicing notifications management. We have an old version, which does not have many functionalities we need now, so we implement a new version.
In the new version, we really want to work also on data from an old version. The problem is, the old version of our system does not have a data export functionality.
What can be done in such a situation? In an extreme version, we involve a person/ people who work on the old and new system and manually move data. It is possible, but taking into consideration the scale and error possibility, it is not recommended.

In such a situation, one of the options is to use RPA, where in an easy way we can program these steps manually (extracting in a loop data from the old system and registering them in the new system using a form). Everything is done as if it was done manually, with the difference that the operations are programmed and repeated multiple times.
Robotic platform in its basic use enables an easy launch of tasks connected with assimilating human actions in browsers.
Sometimes we need to power a system with external data, and the system does not have the data import possibility or the format of data we want to enter is definitely different from the expected one. On other occasions, we have a system from which we want to export data, but the system does not have a functionality enabling such export.
What are our options then? We can engage a person who will enter the data manually into the system, or in the second case, who will manually gather the data from the system by searching, filtering and placing them in another system.
In above cases we have a possible problem of errors which may appear. Another problem is time. An automated process is much faster than a manual action.

It is a place for a robotic platform.
The platform enables launching, with a planned in advance frequency, implemented automatic processes, following their completion, appropriate servicing of their repetition in case of malfunction, gathering logs in one place as well as visualization of the condition of each robot. The platform is universal to the extent that it can manage every process of a periodic character.

Technical description of a platform for Robotic Process Automation.
All components of the platform are based on opensource solutions. They have a great support of a community and a lot of documentation and materials are to be found on the Internet. It means that while implementing the solution, we will not be suddenly left alone with a problem.

The heart of the platform is Apache Airflow – an engine for managing periodic operations, enabling recurrence and SLA servicing.
In an easy way, using a friendly user’s interface, it is possible to view existing processes, discover a place where an error occurred and finally repeat a given step, if needed.
Applications/ robots launched in it are appropriately prepared docker containers, in which python code is launched using selenium library for the browser management.

In order to simplify a detailed analysis of robots activity, EFK stack is used, Elasticsearch for storing logs, FluentD for local logs files parsing and transferring them to the central repository and Kibana for visualization and central logs parsing. If visualization available in the main product is not sufficient, additionally we may review the metrics of the launched solutions in Grafana tool.
Because of its universal character, it is worth mentioning that the platform is not restricted to only robotic tasks. It is possible to launch on iy any solution which is a one-off task closed in a docker image.