You are on page 1of 6

INFA transformations

Table 1-1. Transformation Type Description


DescriptionsTransformation
Aggregator Active/Connected Performs aggregate calculations.
Application Source Qualifier Active/Connected Represents the rows that the Integration
Service reads from an application, such as
an ERP source, when it runs a session.
Complex Data Active or Transforms data in unstructured and semi-
Passive/Connected structured formats.
Custom Active or Calls a procedure in a shared library or DLL.
Passive/Connected
Expression Passive/Connected Calculates a value.
External Procedure Passive/ Calls a procedure in a shared library or in the
Connected or COM layer of Windows.
Unconnected
Filter Active/Connected Filters data.
HTTP Passive/Connected Connects to an HTTP server to read or
update data.
Input Passive/Connected Defines mapplet input rows. Available in the
Mapplet Designer.
Java Active or Passive/ Executes user logic coded in Java. The byte
Connected code for the user logic is stored in the
repository.
Joiner Active/Connected Joins data from different databases or flat file
systems.
Lookup Passive/ Looks up values.
Connected or
Unconnected
Normalizer Active/Connected Source qualifier for COBOL sources. Can also
use in the pipeline to normalize data from
relational or flat file sources.
Output Passive/Connected Defines mapplet output rows. Available in
the Mapplet Designer.
Rank Active/Connected Limits records to a top or bottom range.
Router Active/Connected Routes data into multiple transformations
based on group conditions.
Sequence Generator Passive/Connected Generates primary keys.
Sorter Active/Connected Sorts data based on a sort key.
Source Qualifier Active/Connected Represents the rows that the Integration
Service reads from a relational or flat file
source when it runs a session.
SQL Active or Executes SQL queries against a database.
Passive/Connected
Stored Procedure Passive/ Calls a stored procedure.
Connected or
Unconnected
Transaction Control Active/Connected Defines commit and rollback transactions.
Union Active/Connected Merges data from different databases or flat
file systems.
Update Strategy Active/Connected Determines whether to insert, delete,
update, or reject rows.
XML Generator Active/Connected Reads data from one or more input ports and
outputs XML through a single output port.
XML Parser Active/Connected Reads XML from one input port and outputs
data to one or more output ports.
XML Source Qualifier Active/Connected Represents the rows that the Integration
Service reads from an XML source when it
runs a session.

Configuring Ports
On the Ports tab, you can configure the following properties:
♦ Port name: The name of the port. Use the following conventions while
naming ports:
−Begin with a single- or double-byte letter or single- or double-byte
underscore (_).
−Port names can contain any of the following single- or double-byte
characters: a letter, number, underscore (_), $, #, or @.
♦Datatype, precision, and scale. If you plan to enter an expression or
condition, make sure the datatype matches the return value of the
expression.
♦Port type. Transformations may contain a combination of input, output,
input/output, and variable port types.
A group is the representation of a row of data entering or leaving a
transformation.
Multi group transformations:
Transformatio Description
ns
Custom Contains any number of input and output groups.
HTTP Contains an input, output, and a header group.
Joiner Contains two input groups, the master source and detail
source, and one output group.
Router Contains one input group and multiple output groups.
Union Contains multiple input groups and one output group.
XML Source Contains multiple input and output groups.
Qualifier
XML Target Contains multiple input groups.
Definition
XML Parser Contains one input group and multiple output groups.
XML Generator Contains multiple input groups and one output group.

1. Stored procedure transformation

Stored procedures are stored and run within the database. Unlike
standard SQL, however, stored procedures allow user-defined variables,
conditional statements, and other powerful programming features.
The stored procedure must exist in the database before creating a
Stored Procedure transformation, and the stored procedure can exist in a
source, target, or any database with a valid connection to the Integration
Service.

There are three types of data that pass between the Integration Service
and the stored procedure:

 Input/output parameters

 Return values

 Status codes
If a stored procedure returns a result set rather than a single
return value, the Stored Procedure transformation takes only the first
value returned from the procedure.

Status Codes
Status codes provide error handling for the Integration Service during a
workflow. The stored procedure issues a status code that notifies
whether or not the stored procedure completed successfully.
You configure options in the Workflow Manager to continue or stop the
session in the event of a stored procedure error.
Stored procedures run in either connected or unconnected mode.
Unconnected – runs before or after the session or called by an expression
trans in a mapping.

Comparison of Connected and Unconnected Stored Use this mode


