Skip to main content

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.

PowerCenterApache HopReportNotes
Source QualifierTable input; Salesforce input for a SOQL query; Text file input for a flat-file sourceAUTOUses 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}.
ExpressionFormula where it computes exactly what PowerCenter does; User Defined Java Class otherwiseAUTOFormula 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.
FilterFilter rows; User Defined Java ClassReviewFilter 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 StrategyAUTOWrites only the connected ports, each to its column.
Target Definition (flat file)Text file outputAUTODelimited, 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 placeholderUNSUPPORTED
RouterDummy, then one Filter rows or Java filter per groupAUTOEach 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, …).
SorterSort rowsAUTO
AggregatorMemory group by; User Defined Java ClassReviewMemory 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 ProcedureDatabase joinReviewOn 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.
JoinerSort rows on each side, then Merge joinReviewThe sorts are left out when the Joiner says its input is sorted. Master and detail outer joins become the matching Merge join type.
Update StrategyDummy (pass-through)ReviewThe 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 sequenceReviewA counter in the transform, not a database sequence.
UnionAppend streams for two inputs; a converging Dummy for moreReview
NormalizerRow normaliserReviewA single occurs group.
MappletIts transformations, copied into the pipeline per instanceAs each transformationNamed <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 transformationThe transformation, copied in under its instance nameAs its type
Normalizer on a COBOL / VSAM sourceText file input (fixed width) and a User Defined Java ClassReviewThe copybook layout in the export gives the columns; the class decodes zoned display numbers (overpunch or separate sign, implied decimals).
Stored ProcedureCall DB procedureReviewConnected procedures. Pre- and post-load procedures become placeholders; run them from a workflow SQL action.
IICS synchronization / replication taskA pipeline from source to targetAUTOConnections created from the task's connection files.
Anything else (Transaction Control, Rank, Java, XML, …)Dummy placeholderUNSUPPORTEDKeeps 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.