How unit 2 is examined
This unit teaches the basics of an RPA tool (UiPath Studio): its interface, variables, arguments, namespaces, control flow, loops and data handling. No topic has been asked recently, so learn each definition and its key points.
Introduction to RPA Tool
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. An RPA tool is software used to design, run and manage software robots that copy human actions on a computer; <mark>UiPath is a common RPA tool, made of Studio to design, Robot to run and Orchestrator to manage.</mark>
Key points.
- UiPath Studio is the development environment where the developer builds automation workflows visually, with drag-and-drop activities.
- The UiPath Robot is the agent that executes the workflow, either attended (with a human) or unattended (on its own).
- UiPath Orchestrator is the web server that deploys, schedules, monitors and controls many robots centrally.
- A workflow is built from activities, which are single steps such as Click, Type Into, Assign or Write Line.
The User Interface
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. The user interface of UiPath Studio is the workspace made of ribbon, panels and a designer window, in which a project is created and edited; <mark>the Designer panel holds the workflow, while Activities, Variables, Arguments, Output and Properties panels support it.</mark>
Key points.
- The Ribbon at the top holds tabs such as Design, Debug and Execute, with buttons to save, run and debug.
- The Designer panel is the central canvas where activities are dragged and arranged into a workflow.
- The Activities panel lists all available activities, which can be searched and dragged onto the Designer.
- The Properties panel shows the settings of the selected activity, and the Output panel shows logs and messages during a run.
Variables
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. A variable is a named storage location that holds a value which can change while the workflow runs; <mark>every variable has a name, a data type and a scope.</mark>
Key points.
- The data type decides what the variable stores, for example String for text, Int32 for whole numbers, Boolean for True or False, and DateTime for dates.
- Variables are created in the Variables panel, and a default value can also be given.
- Variables carry data from one activity to the next, for example a value read from a screen and later typed into another application.
- Common types are Generic Value, DataTable, Array, List and Dictionary, chosen according to the data to be stored.
Managing Variables
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Managing variables means creating, naming, typing and scoping variables in the Variables panel so that data is available exactly where it is needed; <mark>scope is the part of the workflow in which a variable can be used.</mark>
Key points.
- A variable can be created in the Variables panel, or quickly by pressing Ctrl+K in an activity field.
- The scope is set to the container, such as a Sequence, that holds the variable, and the variable is invisible outside it.
- A narrow scope saves memory and avoids name conflicts, so a variable should have the smallest scope that works.
- Names should be meaningful and must not start with a digit or contain spaces, so that the workflow is easy to read and maintain.
Managing Arguments
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Arguments are variables that pass data between workflows, which lets a large project be split into small reusable files; <mark>an argument moves data into or out of an invoked workflow, whereas a variable stays inside one workflow.</mark>
Key points.
- The parent workflow calls a child workflow using the Invoke Workflow File activity and binds its own values to the child's arguments.
- Reusing one child workflow in many places removes repeated work and makes maintenance easier.
- Every argument has a name, a direction, a data type and an optional default value.
- Arguments are created in the Arguments panel, and their names conventionally begin with in_, out_ or io_ to show the direction.
Arguments Panel
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. The Arguments panel is the panel at the bottom of the Designer where the arguments of the current workflow are created and edited; <mark>its direction can be In, Out, In/Out or Property.</mark>
Key points.
- An In argument brings a value into the workflow and cannot be changed to send data back.
- An Out argument sends a value from the workflow back to the caller after it finishes.
- An In/Out argument receives a value at the start and returns the updated value at the end.
- The panel lists name, direction, argument type and default value, and the Import Arguments option in Invoke Workflow File then maps them.
Imported Namespaces
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. A namespace is a named group of related classes and methods of the .NET framework, and importing it makes its members usable in expressions without a full path; <mark>the Imports panel lists the namespaces available to the workflow.</mark>
Key points.
- The Imports panel is opened from the bottom of the Designer, and a namespace is added by typing or selecting its name.
- Default imports such as System and System.Data are already present in every new project.
- Importing System.Text.RegularExpressions, for example, lets the workflow use Regex in Assign activities.
- Without the import, the full name has to be written each time, which makes expressions long and error prone.
Control Flow-If Else Statements
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Control flow decides the order in which activities run, and a decision statement chooses one path from a condition; <mark>If runs the Then branch when the condition is True and the Else branch when it is False.</mark>
Key points.
- The If activity has a Condition field, a Then branch and an Else branch, each holding activities.
- The condition must be a Boolean expression, such as age >= 18 or str.Contains("RPA").
- Nested Ifs, or the Else If activity, test several conditions one after another.
- The Switch activity is better when a single value is compared against many fixed cases.
Loops
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. A loop repeats a set of activities, either for every item of a collection or while a condition holds; <mark>For Each visits every item, While tests before each pass, and Do While runs once before testing.</mark>
Key points.
- For Each works on a collection such as a list, array or DataTable, and the current item is available inside the loop body.
- For Each Row in DataTable processes a table row by row, which is the usual way to handle spreadsheet data.
- While checks its condition before every iteration, so it may not run at all if the condition is false at the start.
- Do While executes the body at least once, and Break and Continue exit the loop or skip to the next pass.
Advanced Control Flow
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Advanced control flow structures a workflow for complex logic using Flowcharts, State Machines and Switch; <mark>a flowchart links activities with arrows and decisions, and a state machine moves between states through transitions.</mark>
Key points.
- A Flowchart shows the process as connected nodes, so it suits business logic with many branches and loops back.
- A Flowchart Decision node branches on a Boolean condition to a True path or a False path.
- A State Machine has states, transitions and a final state, so it suits processes that move through stages such as order received, approved and shipped.
- Switch chooses one branch by the value of an expression, with a Default branch when no case matches.
Data Manipulation: Scalar variables, collections and Tables
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Data can be held as a scalar variable, a collection or a table; <mark>a scalar holds one value, a collection holds many values, and a DataTable holds rows and columns.</mark>
Key points.
- Scalar variables such as String, Int32, Boolean and DateTime store a single value.
- Collections include Array (fixed size), List (growable) and Dictionary (key and value pairs).
- A DataTable is a two-dimensional structure of rows and columns, similar to a spreadsheet.
- Collections and tables are processed with For Each, and activities such as Add Data Row and Filter Data Table change them.
Text Manipulation
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Text manipulation is the processing of String data by splitting, joining, searching and changing it; <mark>strings use .NET methods such as Split, Substring, Replace, Trim, ToUpper and Contains.</mark>
Key points.
- Split cuts a string into an array at a separator, and String.Join combines items back into one string.
- Substring extracts part of a string by starting position and length, and Replace substitutes one text with another.
- Trim removes extra spaces, and ToUpper and ToLower change the case for uniform comparison.
- Regular expressions with Matches or Regex.Replace find patterns such as phone numbers or e-mail addresses.
Data Manipulation
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Data manipulation is changing, filtering, sorting and converting stored data into the form the process needs; <mark>the Assign activity, DataTable activities and type conversion do most of the work.</mark>
Key points.
- The Assign activity stores the result of an expression in a variable, for example total = price * quantity.
- Filter Data Table, Sort Data Table and Remove Duplicate Rows clean and order a table.
- Data types are converted with methods such as CInt, CStr, ToString and Convert.ToInt32.
- Build Data Table, Add Data Column and Output Data Table create a table and convert it to text.
Gathering and Assembling Data
<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>
Definition. Gathering means collecting data from sources such as screens, files, e-mails and databases, and assembling means combining it into one usable structure; <mark>the collected data is normally assembled into a DataTable.</mark>
Key points.
- Data is gathered with Get Text, Data Scraping, Read Range for Excel, Read CSV and database queries.
- Assembling puts the collected pieces into a DataTable, List or Dictionary through Add Data Row or Merge Data Table.
- Data from different sources must be cleaned and given a common format before it is merged.
- The assembled data is then written out with Write Range, Write CSV or typed into another application.
Last-minute revision
- UiPath has Studio (design), Robot (run) and Orchestrator (manage).
- A variable has a name, a data type and a scope.
- Scope is the container in which a variable is visible.
- Arguments pass data between workflows, and their directions are In, Out, In/Out and Property.
- Imported namespaces make .NET classes usable without the full path.
- If has Then and Else, while Switch handles many cases.
- For Each iterates over items, While tests first, Do While tests after one run.
- Flowchart suits branching logic, and State Machine suits stage based processes.
- Scalar holds one value, a collection holds many, and a DataTable holds rows and columns.
- Split, Substring, Replace, Trim and Contains are the main string methods.
Memory hooks
- Studio, Robot, Orchestrator = Build, Run, Rule.
- Argument directions = I-O-I/O: In, Out, In/Out.
- Scalar is one, collection is many, table is rows and columns.
- While looks before it leaps, Do While leaps before it looks.
- Flowchart is a map, State Machine is a staircase of stages.
Coverage checklist
- Introduction to RPA Tool: covered, no past questions.
- The User Interface: covered, no past questions.
- Variables: covered, no past questions.
- Managing Variables: covered, no past questions.
- Managing Arguments: covered, no past questions.
- Arguments Panel: covered, no past questions.
- Imported Namespaces: covered, no past questions.
- Control Flow-If Else Statements: covered, no past questions.
- Loops: covered, no past questions.
- Advanced Control Flow: covered, no past questions.
- Data Manipulation: Scalar variables, collections and Tables: covered, no past questions.
- Text Manipulation: covered, no past questions.
- Data Manipulation: covered, no past questions.
- Gathering and Assembling Data: covered, no past questions.