Certification Summ

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 80

 RPA:

o is the technology that allows computer software to mimic actions typically


performed by humans.
o is non-invasive and scalable.
o can work in any industry, especially when combined with AI.
o reduces costs rapidly and increases ROI.
o can automate highly manual, repetitive and rule-based processes, with low
exception rates and a standard electronic readable input.
 A robot is the computer software that executes automations. They are as accurate as the
instructions people create for them.
 Digital transformation refers to technology, as well as people. Employee upskilling is
key when it comes to a successful transformation.
 Can anyone build an automation? Short answer: yes. Stick around and discover how
you could do it, too!

Get Started with RPA Development


UiPath Studio is an integrated development environment for RPA developers to design,
develop, and debug automation projects. Studio connects with Orchestrator to publish
automated processes as NuGet packages to feeds. From there, they are distributed to robots to
be executed.
A software robot is an execution agent that runs automations built with the Studio
family and then published as packages either locally, or to Orchestrator. 
Attended robots

They are digital helpers for human users. They work on the same machines as humans,
during the same hours. They are triggered directly by humans (usually through UiPath
Assistant) or by an event related to what the human user does. For example, opening an
application or receiving an email. 

UiPath Assistant is the component that provides a friendly interface to interact with attended
robots

Unattended robots
These are meant to work non-stop, with as little input from human users as possible.
They are deployed on separate machines and their jobs are triggered exclusively from
Orchestrator.
The main capabilities of Orchestrator:
Provisioning: Creates and maintains the connection with robots.

Control and license distribution: Enables the creation, assignment and maintenance of licenses,
roles, permissions, groups, and folder hierarchies.
Automation storage and distribution: Allows the controlled storage and distribution of
automation projects, assets, and credentials, as well as large files used in automations.

Running automation jobs in unattended mode: Enables the creation and distribution of
automation jobs in various ways, including through queues and triggers.

Monitoring: Allows monitoring of jobs and robots and stores logs for auditing and analytics.

We can`t run jobs from Orchestrator both on attended and unattended robots.

From Orchestrator we can run automations just in UNATTENDED MODE !

Automation Cloud- Managing the users and cloud services.

A user with a (free) Studio license will have access only to Assistant or StudioX.

The sign-in feature connects Studio to Orchestrator

Package - An automation project published as a NuGet package from the Studio family to
Orchestrator or locally.

Process - A package in Orchestrator linked to an Orchestrator folder where human users or


robots have access. If stored locally, packages can be used as processes when they are run by attended
robots.

Components of a process:

 Inputs - the data that goes in the process.

 Process Flows - the sequences of sub-processes or activities undertaken in the process.

 Source Applications -  the applications or systems used to perform the sub-processes or


activities of the process.

 Outputs - the result generated by the process.

A procedure explains:

 who is responsible for each part of the process

 when each part of the process needs to occur

 how to handle exceptions 

 the specifications applicable to each part of the process.


Variable, Arguments and Control Flow
What are variables?
Variables are containers that can hold multiple data entries (values) of the same data type.
Variables are configured through their properties (4 properties):
- Name
- Type
- Scope
- Default value
Creating variables (3 types):
- from the variables panel
- from expressions (Ctrl+K in the activity)
- form the Activity properties panel (CTRL + K in the activities panel –
the one from the right top)
What is a workflow? A workflow represents a small piece of automation that you can take and re-use in
your projects. Type of workflows:

Sequences - Sequences are the smallest type of project. They are suitable to linear processes
as they enable you to go from one activity to another seamlessly, and act as a single block activity.

Flowcharts - Flowcharts can be used in a variety of settings, from large jobs to small projects
that you can reuse in other projects. The most important aspect of flowcharts is that, unlike sequences,
they present multiple branching logical operators, that enable you to create complex business processes
and connect activities in multiple ways. Flowcharts come with the Auto Arrange (right click – Auto
Arrange) option in the context menu.

State Machines -A state machine is a type of automation that uses a finite number of
states in its execution. It can go into a state when it is triggered by an activity, and it exits that
state when another activity is triggered. Another important aspect of state machines are
transitions, as they also enable you to add conditions based on which to jump from one state to
another. These are represented by arrows or branches between states.
Global Exception Handler - The Global Exception Handler is a type of workflow designed
to determine the project’s behavior when encountering an execution error. Only one Global
Exception Handler can be set per automation project. The Global Exception Handler is not
available for library projects, only processes.
The Global Exception Handler has two arguments, that should not be removed.
The first argument is errorInfo with the In direction and it stores information about the
error that was thrown and the workflow that failed. The level of the error to be logged can be
set in the Log Message activity.
The second argument, result has the Out direction and it is used for determining the
next behavior of the process when it encounters an error. The following values can be assigned
to the result argument:
 Continue - The exception is re-thrown.
 Ignore - The exception is ignored, and the execution continues from the next activity.
 Retry - The activity which threw the exception is retried. Use the RetryCount method
for errorInfo to count the number of times the activity is retried.
 Abort - The execution stops after running the current Global Exception Handler.

What is an argument?
Arguments are very similar to variables:
They store data dynamically
They have the same data types
They support the same methods and properties
The difference is that they pass data between workflows, and they have an additional
property for this – the direction. Arguments have specific directions: In, Out, and In/Out. These
tell the Robot where the information stored in them is supposed to go.
Property – can be used to indicate that an argument is currently not in use without
having to delete it from the list
CTRL + M (to create an IN argument) and CTRL + SHIFT + M (to create an OUT argument)

What are some business scenarios in which I will use GenericValue?


Data is extracted from a UI field and forwarded to another workflow without processing.
Two versions of the same Excel file are being compared column by column. The columns
are different in terms of data type, the only relevant thing is which entries have changed.
The most common control flow statements are If, While, Do While, For Each, Switch,
and Parallel.
What is control flow? - It is the order in which activities are executed or evaluated in a
software project.
The Parallel activity enables you to execute two or more child activity branches at the same
time. In UiPath Studio, the Parallel activity can be found in the Activities panel, under Workflow
> Control > Parallel. The Parallel activity finishes only after all child activities are complete or
when its CompletionCondition property evaluates to true. The Parallel activity is very beneficial
when there are one or more blocking activities in the branches, because it executes all child
activities simultaneously and asynchronously, thus saving time and being very efficient.

UI Automation
User interface or graphical user interface automation (UI automation) refers to the
process of interacting with graphical elements within applications by simulating mouse and
keyboard controls.
Object repository- it allows developers to store UI Element identifiers in a repository,
fine-tune them and share them with colleagues for much faster UI Automation development
and project update.
Containers - These are activities that identify the browsers or apps the process needs to
interact with. All activities included within a Container will execute on the same application.
Some examples are Open Browser, Attach Browser, Open Application, or Use
Application/Browser.
Input Activities - These activities send input to UI elements. They can be used to click,
check, type into, send hotkeys, and so on.
Output Activities - These activities get information from GUI Elements. They can instruct
the Robot to get the text by using various methods, get structured data or get UiElements
containing images.
Synchronization Activities - They help you create triggers based on UI behavior, thus
enabling the Robot to execute certain actions when specific events occur on a machine. (eg. On
Element Appear)
Targeting methods - Targeting methods are a subset of Properties. They provide several
ways to identify the UI element the Robot will be interacting with. The key targeting methods
are: Selectors
Fuzzy Selectors
Image
Anchors
Hardware events- can`t work in the background. The user can`t touch the mouse or
keyboard
Send Window message - works in the background. The user can do anything else.
Simulate - works in the background. The user can do anything else.

Get Full text- works in the background. Is the fastest, extracts hidden text, 100%
accuracy. Doesn’t support virtual environments. Doesn’t capture text position and formatting.
The method offers the option to ignore the hidden message and capture only the visible text.
Native - compatible with apps that use Graphics Design Interface (GDI), doesn`t work in
the background, doesn`t extract hidden text. Like full text, doesn`t support virtual
environments. Can extract the text position and formatting (including text color). By default, it
can process all known characters as separators (comma, space, and so on), but when only
certain separators are specified, it can ignore all the others.
OCR - the only output method that works with virtual environments and with reading
text from images. Can`t work in the background, can`t extract hidden text, lowest speed. Like
the Native method, it also captures the text position. The OCR method has two default engines
that can be used alternatively:
Google Tesseract,
Microsoft MODI.
There are additional OCR engines that can be installed free of charge (such as Omnipage
and Abbyy Embedded) or paid (IntelligentOCR offered by Abbyy).
Recorders
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 projects can be
modified and parameterized so that you can easily replay and reuse them in as many other
processes as you need.

AI COMPUTER VISION - Uses a neural network to identify elements on screen


Activities - Tell the robot what actions to take
Targeting methods - Identify the UI Element to take an action on
Input and output methods - define how what technology is used when sending input or
getting output from an UI.
Recorders and wizards- Help developers create UI Automation faster

Note that modern activities only work within containers, while classic activities can be configured to
work without containers as well.

CLASSIC AND MODERN ACTIVITIES


When using classic activities, the selector is the most common targeting method for UI elements
(99% of the time). In scenarios where it is unreliable, you have the possibility to manually change update
the activity to use a fuzzy selectors or anchors.

Modern activities will cycle through the stacked options Selector, Fuzzy Selector, Anchor, and
Image to determine the most reliable option in the order we have just presented them. In case the
previous method is not reliable, it will automatically choose the next one. This targeting technology is
called Unified target.

Recorders and wizards Modern and classic offer two different sets of recorders:
-Modern experience - The App/Web and Computer Vision
recorders are available.
-Classic experience - The Basic, Desktop, Web, Image,
Native Citrix, and Computer Vision recorders are available.
When it comes to Scraping Wizards:
Modern experience - The Table Extraction wizard is available for data scraping.
Classic experience - The Data Scraping and Screen Scraping wizards are available.
The Object Repository is only available in the Modern Design Experience.
Unified target use: - Selector, Fuzzy Selector, Anchor, Image

When building automation projects in UiPath Studio versions 2020.10 and later you can:
- Use modern activities as input for classic activities.
- Use classic activities as input for modern activities.
- Change the design experience of older projects from classic to modern.
Cool! Can we use the Recorder for all other applications' automation?
The recorder works only on automating user interface (UI Automation) . It will not
work for tasks involving Excel, Outlook, Word, or files and folders automation, where you still
need to add the activities one by one.

UI Frameworks

By default, a proprietary framework is used to access the target application window, however,
if a target is not detected, Studio comes with two alternatives:
AA (Active Accessibility) - for older applications.
UIA (Microsoft UI Automation) - for newer applications.
After you select a target, the option to change the UI Framework is no longer available.

Show all matches


This feature will help you find all the matches for the selected element that can be found in the
automated application. You can use this tool to debug your UI descriptors or selections.

Image selection mode


This feature can help you select a target or an anchor that is not available with a single click. It
can be enabled by pressing the F3 key and you can draw your selection using the bounding box.

This Check App State action is useful for situations in which you want to check whether the
application you are going to automate exists.
CLASSIC ACTIVITIES
Every time we insert data into an application, or we send a command to a system to
produce a change (or a continuation), we use input activities. In UiPath, the main input
activities are Click, Type Into, Send Hotkey, and Hover.
Input methods determine the speed of the process when it can run in the background
and interact with the application UIs.
By default, the 'Hardware Events' method is applied. But, we can change the method at
any point, from the properties panel, based on the compatibility and the capability of the
selected activity.
Hardware Events
How does it work?
-Clicks: the mouse cursor moves across the screen.
-Typing: the keyboard driver is used to type individual characters.
What are the implications?
-The attended User cannot touch the mouse or keyboard during the automation.
- It has a lower speed and load times can impact accuracy.
What are the strong points?
-Supports special keys like 'Enter', 'Tab', and other hotkeys.
- 100% compatibility.
What are the limitations?
-It won't be able to erase previously written text automatically.
-It won't work in the background.
Send Window Messages
How does it work?
-Replays the window messages that the target application receives when
the mouse/keyboard is used.
-Clicking and typing occur instantly.
What are the implications?
-Works in the background.
-Comparable to the Default method in terms of speed.
What are the strong points?
-Supports special keys like 'Enter', 'Tab', and other hotkeys
-Users can work on other activities during the execution of the
automated processes
What are the limitations?
-It won't be able to erase previously written text automatically.
-Works only with applications that respond to Window Messages.

