studio
2020.10
false
UiPath logo, featuring letters U and I in white
OUT OF SUPPORT
Studio User Guide
Last updated Dec 20, 2023

About Automation Projects

UiPath Studio allows you to create two types of standalone automation projects: process or library. Processes can incorporate all types of workflows, sequence, flowchart, state machine and global exception handler, while the global exception handler isn't available for libraries. Moreover, libraries can be added as dependencies to automation processes.

When you start a new process in Studio, a folder is created with your custom name to the selected location. Projects are saved in the %USERPROFILE%\Documents\UiPath directory by default, unless this location is manually changed.

By default, the project folder includes the following files and subfolders:

  • Files

    • Main.xaml - Created by default to hold your main workflow. In addition, all the other automation XAML files you add to the project are stored in the project folder. Optionally, you can set a different file as main. All the files must be linked through the Invoke Workflow File activity to the file set as main or to a file marked as an entry point to the project. In the case of test projects created in Studio Pro, a TestCase.xaml file is created by default instead of Main.xaml.
    • project.json - Contains information about your automation project.
  • Subfolders

    • .entities - Contains data about entities imported from the Data Service, if any are used in the project.
    • .local - Contains data cached locally for the project.
    • .objects - Contains data related to items added to the Object Repository, if any are used in the project.
    • .screenshots - Contains informative screenshots generated in UI automation activities, if any are used in the project.
    • .settings - Contains activity project settings used at runtime.
    • .tmh - Contains data related to test cases, if any are used in the project.
      Note: Projects created with newer versions of Studio might not work with older Studio versions. Read more about Backward and Forward Compatibilty.
      You cannot use the following characters in file names: ", <, >, |, :, *, ?, \, /,;. These characters come from Microsoft Windows restrictions and from other special character restrictions.

Setting the Project Language

Projects created in the Studio and StudioX profiles use the VB.NET language for expressions.

In the Studio Pro profile, when you create a new project, you can choose either VB or C#. VB is the language selected by default, but you can set C# as the default language for new projects by going to Home (Studio Backstage View) > Settings > Design. Please note that C# projects can only be opened from the Studio Pro profile.

The use of both VB and C# expressions in the same project is not supported. Neither is the use of VB expressions in C# workflows and vice versa. When you copy and paste activities from other projects, invoke or import workflows, make sure they use the same language as your project.

You can install C# libraries as dependencies in VB projects and vice versa. However, default values defined for arguments in the library project using language-specific expressions cannot be accessed from the project where the library is installed.

C# Limitations

  • The current C# implementation is based on the C# compiler that uses C# version 5, therefore access to newer features like coalescing assignment, null-conditional operator, null-coalescing operator, string interpolation and others is limited.
  • Projects containing expressions with increments are invalid.
  • Expressions containing the nameof() operator are marked as invalid and are not allowed with the current implementation of C#.
  • Expressions containing calls to methods with optional arguments must include values for the optional arguments.
  • Design time and runtime performance of C# projects is lower when compared to VB.NET. When runtime performance is essential, we recommend using VB.NET instead of C#.

Setting the Project Version

Semantic Versioning

The semantic versioning scheme has the format Major.Minor.Patch[-Suffix], where:

  • Major is the major version.
  • Minor is the minor version.
  • Patch is the patch version.
  • -Suffix (optional) is a hyphen followed by a series of dot separated identifiers immediately following the patch version. This denotes a prerelease version.

Identifiers must comprise only of ASCII alphanumeric characters and hyphen, and they must not be empty. Numeric identifiers must not include leading zeroes. In addition, build metadata may be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version, for example 1.0.0-alpha+1.

When creating a new process or library, the default version scheme is semantic. It can be changed from the Publish window by simply adding an extra digit to the version number. The project’s semantic version can be modified from the project.json file too. The patch number 0 is automatically added to projects with version number major.minor.

Legacy Versioning

The legacy version number generated for the project has the format M.m.bbbb.rrrrr, where:

  • M is the major version.
  • m is the minor version.
  • bbbb is the build version.
  • rrrrr is the revision version.
The major and minor versions can be edited in the project.json file also, while the build and revision versions are generated according to an algorithm - the build value is the number of days that elapsed since 01.01.2000. The revision value is the number of seconds which elapsed since the current day, until the moment of the release. The result is divided by 2, so that the maximum revision number does not exceed 65535.

