process-mining
2021.10
true
UiPath logo, featuring letters U and I in white

Process Mining

Last updated Dec 20, 2024

Example: Creating an R Script

Introduction

This example explains how to interface the UiPath Process Mining platform with external R scripts to implement external data processing.

Installing R

Follow these steps to be able to use R-script in the platform.

Step

Action

1

Download the latest version of the R package from

https://cran.r-project.org/bin/windows/base/.

2

Install R on the server.

Note: this must be the server on which UiPath Process Mining is installed.

3

Locate the installation directory and find path of Rscript.exe.

For example: C:/Apps/Rscript.exe

R is installed on the server, and developers can connect to it with a connection string.

The installation path is needed to create connection strings for an R script.

Important:

Start with some dummy data, to test your workspace setup. For example, use the “Hello World” example as described in Example: Creating a Python Script.

The dummy R script will than contain:

write("Hello world!", stderr()); quit("default", 1)

High-level Overview

In this example an R script is created which clusters cases based on their traces.

Steps

  1. Setting up the Server Settings;
  2. Writing the script.
  3. Setting up the data source;
  4. Setting up a script data source;

Setting up the Server Settings

The generic script datasource requires handlers for all external processes that you want to run.

Follow these steps to add the script handler for R script.

Step

Action

1

Go to the Superadmin Settings tab.

2

Add a field GenericScriptHandlers with as value an object with one key, “r”, which has as value the path to your python executable. For example:

"GenericScriptHandlers": {"r": "C:/Apps/Rscript.exe",}

3

Click on SAVE.

Writing the Script

In your text editor, start a blank text file and enter the following code.

## get command line arguments
args <- commandArgs(trailingOnly=TRUE)
inputfile <- args[1]
## read csv file
input <- file(inputfile, 'r')
df <- read.table(input, header=TRUE, sep=";")
## pre-processing
df <- table(df)
df <- as.data.frame.matrix(df)
df <- df[, sapply(data.frame(df), function(df) c(length(unique(df)))) > 1] #remove columns with unique value 
## cluster
df <- scale(df)
kc <- kmeans(df, centers = 5)
cluster <- kc$cluster
## output
resultdata <- cbind(rownames(df), cluster)
colnames(resultdata)[1] <- 'Case ID'
write.table(resultdata, row.names = FALSE, sep=";", qmethod = "double")## get command line arguments
args <- commandArgs(trailingOnly=TRUE)
inputfile <- args[1]
## read csv file
input <- file(inputfile, 'r')
df <- read.table(input, header=TRUE, sep=";")
## pre-processing
df <- table(df)
df <- as.data.frame.matrix(df)
df <- df[, sapply(data.frame(df), function(df) c(length(unique(df)))) > 1] #remove columns with unique value 
## cluster
df <- scale(df)
kc <- kmeans(df, centers = 5)
cluster <- kc$cluster
## output
resultdata <- cbind(rownames(df), cluster)
colnames(resultdata)[1] <- 'Case ID'
write.table(resultdata, row.names = FALSE, sep=";", qmethod = "double")

Follow the steps below.

Step

Action

1

Save the text file as script.r.

2

Upload the script.r file to your workspace.

Setting up the Data Source

To define input data, create an attribute that generates a .CSV like string. It should be placed in the Globals table since it will serve as input in a table definition.
Note: You can use the csvtable function to define input data.

For this example, we have an application with the an Events table. See illustration below.



Follow these steps to create a lookup expression R_input_data from the Globals table to Events.

Step

Action

1

Open the app in your development environment, and go to the Data tab.

2

Select the Globals table. Right-click on the Globals table in the table item list and select New expression….

3

Set the type to Lookup.

4

Select Events as input table.

5

Enter the following expression:

csvtable( 'CaseID', records.text(Case_ID) , 'Activity', records.text(Activity) )

6

Enter R_input_data in the name field.

7

Click on OK to save the expression attribute in the Globals table.

The expression attribute is created in the Globals table. See illustration below.



Setting up a Script Data Source

Next, set up a datasource table in the application which will call the script.

Follow these steps to set up the script data source.

Step

Action

1

In the Data tab, create a new Connection string table.

2

Rename the New_table to RscriptExample.

3

Right click on the RscriptExample table and click Advanced > Options….

4

In the Table Options dialog, set the Table scope to Workspace.

5

Double click on the RscriptExample table to open the Edit Connection String Table window.

6

Enter the following as Connection string:

``'driver={mvscript

7

Enter the following as Query:

'' +'&scriptFile=' + urlencode("script.r") +'&inputData=' + urlencode(R_input_data)

See illustration below.

8

Click on OK, and click on YES to reload the data.



When loading the data, new attributes are detected. Click on YES(2x) and click on OK.



The Rscript_example table now has two datasource attributes, Case_ID and cluster.

See illustration below.



Defining the R Script in the Query Field

Instead of using a separate file containing the R script, you can also define the R script in the Query field of the Edit Connection String dialog. In this case you use the scriptText parameter in stead of the scriptFile parameter.

See illustration below.



  • Example: Creating an R Script
  • Introduction
  • Installing R
  • High-level Overview
  • Steps
  • Setting up the Server Settings
  • Writing the Script
  • Setting up the Data Source
  • Setting up a Script Data Source
  • Defining the R Script in the Query Field

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo
Trust and Security
© 2005-2025 UiPath. All rights reserved.