Go to the profile of  Leo
Leo
why do i need a bio? they are painful to write.
2 min read

How to call UIPath Robot without UIPath orchestrator

How to call UIPath Robot without UIPath orchestrator

There are multiple ways once you want to develop RPA applications in an enterprise setting. However, as part of the discovery phase, I am testing UIPath with Azure Bot on my local machine to speed up my prototype without having to worry about deploying to the cloud or UIPath orchestrator.

Platform Versions Used

  1. Azure Bot Framework SDK v4 (C#)
  2. Visual Studio 2017
  3. UIPath Studio 2019.2.0

The sample code base can be forked from here.

UIPath has a way to call a workflow without having to go through the UIPath Studio in order to execute it.

By default, when you install UIPath Studio most of its data are stored in the following path:

C:\Users\xyz\AppData\Local\UiPath

If you open that file, you can see that there are different folders that has the name of its version

For this version, I'm gonna go ahead and open app-19.2.0. UIPath has an application called UiRobot where it can execute a given workflow file without having to depend on UIPath Studio.

With .NET, one can just simply invoke System.Diagnostics.Process to start UIPath

Open up Program.cs

private static void CallUiPathRobot()
{
    var process = new Process
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = "uirobot",
            Arguments = $@"/file ""{Config.UiPathArguments}""",
            UseShellExecute = true,
            WorkingDirectory = Config.UiPathWorkingDirectory,
            RedirectStandardOutput = false,
            RedirectStandardError = false,
            CreateNoWindow = true
        }
    };
    process.Start();
}

Caveats

  1. Be careful of escaping your arguments especially with JSON.
  2. It's prone to breaking changes if you're using community edition because UIPath automatically updates and will create a newer version that has a newer folder name.
  3. The uirobot filename that you see was because I set my machine path to point to one of the UIPath version folder to find uirobot.