The suggested version number in the Publish window is generated based on the project’s previous versioning scheme, while the current date and timestamp are taken into account for projects using the 4-digit versioning scheme.

Managing Projects



The Project panel enables you to view the contents of the current project, add folders, open the file location, manage dependencies, and adjust project settings.



Copy and paste files from File Explorer directly into the Project panel. The same can be done using drag and drop on one or multiple files, including .xaml workflows. Using Ctrl + C and Ctrl + V shortcuts you can also copy a file and duplicate it anywhere in the tree.

Option

Description

Expand All

Expands all nodes in the automation project.

Collapse All

Collapses all nodes in the automation project.

Refresh

Refreshes the project.

Show All Files

Shows all files belonging to the automation project, including the project.json.

File Explorer

Opens the project's location on the machine.

Project Settings

Opens the Project Settings window for processes or libraries.

Remove Unused Screenshots

Removes screenshots that aren't used when running the automation project.

Context Menu for Projects

Right-click anywhere in the Project panel to open the context menu with options described in the following table. A different subset of options is available depending on where in the panel you right-click, the type of project, and whether the project is added to source control.

Option

Description

Open Project Folder

Opens the local folder containing the project.

Project Settings

Opens the Project Settings window for adjusting project preferences.

Add

Opens a list of items that can be added to the project: folder, sequence, flowchart, state machine or global handler.

Import Workflows

Imports .xaml files to the project and adds Imported in the file name if it coincides with the name of the main file.

Import Files

Opens the File Explorer window for importing various files into your project.

Add to Source Control

Adds the current project to source control using Git Init, Copy to Git, Add to TFS, or Add to SVN options. Please note that this option is only visible when right-clicking the project node.

When a project is added to source control, additional options are available in the context menu. See the options for GIT and the options for SVN and TFS.

Open

Opens the selected files using the default program.

Open File Location

Opens the local folder containing the file.

Rename

Enables you to rename the selected file or folder, and opens the Rename Item window. The item is renamed in all occurrences.

Delete

Deletes the selected item only from your local machine.

Select for Compare

Selects the current file for comparison.

Compare with Selected

Compares the current file with the previously selected file using Compare Files.

Find References

Finds all references to the file in the project. The results are displayed in the Find References panel.

Debug File

Debugs the selected .xaml file.

Set as Main

Sets the selected .xaml file as Main in the project definition, meaning that the project execution starts with that file. There can only be one Main project file. The name of the file set as main appears in bold in the Project panel.

Properties

Open the library’s Properties window for adding a tooltip and Help Link.

Set as Global Handler

Sets the .xaml file as the Global Exception Handler for the project. This is applicable to one workflow per project/process.

Remove Handler

Removes the Global Exception Handler tag from the .xaml file.

Enable Entry Point

Marks the selected workflow file as an entry point for the process, making it possible to select it as the workflow to run first when using the Invoke Process and Run Parallel Process activities in other processes.

Note:
  • When a file is marked as an entry point, an arrow is displayed on the icon next to the file name docs image.
  • Enabling a file that is ignored from publishing as an entry point sets the file as publishable.
  • This option is not available for test case files.
  • This option is not available in library projects.

Disable Entry Point

No longer marks the selected workflow file as an entry point for the process. This option is not available for the workflow file that is set as Main.

Ignore from Publish

Marks one or more selected files as excluded from publishing.

Note:
  • When a file is ignored from publishing, the icon next to the file name turns gray docs image.
  • Ignoring a file marked as an entry point from publishing disables the entry point.
  • In a library project, a file that is ignored from publishing is included in the package, but no reusable component is created and made available in the Activities panel in projects where the library is installed as a dependency.

Set as Publishable

Marks one or more selected files that are excluded from publishing as publishable.

Context Menu Options for GIT

In projects added to GIT repositories, an icon is displayed next to each file in the Project panel to indicate the file status:

The file is synced with the repository.

The file has been modified.

The file has been added.

Right-click a file or project node in the Project panel to open the GIT-specific context menu for Managing Projects with GIT.



Option

Description

Commit

Commits current changes to the local GIT repository.

