Ui Path Material
Ui Path Material
Material
A software 'robot' is a software application that replicates the actions of a human being
interacting with the user interface of a computer system.
For example, the execution of data entry into an ERP system - or indeed a full end-to-end
business process - would be a typical activity for a software robot.
The software robot operates on the user interface (UI) in the same way that a human
would; this is a significant departure from traditional forms of IT integration which have
historically been based on Application Programming Interfaces (or APIs) - that is to say,
machine-to-machine forms of communication based on data layers which operate at an
architectural layer beneath the UI.
Automation Anywhere
UIPath
Blue Prism
Open span
Introduction
UiPath is a complete solution for application integration, and automating third-party
applications, administrative IT tasks and business IT processes. One of the most important
notions in UiPath is the workflow.
Sequences - suitable to linear processes, enabling you to smoothly go from one activity
to another, without cluttering your workflow.
Flowcharts - suitable to a more complex business logic, enabling you to integrate
decisions and connect activities in a more diverse manner, through multiple branching
logic operators.
State Machines – suitable for very large workflows; they use a finite number of states in
their execution which are triggered by a condition (transition) or activity.
1. Start - create a project or open a previously created one, switch to a Beta or Stable
version, update Studio, go to the online documentation or submit a request. By default,
projects are created in C:\Users\Username\Documents\UiPath.
3. Execute - run or stop projects, start the debug process, slow down steps and open logs.
The Quick Access Toolbar is located by default on the title bar, above the ribbon, yet you
can easily move it bellow.
It provides shortcuts for the most used commands, and you can add new ones to it by right-
clicking a desired button and selecting the Add to Quick Access Toolbar option.
The Main panel displays your current workflow or workflows, enables you to make
changes to them, and provides quick access to variables, arguments and imports.
The Activities panel provides quick access to all available activities that can be dragged to
the current workflow.
It features a search box, and the Show Activities list enables you to hide or show
the Favorites, Recent and Available folders of activities.
The Manage Packages functionality enables you to install additional activity packages.
It includes, by default, multiple samples and snippets, and you can add your own by clicking
the Add Folder button and selecting a directory from your hard drive.
Note: If you add empty folders they are not going to be displayed.
The Project Panel
The Project panel enables you to view the contents of the current project and open the file
location in a Windows Explorer window.
You can connect to a team project from the Team Foundation Server (TFS) and create a
new project directly from this panel.
Version control is available through the context menu, and it is also possible to view the
history of a selected file.
The Properties panel is contextual and enables you to view and change the properties of a
selected activity.
The properties can be sorted alphabetically, while the search box enables you to look for a
specific one.
The Outline panel displays the workflow hierarchy, all available variables and nodes, and
includes a search box. This enables you to easily navigate large workflow.
You can highlight activities in this panel by selecting them in the Main panel, or you can go
to a specific activity by selecting it in the Outline panel.
The Output panel enables you to display the output of the Log Message or Write
Line activities, as well as the logs when the debug mode is activated.
The logs are more or less detailed, depending on the option you selected in
the Execute tab, under Options > Logging Level.
You can hide or show timestamps, errors, warnings, information or trace data, by clicking
the buttons in the panel‟s header. Additionally, the Clear All button erases all info
displayed in the Output panel.
Keyboard Shortcuts
The complete list of keyboard shortcuts for UiPath Studio:
Ctrl + D - Ignores the activity that is currently selected by placing it into a Comment Out
container.
Ctrl + E - Removes the activity from the Comment Out container it was placed in.
Ctrl + T - Places the activity inside the Try section of a Try Catch activity.
Ctrl + Shift + N - Creates a new Blank Project.
Ctrl + N - Creates a new Sequence Diagram in the current project.
Ctrl + O - Enables you to open a previously created workflow. Only .xaml files are
supported.
F1 - Enables you to access a help topic associated with the currently selected element.
Ctrl + L - Opens the folder where the Log files are stored.
Shift + F9 - Removes all the breakpoints in the currently opened workflow.
Ctrl + S - Saves the currently opened workflow.
Ctrl + Shift + S - Saves all the workflows that are currently open.
F5 - Runs the workflow that is currently open.
F7 - Runs the currently opened workflow in debug mode.
F8 - Checks the currently opened workflow for validation errors.
F9 - Marks the selected activity with a breakpoint.
F10 - When debugging, skips the execution of a block of activities in the currently selected
workflow.
F11 - When debugging, enables you to step into a block of activities and executes the first
one.
Pause - Pauses the execution of the current workflow, in both normal and debug mode.
F12 - Stops the execution of the current workflow, in both normal and debug mode.
You can choose between a Stable or Beta version with the help of two radio buttons.
However, note that you are required to restart the application for the change to take effect.
When a new Studio version is available, be it Stable or Beta, an Update Available link is
displayed. To update, do the following:
1. Click the Update Available link. A window is displayed with the new available update.
2. Click the Install button. Note that the download has started.
3. After the download is complete, go through the installation wizard. Studio is restarted
and the fixes and/or enhancements are available to you.
1. In the Setup ribbon tab, from the Setup Extensions menu, select Chrome. The Chrome
Web Store is opened in Google Chrome.
4.
1. Click the Side Navigation Bar > Settings. The Settings page is displayed.
2. In the Extensions tab, navigate to the UiPath extension.
3. Under the UiPath Extension, select the Allow access to file URLs check box.
1. Click the Windows Start button and type cmd in the search field.
2. Right click on Command Prompt and run it as administrator.
3. Change the directory to the UiPath installation folder (cd C:\Program Files
(x86)\UiPath Studio\UiPath).
4. Run the SetupExtensions file by typing SetupExtensions.exe/chrome. The Chrome Web
Store is opened in Google Chrome.
5.
6. Click the Add to Chrome button. A confirmation dialog box is displayed.
7. Click the Add extension button. The extension is now installed.
1. In the Setup ribbon tab, from the Setup Extensions menu, select Firefox. A
confirmation pop-up is displayed in Firefox.
2. Click the Install button. A confirmation dialog box is displayed. The extension is now
installed.
1. Click the Windows Start button and type cmd in the search field.
2. Right click on Command Prompt and run it as administrator.
3. Change the directory to the UiPath installation folder (cd C:\Program Files
(x86)\UiPath Studio\UiPath).
4. Run the SetupExtensions file by typing SetupExtensions.exe/firefox. A confirmation
pop-up is displayed in Firefox
5. Click the Install button. A confirmation dialog box is displayed. The extension is now
installed.
Additionally, hovering over the TFS and/or SVN button displays the URL of the repository.
Note: You cannot connect to both TFS and SVN, in the same time.
2012
2013
2015
Express 2012
Express 2013
Express 2015
Note: Due to Microsoft limitations, the 2015 and none of the Express TFS versions do not
permit you to create new projects.
Connecting to TFS
1. On the Project panel, click Connect Project to a Source Control > TFS > Connect to
Team Project. The Connect to Team Foundation Server window is displayed.
3. Click the Add The Add Team Foundation Server window is displayed.
1. On the Project panel, click Connect Project to a Source Control > TFS > New
Note: Due to Microsoft limitations, the 2015 and none of the Express TFS versions do
not permit you to create new projects.
3. Fill in the Project Name and Project Description fields, select a Process Templateand
click OK. A confirmation message indicating the new project has been created is
5. Click OK. The new project that has been created is displayed in the Projects panel, and
you are automatically connected to the project.
Connecting to SVN
1. On the Project panel, select Connect Project to a Source Control > SVN > Connect to
Project button. The Connect towindow is displayed
2. Insert the Repository URL of your SVN server into the text field. Selecting the Use
Credentialsbox will enable you to insert your account User and Password. Click Your
project is now connected to SVN.
3. Enter the Repository URL of your SVN server and select the Use Credentials check
box. TheUser and Password fields are displayed.
Fill in the user and password information, and click OK. You are now connected to SVNand
the Connect Project to a Source Control button is now changed to SVN.
Once your project is connected to either TFS or SVN, right-clicking any file or folder in
the Project panel opens a context menu that contains the following options:
Option Description
Enables you to rename the selected file or folder, and opens the Rename
Rename
Item window.
Uploads the selected item to the TFS/SVN server. This option is not
Add
available, if the item was previously uploaded to the server.
Get Latest Downloads the latest version of the selected item from the TFS/SVN
Version server.
Displays the Check In Changes window and enables you to upload the
Check In
selected item to the server as the newest version.
Displays the Undo Pending Changes window and enables you to Revert
Undo
the changes done to the project.
Import Imports .xaml files to the project. This option is only available when
Workflows selecting a directory.
For complex issues, more details about your automation are needed. To gather them,
tracing must be enabled.
In UiPath Studio, tracing generates an .etl file. It contains binary log data at the trace level,
such as disk accesses or page faults, and is used to log high-frequency events while tracking
the performance of an operating system. To enable tracing, do the following:
1. In the system tray, click the UiPath Robot button. The UiPath Robot window is
opened.
2. Click Advanced > Settings. The Settings window is displayed.Click the Start
Tracing button.
1. In Event Viewer, in the Actions panel, click Open Saved Log. The Open Saved
Log window is displayed.
2. Browse for the trace log file generated and click Open. The file is displayed in the left
panel, under Saved Logs.
3. Select the file. Note that the contents of the logs are
displayed.
1. On the Start tab, under the New section, click Blank. The New Project window is
displayed.
2. In the Name field, type the name of your project, such as Hello, and click Create. A new
project is saved with the chosen name on the hard drive.
3. From the Activities panel, drag a Flowchart activity to the Main panel
4. Add an Input Dialog activity.
5. Right-click the activity and click Set as Start Node. The activity is connected to
the Start node.
6. On the Design tab, select Create Variable > Text to create a string variable in which to
store the user‟s name, called name, for example.
7. On the Properties panel, under the Input section, add a Label for the activity, such as
"Type your name," and a Title, such as "Hello, world!.".
8. Under the Output section, in the Result field, add the variable created at step 5.
9. Add a Message Box activity to the Main panel and connect it to the existing Input
Dialog activity.
10. Make sure that the Message Box activity is selected. The Properties panel is updated
accordingly.
11. Under the Input section, add a Caption such as “Hello,” and in the Text field add a
string and the previously created variable, such as “Hello”+name.
13. Click Run on the Design tab or press F5. The workflow is executed. The Hello
World window is displayed, prompting you to input your name.
14. Type your name in the field and press OK. The Hello window with the name previously
added is displayed.
However, this workflow has a small flaw because, when prompted to add your name, you
can leave the field blank. This also causes the Hello window to be empty.
To fix this problem and other similar ones, it is good practice to validate fields. You can do
this with the Flow Decision or If activities that enable you to verify if a certain condition
was met.
1. Select the arrow between the Input Dialog and the Message Box activities and press
Delete. The arrow is deleted.
Logging enables you to display details about what is happening in your workflow in
the Output panel. This in turn makes it easier for you to debug a workflow.
Breakpoints enable you to pause the execution of a workflow so that you can check its state
at a given point.
1. Select the True branch between the Input Dialog and Flow Decision activities, and
press Delete. The True branch has been deleted.
2. Add a Log Message activity next to the Flow Decision.
3. Connect the Log Message activity to the True branch of the Flow Decision and to
the Input Dialog activity. The workflow should look as in the following screenshot.
7. On the Execute tab, in the Debug group, from the Optionsmenu, select Logging Level >
Verbose. This means that the logs that are going to be displayed in the Output panel
are going to be explicit.
8. Select the Log Message activity and, on the Execute tab, in the Debug group,
click Toggle Breakpoint. Note that a small that a red dot with white stripes is displayed
next to it. This signals that this activity has a breakpoint applied.
11. On the Execute tab, in the Launch group, click Stop. An information dialog box is
displayed, letting you know that the debugging process has been canceled.
Note: After a breakpoint has been triggered you can stop, go to the next step of the
workflow or continue the debugging process by clicking Stop, Step Over, Step
Into orContinue Debug on the Execute tab.
Managing Packages
The package manager functionality enables you to download activity packages, libraries,
frameworks, wrappers and others, view the ones already installed on your computer and
update them, as well as add and remove your own.
An activity package is a bundle of activities that can help you automate a certain application
(UiPath.Excel.Activities, UiPath.Word.Activities) or a category of apps
(UiPath.Mail.Activities, UiPath.Terminal.Activities), or use certain technologies in your
workflows (UiPath.OCR.Activities, UiPath.FTP.Activities). Details about packages and
libraries are displayed in the right panel of the Manage Packages window, as you can see
in the screenshot above.
The Filter Activities check box enables you to view only activity packages.
To install activities packs, go to the Available category, and click the Install button next
to the package that interests you. You are prompted to restart UiPath Studio so that you can
start using the selected activities.
Note: An internet connection is required to download and install activities packs.
To uninstall activities, go to the Installed category, and click the Uninstall button next to
the package that you no longer want to use.
Updating Packages
The Manage Packages button on the Activities panel displays an orange border when
there are packages that need to be updated, as in the following screenshot.
All your activities can be automatically updated when a new version is available, by
selecting the Auto Update check box, in the Manage Packages window.
1. On the left side of the Manage Packages window, click the Updates category.
The Manage Packages window displays all activities packages to be updated.
2. Click the Update button next to the package that interests you. The updated package is
no longer displayed in this view.
3. Optionally, update all the packages at once by clicking the Update All button.
1. In the Manage Packages window, in the left panel, right-click any category.
2. Select Configure Sources from the context menu. The Package Source
Settings window is displayed.
3. Click the Add button. A new blank package is added and an error message is
displayed because the Name and Source fields are not filled in correctly.
1. In the Manage Packages window, in the left panel, right-click any category.
2. Select Configure Sources from the context menu. The Package Source
Settingswindow is displayed.
3. In the Package Source Settings window, select the package you wish to remove by
clicking on it and press the Remove button.
Types of Worflows:
Sequences
Sequences are the smallest type of workflow. 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 workflow 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.
1. Create a blank workflow and, on the Design tab, in the Filegroup, select New >
Sequence. The New Diagram window is displayed.
Note: You can also add a Sequenceactivity to the Main panel to create a new sequence.
2. In the Name field type a name for the workflow, such as “First Sequence,” and
click Create. The Main panel is updated accordingly.
3. Create three String variables such as strFirstName, strLastName, and strHairColor, so
that you can store data from the user in them. Leave the Default field empty, to indicate
that there is no default value.
Note: Remember to add spaces between variables and within strings for an optimal
output.
The final workflow should look as in the following screenshot.
Flowcharts
Flowcharts can be used in a variety of settings, from large jobs to small projects that you
can reuse in other workflows.
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.
Example of a Flowchart
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 a
workflow, do the following:
1. Create a blank workflow and from the Design tab, in the Filegroup, select New >
Flowchart. The New Diagram window is displayed.
Note: You can also add a Flowchartactivity to the Main panel to create a new flowchart
workflow.
2. In the Name field type a name for the workflow, such as “First Flowchart,” and
click Create. The Main panel is updated accordingly.
3. Create two Int32 variables (intRandomNumber, intGuessNumber) and a String one
(strMessage).
4. Set the default value of the strMessage variable to "Guess a number from 1 to 999.0".
The intRandomNumberstores a random number between 1 and
5. Add an Assign activity to the Main panel, and connect it to the Start node.
6. In the Properties panel, in the To field add the intRandomNumber variable.
7. In the Value field, type new Random().Next(1,999).
Note: This field uses the Random()function to generate a random number between 1 and 999.
8. Add an Input Dialog activity to the Main panel and connect it to the Assign one.
9. In the Properties panel, in the Label field, add the strMessage variable.
10. In the Result field, add the intGuessNumber variable. This activity asks and stores the
user‟s guesses in the intGuessNumber variable.
11. Add a Flow Decision activity and connect it to the Input Dialog. This activity enables
you to tell the user if he correctly guessed the number or not.
12. In the Properties panel, in the Condition field, type intGuessNumber =
intRandomNumber. 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 "Congratulation! You guessed correctly!
The number was " + intRandomNumber.ToString + ".". 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 Falsebranch of the previously
added Flow Decision.
16. In the Properties panel, in the Condition field, type intGuessNumber >
intRandomNumber. 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 Decisionsused.
18. Add an Assign activity and connect it to the True branch of the Comparison activity.
19. In the To field, type the strMessage 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.
21. Press Ctr+V. A duplicate of the previous Assign activity is displayed.
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.”.
State Machines
A state machine is a type of workflow 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,
and they are found under Workflow > State Machine.
Note: You can only create one initial state, yet it is possible to have more than one Final
State.
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.
1. Create a blank workflow and, on the Design tab, in the Filegroup, select New > State
Machine. The New Diagramwindow is displayed.
Note: You can also add a State Machineactivity to the Main panel to create a new state
machine workflow.
31. In the Condition field, type intGuess = intRandomNumber. This is the condition on
which this workflow steps to the final state and end.
32.Double-click the Final State activity. It is displayed expanded in the Main panel.
33. In the Entry section, add a Message Box activity.
34.In the Text field, type something similar to "Congratulations. You guessed correctly!
The number was " + intRandomNumber.ToString + ".". This is the final message that is
to be displayed, when the user correctly guesses the number.
3.Variables
Managing Variables
Managing Variables
In UiPath Studio, variables are used to store multiples type of data. Another key aspect of
variables is that their value can change so that you can, for example, control how many
times the body of a loop is executed.
The data stored within a variable is called a value, and it can be of multiple types. In UiPath,
we support a large amount of types, ranging from generic value, text, number, data table,
time and date, to UiElements.
Creating Variables
Note: Variables cannot be created if theMain panel does not contain at least one activity.
From the Design ribbon:
1. On the Design ribbon tab, in the Variables group, select Create Variable > [Type of
variable]. The Create Variablewindow is displayed.
2. Fill in the required fields and click OK. The variable is created and you can view and edit
it in the Variables panel.
1. In the Properties panel of any activity, right-click a field that can be edited, and
select Create Variable from the context menu, or press Ctrl+K. A Set Name field is
displayed.
2. Fill in the name and press Enter. The variable is created and you can view and edit it in
the Variables panel. The scope of activities created like this always belongs to the
smallest container it is part of.
Note: When creating variables like this, the type is automatically generated, depending on
the selected property.
Note: By default, all new variables are of String type if you create them from
theVariables panel.
Removing Variables
In the Variable panel, right-click a variable and select the Delete option.
In the Variable panel, select a variable and press the Delete key.
1. On the Design ribbon tab, in the Variables group, select Manage Variables > Remove
Unreferenced. Note that the Variables panel only contains the variables used in your
workflow.
1. In the Variable panel, from the Variable Type drop-down list, select Browse for
Types. The Browse and Select a .Net Type window is displayed.
2. In the Type Name field, type a keyword for the variable you are looking for, such as
excel. Note that the result section is updated, displaying all the .Net variable types that
contain your keyword.
3. Select one and click OK. A new variable is created with the selected type and is
displayed in the Variables panel.
Note: After using a type of variable from theBrowse and Select a .Net Type window, it is
displayed in the Variable Type drop-down list, in the Variables panel.
Promoting Variables to Global Scope
Some variables, when created directly in an activity (from the context menu of an activity),
are automatically given the smallest scope they belong to. To make them available in your
entire workflow, do the following:
When creating very large workflows, it can be very easy to forget what every variable does.
That is why it is important to have a good naming system in place.
We recommend that you always use descriptive names, such as userName for a variable
that stores the name of a user.
Additionally, you might want to keep track of the type of variable you create, and that is
why adding a short descriptor in the front of each variable name can be useful, such as int
for integers.
Finally, we recommend that you write variable names in camel case, so that you can read
them easier.
Field Description
Mandatory.
Name The name of your variable. If you do not add a name to a variable, one is
automatically generated. For more information on how to name your variables,
see Naming Best Practices.
Mandatory.
Variable Enables you to choose the type of variable. The following options are available:
Type
Boolean
Int32
Mandatory.
Scope The area in which a variable is available, such as a specific activity. By default,
they are available in the entire workflow.
Optional.
Default The default value of the variable. If this field is empty, the variable does not have
a default value.
Types of Variables
Generic Value Variables
The generic value variable is a type of variable with a wide range that can store any kind of
data, including text, numbers, dates and arrays, and is particular to UiPath Studio.
Generic value variables are automatically converted to other types, in order to perform
certain actions. However, it is important to use these types of variables carefully, as their
conversion may not always be the correct one for your workflow.
1. Create a flowchart.
2. Create three generic value variables, genNumber, genString and genSum.
3. In the Default column for the genNumber variable, type 2, and for
the genString variable, type"2." The first value is interpreted as as integer, and the
second one as a string.
4. Add an Assign activity to the Main panel and connect it to the Start node.
5. In the Properties panel, in the To field, enter the genSumvariable.
6. In the Value field, type genNumber+genString.
7. Add a Write Line activity and connect it to the Assign one.
8. In the Properties panel, in the Text field, enter the genSumvariable.
9. Press F5 to execute your workflow. Note that, in the Outputpanel, the sum of the two
numbers is displayed.
This means that UiPath Studio knows that the genNumber is an integer and knows how to
transform the generic value genStringvariable to an integer, so that it can add it to the first
one.
However, keep in mind that this was our goal from the beginning. If we wanted to display
the two variables in the Output panel as strings using this exact method, it would not have
worked.
Text Variables
A text or string variable is a type of variable that can store only strings. These types of
variables can be used, for example, to store names, passwords or information extracted
from a table.
1. Create a sequence.
2. Create two simple string variables, strFullName and strFirstLetter.
4. In the Properties panel, in the Label field, type "Type your full name please.".
5. In the Titlefield, type "What is your name?".
6. In the Result field, add the StrFullName variable. This variable stores whatever the user
writes when prompted with the Input Dialog activity.
7. Add an Assign activity under the Input Dialog one.
8. In the Properties panel, in the To field, add the strFirstLetter variable.
9. In the Value field, type strFullName.Substring(0,1). The strFirstLetter variable is
assigned the new value created by the strFullName.Substring(0,1)expression.
Note: This field uses the Substring()function to find the first character from the string
added by the user in the Input Dialog.
4. Add an Input Dialog activity to the Main 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 strName 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 strGendervariable.
10. Add a Flow Decision activity to the Main panel, and connect it to the second Input
Dialog.
11. In the Properties panel, in the Condition field, type strGender = "Male" or strGender =
"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 boolMale variable.
15. In the Value field, type True. This assigns the True value to the boolMale variable when
the strGender = "Male" or strGender = "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 boolMalevariable.
18. In the Value field, type False. This assigns the False value to the boolMale variable
when the strGender = "Male" or strGender = "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 boolMale = 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 strName + " is a " + strGender + ".". This
message displays the name of the user and its gender, if boolMale is true.
23. Add another Message Box activity and connect it to the Falsebranch of the Flow
Decision.
24.In the Properties panel, in the Text field, type strName + " is a " + strGender + ".". This
message displays the name of the user and its gender, if boolMale is false.
25. Press F5. The workflow 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.
Note: The .ToString method converts the integer stored in the intAge variable to a string
and display it as such.
The final workflow should look as in the following screenshot.
11. Press F5. The workflow 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.
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.
Note: If the file does not exist at the provided path, it is created.
18. In the Text field, type arrStringNameAge(0) + " " + arrStringNameAge(1) + " "
+arrStringNameAge(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 workflow should look as in the following screenshot.
Note: The default value attributed to thetimSpan variable uses the day.hh:mm:ssformat.
Note: If you do not have Excel activities installed on your version of UiPath Studio, use
the Manage Packages functionality to get them.
11. In the Properties panel, in the WorkbookPath field, type the path of the Excel file you
want to write to, between quotation marks. In our
case, "C:\Users\Username\Desktop\urgent_invoice.xlsx".
Note: If the file does not exist at the provided path, it is going to be created.
These variables can be useful to migrate specific data from a database to another, extract
information from a website and store it locally in a spreadsheet and many others.
The initial file is a database of people, their age, location and e-mail address. In this
example, we are going to extract their names and e-mail addresses and append them to an
Excel spreadsheet that already contains similar information.
Note: If you do not have Excel activities installed on your version of UiPath Studio, use
the Manage Packages functionality to get them.
3. Create two data table variables, datNamesList and DatMailList. These are going to be
used to store information from the initial Excel spreadsheet.
4. In the Properties panel, in the WorkbookPath field, type the path of the initial Excel
file to be used, between quotation marks.
5. Add two Read Range activities and place them one under the other, in the Excel
Application Scope activity. These are used to get information from the initial
spreadsheet.
6. Select the first Read Range activity and, in the Propertiespanel, in the Range field,
type “A2:A21.”. These are the Excel table coordinates that tell UiPath Studio from where
to extract information.
7. In the SheetName field, do not make any changes as the name of our sheet is the default
one, Sheet1.
8. In the DataTable field, type the name of the first data table variable, datNamesList. This
variable stores all the information available between the A2 and A21 rows.
9. (Optional) Change the value in DisplayName field to Read Names, so you can easily tell
apart this activity from the second one.
10. Select the second Read Range activity, and in the Propertiespanel, in the Range field,
type “D2:D21.” These are the Excel table coordinates that contain the e-mail information
we want to extract.
11. In the DataTable field, specify the datMailList variable. This variable retains all the mail
information we require.
12. Add a Write Range activity to the Main panel, under the Excel Application Scope. This
activity is used to write the stored information to another Excel file.
13. In the Properties panel, in the WorkbookPath field, type the path of the Excel file to be
used to store all the information gathered at the previous steps.
14. In the DataTable field, type the datNamesList variable.
15. In the SheetName field type Database, and in the StartingCell, type “C21.“ This is the
starting cell in which information from the initial file is to be added.
16. Add another Write Range activity and place it under the first one.
17. In the Properties panel, fill in the WorkbookPath and SheetName fields as for the
previous Write Range activity.
18. In the Starting Cell field, type "D21."
19. In the DataTable field, type the datMailList variable.
Managing Arguments
Arguments are used to pass data from a workflow to another. In a global sense, they
resemble variables, as they store data dynamically and pass it on. Variables pass it to other
activities, while arguments pass it to other workflows. As a result, they enable you to reuse
workflows time and again.
UiPath Studio supports a large number of types of arguments, which coincide with the
types of variables. Therefore, you can create generic value, string, boolean, object, array,
data table arguments and you can also browse for .Net types, just as you do for variables.
Additionally, arguments have specific directions (In, Out, In/Out, Property) that tell the
application where the information stored in them is supposed to go.
Creating Arguments
To create a new argument:
2. Click the Create Argument line. A new argument with the default values is displayed.
We recommend that you always use descriptive names, such as UserName for an argument
that stores the name of a user.
Additionally, you might find it useful to use title case for all your arguments, so that you can
read their names with ease and tell them apart from variables.
Field Description
Mandatory.
Name The name of your argument. If you do not add a name to an argument, one is
automatically generated. For more information on how to name your
arguments, see Naming Best Practices.
Mandatory.
Direction
Mandatory.
Choose the value type you want your argument to store. The following
options are available:
String
Argument Int32
Type Object
Array of [T]
Browse for Types
If you select a .Net type from the Browse and Select a .Net Type window, it is
added to the Argument Type drop-down list.
Optional.
Default
Value The default value of the argument. If this field is empty, the variable does not
have a default value.
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
workflow, and import and edit their arguments.
15. Press F5 in the second sequence. The workflow is executed correctly and the message
box displays the desired text.
6.Imported Namespaces
Namespaces
To add new namespaces to your library:
3. (Optional) Click the drop-down arrow to view and browse all available namespaces.
4. Select the desired namespace. The namespace is added to the Imported Namespaces list.
To remove a namespace, select it and press Delete. Note that namespaces can only be
deleted if they are invalid. For example, you can delete a namespace if the assembly that
contains it is no longer referenced by the project.
They enable you to define rules and automate decisions for a given workflow, through
if…else or for each statements or loops, as well as add delays so that you can perfectly time
two activities.
Loops represent an important part of workflows as they enable you to easily check
dependencies between variables, activities and conditions. They are created once and
enable you to iterate data a specified number of times, until a condition is met, once for
each item in a collection or indefinitely.
You can use an Assign activity to increment the value of a variable in a loop (see the
example in the Do While Activity chapter), sum up the value of two or more variables and
assign the result to another variable (see the example in the Generic Value
Variables chapter), assign values to an array (see the Array Variables chapter) and so on.
By default, this activity is also included in the Favorites group. To remove it, right-click it
and select Remove.
8. Press F5. The workflow is executed. Note that, in the Outputpanel, the two messages
added in the Write Line activities are written twenty seconds apart.
This type of activity can be useful to step through all the elements of an array, or execute a
particular activity multiple times. You can increment counters to browse through array
indices or step through a list of items.
Note: Do While activities are evaluated only after the body has been executed once.
Example of Using a Do While Activity
To exemplify how to use a Do While activity, let's create a workflow that increments an
integer variable from 0 to 10, and displays a message every time it is incremented.
9. Press F5. The workflow is executed. Note that the Output panel displays the message
indicated in the Write Line activity.
The If Activity
The If activity contains a statement and two conditions. The first condition (the activity in
the Then section) is executed if the statement is true, while the second one (the activity in
the Else section) is executed if the statement is false.
13. Press F5. The workflow is executed. Note that the Output panel displays the data
correctly.
Note: This activity is part of the Word activities package. If you do not have it, use
the package manager functionality to install it.
9. In the FilePath field, type the path of a Word document in between quotation marks.
Note: Make sure that the Word document is not used when running the workflow,
otherwise a message error is displayed and the execution is stopped.
10. In the Text field, type "The counter is now " + intCounter.ToString +".".
Note: The Length property enables you to find out the total number of array elements.
1. In the Body of the For Each activity, under the Write Line, add a Break activity.
2. Under the For Each, add a new Write Line activity.
4. Press F5. The workflow is executed. Note that the Output panel only displays the first
iteration of the loop and the specified array elements from the Write Line activity.
About Recording
Recording is an important part of UiPath Studio, that can help you save a lot of time when
automating your business processes. This functionality enables you to easily capture a
user‟s actions on the screen and translates them into sequences.
These workflows can be modified and parametrized so that you can easily replay and reuse
them in as many other processes as you need.
All user interface elements are highlighted while you record, as you can see in the following
screenshot, so that you can be sure the correct buttons, fields or menus are selected.
Interactions with UI elements yield informative screenshots in the workflow. These can be
changed, hidden, removed or shown in full size by selecting the respective action from the
Options menu.
All screenshots are automatically saved as .png files in the same location as your project, in
a separate folder named “.screenshot.“ By default, the path is:
C:\Users\your_user_name\Documents\UiPath\your_project_name\.screenshots.
Regardless of the type of recording selected, some actions are recordable and some are not.
Left-click on buttons, check boxes, drop-down lists and other GUI Keyboard
elements shortcuts
Text typing Modifier keys
Right-click
Mouse hover
Basic – generates a full selector for each activity and no container, the resulted workflow
is slower than one that uses containers and is suitable for single activities.
Desktop – suitable for all types of desktop apps and multiple actions; it is faster than the
Basic recorder, and generates a container (with the selector of the top level window) in
which activities are enclosed, and partial selectors for each activity.
Web – designed for recording in web apps and browsers (supported: Internet Explorer,
Google Chrome), generates containers and uses the Simulate Type/Click input method
by default.
Citrix – used to record virtualized environments (VNC, virtual machines, Citrix, etc.) or
SAP, permits only image, text and keyboard automation, and requires explicit positioning.
To see all the available types of recordings and select the one most suited for your
workflow, click Record, in the Wizards group of the Design ribbon tab.
All recording types come with their own controllers (or toolbar) that give you access to
actions particular to each environment, but also some common ones.
The Desktop, Basic and Web Recording toolbars are quite similar and enable you to:
Note: The Citrix Recording toolbar supports only manual recording (single actions).
To figure out if you should use automatic or manual recording in your workflow, you
should better understand the differences between them and their capabilities.
Automatic Recording
Automatic recording is very useful and time-saving as it can provide you with a skeleton for
your business processes, and can be easily customized and parametrized.
As you can see in the examples below, for the actions that are recordable with
the Automatic Recording, some activities are automatically generated:
Click – it is generated when you click a button (Basic and Desktop) or a link (Web). The
options available in the Properties panel enable you to add a time delay before or after
the action, change the click type and add key modifiers.
Type Into – generated when typing into a text field or any editable UI element. The
options available in the Propertiespanel enable you to add a time delay before or after
the action or between key strokes, change the text at any point, and erase the entire field
before writing to it (EmptyField).
Select Item - generated when you select an item from a drop-down list or combo box.
The options available in the Properties panel enable you to add a time delay before or
after the action, and change the selected item.
Check - generated when a radio button or check box is clicked. The options available in
the Properties panel enable you to add a time delay before or after the action, and select
or unselect the check box.
1. Open Notepad.
2. In UiPath Studio, create a new sequence.
3.
a. In the Design ribbon tab, in the Wizards group, select Record > Basic. The Basic
Recording toolbar is displayed and the main view is minimized.
b. In the Design ribbon tab, in the Wizards group, select Record > Desktop.
The Desktop Recording toolbar is displayed and the main view is minimized.
4. In the Wizards group, click Automatic Recorder. The automating recording process
starts.
5. In Notepad, click in the main panel. A pop-up window is displayed.
6. Type a custom text and press Enter. The string is displayed in Notepad.
7. 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.
8. From the Format menu, select Font. The Font window is displayed.
9. Select a different font style, such as Bold Italic, and click OK.
10. Press Esc two times. You exit the recording view and the saved workflow is displayed in
the Main panel.
11. Press F5. The workflow is executed as expected.
The two screenshots below display part of the resulted workflows for the Basic (on the
left) and Desktop (on the right) automatic recordings. As you can see, the second one
generates an Attach Window container, while the Desktop one does not.
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:
What was added to the workflow should look as in the following screenshot.
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.
7. Click Sign In and press Esc two times. The recording is saved and displayed as a workflow
in the Main panel.
8. In the Recording Sequence, after the last activity, drag a Close Tab activity. This helps you
close Internet Explorer after you are finished with it.
9. In Studio, press F5. The workflow is executed as expected.
Manual Recording
As explained in the About Recording Types chapter, there are some actions that cannot be
handled by the automatic recorder. We refer to these as single actions or manual
recordings. You can use both manual and automatic recording in workflows to achieve full
automation of a task. Single actions can be found in the Actions group of any recording
toolbar.
These single actions enable you to open an app or browser, as well as close them, by
pointing and clicking them.
The activities generated using the desktop and web manual recorders contain partial
selectors and containers (first screenshot), while the activities generated by the basic
recorder contains a full selector and no container (second screenshot), just like with the
automatic recording.
2. Click
These types of actions enable you to record clicks on the desktop or a running application,
select an option from a drop-down list or combo box, and select a check box or a radio
button.
3. Type
These single actions include those that require input from the keyboard, such as keyboard
shortcuts and keypresses. To achieve this, two pop-up windows are used to retrieve your
keyboard input.
4. Copy
These actions enable you to copy a selected text from an opened application or web
browser, so that you can use it later in the workflow. Screen scraping is also available
under the Copy menu, as it enables you to extract images and text from an app or browser.
For more information, see Output or Screen Scraping Methods.
5. Mouse Element
These types of actions enable you to simulate mouse movements that cannot be recorded
but give you access to more functionalities, such as right-clicking, hovering or double-
clicking.
6. Find Element
These types of single actions enable you to identify specific UI elements or pause the
workflow until a particular window closes or an UI element is no longer displayed. The find
relative element action is useful with apps that do not allow direct interaction with UI
elements, such as Citrix.
7. Text
Text single actions enable you to select or hover over text to make tooltips visible for
scraping, right-click to make the context menu visible, copy and paste text and many
others.
8. Image
Image single actions enable you to wait for a specified image to disappear, to find a specific
image in an app or website, right-click or hover over an image and others. This type of
manual recording can be useful with UI elements that are saved as graphics, as they cannot
be highlighted as normal fields or text.
About UI Elements
UI elements refer to all graphical user interface pieces that construct an application, be
they windows, check boxes, text fields or drop-down lists, and so on. Knowing how to
interact with them enables you to implement UI automation much faster and easier.
All interactions with the UI can be split into input and output. This categorization helps you
better understand which actions to use in different scenarios, when to use them, and the
technology behind them. These are also going to be useful when trying to deal with
scraping. For more information, see Input Methods and Output or Screen Scraping
Methods.
Clicks
Text Typing
Getting text
Keyboard shortcuts
Finding elements and images
Right-clicks
Clipboard actions
Mouse hover
Etc.
Clipboard actions
Etc.
UI Activities Properties
There are multiple activities that can be used to automate apps or web-apps and you can
find them in the Activities panel, under the UI Automation category.
All of these activities have multiple properties in common:
ContinueOnError – specifies if the workflow should continue, even if the activity throws
an error. This field only supports boolean values (True, False).
DelayAfter – adds a pause after the activity, in milliseconds.
DelayBefore – adds a pause before the activity, in milliseconds.
TimeoutMS – specifies the amount of time (in milliseconds) to wait for a specified
element to be found before an error is thrown. The default value is 30000 milliseconds
(30 seconds).
WaitForReady – wait for the target to become ready, before performing the activity.
There are three available options:
o None – does not wait for the target to be ready.
o Interactive – waits until only a part of the app is loaded.
o Complete – waits for the entire app to be loaded.
Target – identifies the UI element the activity works with.
The target is composed of multiple pieces, namely the container, selector and clipping
region, to ensure that you correctly identify a UI element.
A container gives you a little more context for the button or field you want to use, so that
you can tell windows apart or different areas of the same app. They are automatically
generated, but you can make changes to them in the Properties panel.
The following are containers:
Attach Window
Open Application
Attach Browser
Open Browser
Get Active Window
Input Methods
Input actions require you or the robot to directly interact with an opened application or
web page. There are three types of input methods for click and type actions, that differ in
terms of compatibility and capability.
We generally recommend the Simulate Type/Click method as it is the fastest of the three
and works in the background, but only if you do not need to send special keyboard
shortcuts. If this does not work for you, try the Windows Messages method and then
the Default one, as it is the slowest.
The input method can be changed at any point from the Propertiespanel of the selected
activity. If the SimulateType or SendWindowMessages check boxes are not selected, then
the Default method is applied.
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:
o The Default method – it does not automatically erase previously written text, supports
special keys, but writing in the background does not work;
o The Window Messages method – 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);
Click here to download this example. (Please note that it is configured with
the Default method. Manually change properties to try the other input methods.)
Output or Screen Scraping Methods
Output or screen scraping methods refer to those activities that enable you to extract data
from a specified UI element or document, such as a .pdf file.
To understand which one is better for automating your business process, let‟s see the
differences between them.
Extract Extract
Background Support
Method\Capability Speed Accuracy Text Hidden
Execution for Citrix
Position Text
FullText is the default method, it is fast and accurate, yet unlike the Native method, it
cannot extract the screen coordinates of the text.
Both these methods work only with desktop applications, but the Native method cannot
work with apps that are not built to render text with the Graphics Device Interface (GDI).
OCR is not 100% accurate, but can be useful to extract text that the other two methods
could not, as it works with all applications including Citrix. Studio uses two OCR engines, by
default: Google Tesseract and Microsoft Modi.
Set
Multiple Support Filter Best with
Preffered expected
Method\Capability languages for color allowed Microsoft
area size text
support inversion characters fonts
format
Can be
Google Tesseract Small yes yes yes no
added
Supported
Microsoft Modi Large no no no yes
by default
To start extracting text from various sources, click the Screen Scraping button, in
the Wizards group, on the Design ribbon tab.
The screen scraping wizard enables you to point at a UI element and extract text from it,
using one of the three output methods described above. Studio automatically choses a
screen scraping method for you, and displays it at the top of the Screen Scraper
Wizard window.
To change the method of screen scraping, select another one from the Options panel and
then click Re-scrape.
When you are satisfied with the scraping results, click Continue orCopy. The latter option
copies the extracted text to the Clipboard, while the first one saves your information to
the Main panel and, just as with desktop recording, generates a container (with the
selector of the top level window) in which activities are enclosed, and partial selectors for
each activity.
Each type of screen scraping comes with different features in the Screen Scraper Wizard,
in the Options panel:
1. FullText
o Ignore Hidden – when this check box is selected, the hidden text from the selected UI
element is not copied.
2. Native
o No Formatting – when this check box is selected, the copied text does not extract
formatting information from the text. Otherwise, the extracted text‟s relative position is
retained.
o Get Words Info – when this check box is selected, Studio also extracts the screen
coordinates of each word. Additionally, the Custom Separators field is displayed, that
enables you to specify the characters used as separators. If the field is empty, all known
text separators are used.
3. Google OCR
o Languages - enables you to change the language of the scraped text. By default, English
is selected.
o Scale – the scaling factor of the selected UI element or image. The higher the number is,
the more you enlarge the image. This can provide a better OCR read and it is
recommended with small images.
o Get Words Info - gets the on-screen position of each scraped word.
Besides getting text out of an indicated UI element, you can also extract the value of
multiple types of attributes, its exact screen position and its ancestor.
This type of information can be extracted through dedicated activities that are found in
the Activities panel, under UI Automation > Element > Find and UI Automation >
Element > Attribute.
These activities are:
Get Ancestor – enables you to retrieve an ancestor from a specified UI element. You can
indicate at which level of the UI hierarchy to find the ancestor, and store the results in a
UiElement variable.
Get Attribute – retrieves the value of a specified UI element attribute. Once you indicate
the UI element on screen, a drop-down list with all available attributes is displayed.
Get Position – retrieves the bounding rectangle of the specified UiElement, and supports
only Rectangle variables.
UiPath Studio also features Relative Scraping, a scraping method that identifies the
location of the text to be retrieved relative to an anchor. You can find more about it here.
As you can see, no formatting is retained, but if you hide the Notepad window while
scraping, the text is still retrieved. This is the fastest method.
As you can see, the accuracy of this output method is not 100%, but it still manages to keep
the position of the text. Getting the exact on-screen position, in pixels, is also available yet
as you can see, it is not the fastest of the output methods.
The Google OCR method
As with Microsoft‟s Modi, the Google OCR method is not 100% accurate and takes longer
when compared with the others. However, it retrieves the position within the window of
the text.
Now, add some white text over a black page in Paint, for example, and try to scrape it.
As you can see, only the OCR methods work in this scenario.
1. FullText with hidden text works really well, being able to read even the minimize and
restore buttons.
2. Native does not work on this UI as it does not make use of GDI to render text.
3. Microsoft OCR works pretty well, although accuracy is still not 100%.
4. Google OCR does not handle this UI very well, as the scraped area is quite large.
Relative Scraping
Relative Scraping is a technique that enables you to retrieve text from UI elements by
using OCR technology. In situations where selectors cannot be found, the target UI objects
are identified by using image recognition activities to look for adjacent labels or other
elements.
This technique is useful in retrieving text from certain UI elements that are difficult to
access by using normal means, such as applications in virtual environments. Using visual
labels of UI elements makes up for the inability to find selectors.
To use the Scrape Relative functionality, do the following:
3. Select an anchor, which is the relative element used to identify the location of the target,
4.
5. Indicate the area where the target element is. A Set Clipping Regionactivity is generated,
which translates the clipping region to where the target element can be found, relative to
the anchor. Additionally, a Get OCR Text activity is generated that scrapes the target
element. Since the clipping region is a shared resource, the recorder generates
another Set Clipping Region activity which resets the clipping region, thus avoiding
interference with other operations.
6.
The scraping wizard can be opened from the Design tab, by clicking
the Data Scraping button.
2. Preview the data, edit the number of maximum results to be extracted and change the
order of the columns.
3. Optionally click Extract Correlated Data. This enables you to go through the Extract
Wizard again, to extract additional info and add it as a new column in the same table.
4. Indicate the Next button in the web page (if the information you want to extract spans
multiple pages).
After you are finished with the wizard, a workflow is generated in Studio.
Data scraping always generates a container (Attach Browser orAttach Window) with a
selector for the top-level window and an Extract Structured Data activity with a partial
selector, thus ensuring a correct identification of the page to be scraped.
Additionally, the Extract Structured Data activity also comes with an automatically
generated XML string (in the ExtractMetadata property) that indicates the data to be
extracted.
Lastly, all the scraped information is stored in a Data Table variable, that you can later use
to populate a database, a .csv file or an Excel spreadsheet.
7. Click Next. A preview of the data is displayed and the fields you selected are highlighted
in the web browser.
8. Click the Extract Correlated Data. The Extract Wizard starts again.
Note: Install the Excel activities package using the Manage Packager to have access to
these activities.
15. In the Properties panel, in the WorkbookPath field, type the file path of an existing
Excel file to which you want to write the data.
16. In the Variables panel, change the scope of the automatically generated data table
variable to Main.
17. In the Excel Application Scope, drag a Write Range activitiy.
18. In the Properties panel, in the DataTable field, add the ExtractDataTable variable. The
final workflow should look as in the following screenshot.
About Selectors
To automate specific actions in the user interface, you are required to interact with various
windows, buttons, drop-down lists and many others. Most applications do this by relying
on the screen position of UI elements, a method that is not at all dependable.
To overcome this problem, UiPath uses what we call selectors. These store the attributes of
a graphical user interface element and its parents, in the shape of an XML fragment.
Most of the times, selectors are automatically generated by Studio and do not require
However, some software programs have changing layouts and attribute nodes with volatile
values, such as some web-apps. UiPath cannot predict these changes and therefore, you
might have to manually generate some selectors.
A selector has the following structure:
<node_1><node_2>...<node_N>
The last node represents the GUI element that interests you, and all the previous ones
represent the parents of that element. <node_1> is usually referred to as a root node.
Each node has one or more attributes that help you correctly identify a specific level of the
selected application.
Each node has the following format:
The Selector Editor window enables you to see the automatically-generated selector and
edit it and its attributes. To open this window, click the Ellipsis button next to
the Selector field, in the Properties panel.
The Edit Attributes section contains all the application components needed to identify the
target application (a window, a button etc.). The Edit Selector section holds the actual
selector. Both of these sections are editable.
Selectors with Wildcards
Wildcards are symbols that enable you to replace one or multiple characters in a string.
These can be quite useful when dealing with dynamically-changing attributes in a selector.
The Selector Editor enables you to automatically generate a selector with wildcards, by
1. Open an empty Notepad window. Note that the window title is Untitled – Notepad.
2. In Studio, create a new sequence.
3. Drag a Type Into activity to the Main panel.
4. Click Indicate on Screen and indicate the editable text field in Notepad. A selector is
automatically generated and stored in the Selector field.
5. In the Properties panel, click the Ellipsis button next to the Selector field.
The Selector Editor window is displayed.
6. Open any .txt file with Notepad. Note that the window title is partially different than the
one at step 1.
7. In Studio, in the Selector Editor window, click Attach to Live Element and indicate
the Notepad window opened at step 6. A dialog box indicating that the selector was
updated is displayed.
8. Click OK. The Selector Editor window and the selector are updated with a wildcard.
Full selectors:
Contain all the elements needed to identify a UI element, including the top-level window
Generated by the Basic recorder
Recommended when switching between multiple windows
Partial selectors:
UiPath Explorer
UiPath Explorer is an advanced tool that enables you to create a custom selector for a
specific UI element.
To open the UiPath Explorer window, click Launch UiExplorer in the Design tab.
Resets all the panels from the UiPath Explorer window to their default
Reset states.
Field Description
Show Search
Displays the search box and search filter options.
Options
Enables you to look for a specific string. If an exact match is not found,
nodes containing the nearest match are displayed.
Search box
Wildcards (*,?) are supported.
Depending on the attribute selected from the Search bydrop-down
Image and Text automation is useful in situations when UI automation does not work, such
as in virtual machine environments, where selectors cannot be found by using normal
methods.
This chapter goes through the most important activities in each type of automation,
explaining their behaviour and use cases, and then exemplifying three kinds of image and
text-based process automation, using the activities described earlier.
UiPath Resources
Mouse and Keyboard Activities
UiPath Studio features activities that simulate any type of keyboard or mouse input that a
human would use. Also, there are activities that can set focus to a certain window, minimize
or maximize it, or perform any other kind of action on it. These activities are essential in
creating an automation that simulates human behaviour. As explained here, there are
several technologies that can be used for these activities, each with their own advantages in
certain situations.
Double Click, Click, Hover are activities that simulate the clicking or hovering of UI
elements. These activities are very useful in situations when human behaviour must be
mimicked. As input, these activities receive a Target, which can be either a Region variable,
a UIElement variable or a selector, that helps you identify what you want to automate and
where the actions must be performed. The target can also be automatically generated by
using the Indicate on Screen functionality, which tries to identify UI elements in the
indicated region, and generates selectors for them. If this does not work for you, then
manual intervention might be required.
Type Into sends keystrokes to a UI element. Special keys are supported and can be
selected from the drop-down list. This is a basic text input activity that is widely used in
automations and is also generated by the automatic recording wizards. As input, this
activity receives a string or a string variable that contains the text to be written, and a
Target, which can be either a Region variable, a UIElement variable or a selector, that helps
you identify what you want to automate and where the actions must be performed. The
target can also be automatically generated by using the Indicate on Screen functionality,
which tries to identify UI elements in the indicated region, and generates selectors for
them. If this does not work for you, then manual intervention might be required.
Type Secure Text sends a secure string to a UI element. As input, this activity receives a
SecureString variable that contains the text to be written, and a Target, which can be either
a Region variable, a UIElement variable or a selector, that helps you identify what you want
to automate and where the actions must be performed. The target can also be automatically
generated by using the Indicate on Screen functionality, which tries to identify UI
elements in the indicated region, and generates selectors for them. If this does not work for
you, then manual intervention might be required. This activity is useful for secure
Send Hotkey sends keyboard shortcuts to a UI element. This activity is useful for accessing
shortcuts in applications and can help you simplify your automation workflow. For
example, you can replace multiple activities that perform UI automation if there is a
keyboard shortcut available for revealing certain UI elements or performing specific
actions. As input, this activity receives a string or a string variable that contains the keys to
be sent, and a Target, which can be either a Region variable, a UIElement variable or a
selector, that helps you identify what you want to automate and where the actions must be
performed. The target can also be automatically generated by using the Indicate on
Screenfunctionality, which tries to identify UI elements in the indicated region, and
generates selectors for them. If this does not work for you, then manual intervention might
be required.
Set Focus sets keyboard focus to a specified UI element. The ability to bring a certain
window to the foreground is essential when performing image and text automation. As
input, this activity receives a Target, which can be either a Region variable, a UIElement
variable or a selector, that helps you identify what you want to automate and where the
actions must be performed. The target can also be automatically generated by using
the Indicate on Screen functionality, which tries to identify UI elements in the indicated
region, and generates selectors for them. If this does not work for you, then manual
intervention might be required.
7. Select the activity and, from the drop-down menu choose enter.
8. Add another Type Into activity under the previously added one.
9. Select the activity, and in the Text field, write ipconfig.
10. Add another Send Hotkey activity under the previously added one.
11. Select the activity, and from the drop-down menu select the enterkey.
12. Press F5. The workflow is executed. The IP address, subnet mask and default gateway for
all adapters are displayed in the Command Prompt.
Double Click Text, Click Text and Hover Text are activities used to click the text inside a
UI element or hover over it. After the user interface object and text are specified, the
activity searches the UI for the text and clicks it or hovers over it. As input, these activities
receive a Target, which can be either a string variable, a Region variable, a UIElement
variable or a selector, which indicate the coordinates where the action must be performed.
The target can also be automatically generated by using the Indicate on
Screenfunctionality, which tries to identify UI elements in the indicated region, and
generates selectors for them. If this does not work for you, then manual intervention might
be required.
Find Text Position searches for a given string in a specified target, and returns a
UIElement variable which has the clipping region set to the screen position of that string.
This activity can be useful in locating UI elements relative to text on the screen when there
is no other way of locating them, and using them further in your automation. As input, this
activity receives a Target, which can be either a string variable, a Region variable, a
UiElement variable or a selector, that helps you identify what you want to automate and
where the actions must be performed. The target can also be automatically generated by
using the Indicate on Screenfunctionality, which tries to identify UI elements in the
indicated region, and generates selectors for them. If this does not work for you, then
manual intervention might be required. The activity outputs the UiElement variable that
contains the provided string.
Get Full Text extracts a string and its information from an indicated UI element using
the FullText screen scraping method. This activity can also be automatically generated
when performing screen scraping, along with a container. This activity can be useful in
retrieving text from desktop and web applications. As input, this activity receives a Target,
which can be either a Region variable, a UiElement variable or a selector, that helps you
identify what you want to automate and where the actions must be performed. The target
can also be automatically generated by using the Indicate on Screen functionality, which
tries to identify UI elements in the indicated region, and generates selectors for them. If this
does not work for you, then manual intervention might be required. The activity outputs a
string variable that contains the extracted text.
Get Visible Text extracts a string and its information from an indicated UI element using
the Native screen scraping method. This activity can also be automatically generated when
performing screen scraping, along with a container. This activity can be useful in retrieving
text from desktop and web applications. As input, this activity receives a Target, which can
be either a Region variable, a UiElement variable or a selector, that helps you identify what
you want to automate and where the actions must be performed. The target can also be
automatically generated by using the Indicate on Screen functionality, which tries to
identify UI elements in the indicated region, and generates selectors for them. If this does
not work for you, then manual intervention might be required. The activity outputs a string
variable that contains the extracted text.
Extract Structured Data extracts data from an indicated table. You can specify what
information to extract by providing an XML string in the ExtractMetadata property. This
can easily be generated with all the properties set by using the Data Scraping wizard. As
input, this activity receives an XML string that defines what data is to be extracted from the
indicated web page, and a Target, which can be either a Region variable, a UiElement
variable or a selector, that helps you identify what you want to automate and where the
actions must be performed. The target can also be automatically generated by using
the Indicate on Screen functionality, which tries to identify UI elements in the indicated
region, and generates selectors for them. If this does not work for you, then manual
intervention might be required. The activity outputs a DataTable variable which contains
the extracted data.
Text Exists checks if a text is found in a given UI element and returns a boolean variable
that is true if the text exists and false otherwise. This activity is useful in all types of text-
based automation, as it enables you to make decisions based on whether or not a given
string is displayed, or it can be used to perform certain actions on a loop, by using it as a
Condition in the Retry Scope activity. As input, this activity receives a string variable
which contains the text to be searched, and a Target, which can be either a Region variable,
a UiElement variable or a selector, that helps you identify what you want to automate and
where the actions must be performed. The target can also be automatically generated by
using the Indicate on Screen functionality, which tries to identify UI elements in the
indicated region, and generates selectors for them. If this does not work for you, then
manual intervention might be required. The activity outputs a boolean variable that states
whether the text was found.
clicks the third occurrence of the word amount in the website, and checks if the
word Exchange is found on the screen.
4. In the Design ribbon tab, click Data Scraping. The Data Scraping wizard is displayed.
5. As explained here, scrape the Markets table. An Attach Browseractivity is generated,
containing an Extract Structured Data activity set to retrieve the table contents.
6. Add an Output Data Table activity in the Do container of the Attach Browser activity,
after the Extract Structured Data.
7. In the Variables panel, create a new variable, calledExtractDataTable, and set its type
to DataTable.
8. Create a new String variable, called getText.
9. Select the Extract Structured Data activity and insert theExtractDataTable variable in
the DataTable field.
10. Select the Output Data Table activity, enter the ExtractDataTablevariable in
the DataTable field, and the getText variable in theText field.
11. Add a Write Line activity after the Output Data Table one.
12. Select the Write Line activity and insert the getText variable in theText field.
13. Add a Double Click Text activity after the previously added one.
14. Select the Double Click Text activity, and in the Text field, write amount. This helps you
look for the word amount in the website specified at step 3.
15. In the Occurrence field, write 3. This helps you look for the third occurrence of the
word amount.
16. Click the Indicate on screen button and click the third occurrence of the
word amount in the previously opened browser page. This helps you indicate where to
look for the specified word, by automatically extracting a selector.
17. Add a Delay activity after the previously added activity. This delay has the purpose of
allowing the webpage to become fully loaded.
18. Select the Delay activity and set the Duration property to 00:00:03 (3 seconds).
20. Select the Text Exists activity and, in the Text field, write Exchange.
21. Click the Indicate on screen button and click the word Exchange in the previously
opened browser page. A selector is generated for the Exchange word.
22.In the Variables panel, create a new variable, called getExists, and set its type to Boolean.
23.Select the Text Exists activity and insert the getExists variable in the Exists field.
24.Add an If activity after the Text Exists activity.
25. Insert the getExists variable in the Condition field.
26.In the Then section of the If activity, add a Message Box activity.
27. Select the activity and write Exchange + “ exists” in the Textfield. This message is
displayed if the word Exchange is found in the Poloniex stock market platform.
28. In the Else section of the If activity, add a Message Box activity.
29.Select the activity and write Exchange + “ does not exist”in the Text field. This message is
displayed if the word Exchange is not found in the Poloniex stock market platform. Your
workflow should look like this:
30. Press F5. The workflow is executed. Note that the data from the Markets table is
extracted and displayed in the Output panel, the third occurrence ofAmount is double-
clicked, and a message box is displayed, stating whether Exchange was found or not.
OCR Activities
In some situations, certain applications are not compatible with the usage of normal
scraping or UI automation technologies. Activities in UiPath Studio which use OCR
technology scan the entire screen of the machine, finding all the characters that are
displayed. This enables the user to create automations based on what can be seen on the
screen, simplifying automation in virtual machine environments. Citrix and other remote
desktop utilities are usually the target of OCR-based activities, as they only stream an
image of the desktop to the user, which means normal UI selectors are impossible to find.
Note: A best practice in creating automations is using theRecording Wizard to create the
workflow, automatically generating selectors, and then tweaking the activities to best fit
your needs.
Double Click OCR Text, Click OCR Text or Hover OCR Text use OCR to scan the screen of
the machine for text and perform actions relative to it. If graphic elements change, but the
text does not, automations created using text recognition will usually still work. These are
very useful activities in automating basic actions in virtual machine environments. As
input, these activities receive a Target, which can be either a string variable, a Region
variable, a UIElement variable or a selector, which indicate the coordinates where the
action must be performed. The target can also be automatically generated by using
the Indicate on Screen functionality, which tries to identify UI elements in the indicated
region, and generates selectors for them. If this does not work for you, then manual
intervention might be required.
Get OCR Text extracts a string and its information from an indicated UI element using the
OCR screen scraping method. This activity can also be automatically generated when
performing screen scraping, along with a container. By default, the Google OCR engine is
used, but you can easily change it with Abbyy or Microsoft. There are some differences
between these OCR engines, as explained here, making them fit for different situations. As
input, this activity receives a Target, which can be either a Region variable, a UiElement
variable or a selector, that helps you identify what you want to automate and where the
actions must be performed. The target can also be automatically generated by using
the Indicate on Screen functionality, which tries to identify UI elements in the indicated
region, and generates selectors for them. If this does not work for you, then manual
intervention might be required. This activity returns a string variable containing the text
found in the UI element, and a TextInfo variable that contains the screen coordinates of all
the found words.
OCR Text Exists checks if a text is found in a given UI element by using OCR technology
and returns a boolean variable that is true if the text exists and false otherwise. This
activity is useful in all types of text-based automation, as it enables you to make decisions
based on whether or not a given string is displayed, or it can be used to perform certain
actions in a loop, by using it as a Condition in the Retry Scope activity. As input, this
activity receives a string which contains the text that is to be searched for, and a Target,
which can be either a Region variable, a UiElement variable or a selector, that helps you
identify what you want to automate and where the actions must be performed. The target
can also be automatically generated by using the Indicate on Screenfunctionality, which
tries to identify UI elements in the indicated region, and generates selectors for them. If this
does not work for you, then manual intervention might be required. This activity returns a
boolean variable that states whether the text was found or not.
OCR Engines, such as Google OCR, Google Cloud OCR, Microsoft OCR, Microsoft Cloud
OCR and Abbyy Cloud OCR are also available as separate activities. These activities extract
a string and its position from a provided image by using different OCR engines. These
activities can be used with other OCR activities (Click OCR Text, Hover OCR Text, Double
Click OCR Text, Get OCR Text, Find OCR Text Position). As input, these activities receive an
Image variable that contains the image file to be scanned. As output, the activities return an
IEnumerable<KeyValuePair<Rectangle,String>> variable, which contains the extracted text
and their on-screen coordinates, and a string variable which contains the extracted text.
Image Activities
Image recognition activities can also simulate human behaviour, using images as means of
identifying UI elements. These activities enable you to make decisions based on whether or
not a given image is displayed, or they can be used to perform certain actions in a loop, by
using them as Conditions in the Retry Scope activity. They can also scan the screen of the
machine for UI elements which appear at random positions and return UiElement variables
that have the clipping region set to the found element. They also enable the upload and
download of images. Image recognition activities have an Accuracy parameter, which
states whether the images must match 100% or less to register as found which can
compensate for possible changes. This feature is useful if the graphical elements you are
searching for may be slightly different.
Find Image is an activity that waits for a certain UI element to appear. To do this, an image
of the UI element is provided by the user as a model of the image to be searched. Once the
element appears, the activity returns a UiElement variable with the clipping region set to
the found image. This activity can be a useful tool in identifying UI elements in virtual
machines and performing different actions on them. Find Image also enables you to make
decisions based on whether or not a given image is displayed, or it can be used to perform
certain actions in a loop, by using it as a Condition in the Retry Scope activity.. As input,
this activity receives an image variable which contains the image to be searched for, and a
Target, which can be either a Region variable, a UiElement variable or a selector, that helps
you identify what you want to automate and where the actions must be performed. The
target can also be automatically generated by using the Indicate on Screenfunctionality,
which tries to identify UI elements in the indicated region, and generates selectors for
them. If this does not work for you, then manual intervention might be required. This
activity returns a UiElement variable that contains the position where the text was found.
Image Exists is an activity that is used to verify if a certain image exists on the screen. It
returns a boolean variable which states whether the image was found or not. This activity
can be useful as it enables you to make decisions based on whether or not a given image is
displayed, or it can be used to perform certain actions in a loop, by using it as a Condition in
the Retry Scope activity. As input, this activity receives an image variable which contains
the image to be searched for, and a Target, which can be either a Region variable, a
UiElement variable or a selector, that helps you identify what you want to automate and
where the actions must be performed. The target can also be automatically generated by
using the Indicate on Screen functionality, which tries to identify UI elements in the
indicated region, and generates selectors for them. If this does not work for you, then
manual intervention might be required. This activity returns a boolean variable that states
whether the text was found or not.
On Image Vanish waits for an image to vanish from the screen for a set amount of time.
This activity is a container, which means multiple actions can be inserted in it and
performed after the image disappears. This is a very useful activity in virtual machine
environments, as it can monitor when a UI element disappears and then perform a suite of
actions. On Image Vanish can also be used as a trigger for other activities. As input, this
activity receives an image variable which contains the image to be searched for, and a
Target, which can be either a Region variable, a UiElement variable or a selector, that helps
you identify what you want to automate and where the actions must be performed. The
target can also be automatically generated by using the Indicate on Screenfunctionality,
which tries to identify UI elements in the indicated region, and generates selectors for
them. If this does not work for you, then manual intervention might be required.
Search
Text activity.
6. Name the above sequence Read Email.
Note: The OCR engines featured by UiPath Studio have their pros and cons, using them
depends on the circumstances, and testing which one does the best job in each situation is
key in deciding which one to use. Changing the OCR engine for different tasks can make
your results better.
7. As explained here, scrape the invoice number 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 the container, there are a Find Image, that selects
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 calledtotalValue.
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.
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 ExpenseItapplication based on its
label‟s location.
21. In the Email field of the ExpenseIt application, enter the emailvariable.
22. Use Relative Scraping to click the Employee Number field in theExpenseIt application
based on its label‟s location.
23. Add the invoiceNo variable in the Employee Number field of theExpenseIt application.
24. Click Save & Exit in the Recording Wizard. The recorder generates anAttach
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 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 theinvoiceNo 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 ExpenseItapplication.
37. Press F5 to run the workflow. Note that the automation inputs the employee data from
the scanned invoice into the ExpenseIt application, 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
workflow is redundant, as it would not work on another machine. We encourage you to
build your own workflow by following the above steps.
12.SAP Automation
Topic
UI Automation
SAP (Systems, Applications and Products in Data Processing) is a well known enterprise
software company that makes applications that manage business operations and customer
relations.
Most elements of the SAP GUI can be detected by the Macro Recorder individually, like
the Standard Buttons, Menus and Submenus.
automation through keyboard entries like tab, arrow keys and the return key
1. Automation through Keyboard entries makes it easier and faster to move between
different text fields
2. Scraping the text allows us you to build Activities from individual elements in a block
element.
The Process
Let's assume that the UiPath is installed on the same machine as the SAP application.
1. With the SAP Business One already pulled up, start building the Workflow by pulling
up the Macro recorder. Select Desktop.
3. To pull-up the data form, we can simply use a left mouse click, using the Recorder.
4. Now the form is ready. The individual elements in this form cannot be identified by
the Recorder. You will use a different method to fill in the data. Press Escape. The previous
activities are temporarily saved in the queue.
5. The next step is to start filling in the data. The cursor is now positioned in the place
where you can start putting in the information ("Code").
Click on Element->Keyboard->Type.
6. Just click anywhere in the form and it will initiate the input dialog box in the field where
the cursor is in.
7. You can start by typing in initial data. Remember that you can use variables later to
manipulate the data, so you can insert your own data sources.
The text dialog box also allows you to add keyboard commands such as Return and Tab.
Let's add a Tab after the "Code" section. This will take you to the next field, which is a
dropdown.
8. You can notice that it creates a code right next to the text you entered. It's the same thing
you can apply when adding more keyboard commands. This is how you can manipulate the
movement of the cursor:
Arrow Down: [k(down)]
Enter: [k(enter)]
Tab: [k(tab)]
2. This will pull up the Screen Scraping wizard. The target field is next to "Tel 1". The
cursor position should be set next to it.
Copy "Tel 1" and put copy it in the Text to be found field.
3. Click on Set mouse position. "Tel1" will be detected. Click on the indicate link, then
click on the input field next to it.
4. Click on the Continue button . This will position the cursor next to "Tel1". You can use
the same technique from step 5 (presented in the previous section) to continue filling out
other data.
Radio Buttons
For the radio buttons, the same screen scraping technique can be used.
1. Click on Text->Mouse->Click and then copy paste "Inactive" into the Text to be found
field. There is no need to set the mouse position for this one. The mouse will click in the
middle of the element.
2. Use the same technique to click other GUI elements such as buttons
You are now ready to build your SAP automation out of these techniques.
c
UI Automation
1. Introduction
In order to use terminal activities, the Nuget package “UiPath.Terminal.Activities” needs to
be installed. Once installed, the activities can be found under “App Integration ->
Terminals” as in the following picture:
2. Terminal wizard
UiPath Terminal wizard is designed to help you automate data extraction and/or task
execution on various terminals (Mainframe/AS400/VT). It works with
TN3270/TN5250/VT terminals.
There are several ways to automate the mentioned terminals:
One may choose between those three based on the accuracy and the level of the provided
details (like colors, field information, etc).
Setting up a terminal session
The first step for creating a terminal session is by dragging the “Terminal Session” activity
into the workflow. Then the connection configuration dialog is displayed.
The “Provider” combo box specifies which provider to use. Based on this selection, the
“Connection type” section changes accordingly, depending on what connection types are
available for the specific provider. A more detailed description on each provider can be
found in section Supported providers.
“Show client application” flag specifies if the 3rd party provider window is displayed
during recording/play.
Browse to a profile file containing the connection information, specific to selected provider.
For example, for Attachmate Reflection, one may choose a rd5x/rd3x file, corresponding to
a TN5250/TN3270 profile file. The same applies to other providers.
Manually specify address
Enter manually the connection parameters:
Screen organization
The terminal screen is organized in fields, highlighted in orange color. The properties of the
selected field are displayed the Field Properties pane.
There are two methods by which UiPath identifies a field on the screen: by coordinates or
by visual elements.
Field identification by coordinates is straightforward, as it uses the row/column
coordinates to located the field. The more reliable way is using
LabeledBy/FollowedBy/Index properties. This is useful in case a screen changes a bit and
the coordinates are not valid anymore, however, the text before/after a field is usually the
same.
In the above picture, the selected field is “PUB1” and it is labeled by “System name:”. Index
property is used when there are multiple fields with the same LabeledBy/FollowedBy
property, like in a table.
Field Properties pane
The properties of the selected field are displayed the Field Properties pane. It includesthe
coordinates (row/column), LabeledBy/FollowedBy/Index properties, the text value and a
flag indicating if the field is editable or not.
2.2.3. Recorded Actions pane
This pane containsthe list of recorded actions (auto generated activities).
2.2.4. Available commands
Save & Exit: stops the terminal connection and saves the recorded actions
Stop/Start (recording): temporarily stops recording, in case some actions do not need to
be recorded
Actions commands: each of these are commands generates a specific terminal activity;
they are described in a Terminal activities section
Refresh: used to perform a full refresh of the terminal screen (used only for
testing/validation)
3. Terminal activities
Common properties
DelayMS: represents the time to wait after the activity executed; value is in milliseconds
TimeoutMS: specifies the time to wait for the activity to execute; value is in milliseconds
WaitType: allows specifying if the terminal should be in a ready state when executing the
activity; recommended value is “READY”
It is the main terminal activity and represents a connection to a terminal server. It acts as a
container for all other terminal activities. By default, after activity execution, the terminal
connection is closed.
Properties:
When using many terminal sessions, it is recommended to reuse the terminal connection
by saving it into a variable and use it in the next sessions. This is to avoid connecting and
disconnecting multiple times, as this process is more time consuming.
Set Field activity
Set the text value of the selected field to a given value. The field must be editable, otherwise
the activity is disabled.
In the sample above, the selected field identified by label “Username/Benutzer” is set to the
provided value “test”.
Properties:
Properties:
Key: the control key to send to the terminal (selected from the provided combo box)
In the sample above, the workflow execution waits until the field identified by label
“Username/Benutzer:” contains the text “test”.
Properties:
In the sample above, the workflow execution waits until the text “code400” is found on the
screen.
Properties:
Text: a string expression containing the value to wait for; it supports wildcards
MatchCase: a flag indicating if the text matching should be case sensitive
Advanced activities
Advanced activities are terminal activities that work based on coordinates and cursor
location. They should be used only when the field‟s positions do not change, in order to
ensure a successful workflow run.
Move Cursor activity
Moves the cursor position to the specified location. In the sample below, the cursor will be
moved at the beginning of the selected field.
Properties:
Row: 1-based index of the row where the cursor will be moved
Column: 1-based index of the column where the cursor will be moved
Properties:
Row: 1-based index of the row where the cursor will be moved
Column: 1-based index of the column where the cursor will be moved
Text: a string expression used for setting the field value
Row: 1-based index of the row where the cursor will be moved
Column: 1-based index of the column where the cursor will be moved
Row: 1-based index of the row where the cursor will be moved
Column: 1-based index of the column where the cursor will be moved
Length: the number of characters to return; if is not supplied, the text until the end of the
screen is returned
Text: a string variable where the resulting text is saved
Row: 1-based index of the row where the cursor will be moved
Column: 1-based index of the column where the cursor will be moved
Text: a string expression containing the value to wait for; it supports wildcards
MatchCase: a flag indicating if the text matching should be case sensitive
4. Supported providers
Attachmate Reflection
Prerequisites
Attachmate reflection installed
(https://www.attachmate.com/products/reflection/2014/)
Usage
When using profile mode, the profile file must be located in the Attachmate Reflection
profile folder. Default is „C:\Users\\Documents\Attachmate\Reflection‟
Rocket BlueZone
Prerequisites
No custom requirements
IBM Personal Communications
Prerequisites
IBM Personal Communications (http://www-03.ibm.com/software/products/en/pcomm )
Usage
Only profile mode supported. The profile file must be located in the IBM Personal
Communications profile folder. Default is „C:\Users\\AppData\Roaming\IBM\Personal
Communications‟
Using IBM EHLL standard
One may choose to connect to a terminal using IBM EHLL standard. This is an advanced
type of connection and specific information regarding EHLL implementation need to be
provided. Depending on the EHLL implementation, some features could not be available
(like field color).
One can only attach to an existing terminal session using this method.
Prerequisites
An emulator that implements the EHLLAPI standard
Usage
The terminal emulator window should be opened before the connection (see
the Application Specifics chapter below)
In connection dialog the path to the DLL implementing the EHLLAPI standard must be
specified
The EHLL function should be changed accordingly (usually is „hllapi‟)
The session name should be the session short name of the previously opened connection
The Show client application has no effect
Application specifics
IBM implementation
In Attachmate Extra application, one must associate a session short name letter with a
profile file (Options -> Global Preferences -> Advanced -> HLLAPI shortname); this letter
will be used in terminal session connection dialog (UiPath Studio)
The session must NOT be started when connecting from UiPath Studio
In Micro Focus Rumba Desktop application one must associate a session short name letter
(Options -> API… -> Identification ->Session Short Name). Also, must check the classic
HLLAPI data structure (Options -> API… -> Configuration -> Classic HLLAPI data
structure).