# Internal variables

The following variables are always defined:

| Variable Name                     | Sample Value          |
| --------------------------------- | --------------------- |
| **Internal.Kettle.Build.Date**    | `2010/05/22 18:01:39` |
| **Internal.Kettle.Build.Version** | `2045`                |
| **Internal.Kettle.Version**       | `4.3`                 |

These variables are defined in a transformation:

| Variable Name                                    | Sample Value                                        |
| ------------------------------------------------ | --------------------------------------------------- |
| **Internal.Transformation.Filename.Directory**   | `D:\Kettle\samples`                                 |
| **Internal.Transformation.Filename.Name**        | `Denormaliser - 2 series of key-value pairs.ktr`    |
| **Internal.Transformation.Name**                 | `Denormaliser - 2 series of key-value pairs sample` |
| **Internal.Transformation.Repository.Directory** | `/`                                                 |

These are the internal variables that are defined in a job:

| Variable Name                         | Sample Value             |
| ------------------------------------- | ------------------------ |
| **Internal.Job.Filename.Directory**   | `file:///home/matt/jobs` |
| **Internal.Job.Filename.Name**        | `Nested jobs.kjb`        |
| **Internal.Job.Name**                 | `Nested job test case`   |
| **Internal.Job.Repository.Directory** | `/`                      |

These are the internal variables that are defined in a transformation or job within a project:

| Variable Name                            | Sample Value                                       |
| ---------------------------------------- | -------------------------------------------------- |
| **Internal.Project.Data.Directory**      | `pvfs://Repository/home/admin/projects/myproject/` |
| **Internal.Project.Execution.Directory** | `/home/admin/projects/myproject`                   |
| **Internal.Project.Name**                | `My project`                                       |
| **Internal.Project.Description**         | `Description of my project`                        |

{% hint style="info" %}
**Note:** Although both of the project directory variables specify the path to a project, they are used in different situations.

* **Internal.Project.Data.Directory:** Used by steps that are not aware of the repository, such as steps that access files as data, like [Text File Input](/pdia-data-integration/pdi-transformation-steps-reference-overview/text-file-input-cp.md) and [Create File](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558469/Create+a+file). You can use this variable in fields that allow you to select VFS connections while connected to the repository.
* **Internal.Project.Execution.Directory:** Used by steps that are aware of the repository, such as steps that execute other transformations and jobs, like [Transformation Executor](/pdia-data-integration/pdi-transformation-steps-reference-overview/transformation-executor.md), [Transformation (job entry)](/pdia-data-integration/pdi-job-entries-reference-overview/transformation-job-entry-cp.md) and [Job (job entry)](/pdia-data-integration/pdi-job-entries-reference-overview/job-job-entry.md). You can use this variable in fields that allow you to select a Pentaho repository, but not VFS connections.
  {% endhint %}

These variables are defined in a transformation running on a slave server, executed in clustered mode:

| Variable Name                            | Sample Value                         |
| ---------------------------------------- | ------------------------------------ |
| **Internal.Slave.Transformation.Number** | `0..<cluster size-1> (0,1,2,3 or 4)` |
| **Internal.Cluster.Size**                | `<cluster size> (5)`                 |

{% hint style="info" %}
**Notes:**&#x20;

* In addition to the above, there are also System parameters, including command line arguments. These can be accessed using the [Get System Info](/pdia-data-integration/pdi-transformation-steps-reference-overview/get-system-info.md) step in a transformation.
* Additionally, you can specify values for variables in the Execute a transformation dialog box. If you include the variable names in your transformation they will appear in this dialog box.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pentaho.com/pdia-data-integration/archived-merged-pages/transforming-data-with-pdi-archive/pdi-run-modifiers/variables/internal-variables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