Simulate
How does it work?
- Uses the technology of the target application (the API level) to send instructions.
- Clicking and typing occur instantly.
What are the implications?
- Works in the background.
- Actions are a lot faster, but there are some compatibility limitations.
What are the strong points?
- Will automatically erase previously written text.
- Users can work on other activities during the execution of the automated processes.
What are the limitations?
- Does not support special keys like 'Enter', 'Tab', and other hotkeys
- Compatibility is lower than the other two methods
Input activities
Click, Type Into and Send Hotkey are simple in terms of what they primarily do. All the input actions
share several properties:

Delay: This can be used to set a delay before or after the click.

WaitForReady: can be configured to wait for the target to become ready by verifying certain
application tags.
UiExplorer

- advanced tool that enables us to create a custom selector for a specific UI element.

- Verify if that application can be automated with selectors

Output methods
Get Text
Extracts a text value from a specified UI element. The maximum number of characters that can
be retrieved by this activity is 4096.
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.
Get Visible Text Activity
Extracts a string and its information from an indicated UI element using the Native screen
scraping method. This activity is automatically generated when performing screen scraping with
the Native method chosen, along with a container.

Get OCR Text Activity


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 Tesseract OCR engine is used.

Data Scraping Wizard


Data scraping is a functionality of UiPath Studio that allows the extraction of structured
information from an application, browser or document to a DataTable variable. The
functionality can be accessed directly from the Design ribbon of UiPath Studio, the ‘Data
Scraping’ button.

Extract Attributes Activities


This is actually a category of activities that can be used when you don’t want to extract the text
out of the UI element, but maybe the color, the position or an ancestor. There are 3 different
UiPath activities to do this:
- Get Ancestor: UI elements are in parents-children structures (a text document has the
Notepad app as a parent, who has the category of apps as a parent, and so on). Get Ancestor
retrieves the ancestor (or the parent) of an UI element
- Get Attribute: UI elements have plenty of attributes. Think of a button on a website – it
definitely has a color, a name, a state, and so on. Get Attribute allows the user to indicate an
attribute, and the activity retrieves the value of that specific attribute.
- Get Position: this activity retrieves the actual position on the screen of a specific element. This
can be very useful when there are many similar elements on a screen; without having their
actual position, it would become very difficult to identify each of them.

What is UI element synchronization?


UI synchronization helps us to handle complex situations encountered in UI automation
scenarios through specific activities.
Find Element
Waits for the specified UI element to appear on the screen (to be in the foreground) and
returns it as a Ui Element variable. This is useful when a certain action needs to be performed
on the Ui Element found.
Element Exists
Enables you to verify if a UI element exists, even if it is not visible. It returns a Boolean variable,
which makes it very useful in ‘If statement’ activities.
Wait Element Vanish
Waits for the specified UI element to disappear from the screen. It’s an alternative to Find
Element. For example: when the disappearance of an element (a loading sign) is more reliable
than the appearance of another element.
WaitNotVisible - When this check box is selected, the activity waits only until
the UI element disappears from the screen even if it is still active.

WaitNotActive - When this check box is selected, the activity waits only until
the specified UI element is no longer active.

On Element Appear
A container that waits for a UI element to appear and enables you to perform multiple actions
within it.

On Element Vanish
A container that enables you to perform one or multiple actions after a specified UI element
vanishes.
Text Exists
Checks if a text is found in a given UI element. There’s an alternative version of this that uses
OCR technology to check for a given UI element. This is useful when UI elements are not
accessible other than images.

The AI Computer Vision


UiPath AI Computer Vision is an AI skill that enables UiPath Robots to see and understand every
element on a computer screen.
The AI Computer Vision activity package contains refactored fundamental UI automation
activities such as Click, Type Into, or Get Text. The main difference between the Computer
Vision activities and the others is the usage of the Computer Vision neural network.
The neural network is able to identify UI elements such as buttons, text input fields, or check
boxes without the use of selectors

How do Computer Vision activities work?


-Visually identify all the elements, rather than relying on selectors or images.
-Enable human-like recognition of user interfaces.
-Use a combination of custom Screen OCR, text matching, and a multi-anchoring system.

When can I use Computer Vision activities?


Automating virtual desktop environments (Citrix, VMware, VNC, and Windows Remote
Desktop).
Automating local applications where the generators are unreliable or not available.
Which of the following factors increase the complexity of a potential automation?
The number of decision points in the business logic
Legacy applications
Inputs that cannot be standardized

Which are the steps of RPA implementations?


Prepare RPA / Solution Design / Build RPA / Test RPA / Stabilize RPA / Constant improvement

What happens when a Find Element activity does not find the desired element within the set
Timeout property?
The activity throws an exception and stops the execution

DataTables and Excel Automation with Studio


What are DataTables?
DataTable is the type of variable that can store data as a simple spreadsheet with rows and
columns. You can identify each piece of data based on its unique column and row coordinates.
Think of it as the memory representation of an Excel worksheet. In DataTables, the regular
convention of identifying the columns and the rows is applied - columns are identified through
capital letters, and rows through numbers.

The Build Data Table Activity


By using this activity, you choose the number of columns and the data type of each of them.
Moreover, you can configure each column with specific options like allow null values, unique
values, auto-increment (for numbers), default value and length (for strings).

The Read Range Activities


This activity gets the content of a worksheet (or a selection from that worksheet) and stores it
in a DataTable variable, which can be created from the Properties panel using Ctrl + K.

The Read CSV Activity


This activity captures the content of a CSV file and stores it in a DataTable variable. Although
not commonly used anymore, there are still legacy or internal-built applications that work with
this kind of documents.

The Data Scraping Action


This functionality of UiPath Studio enables you to extract structured data from your browser,
application or document to a DataTable.

The Generate Data Table From Text Activity


Can be used to create a DataTable from structured text, by letting the user indicate the row and
column separators.

Join Data Table - combines 2 datatables by common fields


OutputDataTable Activity - transform datatable and returned as string
Remove Data Column - remove a column (column/column index/…)
Sort Data Table - ……..
Clear Data Table- Clears all the data in an existing DataTable variable.
Filter Data Table - Allows filtering a DataTable through a Filter Wizard, using various conditions.
This activity can be configured to create a new DataTable for the output of the activity or to
keep the existing one and filter (delete) the entries that do not match the filtering conditions.
Lookup Data Table - It is similar to vLookup in Excel. You can search for a provided value in a
specified DataTable, and the RowIndex returns its value. Or it can be configured to return the
value from a cell with the given coordinates (RowIndex and Target Column).
Merge Data Table- Is used to append a specified DataTable to the current DataTable. The
operation is more simple than the Join Data Type activity, as it has 4 predefined actions to
perform over the missing schema.
Get Row Item - Retrieves a value from a row in a DataTable according to a specified column.
Update Row Item - Assigns a specified value to the indicated column of a DataTable row.
UiPath offers 2 separate ways of accessing and manipulating workbooks:
Workbook or File Access Level
Excel or Excel App Integration

Workbook - File Access Level


All workbook activities will be executed in the background.
(+) Doesn't require Microsoft Excel to be installed, can be faster and
more reliable for some operations just by not opening the file in the Excel application;
(!) Works only for .xls and .xlsx files.
(!) Doesn't work with .xlsm files.
(!) The file should not be open in Excel at runtime.

Excel - Excel App Integration


UiPath will open Excel just like a human would.
(+) Works with .xls, .xlsx and .xlsm, and it has some specific activities
for working with .csv. All activities can be set to either be visible to the user or run in the
background. The file can be open in Excel at runtime.
(!) Microsoft Excel must be installed even when the 'Visible' box is
unchecked. If the file isn't open, it will be opened, saved, and closed for each activity.

Read Range
Reads a specified range and stores it in a DataTable. If 'Use filter' is checked in the Read Range
activity under 'Excel Application Scope', it will read only the filtered data. This option does not
exist for the Read Range activity under 'Workbook'.

The Excel App Integration specific activities


CSV Activities
These activities can read from and write to CSV files, using DataTable variables. Although found
under Excel App Integration, they work even if they are not placed inside an Excel Application
Scope container.

Append to CSV
Add the info from a DataTable to a CSV file, creating it if it doesn't exist. The activity does not
overwrite existing data
Read CSV
Reads all entries from a CSV file and store them in a DataTable
Write CSV
Overwrites a CSV with the information from a DataTable
Range Activities
These activities can read data, insert and delete rows and columns, and even copy/paste entire
ranges. They are similar to the corresponding activities under DataTable, but they work directly
in the Excel file.

What happens if you use a Write Range activity and try to write data in an .xlsx file that does
not exist?
It will create that file for you and write the data in it.
From an automation potential standpoint, a process in which changes are frequent, the
system environment is volatile, and multiple manual (even non-digital) actions are required
belongs to the... No RPA category

This project type is recommended for simple, linear workflows without multiple decision nodes.

Sequence

Process fitness
Here are the criteria you can evaluate how fit a process is for automation:
Rule-based
The decisions made (including data interpretation) in the process can be captured in a
pre-defined logic. The exception rate is either low or can be included as well in the business logic.
Automatable and/or repetitive process
We can differentiate 4 types of processes:
Manual and non-repetitive: the process steps are performed by humans and can be
different every time the process is executed.
Manual and repetitive: the steps in the process are performed by the user, and at least
some of them are the same every time.
Semi-automated & repetitive: some of the repetitive steps have already been
automated (using macros, Outlook rules, and so on).
Automated: there are processes that have been already automated using other
technologies than RPA.
Processes that need to stay manual or are non-repetitive, due to the high exception rate
or factors that cannot be integrated in a business logic, aren't good candidates for automation.

Standard input
The input in the process should either be electronic and easily readable or readable
using a technology that can be associated with RPA (such as OCR). A good example is an invoice having
the fields pre-defined.
Stable
Processes that have been the same for a certain period of time and no changes are
expected within the next months are good candidates for automation, provided they meet the other
criteria as well.

Automation complexity
This set of criteria determines how hard it is to automate a process:
Number of Screens
RPA works by programming the robot to perform tasks at screen level (when the screen
changes, the logic has to be taught). The higher the number of screens, the more elements have to be
captured and configured prior to the process automation.
Types of applications
Some applications are more easily automated (such as the Office suite or browsers),
others heavily increase the automation effort (Mainframe, for example). And the more different
applications there are, the number of screens will increase, as well (see previous point).
Business logic scenarios
An automation's complexity increases with the number of decision points in the
business logic. Basically, each one could multiply by two times the number of scenarios.
Types and number of inputs
As previously stated, standard input is desirable. Yet there are cases in which one standard input
(such as an invoice) has to be configured for each supplier that will be affected by the automation.
Moreover, non-standard input can be of different complexity grades, with free text being the most
complex.

Assessing the automation potential


NO RPA- Processes where change is frequent, the system environment is volatile, and multiple manual
(even non-digital) actions are required.
SEMI-AUTOMATION - Processes that can be broken down into steps that can be clearly automated, and
steps that need to stay manual (such as validations or usage of physical security tokens).
HIGH-COST RPA- Processes that are rather digital and can be automated, but use some technologies
that are complex (such as OCR) or require advanced programming skills.
ZERO-TOUCH AUTOMATION - Processes that are digital and involve a highly static system and process
environment, so that they can be easily broken into instructions and simple triggers can be defined.

