- Release Notes
- 2022.10.3
- 2022.10.4
- 2022.10.5
- 2022.10.7
- 2022.10.8
- 2022.10.9
- 2022.10.10
- 2022.10.11
- 2022.10.12
- 2022.10.13
- 2022.10.14
- 2022.10.15
- 2022.10.16
- 2022.10.17
- 2022.10.18
- Getting Started
- Introduction
- The User Interface
- Keyboard Shortcuts
- Signing in to Your Account
- Configuring Studio Settings
- Project Templates
- Orchestration Process
- Background Process
- Robotic Enterprise Framework
- Trigger Based Attended Automation
- Creating a Basic Process
- Creating a Basic Library
- Tutorials
- Setup and Configuration
- Hardware and Software Requirements
- Install Studio
- Deployment guidelines
- Services Studio Connects To
- Common Installation Errors
- Modify or Uninstall Studio
- Activate Studio
- About Flex Licensing
- Update Studio
- Command Line Parameters
- Supported Applications and Technologies
- Enabling Gmail for Email Activities
- Opting Out of Telemetry
- Studio Executables
- Automation Projects
- About Automation Projects
- Deprecation of the Windows-Legacy Compatibility
- About the Windows - Legacy Compatibility
- About the Project.Json File
- About Publishing Automation Projects
- About Libraries
- Loading Web Services in Libraries
- Activities Generated from Web Services
- Designing Automations
- Managing activity packages
- Configuring Activity Project Settings
- Signing Packages
- Governance
- Importing Entities
- Modern Design Experience
- Linking a Project to an Idea in Automation Hub
- Using the Data Manager
- Dependencies
- About Dependencies
- Managing Dependencies
- Project Dependencies Mass Update
- Mass Update Command Line Parameters
- Missing or Invalid Activities
- Types of Workflows
- Sequences
- Flowcharts
- State Machines
- Global Exception Handler
- Workflow From a Template
- File Comparison
- About File Comparison
- Comparing Files
- Automation Best Practices
- Workflow Design
- UI Automation
- Project Organization
- Automation Lifecycle
- Methodology for reusing UI components
- Source Control Integration
- About Version Control
- Managing Projects With GIT
- Managing Projects With TFS
- Managing Projects With SVN
- Workflow Diff
- Debugging
- About Debugging
- Test Activities
- Debugging Actions
- The Locals Panel
- The Call Stack Panel
- The Breakpoints Panel
- The Watch Panel
- The Immediate Panel
- Remote Debugging
- Profile Execution
- The Diagnostic Tool
- About The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- Naming Rules
- 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
- Design Best Practices
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DBP-020 - Undefined Output Properties
- 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
- Project Anatomy Rules
- ST-ANA-003 - Project Workflow Count
- ST-ANA-005 - Check Project.json Exists
- ST-ANA-006 - Main Workflow Exists
- ST-ANA-009 - File Activities Stats
- Maintainability and Readability Rules
- ST-MRD-002 - Activity Name Defaults
- ST-MRD-004 - Unreachable Activities
- ST-MRD-005 - Redundant Sequences
- ST-MRD-007 - Nested If Clauses
- ST-MRD-008 - Empty Sequence
- ST-MRD-009 - Deeply Nested Activities
- ST-MRD-011 - Write Line Usage
- ST-MRD-017 - Incomplete If
- Usage Rules
- ST-USG-005 - Hardcoded Activity Arguments
- ST-USG-009 - Unused Variables
- ST-USG-010 - Unused Dependencies
- ST-USG-014 - Package Restrictions
- 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
- Performance and Reusability Rules
- ST-PRR-004 - Hardcoded Delay Activity
- Reliability Rules
- ST-REL-006 - Infinite Loop
- Security Rules
- ST-SEC-007 - SecureString Argument Usage
- ST-SEC-008 - SecureString Variable Usage
- ST-SEC-009 - SecureString Misusage
- Variables
- Managing Variables
- The Variables Panel
- Types of Variables
- UiPath Proprietary Variables
- Arguments
- Managing Arguments
- The Arguments Panel
- Using Arguments
- Imported Namespaces
- About Imported Namespaces
- Managing Namespaces
- Control Flow
- About Control Flow
- Control Flow Activities
- The Assign Activity
- The Delay Activity
- Example of Using the Delay Activity
- The Do While Activity
- Example of Using a Do While Activity
- The If Activity
- Example of Using an If Activity
- The Switch Activity
- Example of Using a Switch Activity
- The While Activity
- Example of Using a While Activity
- The For Each Activity
- Example of Using a For Each Activity
- The Break Activity
- Example of Using a Break Activity
- Object Repository
- About Object Repository
- Creating an Object Repository
- Reusing objects and UI libraries
- Logging
- Studio Logs
- Setup Logs
- OCR Diagnostic Logs
- Logging Levels
- Types of Logs
- Protecting Sensitive Information
- The ScreenScrapeJavaSupport Tool
- About the ScreenScrapeJavaSupport Tool
- Argument Descriptions for the ScreenScrapeJavaSupport Tool
- Studio testing
- Introduction
- Application Testing
- Testing project templates
- SAP Testing Project
- Test Cases
- Data-Driven Testing
- Test Data File
- Auto-generated Test Data
- Data Service
- Test Data Queues
- RPA Testing
- Execution Templates
- Test Case Templates
- Test Explorer
- Test Results
- Activity Coverage
- Descriptor Coverage
- Mock Testing
- API Test Automation
- Extensions
- About extensions
- SetupExtensions tool
- UiPath Remote Runtime
- Troubleshooting
- UiPathRemoteRuntime.exe is not running in the remote session
- UiPath Remote Runtime blocks Citrix session from being closed
- UiPath Remote Runtime causes memory leak
- Extension for Chrome
- Group Policies
- Troubleshooting
- Chrome Extension on Mac
- Extension for Edge
- Group Policies
- Troubleshooting
- Cannot communicate with the browser
- Edge extension is removed automatically
- The extension may have been corrupted
- Extension for Firefox
- Troubleshooting
- Extension for Java
- Troubleshooting
- Extension for Silverlight
- Troubleshooting
- Extension for Citrix
- Troubleshooting
- Extension for Microsoft Remote Desktop and Apps
- Configure the UiPath Remote Plugin for custom remote applications
- Troubleshooting
- Extension for VMware Horizon
- SAP Solution Manager plugin
- Excel Add-in
- Troubleshooting
- About troubleshooting
- 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
- JxBrowser applications troubleshooting
- User Events Monitoring
- Automating Applications Running Under a Different Windows User
- Validation of large Windows-legacy projects takes longer than expected