Procedure Transformation
Run a stored procedure before or after a session. Unconnected
Run a stored procedure once during a mapping, such as pre- Unconnected
or post-session.
Run a stored procedure every time a row passes through the Connected or
Stored Procedure transformation. Unconnected
Run a stored procedure based on data that passes through the Unconnected
mapping, such as when a specific port does not contain a null
value.
Pass parameters to the stored procedure and receive a single Connected or
output parameter. Unconnected
Pass parameters to the stored procedure and receive multiple Connected or
output parameters. Unconnected
Note: To get multiple output parameters from an unconnected
Stored Procedure transformation, you must create variables
for each output parameter. For more information, see “Calling
a Stored Procedure From an Expression” on page 557.
Run nested stored procedures. Unconnected
Call multiple times within a mapping. Unconnected
Mode of running SP transformation

Normal – Connected lookup runs only in normal mode


Preload of the source – verify the presence of tables/joins
Post load of the source – to remove temp tables
Preload of the target – verify the presence of tables / table size
Post load of the target – re create indexes

You can run more than one Stored Procedure transformation in different
modes in the same mapping.

However, you cannot run the same instance of a Stored Procedure


transformation in both connected and unconnected mode in a
mapping. You must create different instances of the transformation.

Note: The Integration Service fails sessions that contain stored procedure
arguments with large objects.

Note: Configure the properties of reusable transformations in the


Transformation Developer, not the Mapping Designer, to make changes
globally for the transformation.

Note: If you change the transformation name, you need to configure the
name of the stored procedure in the transformation properties. If you have
multiple instances of the same stored procedure in a mapping, you must also
configure the name of the stored procedure.

When using an unconnected Stored Procedure transformation in an


expression, you need a method of returning the value of output parameters
to a port. Use one of the following methods to capture the output values:
♦Assign the output value to a local variable.
♦Assign the output value to the system variable PROC_RESULT

By using PROC_RESULT, you assign the value of the return parameter


directly to an output port, which can apply directly to a target. You can also
combine the two options by assigning one output parameter as
PROC_RESULT, and the other parameter as a variable.
Use PROC_RESULT only within an expression. If you do not use PROC_RESULT
or a variable, the port containing the expression captures a NULL. You
cannot use PROC_RESULT in a connected Lookup transformation or
within the Call Text for a Stored Procedure transformation.
If you require nested stored procedures, where the output
parameter of one stored procedure passes to another stored
procedure, use PROC_RESULT to pass the value.

You can use a parameter or variable as the call text. For example, you can
use a session parameter, $ParamMyCallText, as the call text, and set
$ParamMyCallText to the call text in a parameter file.

When testing a mapping using a stored procedure set the Override Tracing
session option to a verbose mode and configure the On Stored Procedure
session option to stop running if the stored procedure fails. Configure these
session options on the Error Handling settings of the Config Object tab in the
session properties.

2. Aggregator Transformation

The Aggregator transformation lets you perform aggregate calculations,


such as averages and sums. The Integration Service performs aggregate
calculations as it reads and stores necessary data group and row data in
an aggregate cache. The Aggregator transformation is unlike the
Expression transformation, in that you use the Aggregator transformation
to perform calculations on groups. The Expression transformation permits
you to perform calculations on a row-by-row basis only.

After you create a session that includes an Aggregator transformation,


you can enable the session option, Incremental Aggregation. When the
Integration Service performs incremental aggregation, it passes new
source data through the mapping and uses historical cache data to
perform new aggregation calculations incrementally
Aggregate cache: The Integration Service stores data in the aggregate
cache until it completes aggregate calculations. It stores group values in
an index cache and row data in the data cache.
Aggregate expression: Enter an expression in an output port. The
expression can include non-aggregate expressions and conditional
clauses

Note: The Integration Service uses memory to process an Aggregator


transformation with sorted ports. It does not use cache memory. You do
not need to configure cache memory for Aggregator transformations that
use sorted ports.
Sorted Input Conditions
Do not use sorted input if either of the following conditions are true:
♦The aggregate expression uses nested aggregate functions.
♦The session uses incremental aggregation.
If you use sorted input and do not sort data correctly, the session fails.

Tips
Use sorted input to decrease the use of aggregate caches.
Sorted input reduces the amount of data cached during the session and
improves session performance. Use this option with the Sorter
transformation to pass sorted data to the Aggregator transformation.

Limit connected input/output or output ports.


Limit the number of connected input/output or output ports to reduce the
amount of data the Aggregator transformation stores in the data cache.
Filter before aggregating.
If you use a Filter transformation in the mapping, place the transformation
before the Aggregator transformation to reduce unnecessary aggregation.