- Getting started
- Best practices
- Tenant
- About the Tenant Context
- Searching for Resources in a Tenant
- Managing Robots
- Connecting Robots to Orchestrator
- Storing Robot Credentials in CyberArk
- Storing Unattended Robot Passwords in Azure Key Vault (read only)
- Storing Unattended Robot Credentials in HashiCorp Vault (read only)
- Storing Unattended Robot Credentials in AWS Secrets Manager (read only)
- Deleting Disconnected and Unresponsive Unattended Sessions
- Robot Authentication
- Robot Authentication With Client Credentials
- Configuring automation capabilities
- Audit
- Resource Catalog Service
- Automation Suite robots
- Folders Context
- Automations
- Processes
- Jobs
- Apps
- Triggers
- Logs
- Monitoring
- Queues
- Assets
- Storage Buckets
- Test Suite - Orchestrator
- Integrations
- Troubleshooting
About Jobs
A job represents the execution of a process on a UiPath Robot. You can launch the execution of a job in either attended or unattended mode. You cannot launch a job from Orchestrator on attended robots, unless for debugging or development purposes.
Attended jobs can be triggered from the UiPath Assistant or the Robot Command Line Interface. Unattended jobs are launched from Orchestrator, either directly on the spot from the Jobs or Processes page, or in a preplanned manner through triggers, on the Triggers page.
The Jobs page represents the jobs control center, where you can monitor launched jobs, view their details and logs, and stop/kill/resume/restart a job.
The table below contains field descriptions for the Jobs page.
Field |
Description |
---|---|
Process |
The name of the process. [Remote debugging job] is displayed for jobs started from Studio through remote debugging sessions.
|
Machine (*) |
The machine object used for connecting the executing infrastructure to Orchestrator. |
Hostname |
The name of the workstation used for execution. |
Host identity |
The identity under which the execution takes place. The following values are possible:
domain\username for the account used to execute a job changes the host identity as well.
|
Job type |
The type of job according to where the execution takes place and depending on whether the robot impersonates a user or not:
|
Runtime type |
The runtime type used for execution. |
State |
The state of the job. See details about job states. |
Priority |
The priority of the job. See details about job priorities. |
Started |
The relative amount of time since the job has started executing. Hovering over this field displays the exact start time and date. |
Ended |
The relative amount of time since the job has finished executing. Hovering over this displays the exact end time and date. |
Started (absolute) (*) |
The absolute amount of time since the job has started executing. Absolute timestamps are rendered in the tenant time zone. For triggers, the next run time is rendered in the trigger time zone which may differ from the tenant time zone. |
Ended (absolute) (*) |
The absolute amount of time since the job has finished executing. Absolute timestamps are rendered in the tenant time zone. For triggers, the next run time is rendered in the trigger time zone which may differ from the tenant time zone. |
Source |
The agent of the execution.
|
Creation Time (*) |
The relative time of the job creation. |
Creation Time (absolute) (*) |
The absolute time of the job creation. |
(*) Columns that are not visible in the jobs grid by default. Select them from the Columns dropdown.
When starting a job or defining a trigger, you can define specific account-machine pairs on which execution takes place. Account-machine mappings enable you to tie unattended usage under particular accounts to specific machine templates. This gives granular control over the execution targets of your automation. Account-machine mappings can be tenant-based (not tied to a specific folder), or folder-based (tied to a specific folder).
Learn how to configure account-machine mappings.
According to the mechanism used for launching jobs in Orchestrator, you can choose and configure a job allocation strategy and an execution target, implicitly. This article describes the allocation strategies and execution targets available when launching jobs from the Jobs page.
If your job execution depends on a specific resource that is not yet available, the job remains in the pending state until the conditions for the jobs execution are met.
For example, user U1 connects to the hostname H1 using credentials C1. However, the wrong credentials C2 are inputted to connect to the hostname. Therefore, the job enters the pending state. If you later update the credentials to the correct ones (that is, C1), the job resumes its execution.
Dynamic allocation with no explicit account and machine selection allows you to execute a foreground process multiple times under the account and machine that become available first. Background processes get executed on any account, regardless if it's busy or not, as long as you have sufficient runtimes.
Using the Allocate Dynamically option you can execute a process up to 10000 times in one job.
Once done, a Pending job is created for each account-machine pair.
This only works if the Enable user-machine mapping option on the General tab of your tenant settings is selected.
The process is executed under a specific user or robot account. Specifying only the account results in Orchestrator allocating the machine dynamically. Specifying both the account and the machine means the job launches on that very account-machine pair.
The process is executed on one of the host machines attached to the selected machine template. Specifying the template displays an additional Hostname option, allowing you to select a specific host machine from the pool of connected host machines. Specifying only the machine results in Orchestrator allocating the account dynamically. Specifying both the account and the machine means the job launches on that very account-machine pair.
Make sure that runtimes matching the job type are allocated to the associated machine template. Only connected host machines associated with the active folder are displayed.
The process execution may sometimes be faulty, causing the job to remain in the pending state. The toggle allows you to automate a strategy for stopping the job, by specifying the amount of time that can pass until the job is stopped or killed. To cover the case of a job that cannot be stopped, you have the option to kill the job.
The process resumes itsexecution on any available robot on any available machine by default. To keep the same account-machine configuration ensures an optimized use of resources and license requirements.
You need to provision a Windows user for each account on a host machine that belongs to the folders to which the corresponding machine template is assigned.
Say you connected a server to Orchestrator using the key generated by the machine template, FinanceT. That machine template is assigned to folders FinanceExecution and FinanceHR, where 6 accounts are assigned as well. Those 6 accounts need to be provisioned as Windows users on the server.
If you configure a job to execute the same process multiple times, a job entry is created for each execution. The jobs are ordered based on their priority and creation time, with higher priority, older jobs being placed first in line. As soon as a robot becomes available, it executes the next job in line. Until then, the jobs remain in a pending state.
Example
Setup
- 1 folder
- 1 machine template with two runtimes
- 2 accounts: john.smith and petri.ota
-
2 processes which require user interaction: P1 - which adds queue items to a queue, P2 - which processes the items in the queue
The machine template and the accounts must be associated to the folder containing the processes.
Desired Outcome
- P1 is executed with a high priority by anyone.
- P2 is executed with a low priority by petri.ota.
Required Job Configuration
- Start a job using P1, don't assign it to any particular account, set the priority to High.
- Start a job for P2, assign it to petri.ota, set the priority to Low.
You can control which job has precedence over other competing jobs through the Job Priority field either when deploying the process or when configuring a job/trigger for that process. A job can have one of the following ten priorities:
The default value for the Job priority field is Inherited, which means that the priority is inherited from where it was initially configured. You can either leave it as it is or change it.
-
Where from: Automations Page > Jobs
The job inherits the priority set at the process level.
-
Where from: Automations Page > Triggers
If the trigger has the Inherited priority, the job inherits the priority set at the process level.
If the trigger has a priority different to Inherited, the job inherits the priority set at the trigger level. If it is changed to Inherited, the priority set at the process level is used.
-
Where from: Automations Page > Processes
The job inherits the priority set for that process.
If you configure a job to execute the same process multiple times, a job entry is created for each execution. The jobs are ordered based on their priority and creation time, with higher priority, older jobs being placed first in line. As soon as a robot becomes available, it executes the next job in line. Until then, the jobs remain in a pending state.
The priority is set by default to Inherited, meaning it inherits the value at the process level. Choosing a process automatically updates the arrow icon to illustrate what value has been set at the process level. Any jobs launched by the trigger have the priority set at the trigger level. If the default Inherited is kept, the jobs are launched with the priority at the process level.
Any subsequent changes made at the process level are propagated to the trigger, and the jobs created through it implicitly.
The ten priority levels available in the interface correspond to 100 levels in the API, which means that the API allows you to set an even more granular priority. These levels are mapped as follows:
Minimum |
Maximum |
Default | |
---|---|---|---|
Lowest |
1 |
10 |
5 |
Very low |
11 |
20 |
15 |
Low |
21 |
30 |
25 |
Medium-low |
31 |
40 |
35 |
Medium |
41 |
50 |
45 |
Medium-high |
51 |
60 |
55 |
High |
61 |
70 |
65 |
Very high |
71 |
80 |
75 |
Highest |
81 |
90 |
85 |
Critical |
91 |
100 |
95 |
SpecificPriorityValue
parameter, which is available in the following endpoints:
POST/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs
POST/odata/ProcessSchedules
PUT/odata/ProcessSchedules({key})
Say you have two jobs for which you set a priority of 92 and, respectively, of 94. They both fall within the Critical range, but the job that has a priority of 94 will be executed before the one with a priority of 92.
If you start a job on multiple High-Density Robots from the same Windows Server machine, it means that the selected process is executed by each specified Robot, at the same time. An instance for each of these executions is created and displayed on the Jobs page.
If you are using High-Density Robots and did not enable RDP on that machine, each time you start a job, the following error is displayed: “A specified logon session does not exist. It may already have been terminated.” To see how to set up your machine for High-Density Robots, please see the About Setting Up Windows Server for High-Density Robots page.
For unattended faulted jobs, if your process had the Enable Recording option switched on, you can download the corresponding execution media to check the last moments of the execution before failure.
The Download Recording option is only displayed on the Jobs window if you have View permissions on Execution Media.
- Account-Machine Mappings
- Execution Target
- 1. Allocate Dynamically
- 2. Select valid account - machine mappings
- 3. Account
- 4. Machine
- 5. Schedule ending of job execution
- 6. Keep account-machine allocation on job resumption
- Execution Priority
- Starting a Job Manually
- Starting a Job Through a Trigger
- Setting the Job Priority using the API
- Jobs on High-Density Robots
- Recording