Studio User Guide
Workflow Analyzer is a static code analyzer that ensures your project meets high quality and reliability standards. A static code analyzer checks for inconsistencies without actually executing the project, as opposed to dynamic analyzers which step in during execution.
Workflow Analyzer uses a set of rules to check for various inconsistencies unrelated to project execution. The rules are based on Automation Best Practices and take into consideration variable and argument naming, empty sequences or workflows, package restrictions, and so on. The analyzer does not identify errors in execution or compilation.
It is available in the Design ribbon tab, the Analyze File and Analyze Project buttons. The first performs an analysis on the file currently focused in the Designer panel, while the second analyzes all files in the automation project.
ST- prefix. The
UIAutomation.Activities, Excel.Activities, Testing Activities, and Mail.Activities also have their own rules,
identifiable by the prefix.
You can also create custom rules. For more information, see Building Workflow Analyzer Rules in the Developer guide.
Rules can also be configured when creating a Studio policy in Automation Ops. For more information, see the Automation Ops guide.
ST-NMG-001 ID:
ST- reveals that the rule is built into Studio.NMG- shows that the rule is part of the Naming Rules category. Rules part of Project Anatomy Rules category have theANAabbreviation, those part of Design Best Practices theDBP, and so on.-
001- is the rule number.
Each rule has a scope to which it applies:
- Activity: The rules are enforced at activity level, checking variables, arguments, properties. Variables Naming Convention is one such rule.
- Workflow: Rules perform checks in a single project file, for example Unused Variables.
- Project: Checks are performed at project level.
Rules have a number of actions that can be set:
- Error: Generates an error in the Error List panel.
- Warning: Generates a warning in the Error List panel.
- Info: Generates a message in the Error List panel.
- Verbose: Creates large log files.
Check the Logging Levels page to learn more about logging with Studio.
The project or file is analyzed based on a set of rules available in the Project Settings window:
- In the Project panel, click the icon, then select Workflow Analyzer.
- In the ribbon, click the Analyze File button, then select Workflow Analyzer Settings from the dropdown.
By default, rules are arranged by code in the window, and enabled rules are displayed first.
Use the search box at the top of the window to search rules by name or code. To filter rules by scope and default action,
click the
button to the right of the search box.
Configure Rules
You can enable/disable a rule using the checkbox on its left, or change the default action using the dropdown on its right.
Some rules require no additional configuration, while others contain parameters that you can configure, such as thresholds not to be exceeded, or lists of specific items that are allowed or prohibited. Please note that when you configure rules that contain text fields (for example SecureString Misusage or Package Restrictions), text shouldn't be entered between quotes.
Reset to Default
After any changes were made to the default values of rules, be it Regex or thresholds, the values may be reverted to default by right-clicking the rule and then selecting Reset to Default.
Validation of the file or project is performed whenever the Workflow Analyzer is triggered. Validation options are available in the Analyze File ribbon button, Validate File and Validate Project.
This action checks whether variables, arguments, expressions, and imports are properly configured. The Validate File action can be triggered using the F8 shortcut, while Validate Project using Shift + F8. Validation can be cancelled at any time.
The file(s) that contain errors are marked in the Project panel with a red dot, and the errors are shown in the Error List and Output panels.
.xaml and highlights the element which threw the error, whether it's an activity, argument, or variable.
.xaml files are validated, the project cannot be debugged, executed or published. Breakpoint conditions are not evaluated.
When triggered, the Workflow Analyzer uses the configured ruleset to check the project or file, and logs the found errors in the Error List panel, in accordance with the rule action.
The Error List panel filters items by Errors, Warnings and Messages. The scope drop-down menu is useful for filtering errors by project, current file or a specific file in the automation. In addition, items can be filtered by rule ID.
Click a found warning or error to display the rule’s recommendation and a link to the documentation page for each rule.
In addition to rule violations, the Error List panel also displays errors that may occur in the execution of workflow analysis, When the Workflow Analyzer or one of the configured rules fails to run, an error is logged with details about the cause of the error in the description.
UiPath.Studio.CommandLine.exe command-line user interface contains a set of parameters for checking files or projects against certain rules, even in CI/CD
pipeline configurations.
UiPath.Studio.CommandLine.exe is available in the installation folder:
- For per-machine installations, the default path is
%ProgramFiles%\UiPath\Studio\ - For per-user installations, the default path is
%LocalAppData%\Programs\UiPath\Studio
UiPath.Studio.CommandLine.exe does not require a Studio
license.
By default, all Workflow Analyzer rules are enabled when installing Studio with the exception of the following:
You can configure rules:
- From the Workflow Analyzer Settings window, enable or disable rules by clicking the checkbox next to each one of them,
- From the
RuleConfig.jsonfile, path%LocalAppData%\UiPath\Rules. Find a specific rule, modify its parameter, change theIsEnabledparameter tofalseto disable the rule. Optionally, if the path is not accessible, you can place theRuleConfig.jsonfile in a custom location and include the path to the file in the command. For more information, see Analyze Files and Projects.
Rules are organized according to their unique ID, visible in the Workflow Analyzer Settings also.
([A-Z]) Regex expression. This means that variable names must be uppercase. All the other rules were disabled in this example.
| Parameter | Description |
|---|---|
| RuleId | The ID of the rule. |
| IsEnabled | Whether the rule is enabled or disabled. If set to null, the value of the parameter DefaultIsEnabled is applied. |
| DefaultIsEnabled | Whether the rule is enabled or disabled by default. |
| DefaultErrorLevel | The default level of the log message (Error, Warning, Info, Verbose). |
| Parameters | Additional parameters that the rule can contain (for example, Name or Value). |
| ErrorLevel | The level of the log message. If set to null, the value of the parameter DefaultErrorLevel is applied. |
Analyze Files and Projects
UiPath.Studio.CommandLine.exe command-line user interface.
The following Workflow Analyzer commands are available:
analyze- Analyzes the whole project. Requires the path to theproject.jsonfile.analyze-file- Analyzes a single file. Requires the path to the.xamlfile.
The following arguments are available for Workflow Analyzer commands:
|
Argument |
Description |
|---|---|
|
|
For analyzing one file, provide the path to the
.xaml. For analyzing the entire project, specify the path to the project.json file.
|
|
|
Path to the
RuleConfig.json file. Specify this path only if the rule configuration file is not placed in the default location (%LocalAppData%\UiPath\Rules).
|
|
|
View the arguments available for each command. |
|
|
Check the version of
UiPath.Studio.CommandLine.exe.
|
UiPath.Studio.CommandLine.exe analyze-file -p "C:\BlankProcess\Main.xaml" analyzes only one file in a project, Main.xaml. The output of the command returns a json-encoded dictionary with the following information for each rule violation:
FilePath: The path to the analyzed file.ErrorCode: The rule ID.ActivityDisplayName: The display name of the activity (nullif not applicable).Item- The name and type of the item (for example, activity or variable) where the error message was generated.ErrorSeverity: The value of theDefaultActionparameter, which is the configured log message for each rule, either Warning, Error, Info or Verbose.Description: The rule's description.-
RecommendationandURL: The recommended changes for solving the issue, together with the documentation link with more information.
RuleConfig.json file placed in a custom location, add the location to the command. Using the previous command as an example, to configure
rules with the file located at C:\CustomFolder\RuleConfig.json, run the command as follows: UiPath.Studio.CommandLine.exe analyze-file -c "C:\CustomFolder\RuleConfig.json" -p "C:\BlankProcess\Main.xaml".
echo %errorlevel% after you run it. If there are no messages with the ErrorSeverity Error, the code 0 is returned. Otherwise, 1 is returned.
.xaml file, an error is displayed.
The Globally Unique Identifiers (GUID) used as prefixes for an entry are generated on each run and apply to the current result only.
To configure Studio to export the results of each workflow analysis to the project folder, go to Studio Backstage View > Settings > Design and enable the Export Analyzer results option.
\.local\.analysis\ subfolder of the project folder in a file named with the timestamp of the analysis followed either by project_analysis_results.json (when the Analyze Project option is used) or file_analysis_results.json (when the Analyze File option is used) .
.local folder is hidden. You can enable viewing hidden items from the Windows File Explorer settings.
The files contain the following information about each enabled rule:
RuleId- The rule ID.RuleName- The name of the rule.Parameters- The customizable parameters in the rule, if applicable.Severity- The rule action, if the rule is violated.ErrorsDescription- A list of error messages generated by the rule, if applicable.
You can prevent executing, publishing, and pushing/checking in to remote repositories projects that contain Workflow Analyzer errors by enabling the following options from Studio Backstage View > Settings > Design:
- Enforce Analyzer before Run - Whenever running/debugging a file or project is initiated, the Workflow Analyzer checks all the rules with the
Erroraction and execution is allowed only if no errors are found. - Enforce Analyzer before Publish - Whenever publishing is initiated, the Workflow Analyzer checks all enabled rules regardless of their action and publishing
is allowed only if there are no rule violations with the action
Error. - Enforce Analyzer before Push/Check-in - Whenever sending a project to a remote repository is initiated (Commit and Push for GIT, Check in for SVN and TFS), the Workflow Analyzer checks all enabled rules regardless of their action and the operation is allowed
only if there are no rule violations with the action
Error.
Error) the results of the workflow analysis are included in the published .nupkg package in the file project_analysis_results.json located in \lib\net45\.analysis\. The file contains the following information about each enabled rule:
RuleId- The rule ID.RuleName- The name of the rule.Parameters- The customizable parameters in the rule, if applicable.Severity- The rule action (if the rule is violated).ErrorsDescription- A list of error messages generated by the rule, if applicable.