Push

Pushes the current version onto the remote repository.

Pull (rebase)

Pulls remote files and rebases the current branch.

Manage Branches

Opens the GIT window with options for managing currently added branches.

Show Changes

Opens the File Diff window for comparing changes between the local version and the remote version of the file.

Show History

Opens the Show History window for comparing two versions of the same file.

Undo

Opens the Undo Pending Changes window if the file was not committed or pushed to the remote repository.

Context Menu Options for SVN and TFS

In projects added to SVN or TFS repositories, an icon is displayed next to each file in the Project panel to indicate the file status:

The file is not checked out for editing.

The file has been checked out for editing.

The file has been edited.

The file has been added.

Right-click a file or project node in the Project panel to open the context menu with options specific to managing projects with TFS or SVN.



Option

Description

Open

Opens the selected .xaml file in the Designer panel, in read-only mode if it was not checked out for edit from the TFS/SVN repository.

Rename

Enables you to rename the selected file or folder, and opens the Rename Item window. When checking in the renamed .xaml file, the previously modified version must also be checked in.

Delete

Deletes the selected item only from your local machine. The latest checked in version of the file is still available in the TFS/SVN repository.

Check Out For Edit

Marks the selected file or folder as locked for editing. Checking out a file locks it on the server so that no one else can edit it.

Finish Editing

Checks in the project.json file in the respository, together with changes and a commit message.

Add

Uploads the selected item to the TFS/SVN server. This option is not available, if the item was previously uploaded to the server.

Get Latest Version

Downloads the latest version of the selected item from the TFS/SVN repository.

Show changes...

Opens the File Diff to compare changes between the versioned file and the one mapped locally.

Check In

Displays the Check In Changes window and enables you to upload the selected item to the server as the newest version. The .xaml file must be saved before uploading it. After it’s checked in, the file becomes read-only in Studio.

Undo

Displays the Undo Pending Changes window and enables you to Revert the changes done to the project, either revert modified files to previous or unversioned states, or retrieve files which were deleted from the local machine.

Changes cannot be reverted after the file was checked in.

Run

Runs the selected workflow, even if it's not checked out or added to the repository.

Set as Main

Sets the selected .xaml file as Main in the project. The first created .xaml is set as Main by default.

Adjusting Project Settings

A set of individual settings can be established for each automation project that you’re working on. Such settings are available in the Project Settings window, which can be opened by clicking the in the Project panel.



Field Description for the Settings Window

Field

Description

Name

Change the name of the project. Such names may contain whitespace characters. When naming projects, keep in mind that whitespace characters are removed at publish time. This field accepts up to 128 characters.

Description

Change the project description. This field accepts up to 500 characters.

Disable Pause

Enable or prevent users from pausing processes in the Robot tray. Set to Yes if pausing the process during execution would result in crashing it. For example, if an activity in your workflow uses the Timeout property, pausing the execution might cause the timeout to expire, thus breaking the execution.

Starts in Background

Set to Yes to turn the project in a Background Process and allow it to run in the background concurrently with other processes, as long as it does not use UI interaction.

Supports Persistence

Set to Yes to turn the project in an Orchestration Process.

PiP Ready

Set to Yes to indicate that the project was tested using Picture in Picture. If set to No, the option to use this feature is not available for the process.

Starts in PiP

Set to Yes to indicate that the process should be run by default using the Picture in Picture feature.

Modern Design Experience

Set to Yes to enable a modern experience of working with UI Automation, including new and improved activities, recorders, and wizards, as well as the Object Repository.

Click OK and the changes are made visible in the Project panel and project.json file.

Check out the Configuring Activity Project Settings page to read about how to adjust activity properties at project level.

Note: Please take into consideration that whenever you wish to copy a large number of activities from one sequence to another, it is recommended to scroll down to the bottom of the Designer panel beforehand. This is due to a Windows Workflow Foundation limitation.

About the Project.Json File

Project.json is an automatically generated file which is created for each .xaml file marked as Main in the project folder.

The file holds varied information, including project dependencies, or web services loaded in libraries. For more information about web services in libraries, check out the Loading Web Services in Libraries page.

Note:

Manually editing the project.json file should be attempted for troubleshooting scenarios only, as it may lead to severe consequences and loss of support.

