Transformation mapping
What each PowerCenter transformation type becomes in Hop, and how the report classifies it: AUTO types are converted with their settings; review types are converted with documented caveats and always flagged; anything else becomes a placeholder and is UNSUPPORTED.
| PowerCenter | Apache Hop | Report | Notes |
|---|---|---|---|
| Source Qualifier | Table input; Salesforce input for a SOQL query; Text file input for a flat-file source | AUTO | Uses the SQL override. Without one, the query PowerCenter builds: the connected ports, the source tables, the User Defined Join, the Source Filter, Select Distinct and Number Of Sorted Ports. $$NAME parameters become ${NAME}. |
| Expression | Formula where it computes exactly what PowerCenter does; User Defined Java Class otherwise | AUTO | Formula for string ports, literals, ||, UPPER, LOWER, CONCAT, IIF, DECODE, ISNULL. Java for the rest, one statement per port with the expression above it, variable ports kept from row to row, and strings cut to their port's precision. :LKP. calls run the Lookup's query. |
| Filter | Filter rows; User Defined Java Class | Review | Filter rows when the condition maps onto Hop's condition exactly; Java otherwise. A condition the importer cannot parse stays a placeholder holding it. |
| Target Definition (relational) | Table output; Update or Delete after a constant Update Strategy | AUTO | Writes only the connected ports, each to its column. |
| Target Definition (flat file) | Text file output | AUTO | Delimited, or fixed width with each column padded to its precision (through a Select values that makes every field text). The file name comes from the session. |
| Target Definition (PowerExchange, VSAM) | Dummy placeholder | UNSUPPORTED | |
| Router | Dummy, then one Filter rows or Java filter per group | AUTO | Each group's condition on its own branch; the default group takes the rows no other group does. Ports are renamed to the group's names (PORT1, …). |
| Sorter | Sort rows | AUTO | |
| Aggregator | Memory group by; User Defined Java Class | Review | Memory group by when every output is one aggregate of a port. Java with one accumulator per group otherwise: nested aggregates, COUNT(*), aggregates with a filter condition, variable ports. |
| Lookup Procedure | Database join | Review | On the lookup table or the SQL override, one ? per lookup condition, bound to the fields that feed the input ports; outer join, one row per match. See Lookup transformations. |
| Joiner | Sort rows on each side, then Merge join | Review | The sorts are left out when the Joiner says its input is sorted. Master and detail outer joins become the matching Merge join type. |
| Update Strategy | Dummy (pass-through) | Review | The target transform does the insert, update or delete. A per-row strategy expression (DD_INSERT / DD_UPDATE / DD_DELETE chosen by condition) is flagged: split the stream per operation. |
Sequence Generator (Sequence in an export) | Add sequence | Review | A counter in the transform, not a database sequence. |
| Union | Append streams for two inputs; a converging Dummy for more | Review | |
| Normalizer | Row normaliser | Review | A single occurs group. |
| Mapplet | Its transformations, copied into the pipeline per instance | As each transformation | Named <instance>_<transformation>. The mapping's connectors go straight to the transformations behind the Input and Output ports. Computed ports that another transformation also computes get names of their own. |
| Reusable transformation | The transformation, copied in under its instance name | As its type | |
| Normalizer on a COBOL / VSAM source | Text file input (fixed width) and a User Defined Java Class | Review | The copybook layout in the export gives the columns; the class decodes zoned display numbers (overpunch or separate sign, implied decimals). |
| Stored Procedure | Call DB procedure | Review | Connected procedures. Pre- and post-load procedures become placeholders; run them from a workflow SQL action. |
| IICS synchronization / replication task | A pipeline from source to target | AUTO | Connections created from the task's connection files. |
| Anything else (Transaction Control, Rank, Java, XML, …) | Dummy placeholder | UNSUPPORTED | Keeps the name and the hops; the description says what it replaces. |
A transform whose output goes to several others copies every row to each, as a PowerCenter port connected to several transformations does. Where a transformation takes ports both from an Expression or Lookup and from the transformation before it, the Hop transform reads only from the later one, which passes every field along.
When a converter falls back to a placeholder
The Report column is what the type converts to when everything it needs is in the export. When it is not, for example a Source Qualifier with neither an override nor a source definition, or a Filter whose condition does not translate, the transformation becomes a placeholder and the report says UNSUPPORTED, with the placeholder's reason. The Hop transform in the report is always the one in the generated pipeline.