UIADP cheat sheet
UIADP · Keep the key ideas within reach.
Automation Concepts and Techniques
Attended robots run on the user's desktop and are started by user events; unattended robots run without human interaction, started by Orchestrator schedules, queue triggers, or API calls.
UiPath automation lifecycle: Discover (process identification) → Build (development) → Manage (governance, deployment) → Run (execution) → Measure (monitoring and analytics).
Deterministic tasks have fixed, rule-based inputs and predictable outputs and suit standard RPA; probabilistic tasks require judgment, ML models, or human-in-the-loop validation.
UI automation is the last resort: API, database, or native integration is preferred for reliability, speed, and lower selector maintenance.
Queues decouple data collection from processing and enable parallel, retryable, per-item transaction processing with status tracking.
Task automation targets one discrete activity in one system; business process automation orchestrates multiple tasks and systems end to end.
Human-in-the-loop is implemented with Action Center tasks, forms, and approvals for exceptions or regulated decisions.
Computer Vision and Document Understanding extend automation to screenshot-based targets and unstructured documents such as invoices and forms.
UiPath Studio and Project Organization
Sequence executes activities linearly; Flowchart branches through connectors and decision nodes; State Machine defines named states with condition-driven transitions.
Workflows are .xaml files, the project manifest is project.json, and published packages are .nupkg files.
Argument directions are In, Out, and In/Out; variables are scoped to the container (Sequence or Flowchart) in which they are declared.
Invoke Workflow File calls another .xaml and passes data only through arguments; with Isolated enabled it runs in a separate thread and shares no variables.
Package sources include Official, Marketplace, Local/Connect, and Orchestrator feeds; Manage Packages handles installation and dependency resolution.
Studio profile targets developers; StudioX profile targets business users; the Modern vs Classic experience setting changes which activity set is shown.
A Library project publishes reusable components as a package consumed by other projects through Manage Packages rather than file references.
Common project layout: Main.xaml as entry point, Process.xaml for transaction logic, a Framework folder, Config.xlsx, and a Data folder for input files.
Data Manipulation: Variables, Arguments, Strings, Collections and DataTables
VB conversion functions: CInt, CStr, CDate, CBool; Convert.ToXxx is culture-aware; DirectCast requires a related type; CType allows defined conversions; TryCast returns Nothing on failure.
String members: Substring(start, length), Split(chars), Replace(old, new), Trim, Contains, StartsWith, IndexOf, PadLeft, ToUpper/ToLower, String.Join, String.Format("{0}").
List(Of T) is zero-indexed, exposes Count, and supports Add, Remove, Contains, and For Each iteration.
Dictionary(Of K, V): write with dict(key) = value, read with dict(key), test with ContainsKey, and read safely with TryGetValue.
DataTable rows and columns are zero-indexed; a cell is read as row("ColumnName") or row(index), and empty cells hold DBNull.Value.
DataTable activities: Build Data Table, Read Range, Filter Data Table, Sort Data Table, Add Data Row (ArrayRow or DataRow), Remove Data Row, Merge Data Table, Join Data Tables, Output Data Table.
dt.Select("[Column]='value'") returns a DataRow array; passing an empty string returns all rows.
Arrays declared as Object() hold mixed types; typed collections such as List(Of String) avoid runtime casting errors.
Selectors and UI Automation
A selector is an XML fragment of nodes ordered from outermost to innermost, e.g. , where the last node identifies the target element.
Wildcards: * matches zero or more characters and ? matches exactly one character inside attribute values, handling dynamic IDs and names.
Dynamic selectors concatenate variables into the string: "".
Full selectors include top-level window nodes and work standalone; partial selectors omit them and resolve against the attached window context, improving reuse.
UiExplorer validates and highlights selectors, shows the visual tree, and offers repair and attribute editing.
Target properties: WaitForReady (None, Interactive, Complete), Timeout (default 30 seconds), ContinueOnError.
Input methods: Hardware Events (default), WindowMessages, SimulateType/SimulateClick (fastest, background-capable, some element limits), and Default (auto-selects).
Anchor Base locates an unstable target relative to a stable neighbouring UI element placed on the left, top, right, or bottom.
Excel and Email Automation
Workbook activities read and write .xlsx files without Excel installed; Excel Application Scope drives a real Excel instance and is required for macros, formula recalculation, and pivot tables.
Read Range returns a DataTable; Write Range writes a DataTable to a sheet; Append Range adds rows after existing data.
Excel Application Scope properties: WorkbookPath, Visible, AutoSave, Password, EditPassword; Save Workbook and Close Workbook are used inside the scope.
Get Outlook Mail Messages uses Outlook query syntax, e.g. "[Subject]='Report' AND [ReceivedTime] > '01/01/2024'", with MailFolder and Top limiting results.
Send Outlook Mail Message uses the local Outlook profile; Send SMTP Mail Message requires host, port, and credentials and needs no Outlook installation.
Mail activities include Get IMAP Mail Messages, Save Mail Message (to .eml), Move Mail Message, Delete Mail Message, and Reply To Mail Message.
The Attachments property takes a collection of file paths; IsBodyHtml renders an HTML body; Priority sets message importance.
OnlyUnreadMessages restricts retrieval to unread items, and MailFolder selects Inbox, Sent, or a custom folder.
Debugging and Exception Handling
Try Catch Finally: multiple Catch blocks are evaluated in order, so specific exception types must precede general System.Exception; Finally always runs for cleanup.
BusinessRuleException signals invalid business data and normally is not retried; system exceptions such as SelectorNotFoundException or TimeoutException are retry candidates.
Retry Scope contains an Action and a Condition, with NumberOfRetries attempts and a RetryInterval delay before the last exception is thrown.
Debug shortcuts: Step Into F11, Step Over F10, Step Out Shift+F11, Continue F5, Toggle Breakpoint F9, plus Run to Cursor.
Locals shows current variable values, Watch evaluates chosen expressions, and Immediate executes VB expressions against the paused run.
Log levels in order of severity: Trace, Info, Warn, Error, Fatal; Add Log Fields appends custom fields to all subsequent log entries of the job.
Rethrow preserves the original stack trace; Throw creates a new exception with a custom message and resets the trace.
Orchestrator and Robot Management
Queue item statuses: New, In Progress, Failed, Successful, Retried, Abandoned, Deleted; MaxRetryNumber controls automatic re-processing.
Asset types are Text, Boolean, Integer, and Credential; assets are Global (tenant-wide) or scoped to a single folder.
Modern folders use user-machine mappings and machine templates with Client ID and Client Secret; classic folders use machine keys and environments.
Trigger types: time-based (cron or interval), queue-based (fires when a new item is added), and API-started jobs.
Robot types: Attended (user-triggered), Unattended (Orchestrator-triggered), and Development; each consumes its licence type.
Storage Buckets hold files for robots; Libraries and Packages feed processes; a Job is one execution of a published process.
Roles and permissions govern folder access, and audit plus job logs are retained according to tenant settings.
REFramework and Complex Business Processes
REFramework is a State Machine with Init, Get Transaction Data, Process Transaction, and End Process; SetTransactionStatus records queue outcomes.
Init runs InitAllSettings and InitAllApplications; a system exception triggers KillAllProcesses, re-initialisation, and RetryCurrentTransaction.
Config.xlsx has Settings, Constants, and Assets sheets, read by InitAllSettings into a Dictionary(Of String, Object) named Config.
The transaction item is a QueueItem in queue mode, a DataRow in tabular mode, and Nothing when no data remains, which ends the loop.
BusinessRuleException marks the item Failed (Business) with no retry; system exceptions retry until MaxRetryNumber, then mark it Failed (System).
Process.xaml receives in_TransactionItem and returns out_TransactionItem plus optional out_TransactionField1 and out_TransactionField2.
Version Control and Automation Lifecycle Management
Git actions in Studio: Commit stages local changes, Push uploads commits to the remote, Pull fetches and merges, Revert discards uncommitted changes, Clone creates a local copy.
project.json stores name, description, version, dependencies, and target framework; the version must be incremented to publish a new package.
Semantic versioning is MAJOR.MINOR.PATCH; Orchestrator retains multiple package versions and a process pins one of them.
ALM stages are Development → UAT/Test → Production, typically separate Orchestrator folders or tenants, with Pipelines promoting the tested package forward.
A standard .gitignore excludes the packages/nupkg output and user-specific Studio settings, keeping the repository store small and conflicts low.
.xaml files are XML and merge poorly, so small single-purpose workflows and coordinated edits reduce conflicts.
UiPath Solutions package multiple projects plus deployment configuration for transferring components between environments.