- 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-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- ST-USG-005 - Hardcoded Activity Properties
- 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
- Troubleshooting
- Trigger-based Attended Automation
- Object Repository
- The ScreenScrapeJavaSupport Tool
- 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
- Studio testing
- 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
Integrating Low-Code workflow in Coded automation
In this tutorial, you can learn how to incorporate a low-code workflow inside a coded automation. This example is similar to the Using Coded automation in Low-Code workflow tutorial, but the other way around. The tutorial shows how to invoke the ResetAssetValue.xaml low-code workflow into the CodedAutomationUsingWorkflow.cs coded automation.
The ResetAssetValue.xaml workflow performs the following steps:
-
Retrieves the current value of a specific asset from Orchestrator.
-
Compares the retrieved asset value with the input value provided as an argument.
-
If the previous asset value does not match the input value, it updates the asset value in Orchestrator.
-
Logs messages that indicate the status of the asset value, whether it was updated or remained unchanged.
-
Create a low-code workflow. For this example, name it
ResetAssetValue.Note:Leave the value of all variables and arguments you create empty. These variables and arguments will be populated with data when you invoke the low-code workflow within a coded automation. You will pass the required values for these arguments when you invoke the workflow.
- Add a Get Asset activity, and save the name of the asset in a variable named
assetName. - Create arguments for the following values:
assetValue- the In/Out argument that you use to retrieve and update the value of the asset.assetName- the In argument that you use to input the name of the asset.assetValueWasChanged- the Out argument that you use to print in the console if the asset value remained the same or was changed.
- Create a variable to pass the previous value of the asset:
previousAssetValue. - Add an If activity to check if the previous asset value has changed. Set the Condition as
previousAssetValue.Equals(assetValue). - In the Else body, add a Set Asset activity, to update the asset in Orchestrator with the
assetValuethat is different from thepreviousAssetValue. - Add an Assign activity and update the previous asset value with the new one.
- Add a Get Asset activity, and save the name of the asset in a variable named
assetValue = previousAssetValue
7. Add another Assign activity to set the variable that lets you know if the asset value has changed to True.
assetValueWasChanged = True
2. Create a new coded workflow. For this example, name it CodedAutomationUsingWorkflow.
- Use the
RunWorkflowmethod to invoke theResetAssetValue.xamlworkflow. - Provide the necessary arguments as a
Dictionary<string, object>to specify theassetNameandassetValue.
For this example, we set MyAsset as the assetName and "hello world" as the assetValue.
3. Store the result of the RunWorkflow method in a variable named result.
var result = RunWorkflow("BusinessProcess\\ResetAssetValue.xaml", new Dictionary<string, object>() { {"assetName", "MyAsset"}, {"assetValue", "hello world"} });
4. Check if the assetValueWasChanged property in the dictionary is true or false.
1. If it's true, log a message that indicates the asset MyAsset was reset and include the previous value it had.
2. If it is false, log a message specifying that no reset was required on the asset MyAsset because it had the expected value.
if ((bool)result["assetValueWasChanged"]) { Log("Reset asset MyAsset, but it had a different value, previous value was " + result["assetValue"]); } else { Log("No reset was required on asset MyAsset, which had the expected value."); }