DATA MANIPULATION IN STUDIO


What is data manipulation?

Data manipulation is the process of modifying, structuring, formatting, or sorting data in order
to facilitate its usage and increase its management capabilities

Reference type
Reference type variables, like Lists and Dictionaries, initialize to the object we provide. The
compiler will not assign a value if we don't. This means we need to instantiate an object and
assign it to the variable we've just declared.

Dictionaries (or Dictionary<TKey, TValue>, as you will encounter them) are collections of (key, value)
pairs, in which the keys are unique. Think of the Address Book in your mobile phone, where each name
has corresponding data (phone number(s), email).

Regular Expression (REGEX, or regexp) is a specific search pattern that can be used to easily match,
locate and manage text. However, creating RegEx expressions may be challenging.
Typical uses of RegEx include:
Input validation.
String parsing.
Data scraping.
String manipulation.
Matches
Searches an input string for all occurrences and returns all the successful matches.
IsMatch
Indicates whether the specified regular expression finds a match in the specified input string.
Replace
Replaces strings that match a regular expression pattern with a specified replacement string

Which activity can be used to write the content of a DataTable into a String?
Output Data Table

What expression would you use to instantiate a dictionary object that pairs names (key) with ages
(value)?
New Dictionary (of String, Int32)
SELECTORS IN STUDIO
A selector in UiPath Studio is a feature that enables the identification of a specific User Interface
element through its address and attributes. These are stored as XML fragments.

The element identification is done to perform specific activities in an automation project.


Selectors are generated automatically every time we use an activity that interacts with graphical user
interface elements.

Tags & Attributes of Selectors

As you saw, selectors are made of nodes. And each node is made of tags and attributes.

Tags

Nodes in the selector XML fragment

Correspond to a visual element on the screen

First node is the app window

Last node is the element itself

For example:

wnd (window)

html (web page)

ctrl (control)

webctrl (web page control)

java (Java application control)

Attributes

Every attribute has a name and a value. You should use only attributes with constant or known
values.

For example:

parentid=‘slide-list-container’

tag=‘A’
aaname=‘Details’

class=‘btn-dwnl’

The UI Explorer
The UI Explorer is the functionality in UiPath Studio that allows you to analyze and edit
selectors. It contains a status button showing users the state of the selector, a visual tree panel that
displays a navigable UI of each application running at that moment, as well as the selected UI element.
The UI Explorer displays all the available tags and attributes and gives you the option to check them in or
out.

The UI frameworks
In order to return the best selector for the element of interest, we can switch between the
different UI frameworks available in UiExplorer.

Default - This is the proprietary method which usually works correctly with all types of
user interfaces.

Active Accessibility - This represents an earlier solution from Microsoft that makes apps
accessible. It is recommended when using legacy software, if the default framework does not work as
expected.

UI Automation - This is the improved accessibility model from Microsoft, which is


recommended when using newer applications in case the default framework does not work as expected.

The Property Explorer

The Property Explorer is a functionality of the UI Explorer that displays all the attributes of a
certain UI element, including those that are not displayed in the selector, like position, visibility,
innertext, and so on.

What are some business scenarios in which I will use the Property Explorer?

When you want to start an activity after a certain attribute changed its value (using the Wait
Attribute activity).

When you want to change the value of an attribute on a webpage, like its visibility (using the Set
Attribute activity).
When you want to check the state of a certain UI element by checking on an attribute (using the
Get Attribute activity).

Full selectors

Contain all the tags and attributes needed to identify a UI element, including the top-level
window;

Generated by the Basic Recorder;

Best suited when the actions performed require switching between multiple windows.

Partial selectors

Don’t contain the tags and attributes of the top-level window, thus the activities with partial
selectors must be enclosed in containers;

Generated by the Desktop Recorder;

Best suited for performing multiple actions in the same window.

When are partial and full selectors used?

The best example of using a partial selector would be a simple automation where the deployed
workflow only performs actions in the same application without shifting through multiple windows, like
a simple CRM.

On the other hand if the workflow would actually be required to interact with multiple windows,
like the CRM in the example above and a document. This would make the UI elements dispersed in
multiple windows, so full selectors would be required.
Fine-tuning
Fine-tuning is the process of refining selectors in order to have the workflow correctly executed
in situations in which the generated selector is unreliable, too specific or too sensitive with regards to
system changes.

It mainly consists of small simple changes that have a larger impact on the overall process, such
as adding wildcards, using the repair function or using variables in selectors.

What are some business scenarios in which fine-tuning is required?

The workflow uses files that have timestamp in the name.

The environment in which a workflow was built has different parameters than the production
environment (for example, the application version).
The use of dynamic selectors would improve the reliability and robustness of the automation.

When exactly is fine-tuning of selectors required?

Dynamically generated selectors - As it happens with some websites, the values of the
attributes change with each visit.

Selectors being too specific - Some selectors are automatically generated with the name of the
file or with a value that changes. Here, placeholders are very useful.

System changes - Some selectors contain the version of the application or another element that
changes when the application is updated.

Selectors using IDX - The IDX is the index of the current element in a container with multiple
similar elements. This might change when a new element appears in the same container.

Using wildcards

Wildcards are symbols that enable you to replace zero or multiple characters in a string. These
are useful when dealing with dynamically-changing attributes in a selector.

Asterisk (*) – replaces zero or more characters

Question mark (?) – replaces a single character

Using variables

Variables are used as a property for the attribute of your target tag. This allows selectors to
easily identify a target element based on the value of the variable or argument, and not an exact string,
which might change.

The variable can be changed to interact with a different element, without changing the selector
itself.

When data is stored in a list structure and you want to refer to them based on their position or
numeric value, we use Index Variables. They are stored in defined variable with specific numeric value.
For example: webctrl tableCol='6' tag='TD'tableRow='{{int_Index}}'/>

Anchor base

This is very useful in cases in which the attribute values are not reliable (are generated at each
execution, for example), but there is a UI element that is stable and is linked to the target UI element.

The Anchor Base activity has two parts, one to locate the anchor UI element (like ‘Find
Element’), and the second to perform the desired activity
Relative selector

This activity will basically incorporate the information about the anchor’s selector in the selector
of the target UI element. However, the new selector will probably need additional editing, as some
nodes of the first selector will still be in the new one. The solution is to have that part (like a dynamic ID)
removed, and the selector will stabilize using the anchor’s selector.

Visual tree hierarchy

The hierarchy in the Visual Tree can improve the reliability of a selector by including the tags
and attributes of the element that is above in the hierarchy.

This is very useful when the target UI element’s selector is not reliable, but the selector of the UI
element right above in the hierarchy is. However, again, the selector needs further editing and
validation, as the dynamic part needs to be removed and, at the same time, you need to make sure that
the target element can be identified with a unique attribute.

Find children

This activity can identify all the children of an element that is more stable. Since its output is the
collection of children, you will need to come up with a mechanism to identify only the target UI element
(using one of its attributes, that makes is unique between the children, but wouldn’t be enough to
identify it universally).

When fine-tuning a selector, how many characters does “*” replace?

Zero or more

What activity would you use to eliminate an unnecessary column in a DataTable?

Remove Data Column

This is a reliable selector for a dynamic page: "webctrl idx\='144' tag\='IMG'/".

False

PROJECT ORGANIZATION IN STUDIO


Sequence
When to use it?
When there’s clear succession of steps, without too many conditions (for example, a UI
automation).
Usually, sequences are used to nest workflows and the high-level logic is handled
through flowcharts or state machines.
What are the advantages?
Easy to understand and follow, having a top to bottom approach.
Great for simple logic, like searching for an item on the internet.
What are the disadvantages?
Nesting too many conditions in the same sequence makes the process hard to read.
Not suitable for continuous flows.
Flowchart
When to use it?
When you have a complex flow with several conditions, a flowchart is at least visually
much easier to understand and follow.
When you need a flow that terminates only in one of several conditions.
What are the advantages?
Easy to understand, as it is similar to logic diagrams in software computing.
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.
What are the disadvantages?
Flowcharts should be used only as the general workflow (with sequences nested inside),
not for individual parts of projects (nested inside other workflows).
State Machine
When to use it?
First of all, let’s understand what a state machine is. It is an abstract machine consisting
of a finite number of pre-defined states and transitions between these states. At any point,
based on the external inputs and conditions verified, it can be in only one of the states.
State machines can be used with a finite number of clear and stable states to go
through. Some examples from your daily life include vending machines, elevators or traffic
lights.
What are the advantages?
Can be used for continuous workflows that are more complex.
Transitions between states can be easily defined and offer flexibility.
Can accommodate processes that are more complex and cannot be captured by simple
loops and If statements.
It is easier to cover all the possible cases/transitions with state machines.
What are the disadvantages?
Longer development time due to their complexity: splitting the process into logical
"states", figuring out transitions, and so on.
Note: State machines are not to be overused - they should define only the skeleton of
the project.
In fact, there are templates built upon state machines especially designed to build large
enterprise automations. The most commonly used is the Robotic Enterprise Framework - we
have a separate course to cover it in the RPA Developer Advanced learning plan.

Storing and reusing components in separate projects is done through process libraries.
A process library is a package that contains multiple reusable components, which consist of
one or more workflows that act as individual activities. Libraries are saved as .nupkg files,
and then installed in different projects using the Package Manager.

Exception Handling
Predicting and treating exceptions can be done in two ways:
At activity level, using Try/Catch blocks or Retry Scope.
At a global level, using the Global Exception Handler.
Application exception
The Application Exception describes an error rooted in a technical issue, such as an
application that is not responding.
Business rule exception
The Business Exception describes an error rooted in the fact that certain data which the
automation project depends on is incomplete, missing, outside of set boundaries (like trying to
extract more from the ATM than the daily limit) or does not pass other data validation criteria
(like an invoice amount containing letters). Business Rule Exceptions do not occur "naturally",
they need to be defined using a Throw activity.
Git
Clone a remote repository.
Add a project.
Commit and push.
Copy a project to Git.
Create and manage branches.
Solve conflicts with File Diff option.
TFS
The following versions are supported:
2012
2013
2015
Express 2012
Express 2013
Express 2015
First, you need to setup TFS in Studio.
Then you can open a project or add a new project to the TFS.
SVN
With the SVN integration you can:
Open a project from SVN.
Add a project to SVN.

We are automating a banking process that moves money from clients' accounts according to
certain rules. It makes payments, it calculates interest rates and, each morning, it moves the
amounts of money according to specific rules. The process is continuous.
State Machine
We received a request to create a robot that listens to a server until it receives some
information. When it does, it processes the information, then after the processing is
complete, it logs the results. Finally, it returns to listening to the server. The process is
continuous.
State Machine

Which of the following criteria can be considered breakdown criteria for splitting large
workflows?
The application that is being automated.
The purpose of a certain operation (login, processing, reading a document using OCR,
filling in a template, and so on).
The length of each workflow.

What are the principles an UiPath implementation should follow?


Reliable
Extensible
Efficient
Maintainable
You can use the Simulate input method to send hotkeys.
False
Which factors should be considered as criteria for breaking down a project into different
workflows?
Using more than one application
Having sets of activities serving different purposes in the same project

Which of the following statements are true regarding the Find Element activity?
It throws an exception if it doesn’t find the element on screen.
It returns the found element in a variable for later use.
DEBUGGING IN STUDIO
Three options are available in Design time, in the contextual menu for each activity: Run to this
Activity, Run from this Activity, and Test Activity

Run to this Activity - start the debugging process and pauses before the selected activity is executed
while highlighting it in the panel.

Run from this Activity - start that activity and after that, start the normal debugging

Test Activity- running a test on the currently selected activity

- Used in 2 ways: add default values to properties and test


- Add arguments and/or properties to activity properties and use the Local panel to add
values after clicking the Test Activity option.

