studio
2023.10
false
- Release Notes
- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- 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-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-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-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
- Invoking Code Source File
- Using Coded automation in Low-Code workflow
- Integrating Low-Code workflow in Coded automation
- Invoking Coded automation in another Coded automation
- Integrating OpenAI with Coded Workflows
- Apply for a loan with UiBank
- Queue generation with coded workflows and Orchestrator APIs
- Using imported library projects in coded automations
- Trigger-based Attended Automation
- Recording
- UI Elements
- Control Flow
- Selectors
- Object Repository
- Data Scraping
- Image and Text Automation
- Citrix Technologies Automation
- RDP Automation
- Salesforce Automation
- SAP Automation
- VMware Horizon Automation
- Logging
- The ScreenScrapeJavaSupport Tool
- The WebDriver Protocol
- Studio testing
- 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 VMware Horizon
- SAP Solution Manager plugin
- Excel Add-in
- Troubleshooting

Studio User Guide
Last updated Sep 3, 2025
Integrating Low-Code workflow in Coded automation
linkIn 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
assetValue
that is different from thepreviousAssetValue
. -
Add an Assign activity and update the previous asset value with
the new one.
assetValue = previousAssetValue
-
Add another Assign activity to set the variable that lets you
know if the asset value has changed to True.
assetValueWasChanged = True
-
Add a Get Asset activity, and save the name of the asset in a
variable named
-
Create a new coded workflow. For this example, name it
CodedAutomationUsingWorkflow
.-
Use the
RunWorkflow
method to invoke theResetAssetValue.xaml
workflow. -
Provide the necessary arguments as a
Dictionary<string, object>
to specify theassetName
andassetValue
.For this example, we setMyAsset
as theassetName
and"hello world"
as theassetValue
. -
Store the result of the
RunWorkflow
method in a variable namedresult
.var result = RunWorkflow("BusinessProcess\\ResetAssetValue.xaml", new Dictionary<string, object>() { {"assetName", "MyAsset"}, {"assetValue", "hello world"} });
var result = RunWorkflow("BusinessProcess\\ResetAssetValue.xaml", new Dictionary<string, object>() { {"assetName", "MyAsset"}, {"assetValue", "hello world"} }); -
Check if the
assetValueWasChanged
property in the dictionary is true or false.- If it's true, log a message that indicates the asset
MyAsset
was reset and include the previous value it had. - 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."); }
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."); }
- If it's true, log a message that indicates the asset
-
Use the