- Release Notes
- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- Control Flow
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- Logging
- The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- ST-NMG-001 - Variables Naming Convention
- ST-NMG-002 - Arguments Naming Convention
- ST-NMG-004 - Display Name Duplication
- ST-NMG-005 - Variable Overrides Variable
- ST-NMG-006 - Variable Overrides Argument
- ST-NMG-008 - Variable Length Exceeded
- ST-NMG-009 - Prefix Datatable Variables
- ST-NMG-011 - Prefix Datatable Arguments
- ST-NMG-012 - Argument Default Values
- ST-NMG-016 - Argument Length Exceeded
- ST-NMG-017 - Class name matches default namespace
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DPB-010 - Multiple instances of [Workflow] or [Test Case]
- ST-DBP-020 - Undefined Output Properties
- ST-DBP-021 - Hardcoded Timeout
- ST-DBP-023 - Empty Workflow
- ST-DBP-024 - Persistence Activity Check
- ST-DBP-025 - Variables Serialization Prerequisite
- ST-DBP-026 - Delay Activity Usage
- ST-DBP-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- ST-USG-005 - Hardcoded Activity Arguments
- ST-USG-009 - Unused Variables
- ST-USG-010 - Unused Dependencies
- ST-USG-014 - Package Restrictions
- ST-USG-017 - Invalid parameter modifier
- ST-USG-020 - Minimum Log Messages
- ST-USG-024 - Unused Saved for Later
- ST-USG-025 - Saved Value Misuse
- ST-USG-026 - Activity Restrictions
- ST-USG-027 - Required Packages
- ST-USG-028 - Restrict Invoke File Templates
- ST-USG-032 - Required Tags
- ST-USG-034 - Automation Hub URL
- Variables
- Arguments
- Imported Namespaces
- Coded automations
- Introduction
- Registering custom services
- Before and After contexts
- Generating code
- Generating coded test case from manual test cases
- Trigger-based Attended Automation
- Recording
- UI Elements
- Selectors
- Object Repository
- Data Scraping
- Image and Text Automation
- Citrix Technologies Automation
- RDP Automation
- VMware Horizon Automation
- Salesforce Automation
- SAP Automation
- macOS UI Automation
- The ScreenScrapeJavaSupport Tool
- The WebDriver Protocol
- Extensions
- About extensions
- SetupExtensions tool
- UiPathRemoteRuntime.exe is not running in the remote session
- UiPath Remote Runtime blocks Citrix session from being closed
- UiPath Remote Runtime causes memory leak
- UiPath.UIAutomation.Activities package and UiPath Remote Runtime versions mismatch
- The required UiPath extension is not installed on the remote machine
- Screen resolution settings
- Group Policies
- Cannot communicate with the browser
- Chrome extension is removed automatically
- The extension may have been corrupted
- Check if the extension for Chrome is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and Incognito mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Chrome
- Chrome Extension on Mac
- Group Policies
- Cannot communicate with the browser
- Edge extension is removed automatically
- The extension may have been corrupted
- Check if the Extension for Microsoft Edge is installed and enabled
- Check if ChromeNativeMessaging.exe is running
- Check if ComSpec variable is defined correctly
- Enable access to file URLs and InPrivate mode
- Multiple browser profiles
- Group Policy conflict
- Known issues specific to MV3 extensions
- List of extensions for Edge
- Extension for Safari
- Extension for VMware Horizon
- Extension for Amazon WorkSpaces
- SAP Solution Manager plugin
- Excel Add-in
- Test Suite - Studio
- Troubleshooting
- About troubleshooting
- Assembly compilation errors
- Microsoft App-V support and limitations
- Internet Explorer X64 troubleshooting
- Microsoft Office issues
- Identifying UI elements in PDF with Accessibility options
- Repairing Active Accessibility support
- Validation of large Windows-legacy projects takes longer than expected
Studio User Guide
Managing Variables
In Studio, variables are used to store multiple types of data. Another key aspect of variables is that their value can change so that you can, for example, control how many times the body of a loop is executed.
- Variables need to be created with different names, even if used in different scopes. If two variables share the same name but are in different scopes, the variable in the inner scope takes precedence. You can check out our Workflow Design Naming Conventions recommendations.
- Variable names must start with a letter or underscore
_
. - Using certain keywords (for example, "Replace") to name variables may cause unexpected errors.
.xaml
files based on the loaded activities. All strings have to be placed between quotation marks.
You can manage variables in multiple ways. To benefit from the best experience and flexibility, we recommend using the Data Manager.
The data stored within a variable is called a value, and it can be of multiple types. When you create a variable. the following options are available:
- Boolean - This type has only two possible values:
true
orfalse
. These variables enable you to make decisions, and therefore have a better control over your workflow. - Int32 - This type is used to store numeric information. Some of its uses are to perform equations, comparisons and pass important data.
- String - Stores text information. This type of variable can be used to store any text-based information such as employee names, usernames or any other strings.
- Object - Can be used to store different types of data. You can use this type of variable in situations where you need flexibility for the type of data you store in a variable. Make sure that the data type used in Object variables is compatible with the activities that use the variable.
- System.Data.DataTable - This type can store big pieces of information, and act as a database or a simple spreadsheet with rows and columns. Can be useful to migrate specific data from a database to another and extract information from a website and store it locally in a spreadsheet, among other uses.
- Array of [T] - Enables you to store multiple values of the same type.
-
Browse for Types - Allows you to explore more types that can be relevant to your task.
Note: Using variables of types defined by the language used in the project as static results in a compilation error in Windows and cross-platform projects.
The scope property gives variables a well-defined context in which they can be used. The scope can be set to global (available in the entire project), the current workflow file, or any container activity within the workflow file.
You can only create global variables from the Data Manager.
- Global variables are not serializable, and therefore incompatible with long-running persistence activities.
- Global variables are not supported in library projects.
-
In C# projects, using a global variable or a global constant in activities
requires following the format:
GlobalVariablesNamespace.GlobalVariables.YOUR_GLOBAL_VARIABLE_NAME
. In VB projects, you can reference the global variable or global constant by its name directly.
- Open the Data Manager, then select New > New Variable.
- Configure the name, data type, scope, and default value for the variable.
- From the Activities panel, drag an activity to the Designer panel. Either right-click a field and select Create Variable from the context menu, press Ctrl+K, or select Create Variable from the Plus menu on the right side of the field. The Set Var field is displayed.
- Fill in the name and press Enter. The variable is created and visible in the field. Check its scope and type in the Data Manager.
From Expressions
Alternatively, variables can be created from expressions directly in an activity input field or the Expression Editor:
- Select a part of the expression and press Ctrl+K. The Set Var field is displayed.
-
Fill in the name and press Enter. The variable is created. Check its scope and type in the Data Manager.
Data Table
field of
a Write Range activity, the
variable's type is set to DataTable
. If you create a variable in the
Text
field of a Write Line activity, the variable's type is set
to String
.
The scope of such variables is the smallest container it is part of. The type is automatically generated depending on the selected property.
- In the Properties panel of any activity, either right-click a field and select Create Variable from the context menu, press Ctrl+K, or select Create Variable from the Plus menu on the right side of the field. The Set Var field is displayed.
- Fill in the name and press Enter. The variable is created and visible in the field. Check its scope and type in the Data Manager.
The scope of variables created in this way is the smallest container it is part of. The type is automatically generated depending on the selected property.
- In the Designer panel, click Variables. The Variables panel is displayed.
- Click the Create Variable line, and fill in the name. A new variable is created.
The default type of variables created this way is String.
Variables automatically generated from activity outputs (for Windows and cross-platform projects only)
If the Auto-generate Activity Outputs design setting is enabled, Studio automatically populates each Output field of activities that generate an output with a variable. You can then use the generated variable in other activities by selecting the Plus menu on the right side of the activity input fields and then Use Variable.
If you prefer to manually create an output variable, you can do so inside the output field. This will replace the generated variable with the variable that you created. If you select the Clear value option after manually creating a variable, the default generated variable is restored.
The generated variable is available in the Variables panel and in the Data Manager (if the variable is used in another activity). As with any other variable, you can change the generated variable’s name, data type, scope, and default value.
The scope of the generated variable is based on the activity’s location in the workflow (for example, the scope is different if the activity is in the main sequence or inside a For each activity). The scope of the generated variable updates if you copy, cut, or paste the activity. Renaming an activity does not impact the generated variable. Deleting an activity, however:
- Clears the value of the variable if the variable is not used.
- Deletes the variable if the variable is used and a warning is displayed in the activities that used the variable as an input.
You can remove variables from the Data Manager or from the Variables panel.
- Open the Data Manager and expand the *Variables node.
- Right-click a variable, and then select Delete Variable. Alternatively, select it and press the Delete key.
- Open the Variables panel.
-
Right-click a variable, and then select Delete. Alternatively, select it and press the Delete key.
To remove all the variables that are defined but not used anywhere in the current file, select Remove Unused > Variables in the Studio ribbon, and then select Yes when prompted for confirmation. This also removes variables that are unused but mentioned in annotations.
To search for types of variables that are not displayed by default in the Variable Type list, do the following:
- In the Data Manager, from the Data Type dropdown for a variable, select Browse for Types. You can also access the menu from the Variable Type dropdown in the Variables panel. The Browse and Select a .Net Type window is displayed.
- In the Type Name field, type a keyword for the variable you are looking for, such as excel. Note that the result section is updated, displaying all the .Net variable types that contain your keyword.
-
Select one and click OK. A new variable is created with the selected type and is displayed in the Variables panel.
Note: After first using a type of variable from the Browse and Select a .Net Type window, it is displayed in the Variable Type drop-down list, in the Variables panel.
Variable and argument types part of assemblies proprietary to Studio or Robot are hidden. Workflows that reference types from such assemblies should not be affected at runtime. To use a type from a non-.Net framework assembly, add it as a dependency to your project with the help of the Manage Packages window.
System.Single
) results in a compilation error when running the
workflow. To successfully assign the value, you can either:
- Use the
f
orF
suffix (1.5f
or1.5F
) - Use cast operators (
(float)1.5
for C# orCSng(1.5)
for VB)
- Variable Type
- Variable Scope
- Creating Variables
- From the Data Manager
- From the Body of an Activity
- From the Properties Panel
- From the Variables Panel
- Variables automatically generated from activity outputs (for Windows and cross-platform projects only)
- Removing Variables
- From the Data Manager
- From the Variables Panel
- Removing All Unused Variables
- Browsing for .Net Variable Types