Breakpoints
- simple Breakpoint – pauses the execution on an activity
- conditional breakpoint (pauses the execution on an activity when a condition and/or
a hit count are met)
- simple trace point (simple breakpoint with logging)
- conditional trace point - conditional breakpoint with logging

What happens if you close a Test Bench tab without saving the workflow?
You lose your Test Bench workflow.

Where can you find the Run from this Activity, Run to this Activity and Test activity actions?
In the activity contextual menu in the Designer panel

Which of the following are types of information you can find in the Locals Panel?
Exceptions
Properties of the current activity
Argument values
Variable values
Properties of the previously executed activity

Which key combination would you use to activate IntelliPrompt in the Immediate Panel?
Ctrl + Space

What information does the Call Stack Panel display?


The next activity to be executed and its parent containers.

From which panels can you directly add variables to the Watch panel?
The Variables panel
The Watch panel
The Locals panel
Which panel would you use to create a Test Bench?
The Activities panel
What is the default action of the Play button in the Ribbon?
Debug Current File
What happens when you click an activity or container in the Call Stack Panel?
You focus on it.

ERROR AND EXCEPTION HANDLING IN STUDIO


Errors
Errors are events that a particular program can’t normally deal with. There are different types of
errors, based on what's causing them - for example:

Syntax errors, where the compiler/interpreter cannot parse the written code into
meaningful computer instructions.

User errors, where the software determines that the user’s input is not acceptable for
some reason.

Programming errors, where the program contains no syntax errors but does not
produce the expected results. These types of errors are often called bugs.

Exceptions

Exceptions are events that are recognized (caught) by the program, categorized, and handled.
More specifically, there is a routine configured by the developer that is activated when an exception is
caught. Sometimes, the handling mechanism can be simply stopping the execution.

Some of the exceptions are linked to the systems used, while others are linked to the logic of the
business process.
System exceptions
NullReferenceException - Occurs when using a variable with no set value (not initialized).

IndexOutOfRangeException - Occurs when the index of an object is out of the limits of the
collection.

ArgumentException - Is thrown when a method is invoked and at least one of the passed
arguments does not meet the parameter specification of the called method.

SelectorNotFoundException - Is thrown when the robot is unable to find the designated selector
for an activity in the target app within the TimeOut period.

ImageOperationException - Occurs when an image is not found within the TimeOut period.

TextNotFoundException - Occurs when the indicated text is not found within the TimeOut
period.

ApplicationException - Describes an error rooted in a technical issue, such as an application that


is not responding.

Business exceptions
Business rule exceptions are separate from all the system exceptions listed above. These
describe errors rooted in the fact that certain pieces of data which the automation project depends on
are incomplete, missing, outside of set boundaries (like trying to extract more from the ATM than its
daily limit), or do not pass other data validation criteria. Business rule exceptions will not be
automatically identified by using the generic System.Exception in a TryCatch activity. They need to be
defined by a developer by using the Throw activity and handled inside a TryCatch.

TryCatch activity catches a specified exception type in a sequence or activity, and either displays
an error notification or dismisses it and continues the execution. (se adauga prin click dreapta si
surround with try catch, sau prin ctrl+t sau din activities panel)

Rethrow- can only be used inside catch blocks and will throw again the exception that was
initially caught.

Retry Scope
The Retry Scope activity retries the contained activities as long as the condition is not met or an
error is thrown.

The Retry Scope activity is used for catching and handling an error, which is why it’s similar to
TryCatch. The difference is that this activity simply retries the execution instead of providing a more
complex handling mechanism.
The activity has 2 main sections:

Action - Holds the activities we want to retry.

Condition - Holds the termination condition. The Retry Scope activity retries the
activities in the Action section as long as this termination condition is not met.

It can be used without a termination condition, in which case it will retry the activities until no
exception occurs or the provided number of attempts is exceeded.

Additional properties
NumberOfRetries - The number of times that the sequence is to be retried.

RetryInterval - Specifies the amount of time (in seconds) between each retry.

Keep in mind that, if the ContinueOnError is set to True on an activity that has a scope (such as
Attach Window or Attach Browser), then all the errors that occur in other activities inside that scope are
also ignored.

Setting this property to True is not recommended in all situations. But there are some in which it
makes sense, such as:

While using data scraping - So that the activity doesn't throw an error on the last page
when the selector of the 'Next' button is no longer found.

When we are not interested in capturing the error but simply in the execution of the
activity.

The Global Exception Handler


The Global Exception Handler is a type of workflow designed to determine the process' behavior when
encountering an unexpected exception. This is why only one Global Exception Handler can be set per
automation project.

In its default configuration, the Global Handler catches the exceptions thrown by any activity in the
process at runtime and executes a standard response - ignore, retry, abort or continue, as predefined at
design time. For attended scenarios, it can be configured to let the user select the action.

A Global Exception Handler can be created either by adding a new workflow file with this type, or by
setting an existing workflow as Global Exception Handler from the Project panel.

The Global Exception Handler has 2 predefined arguments, that shouldn't be removed:

errorInfo with the In direction - contains the information about the error that was thrown and
the workflow that failed.
result with the Out direction - used for determining the next behavior of the process when it
encounters the error.

Log Error

This part simply logs the error. The developer gets to choose the logging level - Fatal,
Error, Warn, Info, Trace, and so on.

Choose Next Behavior


Here the developer can choose the action to be taken when an error is encountered
during execution:

Continue - The exception is re-thrown.

Ignore - The exception is ignored, and the execution continues from the next
activity.

Retry - The activity which threw the exception is retried.

Abort - The execution stops after running the current handler.

Note that the Global Exception Handler is not available for library projects, only processes.

Only uncaught exceptions will reach the exception handler. If an exception occurs inside a TryCatch
activity and is successfully caught and handled inside the Catches block (and not re-thrown), it will not
reach the Global Exception Handler.

When the Extract as Workflow option is used…

variables are automatically turned into arguments.

What is it recommended to have in a Catch block?

A LogMessage activity

An alternative to the approach that fails

Can you store a Selector in a variable to be used in the Selector property of an activity?

Yes, of type String

What can you use to make sure that the execution continues even if an activity fails?

The Try/Catch activity


The Retry Scope activity can be used without a termination condition. In this case it will...

retry the activities until no exception occurs (or the provided number of attempts is exceeded).

LOGGING
Studio logs

Setup logs

Orchestrator diagnostic logs

Robot logs

Robot logs
Robot logs are messages generated by the UiPath Robot. There are two types of Robot logs:
Robot execution logs and Robot diagnostic logs. Robot execution logs describe the execution of
processes while Robot diagnostic logs describe the functioning of the Robot. We will focus on Robot
execution logs.

Robot Execution Logs

Robot Execution logs can be used to supervise, diagnose, and debug processes in production,
gather process performance data or even track business results like the total value of transactions
processed. In this lesson, we are focusing on the supervising, diagnosing, and debugging aspects.

Robot execution logs can be either default logs or user-defined logs.

Default logs are generated automatically when certain events take place. The events
logged by this category are:

Execution start is generated every time a process is started (Level = Information)

Execution end is generated every time a process is finalized (Level =


Information)

Transaction start is generated every time a transaction within a process is


started (Level = Information)

Transaction end is generated every time a transaction within a process is


finalized (Level = Information)

Error log is generated every time the execution encounters an error and stops
(Level = Error)

Debugging log is generated if the Robot Logging Setting is set to Verbose and
contains, activity names, types, variable values, arguments, etc. (Level = Trace)
User-defined logs are generated according to the process designed by the user
in Studio, when using the Log Message activity or by the Write Line activity.

Fatal - The robot cannot or should not recover from this error. Something has gone critically wrong and
the process needs to be stopped. For example, the robot has no means of handling an exception or the
website it's interacting with displays a message that it is under maintenance.

Error - An error occurred. The robot will attempt to recover and move on with the next item.
Warn - Any important data that we need to stand out from the rest of the log information.
Info - Information about robot progress. Usually includes when we enter/exit a workflow, when data is
read from an external source, etc.

Trace - Information useful while developing/debugging, however not useful and needed in production.
Debugging / Verbose level - Verbose level generates default logs for the execution of each individual
activity, allowing a much more in-depth diagnosis by giving more information about the values of
variables and arguments. We can generate Verbose logs by enabling the 'Log Activities' option in the
Studio.

By default, running a process in Studio will record Trace level logs. In order to set logging to verbose
level locally, access the Debug tab, enable the Log Activities option in the ribbon and run the process in
debug mode.

What are the types of logs generated by the execution of a process?

Robot Execution Logs

Which of the following events generate log entries by default when executing a process in run mode?

Execution start

Transaction end

Execution end

Transaction start

Error log

There are several places where you can access Robot Execution Logs:

In the Output Panel in UiPath Studio for the previous process execution from Studio.
In the %localappdata%\UiPath\Logs\<shortdate>_Execution.log file for all processes ran on the
machine from UiPath Studio. Logs will be generated at Trace level and above or Verbose level and above
depending on whether the Verbose level is activated or not.

In the %localappdata%\UiPath\Logs\<shortdate>_Execution.log file for all processes ran on the


machine from UiPath Assistant. The logs will be generated at the level defined in UiPath Assistant and
above.

In Orchestrator, in the Logs section when running processes while connected to Orchestrator.
The Logs will be generated at the defined level and above.

Access the logs: CTRL + L

Log message activities should ideally be used:

