> For the complete documentation index, see [llms.txt](https://dbi-services.gitbook.io/omrun-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dbi-services.gitbook.io/omrun-help/element-details/test-data-object/body.md).

# Body

### ![](https://1143774439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1ooXfQ2qWGFRh6lihybt%2Fuploads%2Fgit-blob-82a409549d31b8d9fc2afc92887e9262c1cd3f24%2FIcon_TOB_data.png?alt=media)

### Abstract

At the the end of any query in source A or B it is possible to add a body part.\
The body part is meant to be an execution module to run any type of data transformation or data export / import functionality where the query part is a read only function.

To distinguish the body part from the query, the key word **/\*BODY\*/** is needed to separate the content.

<figure><img src="https://1143774439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1ooXfQ2qWGFRh6lihybt%2Fuploads%2Fgit-blob-03a036aa2d99b98ca63a45e79ed872defc738c07%2FOMrunHelp_TestObjectData_Body1.png?alt=media" alt="OMrun test data object - query view" width="80%"><figcaption><p>OMrun test data object - query view</p></figcaption></figure>

***

### Body Conventions

The query can consist of two parts and is separated by the tag /\*BODY\*/

* SQL query part (before tag 'BODY')
* PL/SQL or stored procedure part (after tag 'BODY')

For the body content any sql script (PL/SQL, stored procedures etc.) is allowed. If a script expects return values, they need to be redirected into data base variables or output files.

<figure><img src="https://1143774439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1ooXfQ2qWGFRh6lihybt%2Fuploads%2Fgit-blob-3ba9a2f5c4bbef876cc469d93b522376fa2bb3c2%2FOMrunHelp_TestObjectData_Body2.gif?alt=media" alt="OMrun test data object - body query"><figcaption><p>OMrun test data object - body query</p></figcaption></figure>

***

### Execution Order

The order how the different sql parts are executed is fix. A body part is always optional.

Test Object Data execution order:

1. Query `Source A`
2. Body `Source A`
3. Commit `Source A`
4. Query `Source B`
5. Body `Source B`
6. Commit `Source B`

***

### Parameter

Parameters in a /\*BODY\*/ part are used the same way as in a query.

The use of the following parameters / variables is allowed:

* [Parameters](/omrun-help/configuration/using-variables/parameter.md) (@param1 - @param4) from the parameter list
* Environment [variables](/omrun-help/configuration/using-variables/omrun-variables.md) like @VAR\_Environment
* System environment variables like %SystemEnvVar%

<figure><img src="https://1143774439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1ooXfQ2qWGFRh6lihybt%2Fuploads%2Fgit-blob-fb7ac0dc6dde67c16671e234d40a46941c8750a9%2FOMrunHelp_TestObjectData_Body3.gif?alt=media" alt="OMrun test data object - body part"><figcaption><p>OMrun test data object - body part</p></figcaption></figure>

***

### Attention! :warning:

Ensure you do have elevated access rights for the db user defined within the OMrun environment to execute body parts in your test object.

* **Be especially careful with the body scripts.**
* **Body scripts are very powerful and in case of using them the wrong way, they have the potential to destroy the data source you are addressing!**