As of 2018.2, you should specify a project.json file when running your project from the UiRobot.exe (command line) client.
The parameters contained in the Project.json file are described in the following table.

Parameter

Description

name

The title of the automation project. It is provided in Studio when creating a new process or library.

description

The description of the project. It is provided in the Description field in Studio when a new project is created.

main

The entry point of the automation project. It consists of an .xaml file. The default name is “Main.xaml”. It is displayed both as the title of the Designer panel and in the Properties panel in Studio. If you want to execute a different project first, change the value of this parameter to the name of the .xaml file to be processed.
Note: If your automation project contains multiple files, each of them should be linked to the Main.xaml file through the Invoke Workflow File activity. This is especially useful when the project is published to Orchestrator and sent to a Robot, as the Robot executes only the file provided in this parameter.

dependencies

The activities packages used to create the automation project and their versions. The list is updated every time a dependency is added or removed from the project, or when a package version changes.

Note: Version numbers are composed of the following parts, in order: major, minor, build, and revision. The build value is the number of days that elapsed since 01.01.2000. The revision value is the number of seconds which elapsed on the day of the release, starting from 5 AM, GMT.

webServices

  • namespace - The name of the service provided in the Add new service window for libraries.
  • serviceDocument - The path to the .xml or .json file containing metadata for the SOAP or Swagger service. The file is used when the service is repaired, and should be versioned as part of the project.
  • webDocumentUri - The file path or link to the Swagger or SOAP resource (provided when the service is created in the Add new service window).
  • uniqueReference - A reference needed for versioning the service.

entitiesStores

  • serviceDocument - The path to the local entities file.
  • tenantName - The tenant where the Data Service resides.
  • namespace - The namespace under which the entities are imported (the project namespace).
  • uniqueReference - A reference needed for versioning the service.

schemaVersion

The version of the project.json file.

studioVersion

The version of Studio used to create the automation project.

projectVersion

The version used when publishing this project to a feed. Represents the one set in the Publish window.

runtimeOptions

  • isPausable - Whether pause is enabled for the process
  • requiresUserInteraction - Whether the process is a long running process.
  • supportsPersistence - Whether the process supports persistence,
  • excludedLoggedData - Contains keywords that can be added to the name of an activity to prevent variable and argument values from being logged at the Verbose level. That can also be achieved by selecting the Private checkbox of any activity. Read more about the protection of sensitive information here.
  • readyForPiP - Whether the process is marked as PiP ready.
  • startsInPiP - Whether the process is configured to start in PiP.

designOptions

  • projectProfile - The Studio profile used when the project was created, either Business (StudioX) or Development.
  • outputType Shows the project type, either Process, Library, or Tests.
  • libraryOptions

    • includeOriginalXaml - Whether to include original workflow files in the resulting .nupkg file.
    • privateWorkflows - The full name of private .xaml files contained in the library.
  • processOptions

    • ignoredFiles - List of RPA workflow files ignored from publishing.
  • fileInfoCollection - Contains the following information for each test case file in the process: editingStatus (Publishable or InProgress), testCaseId, and fileName.
  • modernBehavior - Whether the process is configured to use the Modern Design Experience.

arguments

Contains the following information for each input and output argument defined in the workflow file that is set as Main: name, type, whether it is required, and whether it has a default value (hasDefault).
Note: Arguments information is added only to the file in the .nupkg package after publishing.

expressionLanguage

The language set for the process (VisualBasic or CSharp).

entryPoints

Contains the following information for each file marked as an entry point to the process filePath,
uniqueId. and the following information for each input and output argument in the file: name, type, whether it is required, and whether it has a default value (hasDefault).
Note: Arguments information is added only to the file in the .nupkg package after publishing.

isTemplate

Whether the project is a template.

templateProjectData

Contains the following information for template projects:

  • defaultProjectDescription - The default project description for processes based on the template.
  • defaultProjectName - The default project name for processes based on the template.
