- 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
- Trigger-based Attended Automation
- Control Flow
- Object Repository
- Logging
- The ScreenScrapeJavaSupport Tool
- 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
Invoking Code Source File
Use this workflow to invoke a coded source file within a low-code workflow. In this example, we create a class called TimeSpanHelper in the TimeSpanHelper.cs coded source file. This class generates a random time span based on the specified bounds. To integrate this class in a low-code workflow, we use an Invoke Workflow File activity, followed by other low-code activities, depending on the use case.
- Create a coded source file. For this example, name it
TimeSpanHelper.cs. - In the coded source file, create a public class named TimeSpanHelper.
-
Inside the TimeSpanHelper class, declare a private static Random object named
_randomto generate random values.private static Random _random = new Random();private static Random _random = new Random(); -
Declare a private static object named
_lockObjto secure the thread, while working with multiple threads at the same time.private static object _lockObj = new object();private static object _lockObj = new object(); -
Implement a public static method called
GetRandomTimeSpanBetweenthat takes two integer parameters:lowerBoundMsandupperBoundMs.public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs) {public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs) { -
Use the lock statement with
_lockObjto secure this thread, while working with multiple threads at the same time.lock (_lockObj) {lock (_lockObj) { -
Within the lock block, generate a random integer value using
_random.Nextand passlowerBoundMsandupperBoundMsas the arguments.var ms = _random.Next(lowerBoundMs, upperBoundMs);var ms = _random.Next(lowerBoundMs, upperBoundMs); -
Convert the generated random value to a
TimeSpanobject usingTimeSpan.FromMillisecondsand return this value directly from the method with the following command return:return TimeSpan.FromMilliseconds(ms);return TimeSpan.FromMilliseconds(ms);
-
Based on these steps, your final code should look like this:
public class TimeSpanHelper
{
private static Random _random = new Random();
private static object _lockObj = new object();
public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs)
{
lock (_lockObj)
{
var ms = _random.Next(lowerBoundMs, upperBoundMs);
return TimeSpan.FromMilliseconds(ms);
}
}
}
public class TimeSpanHelper
{
private static Random _random = new Random();
private static object _lockObj = new object();
public static TimeSpan GetRandomTimeSpanBetween(int lowerBoundMs, int upperBoundMs)
{
lock (_lockObj)
{
var ms = _random.Next(lowerBoundMs, upperBoundMs);
return TimeSpan.FromMilliseconds(ms);
}
}
}
- Create a low-code workflow. For this example, name it
WorkflowUsingCodeSourceFile. - Add a Log Message activity to output a random timespan between two and four seconds.
- In the Message field, type the name of the project, call the coded source file, and then call the
GetRandomTimeSpanBetweenmethod.
In the example below, CodedWorkflowInteroperability is the name of the project.
CodedWorkflowInteroperability.TimeSpanHelper.GetRandomTimeSpanBetween(2000, 4000)
CodedWorkflowInteroperability.TimeSpanHelper.GetRandomTimeSpanBetween(2000, 4000)