# Start Job And Get Reference

> `UiPath.Persistence.Activities.Job.StartJobAndGetReference`

`UiPath.Persistence.Activities.Job.StartJobAndGetReference`

## Description

Invokes a Job in Orchestrator with arguments and fetches the corresponding job object in order to wait for job completion at any time during the execution of the workflow. If your workflow uses this activity to invoke another workflow, the Robot has to be connected to Orchestrator, and the [Robot role](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/default-roles#robot-role) needs to also have **View** on Processes and Environments, and **View**, **Edit**, **Create** on Jobs. The activity runs under the Robot that executes it.

## Project compatibility

**Windows - Legacy** | **Windows** | **Cross-platform**

## Windows, Windows - Legacy configuration

### **Designer panel**

* **ProcessName** (mandatory) - The Display name of the Process you want to use for the job as it appears in Orchestrator (it could be found in **Additional Settings** field of the process settings. For example, if the name of the Package is **InvoiceScan** and you named the process **Invoice Scanner**, the string in this field should be `Invoice Scanner`). This field supports strings and `String` variables only.
* **Job Arguments** - The arguments you want to use when invoking a job in Orchestrator. Modifying `Out` and `In/Out` arguments maps them back to the workflow after task completion. This field supports `Dictionary<String,Argument>` objects only.
* **Job Object (Output)** - The job object that is returned from Orchestrator as a `JobData` object after the task is created. This object can be passed to the **Wait for Job and Resume** activity in order to suspend the execution of the workflow until the job is completed.

### **Properties panel**

#### Common
* **ContinueOnError** - Specifies if the automation should continue even when the activity throws an error. This field only supports Boolean values (True, False). The default value is False. As a result, if the field is blank and an error is thrown, the execution of the project stops. If the value is set to True, the execution of the project continues regardless of any error.

:::note
If this activity is included in **Try Catch** and the value of the **ContinueOnError** property is True, no error is caught when the project is executed.
:::

* **DisplayName** - The display name of the activity.
* **TimeoutMS** - Specifies the amount of time (in milliseconds) to wait for the activity to run before an error is thrown. The default value is 30000 milliseconds (30 seconds).

#### Input
* **Orchestrator Folder Path** - The [path to an Orchestrator Folder](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/managing-folders) different to the one the current process operates in, where you want to start the job. To read more on Orchestrator Folders, visit [Folders](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/folders). For **Classic** folders, this property can only be used with **Floating Robots** and only if the current user has the correct task privileges in the target folder. For **Modern** folders, **folder path overriding is not supported**. This field supports only strings and `String` variables.

:::note
The **Orchestrator Folder Path** property must be used **only** if the job must be started or queried from a folder different than the current one. If the user performing this action does not have the required permissions for the target folder, job start fails and throws a critical error. Visit [Folder Permissions](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/folders#folder-permissions) to read about folder permissions.
:::

* **Job Arguments** - The arguments you want to use when invoking a job in Orchestrator. Modifying `Out` and `In/Out` arguments maps them back to the workflow after task completion. This field supports `Dictionary<String,Argument>` objects only.
* **ProcessName** (mandatory) - The Display name of the Process you want to use for the job as it appears in Orchestrator (it could be found in **Additional Settings** field of the process settings. For example, if the name of the Package is **InvoiceScan** and you named the process **Invoice Scanner**, the string in this field should be `Invoice Scanner`). This field supports strings and `String` variables only.

#### Misc
* **Private** - If selected, the values of variables and arguments are no longer logged at Verbose level.

#### Output
* **Job Object (Output)** - The job object that is returned from Orchestrator as a `JobData` object after the task is created. This object can be passed to the **Wait for Job and Resume** activity in order to suspend the execution of the workflow until the job is completed.

## Cross-platform configuration

* **ProcessName** (mandatory) - The Display name of the Process you want to use for the job as it appears in Orchestrator (it could be found in **Additional Settings** field of the process settings. For example, if the name of the Package is **InvoiceScan** and you named the process **Invoice Scanner**, the string in this field should be `Invoice Scanner`). This field supports strings and `String` variables only.
* **Job Arguments** - The arguments you want to use when invoking a job in Orchestrator. Modifying `Out` and `In/Out` arguments maps them back to the workflow after task completion. This field supports `Dictionary<String,Argument>` objects only.
* **Job Object (Output)** - The job object that is returned from Orchestrator as a `JobData` object after the task is created. This object can be passed to the **Wait for Job and Resume** activity in order to suspend the execution of the workflow until the job is completed.

### **Advanced options**

#### Common
* **ContinueOnError** - Specifies if the automation should continue even when the activity throws an error. This field only supports Boolean values (True, False). The default value is False. As a result, if the field is blank and an error is thrown, the execution of the project stops. If the value is set to True, the execution of the project continues regardless of any error.

:::note
If this activity is included in **Try Catch** and the value of the **ContinueOnError** property is True, no error is caught when the project is executed.
:::

* **DisplayName** - The display name of the activity.
* **TimeoutMS** - Specifies the amount of time (in milliseconds) to wait for the activity to run before an error is thrown. The default value is 30000 milliseconds (30 seconds).

#### Input
* **Orchestrator Folder Path** - The [path to an Orchestrator Folder](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/managing-folders) different to the one the current process operates in, where you want to start the job. To read more on Orchestrator Folders, visit [Folders](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/folders). For **Classic** folders, this property can only be used with **Floating Robots** and only if the current user has the correct task privileges in the target folder. For **Modern** folders, **folder path overriding is not supported**. This field supports only strings and `String` variables.

:::note
The **Orchestrator Folder Path** property must be used **only** if the job must be started or queried from a folder different than the current one. If the user performing this action does not have the required permissions for the target folder, job start fails and throws a critical error. Visit [Folder Permissions](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/folders#folder-permissions) to read about folder permissions.
:::
