Rpa Developer Report
Rpa Developer Report
Submitted By
Roll no:
216N1A0112
AT
CERTIFICATE
This Is To Certify That The Summer Internship Entitled " ROBOTICS PROCESS
AUTOMATION (RPA) DEVELOPER VIRTUAL INTERNSHIP" Is A Bonafide Work Of
DAMODHARA VEERA VENKATA SUBBARAO, Bearing H.T. NO. 216N1A0112 Submitted
In Partial Fulfilment Offhe Requirement For The Award Of The Degree Of BACHELOR OF
TECHNOLOGY IN CIVIL ENGINEERING During The Academic Year 2024-2025. This Is
Further Certified That The Work Done Under My Guidance, And The ResultsOfThis Work Have
Not Been Submitted Elsewhere For The Award Of Any Of The Degrees.
(Assistant Professor)
ACKNOWLEDGEMENT
it is a great privilege and duty to acknowledge that the kind help and guidance received from
several people during this internship, it would not have been possible without their valuable help,
cooperation and guidance. I wish to record my sincere gratitude to professor Chaitanya for his
constant support and I would like to thank AICTE, blue prism academy and Edu Skills foundation
for providing me with an invaluable learning experience as a RPA intern and I have gained much
practical knowledge about RPA developer. their contributions and technical support are greatly
acknowledged. I would also like to thanks all my classmates who have extended their cooperation
during my internship.
5
6
INDEX :
S.NO TOPIC PAGE NO.
1. CERTIFICATE:
• College 1
• AICTE 2
2. Introduction To RPA
• Variables and Arguments in Studio 6
• Data Types 7
• Data Table 8
• Arguments
3. Control Flow Overview
• The control flow statements 10
• Loops 11
7
1. Introduction To RPA
RPA stands for Robotic Process Automation. It is the technology used for software tools that
automate human tasks, which are manual, rule-based, or repetitive. Some examples of RPA
applications are addressing queries, making calculations, maintaining records, and making transactions.
This report is based on the UiPath RPA Developer Internship Program. The purpose of this report is to
provide an overview of the internship program, its objectives, and the skills that can be acquired by the
me. The report will also cover the tasks that are expected to performed by the me.
Variables
Variables are containers that can hold multiple data entries (values) of the same data type. Email
Address can be a variable that holds the value "[email protected]". Likewise, the speed of a
car, the age of a person, bank account balance, and marks obtained in an examination are some
examples of variables. Variables help us pass data from one activity to another. Advancing with any
automation process would be hardly possible without using variables.
In Studio, variables are used to store multiple types of data. This data can be an integer, a
Boolean, a string, and many more data types.
8
• Data Types
, namely Data Manipulation with Strings in Studio.
Boolean
Boolean: Used to store one of two values – True or False.
Collection (category)
This category reunites all collections of objects. Collections are largely used for handling and
processing complex data. Some of the most encountered collections are:
Array – Array Of<T> or System. Data Type[]: used to store multiple Data Types describe what type of
data a variable can hold.
For example, if the data type is Int32, then the variable must hold an integer number.
Likewise, if the data type is a String, then the variable must hold a text.
Variables and arguments in Studio need to have a specific data type defined. This makes sure
that the right data format is applied at each stage of an automated process.
The base data types are basic data types such as integers, strings, dates, and so on. They include
all the types that are part of any .NET programming language.
1. They're used as variable values.
2. They're used as constant values.
3. The processors can easily recognize them.
With some exceptions that we'll discuss separately, the data types in UiPath are borrowed from
Visual Basic.Net. Below are some of the most common ones used: String
• String: used to store text. This type of data comes with many specific methods of
processing, and will be addressed in depth in another lessonvalues of the same
datatype. The size (number of objects) is defined at creation.
• List - System. Collections. Generic. List<T>: used to store multiple values of the same data
type, just like Arrays. Unlike Arrays, their size is dynamic.
• Dictionary - Collections. Generic. Dictionary < T Key, TValue>: used to store objects in the
form of (key, value) pairs, where each of the two can be of a separate data type.
• Data Table
Data Table variables represent a type of variable that can store big pieces of information, and act
as a database or a simple spreadsheet with rows and columns.
Date and Time (category)
• Date Time - System. Date Time: Used to store specific time coordinates (mm/dd/ yyyy
hh:mm:ss). This kind of variable provides a series of specific processing methods (subtracting
days, calculating time remaining vs today, and so on).
For example, to get the current time, assign the expression Date Time.
Now to a variable of type Date Time.
• Time Span - System. Time Span: Used to store information about a duration (dd:hh:mm:ss).
You can use it to measure the duration between two variables of the type Date Time.
9
• Arguments
Arguments are very similar to variables:
• They store data dynamically.
• They have the same data types.
• They support the same methods and properties.
The difference is that they pass data between workflows, and they have an additional property
for this – the direction. Arguments have specific directions: In, Out, and In/Out. These tell the
Robot where the information stored in them is supposed to go.
Arguments are a key component when it comes to building more complex automation, where
you need to store and use data between multiple workflows Argument names should be in Pascal
Case with a prefix stating the argument direction, such as in_ Default Time out, in_ File Name,
out_ Text Result, io_ Retry Number.
Let's check out the ways of creating arguments.
From the body of an Activity
10
The argument type is automatically generated depending on the selected property.
11
3. Control Flow Overview
It is the order in which activities are executed or evaluated in a software project. There are two
concepts through which the control flow is enacted:
12
The Global Exception Handler is a type of workflow designed to determine the project’s behavior
when encountering an execution error.
• Loops
Loops are repetitions of a set of operations based on a given condition. In UiPath, the most
important loops are: Do While, While and For Each. Loops are fun, but you should know how
to stop the ride at some point. There are multiple ways to exit a loop:
• The While and Do While loops will exit when upon checking, the
condition is no longer true.
• The For Each loop will exit when it has finished processing every item in the input collection.
• The Break activity enables you to exit the current loop activity (e.g. For Each, While, or Do
While) at a chosen point and continues the workflow with the activity that follows it.
• Switch
It is a type of control flow statement that executes a set of activities out of multiple, based on the
value of a specific expression. This is done through the condition, which is not Boolean like in
the case of If statement, but multiple.
• An invoice that has three potential statuses (not started, pending, approved) and three sets of
actions for each one.
• A process of automatically ordering raw materials to four suppliers based on certain conditions.
• Parallel
The Parallel activity enables you to execute two or more child activity branches at the same time.
In UiPath Studio, the Parallel activity can be found in the Activities panel, under
Workflow > Control > Parallel.
The Parallel activity finishes only after all child activities are complete or when its Completion
Condition property evaluates to true. The Parallel activity is very beneficial when there are one
or more blocking activities in the branches, because it executes all child activities simultaneously
and asynchronously, thus saving time and being very efficient. The second sequence gets data
from an invoice and sends the output by email to a specific recipient.
13
4. UI Automation with Studio
User Interface or Graphical User Interface Automation (UI Automation) refers to the process of
interacting with graphical elements within applications by simulating mouse and keyboard
controls. Just as human users use applications through activities such as clicking, typing, or
selecting text, UiPath Robots can be configured in UiPath Studio by RPA Developers to perform
the same tasks faster and error-free. UiPath recognizes graphical objects by its own platform-
specific attributes and provides a unified GUI automation API that works the same way
everywhere.
14
Getting the status of an operation.
• Extracting the relevant piece from a larger text portion.
• Displaying information to the human user.
The RegEx Builder
Regular Expression (REGEX, or regexp) is a specific search pattern that can be used to easily
match, locate and manage text. However, creating RegEx expressions may be challenging.
UiPath Studio contains a RegEx builder that simplifies the creation of regular expressions.
• Selectors in Studio
A selector in UiPath Studio is a feature that enables the identification of a specific User Interface
element through its address and attributes. These are stored as XML fragments. The element
identification is done to perform specific activities in an automation project. Selectors are
generated automatically every time we use an activity that interacts with graphical user interface
elements.
Most of the times when an automated process involves working with UI elements, selectors are
used. Typical activities include:
• Clicking buttons.
• Inputting or scraping text in/from a field on a website.
• Choosing an option from a drop-down lt.
• Descriptors in Studio
Target:
A target is a UI element, you want to interact with to perform some actions on it.
For example, a button to click, a text box to type into. Here, the Button and the Textbox are the
target.
• UI elements refer to all graphical user interface pieces that construct an application.
• UI elements can be any windows, check boxes, text fields or drop-down lists, and so on.
• Targeting methods help identify the correct target element. Modern UI Automation activities
use multiple targeting methods to identify the UI Element you want the process to interact with.
The key targeting methods are:
1. Selectors
2. Fuzzy Selectors
3. Image
4. Native Text
Target Elements may have changing attributes, screen locations, or images. For an increase in
precision we use Anchors. Anchors help us identify the unstable elements we need to work with
relative to more stable elements.
15
• Project Organization in Studio
For small processes automated or parts of a larger automation project, there are three options of
layout – Sequence, Flowchart and State Machine.
Handling data in projects with multiple workflows
Splitting a project into smaller workflows has an influence on how data is handled. Since
variables work only inside the same workflow, having more than one workflow requires
arguments.
In - if we want to pass a value to be used only inside the invoked workflow.
• Out - if we want to pass a value to be used outside of the invoked workflow, in the parent
workflow.
• In/Out - if we want to pass a value from the parent workflow to the invoked workflow, modify
it in the invoked workflow and then pass the new value back to the parent workflow.
Consider an invoked workflow that subtracts all the taxes from a gross salary. You will need at
least two arguments:
• An 'in' argument mapped to the variable containing the gross salary.
• An 'out' argument to pass the value of the net salary to a variable in the parent workflow. Best
practices on using arguments
• Naming: Uset he direction as a prefix when naming arguments – e.g. in_ArgumentName1,
out_ArgumentName2, io_ArgumentName3.
• Directions: Be specific with argument directions. Avoid using In/Out unless you need to.
16
or explicit actions executed automatically within the workflow, or even escalating the issue to a
human operator.
Predicting and treating exceptions can be done in two ways:
• At activity level, using Try/Catch blocks or Retry Scope.
• At a global level, using the Global Exception Handler.
Both will be covered in depth in the Error and Exception Handling in Studio course. At this point,
it is important to be able to choose the correct type of exception, as the information will be used
at a higher level later in the development to make other decisions. The categories of exceptions
are:
Application exception
Business rule exception
• Debugging in Studio
Debugging is a process of detecting and resolving errors in a project that would cause it to behave
unexpectedly or crash. It is usually recommended to perform debugging during the design stage
of the automation project, at activity, file, and project level.
1. System exceptions
As a general note, all of these exception types mentioned below are derived from System
Exception, so using this generic type in a Try Catch, for example, will catch all types of errors.
=>Null Reference Exception - Occurs when using a variable with no set value (not initialized.)
=>Index Out Of Range Exception - Occurs when the index of an object is out of the limits of the
collection.
=>Argument Exception - Is thrown when a method is invoked and at least one of the passed
arguments does not meet the parameter specification of the called method.
=>Selector Not Found Exception - Is thrown when the robot is unable to find the designated
selector for an activity in the target app within the Time Out period.
=>Image Operation Exception - Occurs when an image is not found within the Time Out period.
=>Text Not Found Exception - Occurs when the indicated text is not found within the Time Out
period.
=>Application Exception - Describes an error rooted in a technical issue, such as an application
that is not responding.
2. Business exceptions
A business exception mainly refers to information used in an automated process. Either it may
be incomplete or incorrect from a business perspective. When business exceptions occur, robots
stop the process, and it requires human intervention to address a thrown exception. Some of the
examples of business exceptions are: certain pieces of data which the automation project depends
on are incomplete, missing, outside set boundaries (like trying to extract more from the ATM
than its daily limit), or don't pass other data validation criteria. Business rule exceptions aren't
automatically generated as system exceptions. They must be defined by a developer by using the
Throw Activity and handled inside a Try Catch. Try Catch, Throw and Rethrow
17
Try Catch activity catches a specified exception type in a sequence or activity and either displays
an error notification or dismisses it and continues the execution. As a mechanism, Try Catch runs
the activities in the Try block and, if an error takes place, executes the activities in the Catches
block. The Finally block is only executed when no exceptions are thrown or when an exception is
caught and handled in the Catches block (without being re-thrown).
Try
The activities performed which have a chance of throwing an error. Catches The activity or set
of activities to be performed when an exception occurs.
Note: You can add multiple exceptions and corresponding activities to this block.
What can you do whenever an exception occurs, and if the catch block is unable to handle the
particular exception it has caught?
You can rethrow the exception. Rethrow causes the initially thrown exception to be rethrown to
handle the exception on an upper level. The activity or set of activities to be performed after the
Try and Catches blocks are executed. This section is executed only when no exceptions are
thrown or when an error occurs and is caught in the Catches block (without being re-thrown).
Retry Scope
The Retry Scope activity retries the contained activities as long as the condition is not met or an
error is thrown. This activity is used for catching and handling an error, which is why it’s similar
to Try Catch. The difference is that this activity simply retries the execution instead of providing
a more complex handling mechanism.
The activity has two main sections Actions and Conditions.
It can be used without a termination condition, in which case it'll retry the activities until no
exception occurs or the provided number of attempts is exceeded.
Retry scope has two additional properties Number Of Retries and Retry Interval.
The below graphic shows the Retry Scope Activity used in UiPath Studio along with its
properties.
.The ContinueOnError Property
The ContinueOnError is a property that specifies if the execution of the activity should continue
even when the activity throws an error.
18
This field only supports Boolean values (True, False). False, thus, if the field is blank and an
error is thrown, the execution of the project stops. If the value is set to True, the execution of the
project continues regardless of any error.Keep in mind that, if the ContinueOnError is set to True
on an Activity that has a scope such as (Attach Window or Attach Browser, in the classic, and
Use Application Browser in the modern), then error thrown by all the activities inside the DO
container of respective scope Activity will also be ignored. Setting this property to True is not
recommended in all situations. But there are some in which it makes sense, such as:
• While using data scraping - So that the activity doesn't throw an error on the last page when the
selector of the 'Next' button is no longer found.
• When we are not interested in capturing the error but simply in the execution of the activity.
If an activity is included in Try Catch, in the Try section, and the value of the ContinueOnError
property is True, no error is caught when the project is executed. The Global Exception Handler
The Global Exception Handler is a type of workflow designed to determine the process' behavior
when encountering an unexpected exception. This is why only one Global Exception Handler
can be set per automation project. In its default configuration, the Global Handler catches the
exceptions thrown by any activity in the process at runtime and executes a standard response -
ignore, retry, abort or continue, as predefined at design time. For attended scenarios, it can be
configured to let the user select the action.
A Global Exception Handler can be created by adding a new workflow file with this type. It can
also be created by setting an existing workflow as Global Exception Handler from the Project
panel.
19
Working:
The Global Exception Handler has 2 predefined arguments, that shouldn't be removed:
• Error Info with the In direction - contains the information about the error that was thrown and
the workflow that failed.
• result with the Out direction - used for determining the next behavior of the process when it
encounters the error.
Log Error
This part simply logs the error. The developer gets to choose the logging level - Fatal, Error,
Warn, Info, Trace, and so on.
The Global Exception Handler is not available for library projects, only processes. Only uncaught
exceptions will reach the exception handler. If an exception occurs inside a Try Catch activity
and is successfully caught and handled inside the Catches block (and not rethrown), it will not
reach the Global Exception Handler. The Global Exception Handler is not available for library
projects, only processes.
Only uncaught exceptions will reach the exception handler. If an exception occurs inside a Try
Catch activity and is successfully caught and handled inside the Catches block (and not
rethrown), it will not reach the Global Exception Handler.
20
• Introduction to Logging in Studio
Types of logs in UiPath In the beginning, we've mentioned that the focus of this lesson is setting
up useful logging when developing a project. For a bit of context, let's first start by checking out
the main types of logs generated by the UiPath Platform:
Robot logs
During process execution, the Robot generates a message (Log) for each step along the way.
These are gathered and stored in a Log File. The overall operation of gathering and storing Logs
is called Logging.
There are two types of Robot logs:
• Robot execution logs: they're messages generated by the execution of a process and typically
contain information related to its behavior and user-defined messages.
• Robot diagnostic logs: they provide information related to the Robot itself and its context.
Default logs are generated automatically when certain events take place. The events logged by
this category are:
• Execution start is generated every time a process is started (Level = Information).
• Execution end is generated every time a process is finalized (Level = Information).
21
• Transaction start is generated every time a transaction within a process is started (Level =
Information).
• Transaction end is generated every time a transaction within a process is finalized (Level =
Information).
• Error log is generated every time the execution encounters an error and stops (Level = Error).
• Debugging log is generated if the Robot Logging Setting is set to Verbose, and contains,
Activity names, types, variable values, arguments, etc. (Level = Trace).
User-defined logs are generated according to the process designed by you in Studio, when using
Log Message Activity or Write Line Activity.
Logging levels in UiPath Verbose level logs
Execution started log entry - generated every time a process is started.
• Execution ended log entry - generated every time a process is finalized.
• Transaction started log entry - generated every time a transaction item is obtained by the robot
from Orchestrator.
• Activity information log entry - generated every time an activity is started, faulted or finished
inside a workflow.
By default, running a process in Studio will record trace level logs. To set logging to verbose
level locally, access the Debug ribbon, enable the Log Activities option, and run the process in
debug mode.
Accessing and Reading Robot Execution Logs
Accessing logs
There are several places where you can access Robot Execution Logs:
• In the Output Panel in UiPath Studio for the previous process execution from Studio.
• In the %local app data%\UiPath\Logs\<short date>_Execution.log file for all processes ran on
the machine from UiPath Studio. Logs are generated at Trace level and above or Verbose level
and above depending on whether the Verbose level is activated or not.
• In the %local app data%\UiPath\Logs\<short date>_Execution.log file for all processes ran on
the machine from UiPath Assistant. The logs are generated at the level defined in UiPath
Assistant and above.
• In Orchestrator, in the Logs section when running processes while connected to Orchestrator.
The logs are generated at the defined level and above.
Accessing local logs
Logging Recommendations
When diagnosing a process in production, you'll find that oftentimes, the default exception log
messages are helpful, but not enough to provide a full picture of why it's failing. User-defined
logs are the breadcrumbs you can use to track your robot's progress through the process and get
a better view of the execution.
On the other hand, over-logging can increase the load on Orchestrator, slow your process down,
and make it hard to diagnose an issue because of the sheer volume of log entries. The solution is
to define the right log messages at strategic points in your project. The recommendations below
cover some healthy uses for identifying events that could lead to issues.
• Log message activities should ideally be used:
• each time an exception is caught in a Catch block (Log level = Error) each time a Business Rule
Exception is thrown (Log Level = Error).
22
5. Orchestrator Overview for RPA Developers
Orchestrator is the component of the UiPath Platform for managing automations, robots, and the
related entities. Although it comes with different cloud and on-premises delivery options,
including persistence, high availability, and disaster recovery, users can access it through a
simple web interface.
Orchestrator offers role-based access control and a structure of tenants and folders to replicate
organizational structures. Users are able to run the automation workflows developed in Studio
and published to Orchestrator using the unattended robot workforce. Furthermore, Orchestrator
used to manage and distribute licenses, as well as to store automation resources.
Orchestrator entities
Let's first see how the core RPA components of the UiPath Platform work together. And let's
get acquainted with the entities involved.
• Personal Workspaces
A personal workspace is a modern folder available for the dedicated use of a particular attended
user. Personal Workspaces make it easy to deploy automations to your own robot, for easy
regular execution, with the organizational benefits of logging, visibility, and potential reuse.
They come with the following entities: package feed, machine template, and resources (jobs,
assets, logs, queues, etc.).
23
Roles
Roles are sets of permissions used to control the access of human users and robots to tenant and
folder entities. Each permission is defined from the combination of at least an action type (view,
edit, create, and delete) and an entity, be it at the tenant or folder level.
Logs in Orchestrator
Logs are time-stamped files that contain informational events, errors, and warning messages
relevant to the application. The UiPath Platform has logging capabilities for all of its main
components. Logs are created locally of every robot and automation action, then sent to
Orchestrator from where they can be filtered, viewed, and analyzed.
There are two types of Orchestrator logs:
• Diagnostic logs
• Execution logs
24
6. Email Automation with Studio
Version control systems are tools used by software development teams to manage the
collaboration on large projects. A version control system allows developers to track a code
change, review the history of the code, and revert to a previous version of the project, if needed.
The version control systems UiPath Studio is integrated with are Git, TFS, and SVN. The
connection to a version control system is done at project level. To manage your connections,
access Studio, go to the Backstage view, and click the Team tab. Alternatively, the Add to Source
Control button in the status bar offers shortcuts to Git Init, Copy to Git, Add to TFS, and Add to
SVN.
Note: You cannot connect a project to Git, TFS and SVN at the same time, regardless of the type
of version control system used, project files are stored on a server where you push your files after
you have completed your work on your local machine.
However, deciding whether to use a centralized version control system like SVN or a distributed
version control system like Git affects how you commit changes.
25
7. RPA Testing With Studio
RPA is software. It goes through all the software development stages, including testing. RPA
testing deals with issues that are typically discovered in production, but aims to do it as early as
possible in the process. Levels of RPA testing Since RPA development goes through the regular
software development stages, RPA testing is not at all different from software testing. There are
four main levels: unit (component) testing, integration testing, system testing, and acceptance
testing.
26
OUTPUT SCREEN:
27
8. Advantages of Robotic Process Automation (RPA)
• Cost Effective It has been estimated that using robotics cuts operational costs by as much
as 25-50%. Robots can operate 24/7 and take no vacation when compared to humans, who
work 8/5 and have a pre-fixed number of annual leaves each year. Having robots take over
some of the manually intensive work from humans could result in visible gains for the
business.
• Accuracy And Quality RPA offers improved services to processes that have a high
probability of human error, thereby increasing accuracy. Robots are reliable, and consistent
and do not whine when expected to work tirelessly. They also reduce the cases of re-works
and improve the output quality, drastically.
• Consistency Robotics is a safe, non-invasive technology that doesn’t interfere with the
inherent systems and provides perfect consistency in performing the activities across the
board, each time and every time.
• Improved Analytics Having access to error-free, accurate data from various sources
would improve the quality of analytics in the process. This leads to better decision making
and overall, to the betterment of the process execution.
• Increased Customer Satisfaction Delivering better quality of work with high accuracy
and improved customer/client interaction leads to increased customer and client satisfaction.
This only adds to the goodwill of the business.
• Faster As bots are handling the execution here, a larger amount of work can be done in a
relatively much shorter period. A faster delivery, coupled with accuracy becomes the norm
with automation.
28
9. INTERNSHIP OUTCOMES:
• The internship provides possible opportunities to learn, understand and sharpen the
real time technical managerial skills required at the job.
• It helps to know the current technological developments relevant to Robotic Process
Automation
• Promote academic, professional and/or personal development.
• Helps to understand the social, economic and administrative considerations that
influence the working environment of industrial organizations.
• It gives an opportunity to learn strategies like time management. multitasking etc.
in an industrial setup.
• It helps to see how the theoretical aspects learned in classes are integrated into the
practical world, as on-floor experience provides much more professional
experience which is often worth more than classroom teaching.
29
10. Conclusion :
I hereby conclude, by saying that by doing this internship by UIPATH ACADEMY and
AICTE. I learnt a great deal about Data Analytics. I learned how data works on RPA
Studio, how the services provided by RPA work, how to modify them according to the
specified needs. By doing this, for a period of ten weeks, I devoted my time in the
fulfillment of the task handed out, got a better understanding of how the system works.
The program provides hands-on experience in developing RPA solutions using UiPath 's
software and offers several benefits, including the development of programming, data
analysis, and problem-solving skills.
However, I recognize that I still have a long way to go to learn about the data analytics in
depth.
30
11. References :
• www.uipathacademy.com
• www.google.com
• www.chatGPT.com
• www.linkedin.com
• https://academy.uipath.com/learning-plans/rpa-developer-foundation
• https://academy.uipath.com/courses/introduction-to-automation
• https://en.wikipedia.org/wiki/UiPath
31