# Transformation steps in Pipeline Designer

Steps extend and expand the functionality of transformations. You can use the following steps in Pipeline Designer.

## Steps: A - F

| Name                                                                                                                                             | Category   | Description                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Abort](/pdia-data-integration/pdi-transformation-steps-reference-overview/abort.md)                                                             | Flow       | Abort a transformation.                                                                                                                                                        |
| [Add a checksum](/pdia-data-integration/pdi-transformation-steps-reference-overview/add-a-checksum.md)                                           | Transform  | Add a checksum column for each input row.                                                                                                                                      |
| [Add constants](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558172/Add+Constants)                                           | Transform  | Add one or more constants to the input rows.                                                                                                                                   |
| [Add sequence](/pdia-data-integration/pdi-transformation-steps-reference-overview/add-sequence-step-article.md)                                  | Transform  | Get the next value from a sequence.                                                                                                                                            |
| [Add value fields changing sequence](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/386799997/Add+value+fields+changing+sequence) | Transform  | Add sequence depending of fields value change. Each time value of at least one field change, PDI will reset sequence.                                                          |
| [Analytic query](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/375133731/Analytic+Query)                                         | Statistics | Execute analytic queries over a sorted dataset (LEAD/LAG/FIRST/LAST).                                                                                                          |
| [Append streams](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/372081851/Append+streams)                                         | Flow       | Append two streams in an ordered way.                                                                                                                                          |
| [Block this step until steps finish](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/386799999/Block+this+step+until+steps+finish) | Flow       | Block this step until selected steps finish.                                                                                                                                   |
| [Blocking step](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558183/Blocking+step)                                           | Flow       | Block flow until all incoming rows have been processed. Subsequent steps only receive the last input row to this step.                                                         |
| [Calculator](/pdia-data-integration/pdi-transformation-steps-reference-overview/calculator.md)                                                   | Transform  | Create new fields by performing simple calculations.                                                                                                                           |
| [Concat fields](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/386803438/Concat+Fields)                                           | Transform  | Concatenate multiple fields into one target field. The fields can be separated by a separator and the enclosure logic is completely compatible with the Text File Output step. |
| [Copy rows to result](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558228/Copy+rows+to+result)                               | Job        | Write rows to the executing job. The information will then be passed to the next entry in this job.                                                                            |
| [CSV file input](/pdia-data-integration/pdi-transformation-steps-reference-overview/csv-file-input.md)                                           | Input      | Read from a simple CSV file input.                                                                                                                                             |
| [Data Grid](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/386800034/Data+Grid)                                                   | Input      | Enter rows of static data in a grid, usually for testing, reference or demo purpose.                                                                                           |
| [Data validator](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/367624189/Data+Validator)                                         | Validation | Validates passing data based on a set of rules.                                                                                                                                |
| [Database lookup](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558138/Database+lookup)                                       | Lookup     | Look up values in a database using field values.                                                                                                                               |
| [Delete](/pdia-data-integration/pdi-transformation-steps-reference-overview/delete-step-pdi.md)                                                  | Output     | Permanently removes a row from a database.                                                                                                                                     |
| [Dummy (do nothing)](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558152/Dummy+do+nothing)                                   | Flow       | Does not do anything. It is useful, however, when testing things or in certain situations where you want to split streams.                                                     |
| [Filter rows](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558145/Filter+Rows)                                               | Flow       | Filter rows using simple equations.                                                                                                                                            |
| [Formula](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/376442115/Formula)                                                       | Scripting  | Calculate a formula using Pentaho's libformula.                                                                                                                                |

## Steps: G - L