1 at the beginning and the end of every workflow (Log level = Information).
2 each time an exception is caught in a Catch block (Log level = Error).
3 each time a Business Rule Exception is thrown (Log Level = Error).
4 when data is read from external sources, for example, log a message at Information
level when an Excel file is read (Log Level = Information).
5 in Parallel or Pick activities, log messages on every branch, in order to trace the
branch is taken (Log Level = Information).
6 in If/Flowchart Decision/Switch/Flow Switch activities (however, since processes
might have a lot of these activities, we can decrease the Log Level from Information to Trace,
so we don't have a lot of these logs in the database).

You want to filter logs in the Output panel to check Fatal level logs. What category in the Output panel
would you leave enabled?

Trace

Arrange the log levels by severity. Level 1 is the least severe, Level 6 is the most severe.

1. Verbose
2. Trace
3. Information
4. Warning
5. Error
6. Fatal

ORCHESTRATOR FOR RPA DEVELOPERS


Orchestrator is the component of the UiPath Platform for managing automations, robots and
the related entities. Although having different cloud and on-premises deployment options and a rather
complex infrastructure consisting of nodes, servers and high-availability capabilities, the users access it
through a simple web interface.

Provisioning: Creates and maintains the connection with robots and attended users.

Control and license distribution: Enables the creation, assignment and maintenance of licenses, roles,
permissions, groups, and folder hierarchies.

Running automation jobs in unattended mode: Enables the creation and distribution of automation
jobs in various ways, including through queues and triggers.

Automation storage and distribution: Allows the controlled storage and distribution of automation
projects, assets, and credentials, as well as large files used in automations.

Monitoring: Allows monitoring of jobs and robots and stores logs for auditing and analytics.

Inter-connectivity: Acts as the centralized point of communication for third-party solutions or


applications.

FOLDERS
Folders enable the separation and hierarchical organization of automation entities (processes,
queues, assets) and the fine-grained configuration of roles and permissions. The hierarchical structure
allows up to 6 sub-folders under each first level folder.

Folders help replicate the organizational hierarchies, with the separation of automated
processes between teams, segregation of process data, and access control for users. At the same time,
when it makes sense, they allow sharing of the resources and assets.

PACKAGE
A project developed in UiPath Studio that is published to Orchestrator as a NuGet package. Multiple
versions of the same project can be stored and used. Packages can also be manually uploaded to
Orchestrator.

PROCESS
It is a version of a package that has been allocated to a certain folder.

JOB
A job represents the execution of a process on a UiPath Robot. You can launch the execution of a job in
either attended or unattended mode. You cannot launch a job from Orchestrator on attended robots,
unless for debugging purposes using personal workspaces, and they cannot run under a locked screen.

HEARTBEAT
Attended and unattended robots send a heartbeat to Orchestrator every 30 seconds. This
signals to Orchestrator that the connection is working.

Packages are published to Orchestrator using feeds. The feeds can be configured to be at tenant
level, or at folder level. A package published to the tenant feed can be then used in a process in any of
the folders. If it is published using a folder feed, it cannot be used for processes in other folders.

Packages are published to Orchestrator using feeds. The feeds can be configured to be at tenant level,
or at folder level. A package published to the tenant feed can be then used in a process in any of the
folders. If it is published using a folder feed, it cannot be used for processes in other folders

Webhook
Webhooks facilitate the communication between Orchestrator and other applications at API
level. These are mapped at tenant level, which means they cannot be differentiated between folders
and will provide information for the entire tenant.

FOLDER ENTITIES (ASSET, STORAGE BUCKET, QUEUE, TRIGGER)


From the entities defined at the beginning of the lesson, processes and jobs are folder entities. Packages
depend on the feed configuration.

Apart from them, several other entities exist at folder level:

ASSET
An asset is a piece of data stored in Orchestrator for the use of robots. There are four types of assets:

Text - stores only strings (it is not required to add quotation marks).
Bool - supports true or false values.
Integer - stores only whole numbers.
Credential - contains usernames and passwords that the Robot requires to execute particular
processes, such as login details.

Assets can have a global value or a value per user. This means that only the designated user will access a
certain value stored in that asset.

TRIGGER
Triggers enable the execution of jobs in a structured manner. There are two types of triggers:

Time triggers: with these, you can schedule the recurrent execution of a process.

Queue triggers: these enable the execution of a process based on the new items added to a
queue.

To successfully run a job with an unattended robot:


1. The automatic robot creation is enabled at user level, in the Unattended Robot
panel.
2. The workstation on which the unattended robot runs is connected to Orchestrator
using a machine template.
3. The user and the machine template are in the same folder with the process we want
to run.
4. Unattended runtimes (licenses) are available on the tenant.

Machine templates
The machines in Orchestrator work as API key generators, authorizing the connection between
the robots and Orchestrator.

There are two types of machines in Orchestrator:

1. Machine templates: this allows the connection to multiple workstations with a single API
key.
2. Standard machines: this allows the connection between Orchestrator and a single machine.
This is suitable for scenarios in which robots need to run on specific machines.

Which of the following entities need to be mapped to the folder in order to run an unattended job?

Process

User

Machine template
Active Directory users can configured in Orchestrator only to have an Unattended Robot automatically
created, but not an Attended Robot.

False (The automatic robot creation can be enabled for Active Directory users for both
unattended and attended robots.)

Background process (headless process) - refers to a job that runs without interacting with any sort of UI.

Foreground process - use the graphical UI. Can run in parallel with one or more background processes in
attented automation

Which of the following sets of jobs can be run simultaneously using a pool of 3 machines connected
using the same machine template having 3 runtimes?

5 jobs created using a background process

3 jobs created using a foreground process and 5 jobs created using a background process

Consider a Windows Server machine connected to Orchestrator using a machine template configured
with 3 licenses (runtimes). If the only job running uses a background process, how many licenses are
consumed?

Licenses are consumed when the connection between the machine and Orchestrator is in effect. So, all 3
licenses are consumed.

Resources - assets, queues , processes

Consider a developer having access to several folders in which resources are stored, including their own
personal workspace. Can they work with the resources in all the folders in Studio if they are signed in to
Orchestrator?

Yes - they will see the resources in the folder selected and they are able to switch from the
panel.

Orchestrator admins can toggle between read-only and write privileges for each storage bucket.
If a company's Orchestrator consists of multiple tenants, will the libraries be shared between the
tenants?

From the Tenants settings menu, admins can choose between a single feed for the entire Orchestrator
host, or one feed for each tenant.

What is a transaction?
A transaction represents the minimum (atomic) amount of data and the necessary steps
required to process the data, by fulfilling a section of a business process. A typical example would be a
process that reads a single email from a mailbox and extracts data from it.

We call the data atomic because once it is processed, the assumption is that we no longer need
it as we advance with the business process.

we can divide business processes into three categories:

Linear - The steps of the process are performed only once and, if there is the need to process
different data, the automation needs to be executed again. For example, if we go back to the email
example from this chapter's introduction, and a new email arrives, the automation needs to be executed
again in order to process it. Linear processes are usually simple and easy to implement, but not very
suitable to situations that require repetitions of steps using different data.

Iterative - The steps of the process are performed multiple times, but each time different data
items are used. For example, instead of reading a single email on each execution, the automation can
retrieve multiple emails and iterate through them doing the same steps. This kind of process can be
implemented with a simple loop, but it has the disadvantage that, if a problem happens when
processing one item, the whole process is interrupted and the other items remain unprocessed

Transactional - Similarly to iterative processes, the steps of transactional processes repeat


multiple times over different data items. However, the automation is designed so that each repeatable
part is processed independently. These repeatable parts are then called transactions. Transactions are
independent from each other, because they do not share any data or have any particular order to be
processed.

What are SLAs in Orchestrator? (Service Level Agreements)


An SLA in Orchestrator is just an application of the general concept of SLA. In other words, it is a
commitment between a provider and a client with measurable indicators regarding the service
provided. In Orchestrator, this takes the form of a time interval (expressed in days and/or hours) in
which a queue item has to be processed. The Risk SLA is a subsequent concept in Orchestrator, meant to
identify the point in which corrective action needs to be taken to avoid breaching the SLA.

Why do you need SLAs in Orchestrator?

Automated processes are run based on certain assumptions regarding the volume of the queue
items. This dictates the robot capacity allocated to a certain process and queue.

There are cases in which the reality is different from those assumptions. In the absence of an
SLA, the breaches may be noticed too late and with costly consequences.

Consider an item added to a queue at 17:00. The average processing time of the queue is 45 minutes.
The SLA is 3 hours and the risk SLA is 2 hours. If a robot picks it up at 19:00, what would the status of the
queue item be?

In SLA, at risk

Which of the following sets of jobs can be run simultaneously using a pool of 4 machines connected
using the same machine template having 2 runtimes?

3 jobs created using a foreground process and 5 jobs created using a background process

5 jobs created using a background process

Which of the following Orchestrator entities are NOT available through the Resources panel in Studio?

Jobs

Packages

MAILS
This activity package is designed to facilitate the automation of any mail-related tasks, covering
various protocols, such as IMAP, POP3 or SMTP. UiPath also features activities that are
specialized for working with Outlook and Exchange.
Output- System.Net.Mail.MailMessage objects

In the 2020.10 version of the Mail Activities Package, there are two main ways to filter emails:

by using control flow activities.

by using 'Get Outlook Mail Messages' activity.

Filter
A string used as a filter for the messages to be retrieved. Accepts JET queries or DASL queries.

Let's assume that you use Outlook and need to retrieve only the email messages that have
"Critical" in the beginning of the subject line.

In this case, you can also use SQL filtering, and your expression would look like this:

"@SQL=""urn:schemas:httpmail:subject"" like 'Critical%'"

FilterByMessageIds

Returns only mail messages that match the specified message IDs. If set, the Filter option is
ignored.

OnlyUnreadMessages

Specifies whether to retrieve only unread messages. By default, this check box is selected.

Top

The number of messages to be retrieved starting from either the newest or the oldest,
depending on the OrderByDate parameter.

Which of the following properties are found in the Get Outlook Mail Messages activity?

MailFolder

You are using the 'Save Attachments' activity and you have specified a local folder to download the files.
What will happen if there are duplicate file names in the folder?

The old files will automatically be overwritten.


You are retrieving some Outlook mail messages and you are filtering them using the following
expression:

"[Received] >= '" + DateTime.Today.AddDays(-2).ToString("d") + " 00:00AM' AND [Received] < '"+
DateTime.Today.ToString("d") + " 00:00AM'"

All mail messages received in the last 2 days.

What is the supported variable type in the Output property field of all Get Mail activities (POP3, IMAP,
Outlook, Exchange)?

List (MailMessage)

The Send Outlook Mail Message activity will work without having Microsoft Outlook installed.

False

What activity can you use to send an email without entering the username and password of the email
account?

Send Outlook Mail Message

PDF AUTOMATION IN STUDIO


Native PDF

A PDF file that is originally generated in a computer, aka "born digital", meaning that it was
created from an original electronic version of a document. One quick way to tell that a PDF is native is
that you can select blocks of text in the file

Scanned PDF

A PDF file that is made up of scanned images of a given document. With scanned PDFs you will
not be able to select text or use the search function because the PDF is a collection of images.

In PDF automation, data can be extracted using two separate activities:

Extract data using Read PDF Text activity.

Extract data using Read PDF with OCR activity.


Both activities are available in the UiPath.PDF.Activities package.

Read PDF Text is the more accurate of the two, but works only with native PDF documents. Read PDF
with OCR is less reliable, but can extract text from scanned PDF documents. The second option also
requires the selection of an OCR engine.

The Anchor Base activity is used to identify an element with an unstable selector relative to an
element with a stable one. For example we may want to get a value from a PDF invoice. The value UI
element has an unstable selector while the label element is stable.

The Anchor block: Supports only the Find Element or Find Image activities. Identifies the UI
element to be used as an anchor.

The Action block: Supports UI interaction activities for the target element. Most often for PDF,
we will use the Get Text activity to retrieve the text in the target UI element.

VERSION CONTROL SYSTEMS

Version control systems are tools used by software development teams to manage the
collaboration on large projects.

A version control system allows developers to track a code change, review the history of the
code, and revert to a previous version of the project, if needed.

Enhanced collaboration

Team members can work freely on any file at any time and merge the changes into a common
version at the right time.

Storing versions

Only the current version is stored on the disk, all the others are in the system.

Restoring previous versions

Restore older versions of the file at any time.

Tracking different project versions

New versions are usually saved with change descriptions. Versions of the same file can also be
compared.

The version control systems UiPath Studio is integrated with are Git, TFS, and SVN. The
connection to a version control system is done at project level. To manage your connections, access
Studio, go to the Backstage view, and click the Team tab.
Alternatively, the Add to Source Control button in the status bar offers shortcuts to Git Init, Copy
to Git, Add to TFS, and Add to SVN.

Git Overview

Git is an open-source version control system. Git is distributed, unlike older centralized version
control systems such as SVN and CVS, which allows every developer to have a complete history of their
code repository locally. This makes the initial clone of the repository slower, but subsequent operations
such as commit, blame, diff, merge, and log dramatically faster. Git is the most widely used version
control system in the world and is considered the modern standard in software development.

SVN

With a centralized system, the SVN version control system stores all files and historical data on a
central server. The developers commit their changes to this central server repository.

Trunk: The trunk is the hub of your current, stable code and product. It only includes tested, unbroken
code.

Branches: Here you add the new codes and features. Using a copy of the trunk code, team members
conduct research and development in the branch. This allows each team member to work on the
enhanced features without disrupting each other’s progress.

Tags: Tags are a duplicate of a branch at a given point in time. Tags are not used during development but
are used during deployment after the branch’s code is completed. Marking code with tags makes it easy
to review and, if necessary, revert your code.

GIT

Git uses a central repository and a series of local repositories. Local repositories are exact copies
of the central repository containing their complete history of updates.

The Git workflow is similar to SVN, but with an extra step. To create a new feature, we need to
take an exact copy of the central repository to create our local repository on your local machine
(consider this as our “local trunk”).

Then we work on our local repository exactly as we would in SVN by creating new branches,
tags, etc. When we’re done, we merge our branches into our local repository (i.e. local trunk). When
we’re ready to merge into the central repository, we push our changes from our local repository to the
central repository.

Some of the benefits include the following:

It's faster to commit.

No more single point of failure.

It's available offline.


What do branches allow our team to do?

Develop and test various features in parallel

What are our options in the Solve Conflicts window?

We can select between keeping the remote or the local version of the workflow

What differences between versions of the workflow files can you see in the Show Changes and Solve
conflicts windows?

Modified activity properties

Deleted activities

Added activities

At the start of your day, you've pulled the latest version of the project you're working on from the
remote Git repository. You've been working for two hours and now you want to check the difference
between your version of the project and the last committed version.

By selecting Show Changes in the Project context menu

Fill in the blank: When working with the Show Changes option it's good to know that it works at
____________ level.

Workflow file

You've just created a new project in UiPath Studio. You want to create a local repository and copy the
project to it. Which of the following options in UiPath Studio allows you to do both?

Git Init

We want to integrate the updates pushed to the remote master branch into a feature branch. What do
we need to do?

While working in the feature branch, select Manage Branches > Select the master branch and
select Merge

How can you overwrite the last commit to a Git repository in UiPath Studio?

By selecting Amend Commit in the Commit Changes window


Commit - Will save the changes to the local repository.

Push - Will send the changes to the remote repository.

TESTING
Waterfall concept : - 1. PLAN 2. DESIGN 3.IMPLEMENT 4.TEST 5. DEPLOY

What is the cause of the gap between the expected value of automation and the actual one?

The maintenance costs

The low stability of robots is caused by application issues, by environment issues, and by automation
issues. The others can affect the performance of automations, but not by affecting their stability.

Which of the following issues can be fixed in the development stage?

Automation issues

Application issues

The structure of a test case

The easiest way to create an RPA test case in Studio Pro is to right-click a workflow in the Project
panel and select "Create test case". The test case thus created will have the behavior-driven
development structure.

Test case is made of 3 distinct sections: Given, When and Then.

Basic vs. data-driven test cases


Basic test cases run with a single set of data, and typically verify the outcomes against static
values. To test an RPA workflow in different scenarios, data-driven testing is used. This typically uses an
Excel file containing data variations, and the test case runs once for each chosen data set.

A basic test case can be easily converted to a data-driven one by adding the file with the data
variations. When doing so, arguments are automatically created with the names of the columns in the
data variation file.

Which of the following activities can be used to verify if the values of two variables are equal?

Verify Expression

Verify Expression with Operator

Which of the following activity can be used to directly compare the state of a UI element with a value or
variable?

Verify Control Attribute

Mock testing, or mocking, offers a way of replacing dependencies by creating objects that
simulate the behavior of real objects. These objects are typically out of scope for the testing effort, at
least in the unit testing stages.

Which of the following statements about mock testing are true?

In mock workflows, you can only edit the mocked activities.

In a Given-When-Then test case structure, 'Surround with mock' is only available for activities in
the When block.

Changes made in the source workflow file are applied to the mock file whenever the project is
saved.

Which of the following ways of running a data-driven test case are available in Studio Pro?

With all the data sets

With a single data set

With a selection of the data sets


REFramework
The REFramework is implemented as a state machine, which is a type of workflow that has two very
useful features:

States that define actions to be taken according to the specified input

Transitions that move the execution between states depending on the outcomes of the states
themselves.

Dispatcher
The dispatcher is a process used to push transaction items to an Orchestrator queue. It extracts data
from one or multiple sources and uses it to create Queue items to be processed by Performer robots.

Information is pushed to one or more queues allowing the dispatcher to use a common format for all
data stored in queue items.

The major advantage of using a dispatcher pattern is that you can split the processing of the items
between multiple robots.

Performer
The performer is a process used to pull transaction items from an orchestrator queue and process them
as needed in the company. Queue items are processed one at a time.

It uses error handling and retry mechanisms for each processed item.

A major advantage of the performer is its scalability (multiple performers can be used with a single
queue)

How should the Dispatcher & Performer model be applied?

The jobs should run independently on separate machines.


INVOKE
Here are some situations when we should use the Invoke Method activity:

When we have a class library/DLL in vb.net or c# and want to call that method.

When we want to use a method which does not generate an output (for example, Reverse) and
therefore cannot be used in an Assign activity.

When we want to use a method which generates several pieces of output (for example,
TryParse which generates a Boolean and an Int32). Several values cannot be assigned using an Assign
activity.

Static Methods

When a class is defined as static, we don't need to define the object. Thus, the static method can
be called directly.

If it's a static method, the Target Type is used.

Instance Methods

In the Instance Method, the object from which the method or members are derived needs to be
defined.

If it's an instance method, the TargetObject is used.

Here are some situations when we should use the Invoke Code activity:

When we want to simplify data manipulation procedures in our workflow;

When we want to reduce the number of Assign and Invoke Method activities, by replacing
several with a single Invoke Code activity;

When we need to write custom code for some steps in the process.

When using VB.NET code in Invoke Code activity, the assemblies must be added to the Import
panel for them to function when executing the code. In Studio, the Name Spaces panel is used to
add/delete namespaces.

You can define methods, procedures or functions in an Invoke Code activity.

False
When using VB.Net Code in an Invoke Code activity, what do you need to make sure you do?

Import the Namespaces

INITIALIZATION STATE
Has 3 workflows invoked: InitAllSettings, KillAllProcesses, InitAllApplications

The configuration file (Config.xlsx)


To make it easier to maintain a project and quickly change configuration values, it is a good
practice to keep them separated from the workflows themselves.

As we've seen in the previous video, in the InitAllSettings.xaml workflow the ReFramework
offers a configuration file. It is named Config.xlsx and can be used to define project configuration values.
These values are then read into the Config dictionary.

For easier manipulation, this configuration file is an Excel workbook with three sheets (Settings,
Constants, Assets). Let's go over them in the below video.

The Config Excel file is read in the InitAllSettings workflow (in the Initialization state)

MaxRetryNumber is in Config, Constants sheet and must have 0 value if we are working with
orchestrator queues.

In which state does it get generated ? – Initialization

Of what type is it by default ? – Dictionary

In which workflow is it populated ? – InitAllSettings

What workflow does it get imported into ? -InitAllApplications, Get Transaction Data, Process,
Set Transaction Status

Transaction Item

In which state does it get generated ? – Get Transaction Data

Of what type is it by default ? – Queue Item


In which workflow is it populated ? – Get Transaction Data

What workflow does it get imported into ? – Process, Main, Set Transaction Status

Transaction Number

In which state does it get instantiaded ? – Main

Of what type is it by default ? – Int32

In which workflows is it modified ? – SetTransactionStatus, RetryCurrentTransaction

What workflows does it get imported to ? – Main, SetTransactionStatus,


RetryCurrentTransaction, Get Transaction Data

SystemException

In which state is the object assigned ? – Initialization, Process

Of what type is by default ? - System Exception

In which workflow is it assigned ? – Main

What workflows does it get imported to ? – RetryCurrentTransaction, SetTransactionStatus

BusinessException

In which state is the object assigned ? –Process

Of what type is by default ? – Business Rule Exception

In which workflow should it be generated ? – Process

What workflows does it get imported to ? – SetTransactionStatus

GET TRANSACTION DATA – STATE


Moving on to the Get Transaction Data state, there are two possible courses of action:

1. either a new transaction comes next and is processed by the Robot,


2. or all transactions have been operated on, no more data is left, so the process comes to an
end.

But, the first thing we do in this state is to check if a Stop Request was sent from Orchestrator.
Get Transaction Data is the data retrieval state, which is used to get the transaction from the
queue, data table, folder, database, and other sources. In our example, it looks for any transaction items
in the Orchestrator Queue to process.

REFramework pre-built functionality looks for a Stop Request and will stop the process even
though there are items still in the queue to process. This becomes helpful in situations where you want
to correctly stop a process and free up the Robot to run a different job.

PROCESS TRANSACTION – STATE


The Process Transaction state includes the key transaction processing steps. There are three possible
outcomes:

1. The Success transition is triggered when no exception has been encountered during processing
and the automation attempts to get the next transaction item.
2. The Business Rule Exception transition is triggered when a predefined business rule is broken
and the data needs to be checked by a human. The Transaction item is marked as such and the
automation attempts to get the next transaction item.
3. The System Error transition is triggered when a system exception is encountered during
processing. The automation sets the correct status for the item, launches the retry mechanism,
closes all applications, and loops back to the Initialization state.

The End Process state is the final state of ReFramework, which ends the process and closes all the
applications.

The result of the processing can be Success, Business Exception or System Exception.

In the case of System Exception, the processing of the current transaction can be
automatically retried.

If the result is Business Exception, the transaction is skipped, and the framework tries
to retrieve a new transaction in the Get Transaction Data state.

The execution also returns to the Get Transaction Data state to retrieve a new
transaction if the processing of the current one is successful.

Because the Orchestrator queue is the source of our transactions, the Set Transaction Status activity is
used to update their status.

In what sheet of the Config file would you set the Max Retry Number?
Constants

In which sheet of the Config file would you define a threshold for a Business Rule?

Settings

In which sheet of the Config file would you create an entry for a Credential type asset?

Settings

An error has occurred while processing a transaction. Which workflow is the first to call
CloseAllApplications.xaml and KillAllProcesses.xaml?

SetTransactionStatus

What actions must be performed to run the ‘GeneralTestCase’ on the workflow files?

1. Their paths must be added to the ‘Tests’ sheet along with their expected exception.

2. In the 'GeneralTestCase' workflow, we must invoke the workflow file name for each entry in
the Excel file.

WORKFLOW ANALYZER
Using the Workflow Analyzer you can:

edit, disable and enable rules from Studio;

run validation or validation and analysis at file or project level;

manage errors and warnings in the Error List panel;

build custom rules using the UiPath.Activities.Api package;

integrate workflow analysis with prebuilt and/or custom rules in CI/CD pipeline
configurations.

Why you need it

Workflow analysis plays a central part in project development. Workflow Analyzer is a


tool for making sure your project follows best practices, thus ensuring higher quality, reliability and
readability.

In the analysis stage, your project is checked against a set of predefined rules. At the moment, there are
8 rule categories:

Naming Rules

Best Practices
Project Anatomy Rules

Maintainability and Readability Rules

Usage Rules

Performance and Reusability Rules

Reliability Rules

Security Rules

What can you do using the Workflow Analyzer Settings menu?

Configure rule parameters, where possible

Access the documentation page for each rule

Enable and disable rules

Change the Default action for each rule

When running Workflow Analysis, Studio will:

Run validation first and then analysis

Where will the results of workflow analysis be displayed?

The Error List panel

ST- The product the rule is built into

NMG - The rule category

Activity project settings


Activity Project Setting are property changes that can be defined at project level and applied to all
activities part of project dependencies. For example, you can change the value for the DelayBefore
property in Project Settings for all UiAutomation activities that have this property in your project.
Currently, you can configure settings for:

Computer Vision

OCR activities

UI Automation activities

System activities

Different settings can be configured for Production and Debug. In this way, you can have distinct settings
active at runtime and debug. For example, you may set up separate ApiKeys for Google Cloud Vision
OCR for debug and for runtime. It's important to note that a published process will always use the
runtime settings.

Why you need it

Centralized access to runtime and debug activity properties will allow you to create, adjust and
test your workflows much faster.

You have opened an older workflow and you are unable to find the Activity Project Settings menu. What
do you need to do?

Check if you have UiPath Studio version 2019.10 or later

Check if the installed System Activities Package is 2019.10 or later

Check if the installed UI Automation Activities Package is v 2019.8 or later

How can you access the Activity Project Settings menu?

By clicking the Gear icon in the Project panel

ATTENDED AUTOMATION

Hands-off - Users can run automations as "fire-and-forget" processes.

Side-by-side - UI Automation execution can be isolated.

Interactive - Users can engage directly with the attended automation.

Always-on - Automations can be triggered by mouse click, file download and system events.

Interconnected - Hybrid automations and inter-connected robots can be coordinated.

Both always-on and interactive features can be used in the same automation

True

Picture In Picture will run the process in an isolated window, stopping the user from interfering with
process UI Automation activities like Click and Type Into set to Hardware Events.

Block User Input


The block user input activity prevents the user from interrupting the automation with mouse
movements or keystrokes. This isolation mode is used when the process needs to ensure it is not
interrupted by the user logged into the machine.

Picture-in-Picture

The picture-in-picture (PiP) mode runs attended automations in a separate, isolated window
that provides a realtime display of the work being performed.

The Simulate and Send Window message activities allow automations that run in an isolated mode to
interact with an application without mouse or keyboard hardware involvement.

Triggers

Triggers allow an attended automation to monitor for certain events like a file download or a
hotkey submission. When the event happens, the trigger fires, executing a predetermined workflow that
may or may not interact with the user.

Popular UiPath triggers include:

Click triggers

Mouse triggers

Process start triggers

Key press triggers

System triggers

Background Processes

Automations that can execute from start to finish without any user interaction or need to interact with
UI elements can be configured as background processes. Only one foreground process can run at a time,
but multiple, concurrently run processes are allowed.

Run Parallel Process

The Run Parallel Process activity allows parts of an automation to run in an asynchronous mode.
This can improve throughput and overall performance of the system.

Inter-process communication occurs between two or more processes running in parallel.


Which of the following allow for the creation of highly customizable means to take input from an
attended automation user?

The UiPath Forms Activity

The UiPath Callout Activity

If an attended automation is interfering with your cursor and mouse movements, which tool can be used
to force the process to run in Picture-in-Picture mode?

UiPath Assistant

Which of the following are provided by the Windows Operating System for the management of
usernames and passwords?

Web Credentials Service

Windows Credentials Service

Callouts and forms should be designed to look like:

UiPath Assistant applications

Forms, callouts and dialog boxes are associated with which type of automation capability?

Interactive

Triggers, auto-downloads and background processes are associated with which type of automation
capability?

Always-on

Hybrid automation, inter-process communication (IPC) and UiPath Orchestrator queues are associated
with which type of automation capability?

Interconnected

Which of the following is not a recommended mechanism for credential management?

Reading credentials from a local spreadsheet

Which of the following requirements recommend the use of attended automation?

The automation must be triggered by the user


Regulatory restrictions require human input and validation

The automation requires a discretionary judgement 10% of the time

An employee wishes to keep working at the same time the robot is running. Which tool would enable
this without causing interference?

Picture-in-Picture

Simulate click and simulate type

Hands-off
User kicks off automations as needed and robots work by taking control of the user`s keyboard
and mouse.

The Report Status activity displays a custom status in the UiPath Assistant for the process that is
executing, thus helping the side-by-side users gage the progress of a job.

Which of the following are particularities of attended automations in the Hands-Off stage?

The Robot takes control of the keyboard and mouse

Users can provide configuration data, credentials and perform error recovery, but interaction
with the automation is limited

Automations are started on-demand via UiPath Assistant

Which of the following are recommended ways to approach different system configurations?

Ask the users for information at runtime

Use environment folders or shared locations

Configure selectors with wildcards and variables to be more flexible

Error Recovery

Best Practices

For every subcomponent of a business task, wrap it with an exception that clearly
specifies the error, and the business reason that fails.

Introduce pauses during certain steps where a user can set the pre-condition on their
screen for the Robot to run successfully.
Catch common and regularly expected exceptions and provide a resolution or actions
for user to adjust their environment, so the Robot can properly process the rest of the activities.

In the Catch exception clause, make sure to log the specific error.

In attended scenarios, you have the option to configure the Global Exception Handler to
inform the user of an exception, pause the execution and provide the options to Ignore, Abort, Continue
or Retry.

What should an attended automation description contain at a minimum?

Inputs

Outputs

High level steps

Preconditions

Select the methods which can improve the attended automation user experience.

Providing clear messages to the user

Including a comprehensive process description

Reporting the execution status of the process

Providing descriptive process names

Providing options to configure the automation

SIDE BY SIDE STAGE


The “Side-by-Side" stage introduces multiple ways to ensure that the user can work in parallel
while a process executes. This means the user doesn’t interfere with the process and vice-versa.
Processes are still started by the user, on-demand and Human-Robot interaction remains limited.

Automation runs behind the scene while users maintain control of the mouse and keyboard.

Block User Input (Alt + F10 default key combination to stop the block user)

This is a container that disables the mouse and keyboard when activities inside it run. Can be
configured to block either mouse, keyboard, or both, and permits you to designate a hotkey
combination to re-enable them.

Best Practices
Make sure to inform the user that the Block User Input scope is about to be activated, what
behavior they can expect from the machine and what the escape key combination is. Consider pausing
the execution of the process with a Message Box, Form or Callout activity and letting the user decide
when to start the execution of the Block User Input scope.

This is one of the more intrusive UI Interaction isolation methods and it should be used with
caution.

When UI Interactions are executed in a loop, consider adding the Block User Input activity inside
the loop if you want the lock to be re-applied after each escape.

Using Block User Input with Parallel activities (such as Parallel For Each) is not supported.

Using Debug inside a Block User Input scope enables the effects of the scope. To disable the
block, you can use the hotkey combination specified in the Unblock Options section of the properties.
Once turned off, the state of all elements can be inspected as usual in a Debug context. Please note that
execution can only be continued without the effect of the scope and workflow functionality might be
broken.

Once the designated hotkey combination for reactivating user input is pressed, and user input is
restored, it cannot be blocked again during the same runtime. The hotkey combination is implemented
as a safeguard against blocking yourself from stopping the workflow while developing it.

If other keys are pressed simultaneously with the designated key combination, the user input is
restored anyway. This is designed as a safeguard against cases when the automation process hangs
while continuously sending keys

The Simulate and Send Window Messages Methods

The input methods selected for UI Interaction activities determine several aspects of the
behavior of the activity at runtime. The input method determines how fast the action takes place, what
apps it can interact with, if it has hotkey support, and most important in our case, if it can run in the
screen’s background and free up the mouse and keyboard.

The fastest method.

Picture-in-Picture
The Picture in Picture feature allows you to run attended processes in collaboration with the
Robot. A process started in the Picture-in-Picture mode runs in an isolated Windows session, thus
allowing you to use the machine while the process is running.

UserDataFolderMode is used to start the browser with a specific user data folder. It contains the
following options:

UserDataFolderMode.Automatic - Picture In Picture mode uses a different folder than the


default mode, automatically generated if UserDataFolderPath is not set. The implication is that the same
browser can run concurrently in both the Main and the PiP sessions with different user profiles.
However, we cannot use settings stored in the Default browser profile in the PiP session.

UserDataFolderMode.DefaultFolder - Uses the default browser folder, no matter if it runs in the


main or PIP session. The implication is that before opening the browser in the PiP session, we need to
make sure it is not open and using the default profile in the Main session.

UserDataFolderMode.CustomFolder - Uses the folder specified in UserDataFolderPath or an


auto generated path if UserDataFolderPath is not set. This setting lets us create and control a custom
user profile for our automations running in the PiP session.

UserDataFolderPath defines the user data folder that the browser will use. Defaults to %LocalAppData
%\UiPath\PIP Browser Profiles\BrowserType if not set. This property is used if UserDataFolderMode is
set to CustomFolder.

Best Practices

You should target to have the UI Automation part done in the PiP, while the human interaction
and API/background automation be done in the main session since PiP is a intense resource consuming
feature.

Use the TargetSession property for Invoke Workflow as much as possible in order to optimize
the experience and the performance of the processes.

Always check if the file you’re about to open in PiP, it’s not already opened in the main session.
Avoid writing in the same file in the same time from both sessions. Conflicts may appear. If the file is
opened in the main session, read data from there with a targeted invoke workflow.

Limitations

If you are using a PIN to log into the main Windows session, you are asked for your credentials
every time you start a Picture-in-Picture session.

If there is an open Google Chrome or Microsoft Edge instance on the main session, it will have to
use another user profile in the PiP. This is done automatically by the Open Browser activity. More details
here.

Running processes in multiple sessions requires that the Isolated option is checked on the
Invoke Workflow File activities set to run in a different session than the parent workflow. This means
that non-serializable data types cannot be passed between these workflows (e.g. Browser or UI
Element). Some of the variable types which are serializable are listed on this page: Text, True or False,
Number, Array, Date, and Time. Data Table and GenericValue variables.

Due to Operating System limitations for running Picture-in-Picture, Home Editions of Windows 8
and 10 are not supported.

Only one Picture-in-Picture session can be started at a time on the same machine.

You want to configure a set of specific workflows invoked in Main.xaml to execute in PiP. You want
Main.xaml to execute in the Main session. What steps must you take to run individual workflows in the
PiP session?

Enable PiP Ready in Project Settings

Set the Target Session property for the specific Invoke Workflow File activities to PiP

Set the Isolated property for the specific Invoke Workflow File activities to True

Check that we are not trying to pass unserializable types to the workflows executed in a
different session

Which of the following are particularities of attended automations in the Side-by-Side stage?

The user should not be able to accidentally interfere with the Automation execution

Processes are started by users on demand

Ideally, in which session should you execute UI Interactions in your project?

Picture-in-Picture

Ideally, in which session should you execute interactions between the side-by-side user and the process?

The Main Session

How can you exit a Trigger Scope activity with the Scheduling Mode set to Sequential or Concurrent?

Use a Break activity

You are building an attended automation. Can you use Invoke Process or Run Parallel process to start an
unattended process?

No

How can we ensure a process starts in Picture-in-Picture mode?

Select Start in PiP from Assistant


Select Starts in PiP from Project Settings

Select all the statements that are true about Invoke Process and Run Parallel Process.

They execute processes that are available to the local machine.

Invoke Process runs in Synchronous mode.

Run Parallel Process runs in Asynchronous mode.

Unserializable data types cannot be passed to the child processes.

Invoke Method
The Invoke Method activity helps us call a method that is outside the standard built-in activities.
It is used to call a specific method in a class. The activity calls a public method of a specified
type or object. It acts on either Target Type or Target Object.
There are two ways of configuring the Invoke Method activity depending on the type of method
used. Methods can be of a Static or of an Instance type. Let's take a moment to learn more
about the two types of methods and how we need to configure the UiPath Studio activity based
on them.

Invoke Code
The Invoke Code activity synchronously invokes VB.NET or C# code, optionally passing it a list of
input arguments. This activity can also return out arguments to the caller workflow.
You can define methods, procedures or functions in an Invoke Code activity.
False
How can you pass workflow data in and out of an Invoke Code activity?
By using arguments

Which of the following are situations where you should use the Invoke Method activity?
When we want to use a method which generates several pieces of output
When we have a class library/DLL in vb.net or c# and want to call that method
When we want to use a method which does not generate an output

Workflow Analyzer

Where will the results of workflow analysis be displayed?


The Error List panel
When running Workflow Analysis, Studio will:
Run validation first and then analysis
Each rule in the Workflow Analyzer contains:
ID, Name, Description, Recommendation
What is the functionality of 'Enforce Analyzer before Run' feature?
Checks all the rules with the Error action
What can you do using the Workflow Analyzer Settings menu?
Change the Default action for each rule
Enable and disable rules
Configure rule parameters, where possible
Access the documentation page for each rule

INTERACTIVE STAGE
Users engage with automations before, during, and/or after execution.

Forms

Callouts

Process Configuration Arguments

Apps

JavaScript SDK

Inject JS Script

Reminders

Which of the following are particularities of attended automations in the Interactive stage?

The user should not be able to accidentally interfere with the Automation execution

Processes are started by users on demand

Humans and Robots can exchange complex data

Best Practices
Provide an immersive experience with a familiar look and feel for the Forms and Callouts for the
end users to stay focused on the task at hand.

Use Callouts in conjunction with Forms to be as less disruptive as possible to the end user.

When appropriate, opt for Callouts, which take less screen real estate, to allow users to launch
Forms when ready or needed.

Content on Forms and Callouts should be concise. Miller’s Law of Short-Term Memory Load:
most people can only hold approximately seven chunks of information in their short-term memory at
once.

Resize Forms and Callouts to occupy as less screen real estate as possible.

Use the same theme across all Forms and Callouts to avoid visual disruption.

Accessibility: Make sure that the color contrast ratios pass AA or AAA standards if you are
customizing your theme. Dont use small fonts that are hard to read, use 12pt or higher.

Do not add redundant controls. Example: don’t add a close button when the windows shell
already has a close button by default.

Keep component layouts consistent. Example: Don’t have a horizontal row of buttons next to a
vertical row.

Don't use large fonts for titles that attract too much attention.

Fill in first the FormFieldsCollection, then, when you open the Form / Callout designer it already
has the controls mapped to the provided collection of arguments.

Limitations

If we are using Forms with Callouts or Validation Station, in the same project, we must set
Isolated for the Form activity, or if the activities are in separate workflows, we can invoke one of the
workflows as Isolated. The point is that we can’t have Forms and Callouts in the same process. Isolated
will run it in another process.

Similar to Forms, Callouts can be used to display and request data to and from the user.

True

THE EVENT-DRIVEN STAGE


Automations are initiated automatically as the user goes about his or her day.

Background processes

Background Process Execution is performed by a Robot on a machine for a particular user.


Processes run in the same Windows session at the same time.
An Attended Robot can concurrently execute one foreground process (with UI interaction) and
multiple background processes (without UI interaction).

Note that this behavior is only available for Attended Robots. When using Unattended Robots to
run multiple Processes at the same time, each Running Process consumes a separate license.

Triggers

Allow you to continuously monitor user and target application events and to take action based
on the occurrence of the events.

Which of the following are particularities of attended automations in the Event-Driven stage?

Multiple background processes and one foreground process can run concurrently

Background processes can run continuously throughout the day

Automated actions are triggered by user and application events

Processes can launch other local processes in synchronous mode or asynchronous mode

What is the best way to interact with UI Elements when you are using a background process?

UI Input and Output activities should be used inside a Use Foreground scope activity.

You want to control if a trigger scope executes actions one time, sequentially or concurrently. What
property would you need to edit?

SchedulingMode

You have just published a process which you want to invoke in an Invoke Process activity. The process
name is Hello World, the package name is Hello.World and the name of the main entry point is
HelloWorldMain.xaml. What value would you enter in the Process Name property of the Invoke Process
activity?

“Hello.World”

We can use in, out and in/out arguments in the Run Parallel Process activity.

False (Just IN arguments)

Which of the following ways to get a process to start in the background?

When creating the process, select the Background Process template

From Project Settings, select Starts in Background


You have a Trigger Scope activity which contains a File Change Trigger, an Element Attribute Change
Trigger and a Mouse Click trigger. The argument is named args and is of type TriggerArgs.

You want to cast the file change trigger to a new variable called FileArgs. Which expression would you
use in the value field of the Assign activity?

CType(args, FileChangeTriggerArgs)

Select all argument directions we can use with a process started from a Run Parallel Process activity.

In

You are building an attended automation. Can you use Invoke Process or Run Parallel process to start an
unattended process?

No

Select all the statements that are true about Invoke Process and Run Parallel Process.

Invoke Process runs in Synchronous mode.

Unserializable data types cannot be passed to the child processes.

They execute processes that are available to the local machine.

Run Parallel Process runs in Asynchronous mode.

You have a Trigger Scope activity which contains a File Change Trigger, an Element Attribute Change
Trigger and a Mouse Click trigger. The argument is named args and is of type TriggerArgs.

You want to assign the new value of the UI element attribute to the AttributeValue variable. How can
you do this

Cast the args to a variable of type EventInfoTriggerArgs and extract the information from the
new variable using EventInfo.AttributeEventInfo.Value.ToString

A background process which contains a Use Foreground scope is running. The user starts a foreground
process from UiPath Assistant while the Use Foreground scope is executing. What happens next?

The foreground process fails


You have three trigger activities inside a Trigger Scope. The Scheduling mode is set to One Time. One of
the triggers fires. What happens next?

Trigger Scope executes the Actions and exits

From the below list, select the data types you can pass from the parent process to a child process
started with the Invoke Process or Run Parallel Process activities.

Data Table

String

Boolean

Int32

Array

The Interconnected Stage


This stage is characterized by the deployment of multiple connected and coordinated
automations. Interconnected attended processes include the ability to invoke unattended automations
managed remotely through UiPath Orchestrator

Interconected- A coordinated collection of automated processes run and react to each other

Inter Process Communication

IPC activities aid parallel processes running on multiple threads in communicating with each
other. This pack is meant to be used for advanced business logic where you need to define specific
channels through which you can send and receive messages between running processes, thus letting
you know when certain parts of parallel processes have finished executing.

Hybrid Automation

A hybrid automation is one in which an attended automation triggers an unattended one. This
can be achieved by using the Start Job activity or Orchestrator Queues and Triggers.

Partially Unattended

A partially unattended automation is one where a Human user sets the stage or provides input
to an Unattended automation, but no attended automation is involved in the process.

Which of the following are particularities of attended automations in the Interconnected stage?

Processes running in parallel can communicate with each other


Attended processes can start unattended processes

Humans can communicate directly with unattended processes

Processes are connected and coordinated

The inclusion of which of the following features would lead you to assess that a process belongs to the
Interconnected stage?

IPC Activities

Orchestrator Queues

Orchestration Process

Custom Widgets

The Start Job activity

The Message Receiver Trigger activity can be used ...

Only inside a Trigger Scope activity

Which of the following are recommended uses for IPC activities?

Process Synchronization

Advanced business logic

Which features can be used if you want the Human user to communicate directly with an unattended
Robot?

Action Center Processes

Action Center Actions

True or False: Only one IPC message can be sent on a channel.

False

From the below list, select the reasons why a message sent using IPC may not be received.

The sending and receiving processes have different versions of the IPC Activities package
installed
The Broadcast Message and Message Receiver Trigger activities do not have the same value in
the Channel property

Which features can be used to trigger unattended processes from attended processes?

The Start Job activity

Queue Triggers (when adding a new item to the queue)

Which implementation strategies are you most likely to use in the Interconnected Stage?

Partially Unattended

Hybrid

Attended, On Demand

Attended, In Tandem

Which of the following data types can be broadcast through IPC activities?

String

You are developing an automation project using the GIT repository. You want to compare two files in the
same project that contain similar workflows. What provides this functionality?

Compare Files

A process uses the Robotic Enterprise (RE) Framework with Orchestrator queues. The value of the Max #
of retries on the queue is 3 and the MaxRetryNumber value in the config file is 0.

When an unexpected error occurs at the application level in the Process.xaml file of the Robotic
Enterprise (RE) Framework, which type of exception is caught by default?

Exception
A developer plans to create a process to automate a web application. In order for the robot to perform
an action as soon as the element has appeared, regardless of whether other elements appeared or not,
which property value should be configured?

WaitForReady=None

A developer notices that in a process that uses the Robotic Enterprise (RE) Framework, sometimes the
Initialization state fails with an Application Exception. By default, what happens if the Initialization state
fails?

Execution goes to End Porcess without any retries on the System Error transition

Which activity is valid in the Condition of a Retry Scope activity?

Element Exists

About the Orchestrator prefferences logs:

In Orchestrator we will see the selected level and above. (ex. Trace and above)

During testing, a process fails due to a timeout. The developer wants to know every activity the process
completed while reviewing the logs in Orchestrator. To ensure the logs provide this descriptive
information, which Logging Level must be set?

Verbose

What is a key advantage of a Robotic Enterprise (RE) Framework Dispatcher process using queues?

Multiple robots run the same process with a single queue.

A complex activity to be automated has many subroutines to be executed depending on the result of
evaluating various logical conditions. What is the best approach to architecting this RPA activity?

Use a single workflow project that references mutliple sequence projects

In contrast with attended robots, unattended robots are best used with:

complex, repetative tasks


A robot that is tied to a specific machine and not allowed to run on any machines other than the one it is
tied to in UiPath Orchestrator is known as:

A standard robot

A robot that can be used by mutiple users and run on multiple workstations without being tied to a
specific machine is known as a(n):

floating robot

In which workflow in the UiPath Robotic Enterprise Framework template is the retry mechanism
implemented?

The Main workflow

When should the "Add Log Fields" activity be used?

When the standard log message has to be customized by adding new fields to it

In the UiPath Robotic Enterprise Framework template, if a System Error is encountered in the Process
Transaction state of the Main workflow, which state is executed next?

Init

When should the Simulate Type/Click property be used?

Whenever supported by the target application

Is there any way to hide the execution of one activity in the logs?

Yes,by checking the Private property of the activity that is to be hidden

What is the slowest method of reading text?

OCR
Which emails are deleted if you use Get IMAP Mail Messages with the DeleteMessages property set to
true?

Only the emails that were marked as previously read

Is it possible to reprocess a transaction in a Queue after its failure due to an application exception?

Yes, if the Auto-Retry property of the Queue is enabled

Yes, it can be retried manually on the Transactions page

Downloading a report from a web application takes a variable amount of time, but a pop-up window is
shown when the download is finished. What should you do to check whether the file has been fully
downloaded before continuing the process?

Use the Element Exist activity and indicate the download pop-up window

Add Assets in Orchestrator has the following option:

Single Value

Value Per Robot

What type of Output variable do all Get Mail activities return?(POP3,IMAP,Outlook,Exchange)

List

What is the purpose of the WaitForReady property in any UiAutomation activity?

Before performing the actions, waits for the target to become ready

Specifies the amount of time(in milliseconds) to wait for the activity to run before an error is
thrown

What are the functions of the Outline panel?

It shows the structure of the workflow

If the Activities are properly named, it can be used to search and select specific Activities used
inside the workflow
How do you exit the selection mode?

ESC

Right click

How can you find all anchor element in the web page?

Using the find children activity

What should you use to check if a checkbox is selected or cleared?

Get Attribute activity

Creating automation in Citrix environment is challenging because

Selectors are hard to create for the virtual environment

You need to interact with the app using only image recognition and OCR

You don't have direct access to UI elements

How can a robot start an application in Citrix?

By defining a shortcut key for the application and then triggering the app with a Send Hotkey
activity

By double clicking on a Desktop icon

In the UiPath Robotic Enterprise Framework template, what should be the outcome of the Process
Transaction state of the Main workflow when the application loops back to the Get Transaction Item
state?

Business rule exception

Success

In the UiPath Robotic Enterprise Framework template, in the Get Transaction Data state of the main
workflow, what happens before the next transaction item is retrieved?

We check if a stop signal was sent from Orchestrator


Which one of the statements below regarding the GetAppCredentials workflow included in UiPath
Robotic Enterprise Framework is true?

It first tries to fetch a credential from Orchestrator

In which workflow in the UiPath Robotic Enterprise Framework template is the TransactionNumber
global variable incremented by default?

SetTransactionStatus workflow

What is the best way of scraping a large, selectable text in a Citrix environment?

Use a Get Full Text activity

What is the best practice to stop an ongoing job in Orchestrator?

By cancelling it and using a Should Stop activity inside the workflow

In which types of variable can you store text?

String

Generic

You might also like