Robotic Process Automation Lab Manual
Robotic Process Automation Lab Manual
LABORATORY
LAB MANUAL
MISSION
Offer high quality education with hope, confidence and moral values.
Equip the students with hands-on training on new tools.
Motivate students for self learning
Outfit the students to be compatible with recent trends in Electronic industries.
Organize students for professional careers and advanced studies
To provide the students with a strong foundation in the required sciences in order to pursue studies
in Electronics and Communication Engineering.
To develop attitude in lifelong learning, applying and adapting new ideas and technologies as their
field evolves.
To prepare students to critically analyze existing literature in an area of specialization and ethically
develop innovative and research-oriented methodologies to solve the problems identified.
To inculcate in the students a professional and ethical attitude and an ability to visualize the
engineering issues in a broader social context.
Problem analysis: Identify, formulate, review research literature, and analyze complex engineering
problems reaching substantiated conclusions using first principles of mathematics, natural sciences,
and engineering sciences.
Design/development of solutions: Design solutions for complex engineering problems and design
system components or processes that meet the specified needs with appropriate consideration for
the public health and safety, and the cultural, societal, and environmental considerations.
The engineer and society: Apply reasoning informed by the contextual knowledge to assess
societal, health, safety, legal and cultural issues and the consequent responsibilities
Relevant to the professional engineering practice.
Environment and sustainability: Understand the impact of the professional engineering solutions
in societal and environmental contexts, and demonstrate the knowledge of, and need for sustainable
development.
Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms
of the engineering practice.
Individual and team work: Function effectively as an individual, and as a member or leader in
diverse teams, and in multidisciplinary settings.
Project management and finance: Demonstrate knowledge and understanding of the engineering
and management principles and apply these to one’s own work, as a member and leader in a team,
to manage projects and in multidisciplinary environments.
Life-long learning: Recognize the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technological change.
PSO1: Design, develop and analyze electronic systems through application of relevant electronics,
mathematics and engineering principles
PSO2: Design, develop and analyze communication systems through application of fundamentals
from communication principles, signal processing, and RF System Design & Electromagnetics.
PSO3: Adapt to emerging electronics and communication technologies and develop innovative
solutions for existing and newer problem
SYLLABUS
TEXT BOOKS:
1. Learning Robotic Process Automation: Create Software robots and automate business processes
with the leading RPA tool - UiPath by Alok Mani Tripathi, Packt Publishing, 2018.
2. Tom Taulli , “The Robotic Process Automation Handbook: A Guide to Implementing RPA
Systems”, Apress publications, 2020.
REFERENCES:
1. Frank Casale (Author), Rebecca Dilla (Author), Heidi Jaynes (Author), Lauren Livingston
(Author), Introduction to Robotic Process Automation: a Primer, Institute of Robotic Process
Automation, Amazon Asia-Pacific Holdings Private Limited, 2018
2. Richard Murdoch, Robotic Process Automation: Guide To Building Software Robots, Automate
Repetitive Tasks & Become An RPA Consultant, Amazon Asia-Pacific Holdings Private Limited,
2018
3. A Gerardus Blokdyk, “Robotic Process Automation Rpa A Complete Guide “, 2020.
Lesson Plan
NO OF
[Link]. LIST OF EXPERIMENTS
PERIODS
DESIGN AND ANALYSIS OF THE FOLLOWING CIRCUITS
Create a Sequence to obtain user inputs display them using a message 4
1.
box
2. Create a Flowchart to navigate to a desired page based on a condition 4
Create a State Machine workflow to compare user input with a random 4
3.
number
4. Build a process in the RPA platform using UI Automation Activities 2
Create an automation process using key System Activities, Variables and 2
5.
Arguments
6. Also implement Automation using System Trigger 2
7. Automate login to (web) Email account 2
8. Recording mouse and keyboard actions 2
9. Scraping data from website and writing to CSV 2
10. Implement Error Handling in RPA platform 2
11. Web Scraping 2
12. Email Query Processing 2
Total 30
6
CCS361 ROBOTIC PROCESS AUTOMATION
LABORATORY
List of Experiments
5 UI Automation Activities
12 Text Automation
COMPLETED
7
[Link] AND CONFIGURATION OF UIPATH STUDIO
Ex. No. 1
Date:
Aim:
To setup and configure UiPath Studio platform for RPA program execution.
II Software Requirements
Operating System
Windows 10
Windows 10 N
Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019,
and 2022, x64 version (required for GIT source control)
Windows 11
Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019,
and 2022, x64 version (required for GIT source control)
Install Studio
8
The UiPath® Studio MSI installer enables you to install Studio, StudioX,
Robot, and Assistant. Use the Enterprise Edition of the installer if your
organization purchased the UiPath Platform or you are installing as part of a trial
of the UiPath Platform. If you are a community user, use the Community Edition
of the installer.
2. Read and accept the License Agreement. Please note that by accepting the terms
of the license agreement, you implicitly accept the terms of use of UiPath activity
packages and their dependencies.
3. Select the type of installation to perform:
Quick - Install Studio in a default configuration that includes the following:
Studio, StudioX and Assistant
User-mode Robot
StudioX Excel Add-in (if Microsoft Excel is installed on your machine)
Chrome extension (if Google Chrome is installed on your machine)
Edge Chromium extension (if Microsoft Edge Chromium is installed on
your machine)
JavaScript Robot Add-on
Extension for Microsoft Remote Desktop
The installation path (%localappdata%\Programs\UiPath) and all other
advanced options are already configured to help you get Studio up and
running right away. This setup does not require administrator permissions—
Studio is installed per user and is limited to the rights that the user has.
1
0
Select this option and click Install to proceed to step 8, with no additional
configuration required. This is the recommended option for Community
users.
Custom - Select which components to install, and configure advanced installation
settings.
Select this option and click Configure to proceed to step 4. This is the
recommended option for advanced and Enterprise users.
4. If you opted for a custom installation, select the install mode, and then select
Choose Packages to continue.
Install for me only - Install in the user profile folder, no administrator
privileges required.
Install for all users on this computer - Install for all users, get access to more
integrations and unattended automation, requires administrator privileges.
1
2
Conclusion:
Thus, the setup and configure of UiPath Studio platform is done for RPA program
execution.
1
3
2. USER INPUTS DISPLAY USING A MESSAGE BOX
Ex. No.:2
Date:
AIM:
To create a Sequence to obtain user inputs display them using a message box.
THEORY
Sequences
Sequences are the smallest type of project. They are suitable to linear processes as they
enable you to go from one activity to another seamlessly, and act as a single block activity.
One of the key features of sequences is that they can be reused time and again, as a
standalone automation or as part of a state machine or flowchart.
For example, you can create a sequence to take information from a .pdf file and add it to a
spreadsheet, and reuse it in a different setting, while changing just a few properties.
Please take into consideration that whenever you wish to copy a large number of activities from one
sequence to another, it is recommended to scroll down to the bottom of the Designer panel
beforehand. This is due to a Windows Workflow Foundation limitation.
PROCEDURE
To create a sequence that asks the user for their first and last name, and their hair color, and then
displays their answers, do the following:
1. Create a blank process and, on the Design tab, in the File group, select New > Sequence. The
New Sequence window is displayed.
2. In the Name field type a name for the automation, such as "First Sequence", and leave the default
project location or add a subfolder. Click Create. The Designer panel is updated accordingly.
3. Create three String variables such as FirstName, LastName, and HairColor, so that you can store
data from the user in them. Leave the Default field empty, to indicate that there is no default value.
4. Drag three Input Dialog activities to the Designer panel, one under the other.
5. Select the first Input Dialog. In the Dialog Title field add a custom Title, and in the Input Label
field add a Label asking for the first name of the user.
6. In the Value entered field add the FirstName variable. This indicates that this variable is going to
be updated with the value added by the user at this point.
7. Repeat steps 6 - 7 for the second and third Input Dialog activities to ask the user for his last name
14
and hair color, and store them in the LastName and HairColor variables.
9. Select the Message Box and, in the Properties panel, in the Text field, add the variables and a
string to enable you to display all information gathered from the user, such as:
FirstName + " " + LastName + " has " + HairColor + " hair."
10. On the Design tab, in the File group, click Run. The automation is executed. The final output
message should look as in the following screenshot.
Conclusion
Thus, a sequence to obtain user inputs display them using a message box is created.
15
3. NAVIGATE TO A DESIRED PAGE
Ex. No. 3
Date:
AIM:
To create a Flowchart to navigate to a desired page based on a condition.
THEORY
Flowcharts
Flowcharts provide a visual representation of the flow of a workflow, helping better
illustrate decision points and the overall view.
Flowcharts can be used in a variety of settings, from large jobs to small projects that you
can reuse in other projects.
The most important aspect of flowcharts is that, unlike sequences, they present multiple
branching logical operators, that enable you to create complex business processes and connect
activities in multiple ways.
Flowcharts come with the Declutter Canvas option in the context menu.
PROCEDURE
To exemplify the properties of a flowchart, we are going to build a guessing game that generates a
random number from 1 to 999 that the user must guess. To create such an automation, do the
following:
1. Create a blank process and from the Design tab, in the File group, select New > Flowchart. The
New Flowchart window is displayed.
2. In the Name field type a name for the automation, such as "First Flowchart", and leave the
default project location or add a subfolder. Click Create. The Designer panel is updated
accordingly.
3. Create two Int32 variables (RandomNumber, GuessNumber) and a String one (Message).
4. Set the default value of the Message variable to "Guess a number from 1 to 999." The
RandomNumber stores a random number between 1 and 999, GuessNumber stores the user’s guess
and Message stores the message that is going to be displayed to prompt the user.
5. Add an Assign activity to the Designer panel, and connect it to the Start node.
16
8. Add an Input Dialog activity to the Designer panel and connect it to the Assign one.
9. In the Properties panel, in the Label field, add the Message variable.
10. In the Result field, add the GuessNumber variable. This activity asks and stores the user’s
guesses in the GuessNumber variable.
11. Add a Flow Decision activity and connect it to the Input Dialog. This activity enables you to
tell the user if they correctly guessed the number or not.
12. In the Properties panel, in the Condition field, type GuessNumber = RandomNumber.
Alternatively, you can select the Condition Builder from the Plus menu to edit your condition. This
enables you to verify if the number added by the user is the same as the randomly-generated one.
13. Add a Message Box activity and connect it to the True branch of the Flow Decision.
14. In the Properties panel, in the Text field, type "Congratulations! You guessed correctly! The
number was " + [Link] + ".". This is the message that is going to be displayed if
the user correctly guessed the number.
15. Add a new Flow Decision activity and connect it to the False branch of the previously added
Flow Decision.
16. In the Properties panel, in the Condition field, type GuessNumber > RandomNumber. You can
also select the Condition Builder from the Plus menu to edit your condition. This activity enables
you to check if the number the user added is bigger than the randomly-generated one.
17. In the DisplayName field, type Comparison. This enables you to easily to tell the difference
between the two Flow Decisions used.
18. Add an Assign activity and connect it to the True branch of the Comparison activity.
19. In the To field, type the Message variable, and in the Value field, type a message indicating that
the guess was too high, such as "Too big. Try again.".
20. Select the Assign activity and press Ctrl+C. The entire activity and its properties are copied to
the Clipboard.
22. Connect it to the False branch of the Comparison activity and, in the Properties panel, in the
Value field, type "Too small. Try again.".
23. Connect the Assign activities created at steps 18-22 to the Input Dialog. A loop is created,
asking the user to type a smaller or bigger number, until he guesses correctly. Optionally, you can
add labels by right-clicking a connection and selecting Add label.
17
CONCLUSION
18
4. STATE MACHINE WORKFLOW TO COMPARE USER INPUT WITH A RANDOM
NUMBER
Ex. No. 4
Date:
AIM:
Create a State Machine workflow to compare user input with a random number.
THEORY
State Machines
A state machine is a type of automation that uses a finite number of states in its execution.
It can go into a state when it is triggered by an activity, and it exits that state when another activity
is triggered.
Another important aspect of state machines are transitions, as they also enable you to add
conditions based on which to jump from one state to another. These are represented by arrows or
branches between states.
There are two activities that are specific to state machines, namely State and Final State,
found under Workflow > State Machine.
The State activity contains three sections, Entry, Exit and Transition(s), while the Final
State only contains one section, Entry. Both of these activities can be expanded by double-clicking
them, to view more information and edit them.
The Entry and Exit sections enable you to add entry and exit triggers for the selected state,
while the Transition(s) section displays all the transitions linked to the selected state.
Transitions are expanded when you double-click them, just like the State activity. They
contain three sections, Trigger, Condition and Action, that enable you to add a trigger for the next
state, or add a condition under which an activity or sequence is to be executed.
19
PROCEDURE
To exemplify how to use a state machine, we are going to build the guessing game we did in the
previous chapter, the only difference being that we will try to guess a number between 1 and 100.
1 Create a blank process and, on the Design tab, in the File group, select New > State
20
Machine. The New State Machine window is displayed.
2 In the Name field type a name for the automation, such as "First State Machine", and leave
the default project location or add a subfolder. Click Create. The Designer panel is updated
accordingly.
3 Create two integer variables, InitialGuess and RandomNumber. The first variable stores
your guess, while the second stores the random number.
4 Add a State activity to the Designer panel and connect it to the Start node. This is the initial
state, and it is used to generate a random number.
5 Double-click the activity. This State activity is displayed expanded in the Designer panel.
6 In the Properties panel, in the DisplayName field, type Initializing Random Number. This
enables you to easily tell states apart.
7 In the Entry section, add an Assign activity.
8 In the To field, add the RandomNumber variable.
9 In the Value field, type new Random().Next(1,100). This expression generates a random
number.
10 Return to the main project view and add a new State activity.
11 Connect it to the previously added activity.
12 Double-click the last added State activity. This activity is displayed expanded in the
Designer panel.
13 In the Properties panel, in the DisplayName field, type Guess Number. This state is used to
prompt the user to guess a number.
14 In the Entry section, add an Input Dialog activity.
15 Select the Input Dialog, and in the Properties panel, add an appropriate Label and Title to
prompt the user to guess a number between 1 and 100.
16 In the Result field, add the InitialGuess variable. This variable stores the user’s guess.
17 Return to the main project view and create a transition that points from the Guess Number
state to itself.
18 Double-click the transition. The transition is displayed expanded in the Designer panel.
19 In the Properties panel, in the DisplayName field, type Try Smaller. This message is
displayed on the arrow, enabling you to run through your automation easier.
20 In the Condition section, type InitialGuess > RandomNumber. This verifies if the user’s
guess is bigger than the random number.
21 In the Action section, add a Message Box activity.
22 In the Text field, type something similar to "Your guess is too big. Try a smaller number."
This message is displayed when the user’s guess is bigger than the random number.
23 Return to the main project view and create a new transition that points from the Guess
Number state to itself.
24 Double-click the transition. The transition is displayed expanded in the Designer panel.
25 In the Properties panel, in the DisplayName field, type "Try Bigger". This message is
displayed on the arrow, enabling you to run through your automation easier.
26 In the Condition section, type InitialGuess < RandomNumber. This verifies if the guess is
smaller than the random number.
27 In the Action section, add a Message Box activity.
28 In the Text field, type something similar to "Your guess is too small. Try a bigger number."
This message is displayed when the users guess is smaller than the random number.
29 Return to main project view and add a Final State activity to the Designer panel.
30 Connect a transition from the Guess Number activity to the Final State.
31 In the Properties panel, in the DisplayName field, type "Correct Guess".
32 In the Condition field, type InitialGuess = RandomNumber. This is the condition on which
this automation steps to the final state and end.
21
33 Double-click the Final State activity. It is displayed expanded in the Designer panel.
34 In the Entry section, add a Message Box activity.
35 In the Text field, type something similar to "Congratulations. You guessed correctly! The
number was " + [Link] + "." This is the final message that is to be
displayed, when the user correctly guesses the number.
36 Press F5. The automation is executed correctly
The final project should look as in the following screenshot.
OUTPUT
CONCLUSION
Thus, a State Machine workflow to compare user input with a random number was created.
22
5. UI AUTOMATION ACTIVITIES
Ex. No. 5
Date:
AIM:
THEORY
To get a clearer picture of how these three methods work, let’s create a simple project that writes
something in a Notepad window and switch between the three input methods.
1. Open a Notepad window.
2. In Studio, from the Basic Recording toolbar, start the automatic recorder.
3. Type something into the Notepad window.
4. Minimize the window and restore it.
5. Type something else in the Notepad window.
6. Press Esc two times. The automation is saved and displayed in the Designer panel. It should look
as in the following screenshot.
7. Move the activity that restores the Notepad window after the second Type Into one. We do this to
check if the type of input method selected can also write to Notepad in background mode.
8. From the drop-down of the second Type Into activity, select enter. A special key string is
displayed at the end of the previously-existing text.
23
9. Copy the special key string at the beginning of the sentence. This enables you to test special keys,
such as Enter that adds a new line in a text editor.
10. Run the workflow once with every input method. Note the differences:
The Default method – it does not automatically erase previously written text, supports special
keys, but writing in the background does not work;
The SendWindowMessagesmethod – works in the background, supports special keys, but it does
not erase pre-existing text (you have to manually select the Empty Field check box in
the Properties panel);
The Simulate Type/Click method – works in the background, but it automatically erases pre-
existing text, and does not support special keys.
24
Therefore, be careful to choose the method that best suits your needs. If special keys are a must,
you might want to avoid the Simulate Type/Click method, or if speed is what matters most, then
maybe Simulate Type/Click is the right one.
CONCLUSION
Thus, a process in the RPA platform using UI Automation Activities is built.
25
6. AUTOMATION PROCESS USING KEY SYSTEM ACTIVITIES
Ex. No. 6
Date:
AIM:
To create an automation process using key System Activities, Variables and Arguments.
THEORY
Types of Variables
Text Variables
A text or string variable is a type of variable that can store only strings. These types of variables
can be used to store any information such as employee names, usernames or any other string.
Note: All strings in UiPath® have to be placed in between quotes.
Example of Using a Text Variable
To exemplify how you can work with text variables, we are going to create a project that asks for
the user’s name, stores it and displays only the first letter of his name in the Output panel.
1. Create a sequence.
2. Create two simple string variables, FullName and FirstLetter.
26
12. Press F5. The What is your name? window is displayed.
13. Type your name in the text field and click OK. In UiPath Studio, in the Output panel, note that
the first letter of your name is displayed.
27
4. Add an Input Dialog activity to the Designer panel and connect it to the Start node.
5. In the Properties panel, in the Label field type "What is your name?".
6. Add a title and, in the Result field, add the Name variable.
7. Add another Input Dialog activity and connect it to the previous one.
8. In the Properties panel, in the Label field, type "What is your gender?".
9. Add a title and, in the Result field, add the Gender variable.
10. Add a Flow Decision activity to the Designer panel, and connect it to the second Input Dialog.
11. In the Properties panel, in the Condition field, type Gender = "Male" or Gender = "male". This
activity checks if the user is a male or female.
12. Add two Assign activities.
13. Connect one to the True branch of the Flow Decision activity.
14. In the Properties panel, in the To field enter the Male variable.
15. In the Value field, type True. This assigns the True value to the Male variable when the Gender =
"Male" or Gender = "male" condition is met.
16. Connect the second Assign activity to the False branch of the Flow Decision.
17. In the Properties panel, in the To field, enter the Male variable.
18. In the Value field, type False. This assigns the False value to the Male variable when
the Gender = "Male" or Gender = "male" condition is not met.
19. Add a new Flow Decision and connect the previously added Assign activities to it.
20. In the Properties panel, in the Condition field, type Male = True.
21. Add a Message Box activity and connect it to the True branch of the Flow Decision.
22. In the Properties panel, in the Text field, type Name + " is a " + Gender + ".". This message
displays the name of the user and its gender, if Male is true.
23. Add another Message Box activity and connect it to the False branch of the Flow Decision.
24. In the Properties panel, in the Text field, type Name + " is a " + Gender + ".". This message
displays the name of the user and its gender, if Male is false. The final project should look like in
the following screenshot.
28
25. Press F5. The automation is executed. Note that the final Message Box displays the message as
expected.
Number Variables
Number variables are also known as integer or Int32, and are used to store numeric information.
They can be used to perform equations or comparisons, pass important data, and many others.
Example of Using a Number Variable
To exemplify how you can work with number variables, we are going to create an automation that
asks the user for the year in which he or she was born and displays the age in a window.
1. Create a new sequence.
2. Create two Int32 variables, BirthYear and Age. The first stores the user’s birth year and the
second, the user’s age.
3. Add an Input Dialog activity to the sequence.
4. In the Dialog Title and Input Label fields, type an appropriate title and label.
5. In the Value entered field, add the BirthYear variable.
6. Add an Assign activity under the Input Dialog.
7. In the Properties panel, in the To field, add the Age variable.
8. In the Value field, type 2022 – BirthYear. This assigns the value of the subtraction (2022 minus
the user’s birth year) to the Age variable.
9. Add a Message Box activity under the Assign one.
29
10. In the Properties panel, in the Text field, type "Congratulations! You are " + [Link] + ".".
Note: The .ToString method converts the integer stored in the Age variable to a string and displays
it as such.
The final project should look as in the following screenshot.
11. Press F5. The automation is executed. Note that the Message Box displays your age, as
expected.
Array Variables
The array variable is a type of variable which enables you to store multiple values of the same type.
UiPath Studio supports as many types of arrays as it does types of variables. This means that you
can create an array of numbers, one of strings, one of boolean values and so on.
Example of Using an Array Variable
To exemplify how you can work with array variables, we are going to create an automation that
asks the user for his first and last name and age, stores the information in an array and then writes it
in a .txt file.
1. Create a new sequence.
2. Create three string variables, FirstName, LastName and Age, in which to store the information
gathered from the user.
3. Create an array of strings variable called NameAge.
30
4. Add an Input Dialog activity to the Designer panel.
5. Fill in the Dialog Title and Input Label fields to ask for the user’s first name.
6. In the Value entered field, type the FirstName variable. This variable stores the first name of the
user.
7. Add another Input Dialog activity under the previous one.
8. Fill in the Dialog Title and Input Label fields to ask for the user’s last name.
9. In the Value entered field, type the LastName variable. This variable is going to store the last
name of the user.
10. Add another Input Dialog activity under the previous one.
11. Fill in the Dialog Title and Input Label fields to ask for the user’s age.
12. In the Value entered field, type the Age variable. This variable is going to store the age of the
user.
Note: We use a string variable and not an integer to store the age, so that we do not have to convert
it later on, when we add it to the string array variable.
13. Add an Assign activity under the last Input Dialog.
14. In the Properties panel, in the To field, type the NameAge variable.
15. In the Value field, type {FirstName,LastName,Age}. This Assign activity enables you to store all
the values from the initial string variables in the NameAge one.
16. Add a Write Text File activity under the Assign one.
17. In the Properties panel, in the FileName field, type the path of the file you want to write to
between quotation marks, such as "%HOMEPATH%\Desktop\array_variable.txt".
Note: If the file does not exist at the provided path, it is created.
18. In the Text field, type NameAge(0) + " " + NameAge(1) + " " +NameAge(2) + " ".
Note: By adding the index number of the array items you can access their values and write them, in
this example, to a text file.
The final project should look as in the following screenshot.
31
19. Press Ctrl + F5 to run the project.
20. Navigate to the file provided at step 17 and double-click it. A Notepad window is displayed with
the information you added at step 20.
32
Date and Time Variables
The date and time variable is a type of variable that enables you to store information about any date
and time. This type of variable can be found in the Browse and Select a .Net Type window, under
the System namespace [Link]. For more information, see Browsing for .Net Variable
Types.
For example, they can be used to append dates to invoices or any other documents you may be
working with and are time-sensitive.
Example of Using a Date and Time Variable
To exemplify how you can work with a date and time variable, we are going to build an automation
that gets the current date and time, subtracts a specific amount of time and writes the result to a
Microsoft Excel spreadsheet.
1. Create a new sequence.
2. Create two DateTime variables, Today and LastTime.
3. Create a TimeSpan variable, called Span, and in the Default field type 1.02:10:04.
Note: The default value attributed to theSpan variable uses the [Link]:mm:ss format.
4. Add an Assign activity to the Designer panel.
5. In the Properties panel, in the To field, add the Today variable.
6. In the Value field, type Now. This gives you the date and time when the project is executed, in
the dd/MM/yyyy and hh:mm:ss formats.
7. Add another Assign activity under the previous one.
8. In the Properties panel, in the To field, add the LastTime variable.
9. In the Value field, type [Link](Span). This is going to subtract the default value of
the Span variable from the current date, stored in the Today variable.
10. Add an Excel Process Scope activity under the last Assign one. This activity opens or reuses Excel
processes, loads the Excel project settings, and applies them to the associated Excel file.
11. Add a Use Excel File activity inside the Excel Process Scope activity.
Note: Use the Manage Packages feature to download the Excel activities, if you do not already
have them installed.
12. In the Workbook path field, type the path of the Excel file you want to write to, between
quotation marks. In our case, "%HOMEPATH%\Desktop\urgent_invoice.xlsx".
Note: If the file does not exist at the provided path, it is going to be created.
13. Add a Write Cell activity in the Use Excel File activity.
14. In the What to write field, type [Link]. This transforms the value of
the LastTime variable to a string and writes it to the coordinates previously given.
15. On the right side of the Where to write field, select Plus > Excel > Indicate in Excel.
16. Inside the Excel file, indicate the cell in which you want to write (in our case, "E3").
Click Confirm after indicating the cell.
The final project should look as in the following screenshot:
33
17. Press F5. The automation is executed.
18. Navigate to your Excel file and double-click the cell in which you added the date. Note that the
time and date information is displayed in the cell you pointed towards.
36
24. Press F5. Your automation is executed.
25. Double-click the final Excel file. Note that the copied information is available, and correctly
updated.
Using Arguments
Due to the nature of arguments, you are going to use them a lot in relation with the Invoke
Workflow File and Launch Workflow Interactive activities. They can be found in
the Activities panel, under Workflow > Invoke and they enable you to browse for a project, and
import and edit their arguments.
Example of Using an Argument
To exemplify how to use an argument in an automation with an Invoke Workflow File activity,
we are going to create two separate sequences. A very simple one in which to assign a value to an
argument, and a second that invokes it and displays the value in a message box.
1. Create a new sequence.
2. In the Arguments panel, create an argument, out_StoreValue.
3. From the Direction list, select Out, and do not change the Argument Type from String.
4. Add an Assign activity to the Designer panel.
5. In the Properties panel, in the To field, add the out_StoreValue argument.
6. In the Value field, type a string, such as "How does one use an argument?".
The first project should look like in the screenshot below.
37
7. Create a new sequence.
8. Create a string variable, FinalValue.
9. Add an Invoke Workflow File activity to the Designer panel.
10. On the activity, click the Browse (…) button and browse for the previously created sequence.
11. Click Import Arguments. The Invoked Workflow’s Arguments window is displayed. Note that
the argument of the first sequence is displayed here.
12. In the Value field, add the FinalValue variable and click Ok. The argument is imported and the
value from it is going to be stored in the current project through the FinalValue variable.
13. Add a Message Box activity under the Invoke Workflow File.
14. In the Properties panel, in the Text field, type FinalValue + " This is how", for example.
The second automation should look like in the screenshot below.
15. Press Ctrl + F6 in the second sequence. The automation is executed correctly and the message box
displays the desired text
CONCLUSION
Thus, the automation process using key System Activities, Variables and Arguments was created.
38
7. AUTOMATION USING SYSTEM TRIGGER
Ex. No.:7
Date:
AIM:
To implement Automation using System Trigger.
THEORY
39
The sample project contains the following files:
Workflow Tutorial
Too long to [Link] Step 7: Create form when customer is on hold for too long
on switch [Link] Step 10: Create workflow for switching to call on hold
Step 1: Create the Main workflow
This workflow represents the project’s entry point, and the workflow that starts all triggers.
1. Add a Build Data Table activity, and build a table with the following columns:
a. Caller (String) – to store the customers phone numbers.
b. Since (DateTime) – to store the time when you answer a customer call.
c. Ignore (Boolean) - to record if the customer call was ignored.
40
2. Store the Data Table inside a global variable named callers
3. Add a Run Local Triggers activity, to start all the triggers inside the project at the same time.
41
Step 3: Create workflow for incoming call
This workflow represents the scenario when there’s an incoming customer call (on incoming
[Link]).
1. Add an Application Event Trigger for the incoming call app event.
a. Event type – Appeared
b. Scheduling mode – Sequential
2. Add a Use Application/Browser activity to focus on the Contact Center agent app and fetch
information about the customer.
a. Add a Get Text activity and indicate the phone number. Save it to a global variable
named incomingCaller.
b. Add a Show Form activity to display the Customer Data form using the information that
you previously fetched. Set the Instance Name as incomingCaller. In
the Arguments collection, pass in the customer’s phone number:
3. For this example, query additional client data from a Data Service entity. Save the queried data
inside a local variable named clientData.
42
4. Add a Set Form Values activity, to add the previously fetched client data to the same Customer
Data form instance. For this example, pass arguments for name, invoice number, and payment
status.
5. To personalize the form instance, change its title based on the queried client data, at runtime, by
adding a Change Form Properties activity.
a. Select Form – Customer Data
43
b. Title – [Link]
Step 4: Create workflow for current call
This workflow represents the scenario when you answer a customer call and you’re currently
talking to them (on current [Link]).
1. Add an Application Event Trigger activity for the current call event.
a. Event type – Appeared
b. Scheduling mode – Concurrent
2. Add a Use Application/Browser activity to focus on the Contact Center agent app and fetch
information about the customer.
a. Add a Get Text activity and indicate the phone number. Save it to a global variable
named caller.
b. Add the customer that is currently on call to the callers global variable, where the Data
table from the Main workflow is stored.
c. Add a Bring Form to Foreground activity to bring the Customer Data form to the front,
so you can focus on the customer that you’re talking to. Add a global variable
named caller as the Instance Name of the form.
Step 5: Create workflow to ignore customer call
This workflow represents the scenario when the contact center agent clicks Ignore on an incoming
44
call from a customer (on ignore call).
1. Add a Click Trigger activity for the Ignore button.
45
Step 6: Create workflow to resume customer call
This workflow represents the scenario where the contact center agent resumes the call with a
customer that was put on hold (on resume click).
1. Add a Click Trigger activity, for the Resume button.
47
Step 9: Create workflow for ignoring call on hold
This workflow represents the scenario where the contact center agent clicks Ignore in the Too
long to hold form.
1. Add a Form Event Trigger activity, to trigger other activities when the Ignore button is clicked.
a. Select Form – Too long to hold.
b. Event – Ignore clicked.
2. Add a Get Form Values activity, to fetch the phone number of the customer that stayed too long
on hold.
3. Add the phone number of the customer that you fetched at step 2, in the callers data table.
48
4. Add a Close Form activity to close the Too long on hold form after the Ignore button is clicked.
Step 10: Create workflow for switching to call on hold
This workflow represents the scenario when the contact center agent clicks Switch in the Too
long to hold form.
1. Add a Form Event Trigger activity, to trigger other activities when the Switch button is clicked.
a. Select Form – Too long on hold
b. Event – Switch clicked
2. Add a Get Form Values activity, to fetch the phone number of the customer that stayed too long
on hold.
3. Add a Close Form activity, to close the Too long on hold form.
49
4. Add a Use Application/Browser activity to focus on the contact center agent app and resume the
call with the customer from the Too long on hold form.
a. Add an If activity that:
i. Clicks Resume in the contact center agent app if the customer on hold is available
in the contact center agent app, using a Click activity.
ii. Selects the phone number of the customer you want to switch to, using a Select
Item activity.
50
Result
The result of this automation is:
Display forms on all customers that are calling the contact center at the same time.
Display actionable forms. For example, these could allow the contact center agent to delay a
payment or change the address for a specific customer.
Display forms based on the customer that's currently on call. This involves bringing to front the
form on that specific customer.
Keep displaying form files, even if the customers hung up. This prevents the loss of any customer
data
CONCLUSION
51
8. AUTOMATE LOGIN TO (WEB)EMAIL ACCOUNT
Ex. No.:8
Date:
AIM:
To create a bot using UiPath Studio for the automatic login to (web)email account.
THEORY
To exemplify how you can use the web recording and understand how it works, let’s create a project
that enables you to go to UiPath® Academy and sign in to your account with your email address.
Note: It is recommended to run your web automations on Internet Explorer 11 and above, Mozilla
Firefox 50 or above, or the latest version of Google Chrome.
1. Open an Internet Explorer instance and navigate to [Link]
2. In UiPath Studio, create a new sequence.
3. Add an Open Browser activity to the Designer panel.
4. Select the activity and, in the Url field, write [Link]
5. In the Design tab, in the Wizards group, select Recording > Web. The Web Recording toolbar
is displayed and the main view is minimized.
6. Click Record. The automating recording process starts.
7. In Internet Explorer, click Login/ Sign up, and then select Continue with Email.
8. Enter your email address and password.
Note: When the Type Into pop-up is displayed for your password, make sure that you select
the Type Password check box. Besides the Type Into activity, another activity, Get
Password, is created in the sequence. This activity hides the password behind asterisks (*)
and stores it in a string variable.
9. Click Login and press Esc two times. The recording is saved and displayed in the Designer panel.
52
10. Close Internet Explorer manually.
11. In Studio, add a Close Tab activity as the last activity in the Attach Browser container.
12. Press F5. The automation is executed as expected
CONCLUSION
Thus, a bot using UiPath Studio for the automatic login to (web) email account was
created.
53
9. AUTOMATIC RECORDING WITH BASIC AND DESKTOP ACTIVITIES
Ex. No.: 9
Date:
AIM:
THEORY
6. Type a custom text and press Enter. The string is displayed in Notepad.
Note: Select the Empty field check box to delete previously existing text. You can also select this option
after the recording is finished, in the Properties panel of the Type Into activity.
7. From the Format menu, select Font. The Font window is displayed.
8. Select a different font style, such as Bold Italic, and click OK.
9. Press Esc two times. You exit the recording view and the saved project is displayed in
the Designer panel.
10. Press F5. The automation is executed as expected.
The two screenshots below display part of the resulted projects for the Basic (first screenshot)
and Desktop (second screenshot) automatic recordings. As you can see, the second one generates
an Attach Window container, while the Basic one does not.
54
Desktop recorder - The top level window selector from the Attach Window container:
Desktop recorder - The partial selector for the Type Into activity:
Basic recorder – The full selector for the Type Into activity:
55
You can also customize and parameterize this project after it is recorded. To exemplify this, let’s
take the Desktop recording example and build upon it.
For example, let’s assume that we want to extract the number of an invoice from an Excel file,
copy it to a new Notepad application which we close in the end.
1. Add an Excel Application Scope activity before the recording sequence.
2. In the WorkbookPath field, type the path of the Excel file you need to extract information from.
3. Add a Read Cell activity in the Excel Application Scope.
4. In the Properties panel, add the Sheet Name and Cell information from the Excel file used.
5. Right-click in the Result field, and click Create Variable. The Set Name field is displayed.
6. Fill in the name, such as InvoiceNumber, and press Enter. The variable of type 'GenericValue' is
created and displayed in the Result field and Variables panel.
7. Change the scope of the variable to Main.
8. In the recording sequence, in the Type Into activity, in the Text field, add
the InvoiceNumber variable. This copies the value stored in the variable to Notepad.
What was added to the project should look as in the following screenshot.
9. Add an Open Application activity between Excel Application Scope and the Recording sequence.
10. Use Indicate window on screen to select the active Notepad window.
11. Place the Recording sequence inside the Open Application activity.
12. Add a Close Application activity after Open Application.
13. Use Indicate window on screen again to select the active Notepad window to be closed.
14. Make sure the OffsetX and OffsetY properties (Cursor Position) are empty.
What was added to the project should look as in the following screenshot.
56
15. Press F5. The automation is executed as expected.
Note: To ensure that the workflow execution ends, close the Save Notepad window.
CONCLUSION
Thus, a bot for automatic recording of basic and desktop activities was created.
57
10 SCRAPING DATA FROM WEBSITE
Ex. No.:10
Date:
AIM:
THEORY
To better understand how you can take advantage of the data scraping functionality, let's
create an automation project that extracts some specific information from Wikipedia and writes it
to an Excel spreadsheet. You can use this type of automation in different scenarios, such as
extracting lists of products and their prices from e-commerce websites.
Let’s say you want to start reading up on economics and you want to get a list of Wikipedia
articles on the subject, together with their URLs, and the additional information that is provided in
the search results for each article. You can do the following:
1. Open Internet Explorer and navigate to [Link].
2. In the Search Wikipedia box, type "economics", then click "containing... economics" in the drop-
down that appears. A web page opens displaying the search results.
3. In Studio, create a New Blank Process.
4. From the Activities panel, add an Open Browser activity to the Designer panel and, in
the Url field, paste the URL of the web page with the search results. In our example, the URL
is: "[Link]
xt=1&ns0=1".
5. In the Design ribbon tab, in the Wizards group, click Data Scraping. The Extract Wizard is
displayed.
6. Following the wizard, select the first and last items on the web page. The Configure
Columns wizard step is displayed and the fields you selected are highlighted in the web browser.
7. Select the Extract URL check box and change the name of the column headers to something
relevant, for example "Article Title" and "URL".
8. Click Next. A preview of the data is displayed in the Preview Data wizard step. Note that because
the Wikipedia page uses relative URLs, the URL column contains relative URLs as well. You can
correct this in the Excel output after the project is executed by adding the string
"[Link] at the beginning of each cell in the URL column.
58
9. Click the Extract Correlated Data button to extract additional information about the articles.
The Extract Wizard starts again.
10. Following the wizard again, indicate the information about the size and date of the last edit that is
available for each article. The Configure Columns step is reached again.
11. Change the name of the new column header to "Additional Information" and click Next. The data
is displayed in the Preview Data wizard step. Optionally, you can change the order of the
columns by dragging them in place.
12. In the Maximum number of results type 60. The Wikipedia search lists 20 results per page and,
for our example, we want to extract the first three pages of search results.
13. Click Finish. The Indicate Next Link window is displayed prompting you to indicate
the Next button or arrow to click if the data spans more than one page.
14. Click Yes and select the next 20 button below the search results in Wikipedia. The project is
updated and a Data Scraping sequence is displayed in the Designer panel.
A DataTable variable, ExtractDataTable has been automatically generated.
15. In the Variables panel, change the scope of the automatically generated ExtractDataTable variable
59
to Sequence. Do this to make the variable available outside of its current scope, the Data
Scraping sequence.
16. Add an Excel Application Scope activity under the Data Scraping sequence.
17. In the Properties panel of the Excel Application Scope activity, in the WorkbookPath field,
type "web_scraping.xlsx". Upon project execution, a file with this name is created in the project
folder to store data from the scraping. Alternatively, you can specify a file that already exists on
your machine.
18. In the Do sequence of the Excel Application Scope activity, add a Write Range activity and in
the Properties panel:
In the DataTable field, add the ExtractDataTable variable.
Select the AddHeaders check box to include the column names in the output.
The final project should look as in the following screenshot:
60
CONCLUSION
61
11. GLOBAL EXCEPTIONAL HANDLER
Ex. No.:11
Date:
AIM:
THEORY
The Global Exception Handler is a type of workflow designed to determine the project’s
behavior when encountering an execution error. Only one Global Exception Handler can be set per
automation project.
The Global Exception Handler has two arguments, that should not be removed.
The first argument is errorInfo with the In direction and it stores information about the error that was
thrown and the workflow that failed. The level of the error to be logged can be set in the Log
Message activity.
Note: Use the ActivityInfo property for errorInfo to get the name of the activity which threw the
exception and view it in the Output panel.
The second argument, result has the Out direction and it is used for determining the next behavior of the
process when it encounters an error. The following values can be assigned to the result argument:
Continue - The exception is re-thrown.
Ignore - The exception is ignored, and the execution continues from the next activity.
Retry - The activity which threw the exception is retried. Use the RetryCount method
for errorInfo to count the number of times the activity is retried.
Abort - The execution stops after running the current Global Exception Handler.
To control the workflow’s behavior in case of an error, the Global Exception Handler retries the activity
three times and then aborts with an error message.
Handling Errors During Debugging
When an exception is detected during debugging, the activity which faulted is highlighted, the execution
is paused, and the exception's type and details are mentioned in the Locals and Call Stack panels.
Debugging actions like Continue, Stop, Retry, Ignore, Restart and Slow Step are available in the
ribbon. Ignore is used for continuing the execution from the next activity.
The Retry button retries to execute the current activity, without the Global Exception Handler stepping
in. The Continue action runs the Global Exception Handler, taking into consideration the previously
chosen values for the result argument, either Continue, Ignore, Retry or Abort.
In the case of nested activities, the Global Exception Handler executes for each activity in the call stack.
However, it does not execute for activities directly encapsulated in a Try Catch, unless they're contained
in an activity.
PROCEDURE
The following example showcases the project’s behavior when an exception is thrown during execution.
The automation project is set to type some text in a TXT file and then close the application, but not before
saving the file.
Creating the Workflow
1. Create a Blank Process by following the steps in the Creating a Basic Process page.
2. Open Notepad and save a document on your machine. You can name the file [Link].
3. In the Activities panel, search for Use Application/Browser and drag it to the Designer panel.
4. In Use Application/Browser:
62
Click Indicate application to automate, and then move the mouse pointer to the Notepad
window. When the window is highlighted, click anywhere inside it.
The Use Application/Browser activity is updated, the path is added to the Application path field, and a
screenshot of the window appears inside the activity.
In the Properties panel, select the Always option for the Close property. This ensures
Notepad is closed after the automation runs.
5. Add a Type Into activity in the Use Application/Browser activity’s Do container. Click Indicate
in App to select the Notepad window, and add enter a text between quotation marks in the Type
this field. This activity writes the text into Notepad.
6. From the Activities panel, add a Keyboard Shortcuts activity to the workflow. Indicate the
Notepad window, then select Record shortcut and press Ctrl + S to record the key combination
that saves the file after the text was typed in.
The resulted workflow should look like this:
CONCLUSION
64
12. TEXT AUTOMATION
Ex. No.: 12
Date:
AIM:
To create the automation of a process using text recognition activities.
THEORY
4. In the Design ribbon tab, in the Wizards group, click Data Scraping. The Extract Wizard is
displayed.
5. Click Next, select a cell from the Table for recent years on the web page, and then
click Yes when prompted to extract the data from the whole table. A preview of the data is
displayed in the Preview Data wizard step.
6. In the Maximum number of results field, type 200, and then click Finish. We need to do this
because our table contains a large number of entries and we want to make sure the entire table is
extracted.
7. In the Indicate Next Link window, click No because our data does not span multiple pages. The
process is updated and a Data Scraping sequence is displayed in the Designer panel. In this
sequence, an Attach Browser activity is generated, containing an Extract Data activity that
retrieves the table contents. The data is stored in the automatically
generated DataTable variable ExtractDataTable.
65
8. Create a new String variable called GetText with the scope set to Sequence.
9. Add an Output Data Table activity in the Do container of the Attach Browser activity, after
the Extract Data activity. This activity converts the table data to a string that can be displayed in
the Output panel.
10. Select the Output Data Table activity, add the ExtractDataTable variable in the DataTable field,
and the GetText variable in the Text field.
11. Add a Write Line activity after the Output Data Table one, and add the GetText variable in
the Text field. In this way, the data extracted from the table is written in the Output panel.
66
12. Add a Delay activity after the Data Scraping sequence and set the Duration property
to 00:00:03 (3 seconds). This delay has the purpose of allowing the web page to become fully
loaded before the next activity is performed.
13. In the Variables panel, create a new variable, called GetExists, and set the type to Boolean and
the scope to Sequence.
14. Add a Text Exists activity after the Delay activity and type "Euro" in the Text field. Click
the Indicate on screen button and then click the table cell with Euro in the previously opened
browser page. A selector is generated for the UI element. In this case, the activity checks if the
word Euro is found in the table.
67
15. Select the Text Exists activity and then, from the Properties panel, insert the GetExists variable
in the Exists field.
16. Add an If activity after the Text Exists activity and insert the GetExists variable in
the Condition field.
17. Add two Message Box activities, one in the Then section, the other in the Else section of
the If activity.
Select the Message Box activity in the Then section and type "Euro appears in the
table." in the Text field. This message is displayed if the word Euro is found in the table.
Select the Message Box activity in the Else section and type "Euro does not appear in the
table." in the Text field. This message is displayed if the word Euro is not found in the
table.
Your workflow should look like this:
18. Press F5 to execute the project. Note that the data from the recent exchange rates table is extracted
and displayed in the Output panel, and a message box is displayed, stating whether or not the
word Euro was found.
CONCLUSION
Thus, the automation of a process using text recognition activities was created.
68
13. OCR AND IMAGE AUTOMATION
Ex. No.:13
Date:
AIM:
To create the automation of a process using OCR and Image recognition activities.
THEORY
Since OCR and Image automation usually go hand in hand due to the difficulty of automating in
virtual environments, we created an automation that retrieves an employee’s email and the invoice
number from a scanned invoice. Afterwards, it inputs the information into a dummy expense app
(ExpenseIt) on a virtual machine, and compares the total from the invoice with the one in the app:
1. Create a new Sequence.
2. Open the scanned invoice, the invoice used in the example can be downloaded here. We
recommend using Adobe Acrobat Reader for compatibility reasons.
3. As explained here, scrape the employee’s email by using OCR technology. A container, Attach
Window renamed in this example to Attach PDF, that holds the selector and lets all the other
activities know where to perform actions is generated. In it, there are a Find Image, that selects the
anchor for relative scraping, a Get OCR Text that retrieves the email address of the employee, and
two Set Clipping Region activities: one to translate the first clipping region to the second one, and
the other to reset the clipping region.
4. In the Variables Panel, create a new GenericValue variable, called email.
5. Enter the email variable into the Text property of the previously generated Get OCR
Text activity.
6. Name the above sequence Read Email.
7. As explained here, scrape the invoice number by using OCR technology. The recorder generates a
69
container, Attach Window renamed in this example to Attach PDF, that holds the selector and
lets all the other activities know where to perform actions. Inside the container, there are a Find
Image, that selects the anchor for relative scraping, a Get OCR Text that retrieves the invoice
number of the employee, and two Set Clipping Region activities, one to translate the first clipping
region to the second one, and one to reset the clipping region.
8. In the Variables Panel, create a new GenericValue variable called invoiceNo.
9. Enter the invoiceNo variable into the Text property of the previously generated Get OCR
Text activity.
10. Name the above sequence Read Invoice Number
11. As explained here, scrape the employee’s total expenses by using OCR technology. The recorder
generates a container, Attach PDF, that holds the selector and lets all the other activities know
where to perform actions. Inside it, there are a Find Image, that selects the anchor for relative
scraping, a Get OCR Text that retrieves the total expenses of the employee, and two Set Clipping
Region activities, one to translate the first clipping region to the second one, and one to reset the
clipping region.
12. In the Variables Panel create a new GenericValue variable called totalValue.
13. Enter the totalValue variable into the Text property of the previously generated Get OCR
Text activity.
14. Name the above sequence Read Total Expenses.
70
15. Create a shortcut for the ExpenseIt application on the desktop of the virtual machine.
16. Right-click the shortcut and select Properties from the context menu. The Shortcut
Properties window is displayed.
17. On the Shortcut tab, in the Shortcut Key field, assign a hotkey to the app by pressing the keys
you want to use, for example Alt + Ctrl + T.
18. Start a new recording session by opening the Citrix Recording Wizard.
19. Record sending the virtual machine window the hotkey that was previously assigned to the
application’s shortcut.
20. Use Relative Scraping to click the Email field in the ExpenseIt application based on its label’s
location.
21. In the Email field of the ExpenseIt application, enter the email variable.
22. Use Relative Scraping to click the Employee Number field in the ExpenseIt application based
on its label’s location.
23. Add the invoiceNo variable in the Employee Number field of the ExpenseIt application.
24. Click Save & Exit in the Recording Wizard. The recorder generates an Attach
Window container that holds the selector and lets all the other activities know where to perform
actions. It contains a Send Hotkey activity, a Click Image activity that clicks the field to the right
71
of the Email label, a Type Into activity that types the email variable into the field, a Click
Image activity that clicks the field to the right of the Employee Number label and a Type
Into activity that types the invoiceNo variable into the field.
25. Start a new recording session by opening the Citrix Recording Wizard.
26. Record clicking the Create Expense Report button in the ExpenseIt application.
27. Use Relative Scraping to scrape the value that corresponds to the Total Expenses ($) label.
28. Click Save & Exit in the Recording Wizard. The recorder generates an Attach
Window container that holds the selector and lets all the other activities know where to perform
actions. It contains a Click OCR Text that clicks the Create Expense Report button, a Find
Image that sets the anchor for the relative scrape, a Get OCR Text that retrieves the total expense
value and two Set Clipping Region activities, one to translate the first clipping region to the
second one, and one to reset the clipping region.
72
29. In the Variables Panel, create a new GenericValue variable called totalExpense.
30. Enter the totalExpense variable in the Text property field of the previously generated Get OCR
Text activity.
31. Drag an If activity after the last generated recording sequence.
32. Set the Condition property of the If activity to totalExpense = totalValue. This means that the
automation checks if the total value of the invoice equals the value in the expense application.
33. Drag a Message Box activity to the Then section of the If activity.
34. In the Text property field of the Message Box, write a message that states the values are equal,
hence the invoice is correct.
35. Drag a Message Box activity to the Else section of the If activity.
36. In the Text property field of the Message Box, write a message that states the values are not
equal, hence the invoice is incorrect.
73
37. Press F5 to run the automation. Note that the automation inputs the employee data from the
scanned invoice into the ExpenseItapplication, compares the total value of the invoice with the
total expenses registered, and informs the user if the values are equal or not.
Since this automation involves connecting to a virtual machine, uploading the original project is
redundant, as it would not work on another machine. We encourage you to build your own project by
following the above steps
CONCLUSION
Thus, the automation of a process using OCR and Image recognition activities.
74