| Name                                                                                                                                 | Category   | Description                                                                                                                                                |
| ------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Generate Random Value](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558100/Generate+Random+Value)               | Input      | Generate random value.                                                                                                                                     |
| [Generate rows](/pdia-data-integration/pdi-transformation-steps-reference-overview/generate-rows.md)                                 | Input      | Generate a number of empty or equal rows.                                                                                                                  |
| [Get Repository Names](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/386800043/Get+repository+names)                 | Input      | List detailed information about transformations and/or jobs in a repository.                                                                               |
| [Get Rows From Result](/pdia-data-integration/pdi-transformation-steps-reference-overview/get-rows-from-result.md)                   | Job        | Read rows from a previous entry in a job.                                                                                                                  |
| [Get subfolder names](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/388311493/Get+SubFolder+names)                   | Input      | Read a parent folder and return all subfolders.                                                                                                            |
| [Get System Info](/pdia-data-integration/pdi-transformation-steps-reference-overview/get-system-info.md)                             | Input      | Get information from the system like system date, arguments, etc.                                                                                          |
| [Get Table Names](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/388311496/Get+table+names)                           | Input      | Get table names from database connection and send them to the next step.                                                                                   |
| [Get variables](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558237/Get+Variable)                                | Job        | Determine the values of certain (environment or Kettle) variables and put them in field values.                                                            |
| [Google Analytics v4](/pdia-data-integration/pdi-transformation-steps-reference-overview/google-analytics-v4.md)                     | Input      | Fetch data from Google Analytics account.                                                                                                                  |
| [Group by](/pdia-data-integration/pdi-transformation-steps-reference-overview/group-by-landing-page-article.md)                      | Statistics | Build aggregates in a group by fashion. This works only on a sorted input. If the input is not sorted, only double consecutive rows are handled correctly. |
| [HTTP client](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558141/HTTP+Client)                                   | Lookup     | Call a web service over HTTP by supplying a base URL by allowing parameters to be set dynamically.                                                         |
| [Insert / update](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558126/Insert+-+Update)                           | Output     | Update or insert rows in a database based upon keys.                                                                                                       |
| [Java filter](/pdia-data-integration/pdi-transformation-steps-reference-overview/java-filter-pdi-step.md)                            | Flow       | Filter rows using java code.                                                                                                                               |
| [Job executor](/pdia-data-integration/pdi-transformation-steps-reference-overview/job-executor.md)                                   | Flow       | Run a PDI job, and passes parameters and rows.                                                                                                             |
| [Join rows (cartesian product)](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558187/Join+Rows+Cartesian+product) | Joins      | Output the cartesian product of the input streams. The number of rows is the multiplication of the number of rows in the input streams.                    |
| [Json Input](/pdia-data-integration/pdi-transformation-steps-reference-overview/json-input.md)                                       | Input      | Extract relevant portions out of JSON structures (file or incoming field) and output rows.                                                                 |
| [Json Output](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/388309851/JSON+output)                                   | Output     | Create JSON block and output it in a field to a file.                                                                                                      |

## Steps: M - R

| Name                                                                                                                   | Category  | Description                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Merge join](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558201/Merge+Join)                       | Joins     | Join two streams on a given key and outputs a joined set. The input streams must be sorted on the join key.                                                                                                                       |
| [Merge rows (diff)](/pdia-data-integration/pdi-transformation-steps-reference-overview/merge-rows-diff.md)             | Joins     | Merge two streams of rows, sorted on a certain key. The two streams are compared and the equals, changed, deleted and new rows are flagged.                                                                                       |
| [Microsoft Excel Input](/pdia-data-integration/pdi-transformation-steps-reference-overview/microsoft-excel-input.md)   | Input     | Read data from Excel and OpenOffice Workbooks (XLS, XLSX, ODS).                                                                                                                                                                   |
| [Microsoft Excel writer](/pdia-data-integration/pdi-transformation-steps-reference-overview/microsoft-excel-writer.md) | Output    | Write or appends data to an Excel file.                                                                                                                                                                                           |
| [MongoDB input](/pdia-data-integration/pdi-transformation-steps-reference-overview/mongodb-input.md)                   | Big Data  | Read all entries from a MongoDB collection in the specified database.                                                                                                                                                             |
| [MongoDB output](/pdia-data-integration/pdi-transformation-steps-reference-overview/mongodb-output.md)                 | Big Data  | Write to a MongoDB collection.                                                                                                                                                                                                    |
| [Null if](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558164/Null+If)                             | Utility   | Set a field value to null if it is equal to a constant value.                                                                                                                                                                     |
| [Python Executor](/pdia-data-integration/pdi-transformation-steps-reference-overview/python-executor.md)               | Scripting | Map upstream data from a PDI input step or execute a Python script to generate data. When you send all rows, Python stores the dataset in a variable that kicks off your Python script.                                           |
| [REST client](/pdia-data-integration/pdi-transformation-steps-reference-overview/rest-client-step.md)                  | Lookup    | Consume RESTful services. REpresentational State Transfer (REST) is a key design idiom that embraces a stateless client-server architecture in which the web services are viewed as resources and can be identified by their URLs |
| [Row Denormaliser](/pdia-data-integration/pdi-transformation-steps-reference-overview/row-denormaliser.md)             | Transform | Denormalise rows by looking up key-value pairs and by assigning them to new fields in the output rows. This method aggregates and needs the input rows to be sorted on the grouping fields.                                       |
| [Row Normaliser](/pdia-data-integration/pdi-transformation-steps-reference-overview/row-normaliser.md)                 | Transform | Normalise de-normalised information.                                                                                                                                                                                              |