The following is an example of the contents of a project.json file included in a package published from Studio.
{
  "name": "UI-40028",
  "description": "Blank Process",
  "main": "Flowchart.xaml",
  "dependencies": {
    "UiPath.Excel.Activities": "[2.9.3]",
    "UiPath.Mail.Activities": "[1.9.3]",
    "UiPath.System.Activities": "[20.10.1]",
    "UiPath.UIAutomation.Activities": "[20.10.6]"
  },
  "webServices": [],
  "entitiesStores": [],
  "schemaVersion": "4.0",
  "studioVersion": "20.10.2.0",
  "projectVersion": "1.0.1",
  "runtimeOptions": {
    "autoDispose": false,
    "isPausable": true,
    "requiresUserInteraction": true,
    "supportsPersistence": false,
    "excludedLoggedData": [
      "Private:*",
      "<em>password</em>"
    ],
    "executionType": "Workflow",
    "readyForPiP": false,
    "startsInPiP": false
  },
  "designOptions": {
    "projectProfile": "Developement",
    "outputType": "Process",
    "libraryOptions": {
      "includeOriginalXaml": false,
      "privateWorkflows": []
    },
    "processOptions": {
      "ignoredFiles": []
    },
    "fileInfoCollection": [],
    "modernBehavior": false
  },
  "arguments": {
    "input": [
      {
        "name": "argument1",
        "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
        "required": false,
        "hasDefault": false
      },
      {
        "name": "argument2",
        "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
        "required": false,
        "hasDefault": false
      }
    ],
    "output": []
  },
  "expressionLanguage": "VisualBasic",
  "entryPoints": [
    {
      "filePath": "Main.xaml",
      "uniqueId": "5289efb0-f8bc-42f3-8cf4-0caa3a7d1915",
      "input": [
        {
          "name": "argument1",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        },
        {
          "name": "argument2",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        }
      ],
      "output": []
    },
    {
      "filePath": "Flowchart.xaml",
      "uniqueId": "d0904ba0-506e-437d-979c-b9da4325faad",
      "input": [
        {
          "name": "argument1",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        },
        {
          "name": "argument2",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        }
      ],
      "output": []
    }
  ],
  "isTemplate": false,
  "templateProjectData": {},
  "publishData": {}
}{
  "name": "UI-40028",
  "description": "Blank Process",
  "main": "Flowchart.xaml",
  "dependencies": {
    "UiPath.Excel.Activities": "[2.9.3]",
    "UiPath.Mail.Activities": "[1.9.3]",
    "UiPath.System.Activities": "[20.10.1]",
    "UiPath.UIAutomation.Activities": "[20.10.6]"
  },
  "webServices": [],
  "entitiesStores": [],
  "schemaVersion": "4.0",
  "studioVersion": "20.10.2.0",
  "projectVersion": "1.0.1",
  "runtimeOptions": {
    "autoDispose": false,
    "isPausable": true,
    "requiresUserInteraction": true,
    "supportsPersistence": false,
    "excludedLoggedData": [
      "Private:*",
      "<em>password</em>"
    ],
    "executionType": "Workflow",
    "readyForPiP": false,
    "startsInPiP": false
  },
  "designOptions": {
    "projectProfile": "Developement",
    "outputType": "Process",
    "libraryOptions": {
      "includeOriginalXaml": false,
      "privateWorkflows": []
    },
    "processOptions": {
      "ignoredFiles": []
    },
    "fileInfoCollection": [],
    "modernBehavior": false
  },
  "arguments": {
    "input": [
      {
        "name": "argument1",
        "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
        "required": false,
        "hasDefault": false
      },
      {
        "name": "argument2",
        "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
        "required": false,
        "hasDefault": false
      }
    ],
    "output": []
  },
  "expressionLanguage": "VisualBasic",
  "entryPoints": [
    {
      "filePath": "Main.xaml",
      "uniqueId": "5289efb0-f8bc-42f3-8cf4-0caa3a7d1915",
      "input": [
        {
          "name": "argument1",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        },
        {
          "name": "argument2",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        }
      ],
      "output": []
    },
    {
      "filePath": "Flowchart.xaml",
      "uniqueId": "d0904ba0-506e-437d-979c-b9da4325faad",
      "input": [
        {
          "name": "argument1",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        },
        {
          "name": "argument2",
          "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
          "required": false,
          "hasDefault": false
        }
      ],
      "output": []
    }
  ],
  "isTemplate": false,
  "templateProjectData": {},
  "publishData": {}
}

Was this page helpful?

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