# Job (job entry)

The **Job** job entry executes another job. This supports functional decomposition, so you can split a large job into smaller, more manageable jobs.

{% hint style="warning" %}
Avoid creating recursive jobs (a job that points to itself). A recursive job can eventually fail with an out-of-memory or stack error.
{% endhint %}

### General

| Field          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Entry name** | The unique name of the job entry on the canvas. You can place the same job entry on the canvas multiple times.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Job**        | <p>Specify the job to execute by entering its path or clicking <strong>Browse</strong>.</p><p>If you select a job that shares the same root path as the current job, PDI inserts <code>${Internal.Entry.Current.Directory}</code> in place of the common root path. For example, if the current job path is <code>/home/admin/transformation.kjb</code> and you select a job in <code>/home/admin/path/sub.kjb</code>, then the path is converted to <code>${Internal.Entry.Current.Directory}/path/sub.kjb</code>.</p><p>If you are working with a repository, specify the job name. If you are not working with a repository, specify the job XML file name.</p><p><strong>Note:</strong> Jobs previously specified by reference are automatically converted to use the job name within the Pentaho Repository.</p> |

### Options

The **Job** job entry includes several tabs: **Options**, **Logging**, **Arguments**, and **Parameters**.

#### Options tab

![Options tab, Job (job entry)](https://773338310-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYwnJ6Fexn4LZwKRHghPK%2Fuploads%2Fgit-blob-8527aab62751b9c67d0db1770f6a6ee910b92404%2FPDI_Job_JobEntry_Options_Tab_Dialog.png?alt=media)

| Option                                                  | Description                                                                                                                                                                                                                                                 |
| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Run Configuration**                                   | Select the run configuration to use. For more information, see [Run configurations](https://docs.pentaho.com/pdia-data-integration/archived-merged-pages/transforming-data-with-pdi-archive/work-with-jobs/run-your-job/run-configurations-work-with-jobs). |
| **Execute every input row**                             | Run the job once for each input row (loop).                                                                                                                                                                                                                 |
| **Pass the sub jobs and transformations to the server** | If you select a server-based **Run Configuration**, pass the complete job (including referenced sub-jobs and sub-transformations) to the remote server.                                                                                                     |
| **Enable monitoring for sub jobs and transformations**  | If you select a server-based **Run Configuration**, monitor child jobs and transformations while the job runs.                                                                                                                                              |
| **Wait for remote job to finish**                       | If you select a server-based **Run Configuration**, wait until the job finishes running on the server before continuing.                                                                                                                                    |
| **Follow local abort to remote job**                    | If you select a server-based **Run Configuration**, send the abort signal to the remote job.                                                                                                                                                                |

#### Logging tab

By default, if you do not configure logging, PDI writes logs to the parent (calling) job log.

![Logging tab, Job (job entry)](https://773338310-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYwnJ6Fexn4LZwKRHghPK%2Fuploads%2Fgit-blob-6c9e4d433ddac4aec61c64ae88a5c3d46d1ad8f9%2FPDI_JobJE_LoggingTab.png?alt=media)

| Option                      | Description                                                                                                                                                                                                                                            |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Specify logfile**         | Write logs for this job to a separate log file.                                                                                                                                                                                                        |
| **Name**                    | The directory and base name of the log file, for example, `C:\logs`.                                                                                                                                                                                   |
| **Extension**               | The file name extension, for example, `.log` or `.txt`.                                                                                                                                                                                                |
| **Log level**               | The logging level to use while running the job. For more information, see [Logging levels](https://docs.pentaho.com/pdia-data-integration/archived-merged-pages/transforming-data-with-pdi-archive/logging-and-performance-monitoring/logging-levels). |
| **Append logfile?**         | Append to the log file instead of creating a new one.                                                                                                                                                                                                  |
| **Create parent folder**    | Create the parent folder for the log file if it does not already exist.                                                                                                                                                                                |
| **Include date in logfile** | Add the system date to the file name in `YYYYMMDD` format, for example `_20051231`.                                                                                                                                                                    |
| **Include time in logfile** | Add the system time to the file name in `HHMMSS` format, for example `_235959`.                                                                                                                                                                        |

#### Arguments tab

![Argument tab, Job (job entry)](https://773338310-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYwnJ6Fexn4LZwKRHghPK%2Fuploads%2Fgit-blob-8bc0e6a8ca7734066cd02ad395f18e599d3a1745%2FPDI_JobJE_ArgumentsTab.png?alt=media)

Use these options to pass arguments to the job:

| Option                        | Description                                                                                                                                                                                                                                                                                         |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Copy results to arguments** | Copy results from a previous transformation as job arguments by using the [Copy rows to result](http://wiki.pentaho.com/display/EAI/Copy+rows+to+result) step. If **Execute every input row** is selected, each row becomes a set of command-line arguments. Otherwise, only the first row is used. |
| **Argument**                  | The command-line arguments to pass to the job.                                                                                                                                                                                                                                                      |

#### Parameters tab

![Job entry parameters tab](https://773338310-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYwnJ6Fexn4LZwKRHghPK%2Fuploads%2Fgit-blob-f14eb1e19ef7f8d81ff644ee6f45106bca42d639%2Fpdi_Job_Job_%20parameters_tab_w523_no_border.png?alt=media)

Use these options to pass parameters to the job:

| Option                               | Description                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Copy results to parameters**       | Copy results from a previous job as job parameters by using the [Copy rows to result](http://wiki.pentaho.com/display/EAI/Copy+rows+to+result) step.                                                                                                                                                                                                                                                         |
| **Pass parameter values to sub-job** | Pass all parameters of the calling job down to the sub-job.                                                                                                                                                                                                                                                                                                                                                  |
| **Parameter**                        | The parameter name to pass to the job.                                                                                                                                                                                                                                                                                                                                                                       |
| **Parameter to use**                 | The field of an incoming record to use as the parameter value. If you enter a field here, **Static input value / variable** is disabled.                                                                                                                                                                                                                                                                     |
| **Static input value / variable**    | <p>Specify values for job parameters by using one of these methods:</p><ul><li>Enter a value directly, for example <code>ETL Job</code>.</li><li>Use a variable, for example <code>${Internal.Job.Name}</code>.</li><li>Combine values and variables, for example <code>${FILE\_PREFIX}\_${FILE\_DATE}.txt</code>.</li></ul><p>If you enter a value here, <strong>Parameter to use</strong> is disabled.</p> |
| **Get Parameters**                   | Get the existing parameters defined for the selected job.                                                                                                                                                                                                                                                                                                                                                    |