## Steps: S - Z

| Name                                                                                                                     | Category  | Description                                                                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Salesforce delete](/pdia-data-integration/pdi-transformation-steps-reference-overview/salesforce-delete.md)             | Output    | Delete records in a Salesforce module.                                                                                                                                   |
| [Salesforce input](/pdia-data-integration/pdi-transformation-steps-reference-overview/salesforce-input.md)               | Input     | Read information from Salesforce.                                                                                                                                        |
| [Salesforce insert](/pdia-data-integration/pdi-transformation-steps-reference-overview/salesforce-insert.md)             | Output    | Insert records in a Salesforce module.                                                                                                                                   |
| [Salesforce update](/pdia-data-integration/pdi-transformation-steps-reference-overview/salesforce-update.md)             | Output    | Update records in a Salesforce module.                                                                                                                                   |
| [Salesforce upsert](/pdia-data-integration/pdi-transformation-steps-reference-overview/salesforce-upsert.md)             | Output    | Insert or update records in a Salesforce module.                                                                                                                         |
| [Select values](/pdia-data-integration/pdi-transformation-steps-reference-overview/select-values.md)                     | Transform | Select or remove fields in a row. Optionally, set the field meta-data: type, length and precision.                                                                       |
| [Set variables](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558231/Set+Variables)                   | Job       | Set environment variables based on a single input row.                                                                                                                   |
| [Sort rows](/pdia-data-integration/pdi-transformation-steps-reference-overview/sort-rows-transformation-step.md)         | Transform | Sort rows based upon field values (ascending or descending).                                                                                                             |
| [Sorted Merge](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558198/Sorted+Merge)                     | Joins     | Merge rows coming from multiple input steps providing these rows are sorted themselves on the given key fields.                                                          |
| [Split field to rows](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/372081873/Split+field+to+rows)       | Transform | Split a single string field by delimiter and creates a new row for each split term.                                                                                      |
| [Split fields](broken://spaces/YwnJ6Fexn4LZwKRHghPK/pages/HDeWimXyXNBx4SIrT0WV)                                          | Transform | Split a single field into more then one.                                                                                                                                 |
| [Stream lookup](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558139/Stream+Lookup)                   | Lookup    | Look up values coming from another stream in the transformation.                                                                                                         |
| [String operations](/pdia-data-integration/pdi-transformation-steps-reference-overview/string-operations.md)             | Transform | Apply certain operations like trimming, padding, and others to string value.                                                                                             |
| [Strings cut](/pdia-data-integration/pdi-transformation-steps-reference-overview/strings-cut.md)                         | Transform | Cut out a snippet of a string.                                                                                                                                           |
| [Switch / case](/pdia-data-integration/pdi-transformation-steps-reference-overview/switch-case.md)                       | Flow      | Switch a row to a certain target step based on the case value in a field.                                                                                                |
| [Table Exists](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/372703380/Table+Exists)                     | Lookup    | Check if a table exists on a specified connection.                                                                                                                       |
| [Table input](/pdia-data-integration/pdi-transformation-steps-reference-overview/table-input.md)                         | Input     | Read information from a database table.                                                                                                                                  |
| [Table output](/pdia-data-integration/pdi-transformation-steps-reference-overview/table-output.md)                       | Output    | Write information to a database table.                                                                                                                                   |
| [Text file input](/pdia-data-integration/pdi-transformation-steps-reference-overview/text-file-input-cp.md)              | Input     | Read data from a text file in several formats. This data can then be passed to your next step(s).                                                                        |
| [Text file Output](/pdia-data-integration/pdi-transformation-steps-reference-overview/text-file-output-cp.md)            | Output    | Write rows to a text file.                                                                                                                                               |
| [Transformation executor](/pdia-data-integration/pdi-transformation-steps-reference-overview/transformation-executor.md) | Flow      | Run a PDI transformation, sets parameters, and passes rows.                                                                                                              |
| [Unique Rows](/pdia-data-integration/pdi-transformation-steps-reference-overview/unique-rows.md)                         | Transform | Remove double rows and leave only unique occurrences. This works only on a sorted input. If the input is not sorted, only double consecutive rows are handled correctly. |
| [Update](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/371558127/Update)                                 | Output    | Update data in a database table based upon keys.                                                                                                                         |
| [Write to log](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/386806559/Write+to+log+step)                | Utility   | Write data to log.                                                                                                                                                       |
| [Zip file](https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/388302923)                                      | Utility   | Create a standard ZIP archive from the data stream fields.                                                                                                               |


---

# 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/pba/pipeline-designer/working-with-transformations/transformation-steps-in-pipeline-designer.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.
