You are on page 1of 136

Transformation Types in

I nformatica




With Quontra support, growth is assured. We
are providing the best custom fit training for
each and every individual client since identifying
the right domain and incubate the knowledge
with rigor to deliver the most reliable output.
Transformation Types
Informatica PowerCenter 7 provides 23 objects
for data transformation

Aggregator: performs aggregate calculations
Application Source Qualifier: reads Application object sources as ERP
Custom: Calls a procedure in shared library or DLL
Expression: performs row-level calculations
External Procedure (TX): calls compiled code for each row
Filter: drops rows conditionally
Joiner: joins heterogeneous sources
Lookup: looks up values and passes them to other objects
Normalizer: reorganizes records from VSAM, Relational and Flat File
Rank: limits records to the top or bottom of a range
Input: Defines mapplet input rows. Available in Mapplet designer
Output: Defines mapplet output rows. Available in Mapplet designer



Transformation Types
Router: splits rows conditionally
Sequence Generator: generates unique ID values
Sorter: sorts data
Source Qualifier: reads data from Flat File and Relational Sources
Stored Procedure: calls a database stored procedure
Transaction Control: Defines Commit and Rollback transactions
Union: Merges data from different databases
Update Strategy: tags rows for insert, update, delete, reject
XML Generator: Reads data from one or more Input ports and outputs
XML through single output port
XML Parser: Reads XML from one or more Input ports and outputs data
through single output port
XML Source Qualifier: reads XML data









Transformation Views
A transformation has
three views:

Iconized - shows the
transformation in
relation to the rest of
the mapping
Normal - shows the
flow of data through
the transformation
Edit - shows
transformation ports
and properties; allows
editing
Edit Mode
Allows users with folder write permissions to change
or create transformation ports and properties
Switch
between
transformations
Define transformation
level properties
Define port level handling
Enter comments
Make reusable
Expression Transformation
Passive Transformation
Connected

Ports
Mixed
Variables allowed

Create expression in an
output or variable port

Usage
Perform majority of
data manipulation
Perform calculations using non-aggregate functions
(row level)
Click here to invoke the
Expression Editor
Expression Editor
An expression formula is a calculation or conditional statement
Used in Expression, Aggregator, Rank, Filter, Router, Update Strategy
Performs calculation based on ports, functions, operators, variables,
literals, constants and return values from other transformations
Informatica Functions - Samples
Character Functions
Used to manipulate character data
CHRCODE returns the numeric
value (ASCII or Unicode) of the first
character of the string passed to
this function
ASCII
CHR
CHRCODE
CONCAT
INITCAP
INSTR
LENGTH
LOWER
LPAD
LTRIM
RPAD
RTRIM
SUBSTR
UPPER
REPLACESTR
REPLACECHR
For backwards compatibility only - use || instead
Informatica Functions
Conversion Functions
Used to convert datatypes


Date Functions
Used to round, truncate, or
compare dates; extract one
part of a date; or perform
arithmetic on a date
To pass a string to a date
function, first use the
TO_DATE function to convert it
to an date/time datatype
ADD_TO_DATE
DATE_COMPARE
DATE_DIFF
GET_DATE_PART
LAST_DAY
ROUND (date)
SET_DATE_PART
TO_CHAR (date)
TRUNC (date)
TO_CHAR (numeric)
TO_DATE
TO_DECIMAL
TO_FLOAT
TO_INTEGER
TO_NUMBER
Informatica Functions
Numerical Functions
Used to perform mathematical
operations on numeric data
ABS
CEIL
CUME
EXP
FLOOR
LN
LOG
MOD
MOVINGAVG
MOVINGSUM
POWER
ROUND
SIGN
SQRT
TRUNC
COS
COSH
SIN
SINH
TAN
TANH
Scientific Functions
Used to calculate
geometric values
of numeric data

Informatica Functions
Test Functions
Used to test if a lookup result is null
Used to validate data

ERROR
ABORT
DECODE
IIF

IIF(Condition,True,False)

ISNULL
IS_DATE
IS_NUMBER
IS_SPACES
Special Functions
Used to handle specific conditions within a session;
search for certain values; test conditional
statements

Encoding Functions
Used to encode string values

SOUNDEX

METAPHONE
Expression Validation
The Validate or OK button in the Expression
Editor will:
Parse the current expression
Remote port searching (resolves references to ports in
other transformations)
Parse transformation attributes
e.g. - filter condition, lookup condition, SQL Query
Parse default values
Check spelling, correct number of arguments in
functions, other syntactical errors
Variable Ports
Use to simplify complex expressions
e.g. - create and store a depreciation formula to be
referenced more than once
Use in another variable port or an output port expression
Local to the transformation (a variable port cannot also be an
input or output port)
Available in the Expression, Aggregator and Rank transformations
Informatica Data Types
Transformation datatypes allow mix and match of source and target
database types
When connecting ports, native and transformation datatypes must be
compatible (or must be explicitly converted)
NATIVE DATATYPES TRANSFORMATION DATATYPES
Specific to the source and target
database types
PowerMart / PowerCenter internal
datatypes based on ANSI SQL-92
Display in source and target tables
within Mapping Designer
Display in transformations within
Mapping Designer
Native Native Transformation
Datatype Conversions
All numeric data can be converted to all other numeric datatypes,
e.g. - integer, double, and decimal
All numeric data can be converted to string, and vice versa
Date can be converted only to date and string, and vice versa
Raw (binary) can only be linked to raw
Other conversions not listed above are not supported
These conversions are implicit; no function is necessary


Integer Decimal Double Char Date Raw
Integer X X X X
Decimal X X X X
Double X X X X
Char X X X X X
Date X X
Raw X
Mappings
By the end of this section you will be familiar
with:
Mapping components
Source Qualifier transformation
Mapping validation
Data flow rules
System Variables
Mapping Parameters and Variables
Mapping Designer
Iconized Mapping
Mapping List
Transformation Toolbar
Pre-SQL and Post-SQL Rules
Can use any command that is valid for the
database type; no nested comments
Can use Mapping Parameters and Variables in
SQL executed against the source
Use a semi-colon (;) to separate multiple
statements
Informatica Server ignores semi-colons within
single quotes, double quotes or within /* ...*/
To use a semi-colon outside of quotes or
comments, escape it with a back slash (\)
Workflow Manager does not validate the SQL
Data Flow Rules
Each Source Qualifier starts a single data stream
(a dataflow)
Transformations can send rows to more than one
transformation (split one data flow into multiple pipelines)
Two or more data flows can meet together -- if (and only if)
they originate from a common active transformation
Cannot add an active transformation into the mix
Example holds true with Normalizer in lieu of Source Qualifier. Exceptions are:
Mapplet Input and Joiner transformations
DISALLOWED
T T
Active
ALLOWED
T
Passive
T
Connection Validation
Examples of invalid connections in a
Mapping:
Connecting ports with incompatible datatypes
Connecting output ports to a Source
Connecting a Source to anything but a Source
Qualifier or Normalizer transformation
Connecting an output port to an output port or an
input port to another input port
Connecting more than one active transformation to
another transformation (invalid dataflow)

Mapping Validation
Mappings must:
Be valid for a Session to run
Be end-to-end complete and contain valid expressions
Pass all data flow rules
Mappings are always validated when saved; can be validated
without being saved
Output Window will always display reason for invalidity
Workflows
By the end of this section, you will be familiar with:
The Workflow Manager GUI interface
Workflow Schedules
Setting up Server Connections
Relational, FTP and External Loader
Creating and configuring Workflows
Workflow properties
Workflow components
Workflow Tasks
Workflow Manager Interface
Task
Tool Bar
Output Window
Navigator
Window
Workspace
Status Bar
Workflow
Designer
Tools
Workflow Manager Tools
Workflow Designer
Maps the execution order and dependencies of Sessions, Tasks
and Worklets, for the Informatica Server

Task Developer
Create Session, Shell Command and Email tasks
Tasks created in the Task Developer are reusable

Worklet Designer
Creates objects that represent a set of tasks
Worklet objects are reusable

Workflow Structure
A Workflow is set of instructions for the Informatica Server to
perform data transformation and load
Combines the logic of Session Tasks, other types of Tasks and
Worklets
The simplest Workflow is composed of a Start Task, a Link and
one other Task
Start
Task
Session
Task
Link
Workflow Scheduler Objects
Setup reusable schedules to
associate with multiple Workflows
Used in Workflows and
Session Tasks
Server Connections
Configure Server data access connections
Used in Session Tasks
Configure:
1. Relational
2. MQ Series
3. FTP
4. Custom
5. External Loader
Relational Connections (Native )
Create a relational (database) connection
Instructions to the Server to locate relational tables
Used in Session Tasks
Relational Connection Properties
Define native
relational (database)
connection
Optional Environment SQL
(executed with each use of
database connection)
User Name/Password
Database connectivity
information
Rollback Segment
assignment (optional)
FTP Connection
Create an FTP connection
Instructions to the Server to ftp flat files
Used in Session Tasks
External Loader Connection
Create an External Loader connection
Instructions to the Server to invoke database bulk loaders
Used in Session Tasks
Task Developer
Create basic Reusable building blocks to use in any Workflow
Reusable Tasks
Session Set of instructions to execute Mapping logic
Command Specify OS shell / script command(s) to run
during the Workflow
Email Send email at any point in the Workflow
Session
Command
Email
Session Task
Server instructions to runs the logic of ONE specific Mapping
e.g. - source and target data location specifications,
memory allocation, optional Mapping overrides,
scheduling, processing and load instructions
Becomes a
component of a
Workflow (or
Worklet)
If configured in
the Task
Developer,
the Session Task
is reusable
(optional)
Command Task
Specify one (or more) Unix shell or DOS (NT, Win2000) commands to
run at a specific point in the Workflow
Becomes a component of a Workflow (or Worklet)
If configured in the Task Developer, the Command Task is reusable
(optional)
Commands can also be referenced in a Session through the Session Components
tab as Pre- or Post-Session commands
Command Task
Additional Workflow Components
Two additional components are Worklets and Links
Worklets are objects that contain a series of Tasks

Links are required to connect objects in a Workflow
Developing Workflows
Create a new Workflow in the Workflow Designer
Customize
Workflow name
Select a
Server
Workflow Properties
Customize Workflow
Properties

Workflow log displays
Select a Workflow
Schedule (optional)

May be reusable or
non-reusable
Workflows Properties
Define Workflow Variables that can
be used in later Task objects
(example: Decision Task)
Create a User-defined Event
which can later be used
with the Raise Event Task
Building Workflow Components
Add Sessions and other Tasks to the Workflow
Connect all Workflow components with Links
Save the Workflow
Start the Workflow
Save
Start Workflow
Sessions in a Workflow can be independently executed
Workflow Designer - Links
Required to connect Workflow Tasks
Can be used to create branches in a Workflow
All links are executed -- unless a link condition is used which
makes a link false
Link 2
Link 1 Link 3
Session Tasks
After this section, you will be familiar with:
How to create and configure Session Tasks
Session Task properties
Transformation property overrides
Reusable vs. non-reusable Sessions
Session partitions
Session Task
Created to execute the logic of a mapping (one mapping only)
Session Tasks can be created in the Task Developer (reusable) or
Workflow Developer (Workflow-specific)

Steps to create a Session Task
Select the Session button from the Task Toolbar or
Select menu Tasks | Create
Session Task Bar Icon
Session Task - General
Session Task - Properties
Session Task Config Object
Session Task - Sources
Session Task - Targets
Session Task - Transformations
Allows overrides of
some transformation
properties
Does not change the
properties in the
Mapping
Session Task - Partitions
Monitor Workflows
By the end of this section you will be familiar with:
The Workflow Monitor GUI interface
Monitoring views
Server monitoring modes
Filtering displayed items
Actions initiated from the Workflow Monitor
Truncating Monitor Logs
Monitor Workflows
The Workflow Monitor is the tool for monitoring
Workflows and Tasks
Review details about a Workflow or Task in two views
Gantt Chart view
Task view
Gantt Chart view
Task view
Monitoring Workflows
Perform operations in the Workflow Monitor
Restart -- restart a Task, Workflow or Worklet
Stop -- stop a Task, Workflow, or Worklet
Abort -- abort a Task, Workflow, or Worklet
Resume -- resume a suspended Workflow after
a failed Task is corrected

View Session and Workflow logs
Abort has a 60 second timeout
If the Server has not completed processing and
committing data during the timeout period, the
threads and processes associated with the
Session are killed
Stopping a Session Task means the Server stops reading data
Monitoring Workflows
Task View
Start Completion
Task Workflow Worklet Time Time
Status Bar
Start, Stop, Abort, Resume
Tasks,Workflows and Worklets
Monitor Window Filtering
Task View provides filtering
Monitoring filters
can be set using
drop down menus

Minimizes items
displayed in
Task View
Get Session Logs
(right click on Task)
Right-click on Session to retrieve the
Session Log (from the Server to the
local PC Client)
Debugger
By the end of this section you will be familiar with:
Creating a Debug Session
Debugger windows & indicators
Debugger functionality and options
Viewing data with the Debugger
Setting and using Breakpoints
Tips for using the Debugger
Debugger Features
Debugger is a Wizard driven tool
View source / target data
View transformation data
Set break points and evaluate expressions
Initialize variables
Manually change variable values
Debugger is
Session Driven
Data can be loaded or discarded
Debug environment can be saved for later use
Debugger Interface
Debugger windows & indicators
Session Log tab
Target Data window
Transformation
Instance
Data window
Flashing
yellow
SQL
indicator
Debugger Mode
indicator
Solid yellow
arrow Current
Transformation
indicator
Debugger
Log tab
Active Transformation
Connected

Ports
All input / output

Specify a Filter condition

Usage
Filter rows from
flat file sources
Single pass source(s)
into multiple targets
Drops rows conditionally
Filter Transformation
Aggregator Transformation
Active Transformation
Connected

Ports
Mixed
Variables allowed
Group By allowed

Create expressions in
output or variable ports

Usage
Standard aggregations
Performs aggregate calculations
Informatica Functions
Aggregate Functions
Return summary values for non-
null data in selected ports
Use only in Aggregator
transformations
Use in output ports only
Calculate a single value (and row)
for all records in a group
Only one aggregate function can be
nested within an aggregate
function
Conditional statements can be used
with these functions

AVG
COUNT
FIRST
LAST
MAX
MEDIAN
MIN
PERCENTILE
STDDEV
SUM
VARIANCE

Aggregate Expressions
Conditional
Aggregate
expressions
are supported
Conditional SUM format: SUM(value, condition)
Aggregate
functions are
supported
only
in the
Aggregator
Transformation
Aggregator Properties
Sorted Input Property
Set Aggregator
cache sizes (on
Informatica Server
machine)
Instructs the
Aggregator to
expect the data
to be sorted
Sorted Data
The Aggregator can handle sorted or unsorted data
Sorted data can be aggregated more efficiently, decreasing
total processing time
The Server will cache data from each group and
release the cached data -- upon reaching the first
record of the next group
Data must be sorted according to the order of the
Aggregator Group By ports
Performance gain will depend upon varying factors
Incremental Aggregation
Trigger in Session
Properties,
Performance Tab
Cache is saved into $PMCacheDir: aggregatorname.DAT
aggregatorname.IDX

Upon next run, files are overwritten with new cache information
MTD
calculation
Best Practice is to copy these files in case a rerun of data is ever required.
Reinitialize when no longer needed, e.g. at the beginning new month processing
Example: When triggered, PowerCenter Server will save
new MTD totals. Upon next run (new totals), Server will
subtract old totals; difference will be passed forward
Joiner Transformation
By the end of this section you will be familiar with:
When to use a Joiner Transformation
Homogeneous Joins
Heterogeneous Joins
Joiner properties
Joiner Conditions
Nested joins
Homogeneous Joins
Joins that can be performed with a SQL SELECT statement:
Source Qualifier contains a SQL join
Tables on same database server (or are synonyms)
Database server does the join work
Multiple homogenous tables can be joined
Heterogeneous Joins
Joins that cannot be done with a SQL statement:
An Oracle table and a Sybase table
Two Informix tables on different database servers
Two flat files
A flat file
and a
database
table
Joiner Transformation
Active Transformation
Connected

Ports
All input or input / output
M denotes port comes
from master source
Specify the Join condition
Usage
Join two flat files
Join two tables from
different databases
Join a flat file with a
relational table
Performs heterogeneous joins on records from
different databases or flat file sources
Joiner Conditions



Multiple
join
conditions
are supported
Joiner Properties
Join types:
Normal (inner)
Master outer
Detail outer
Full outer
Joiner can accept sorted data (configure the join condition to
use the sort origin ports)
Set
Joiner Cache
Mid-Mapping Join
The Joiner does not accept input in the following situations:
Both input pipelines begin with the same Source Qualifier
Both input pipelines begin with the same Normalizer
Both input pipelines begin with the same Joiner
Either input pipeline contains an Update Strategy
Sorter Transformation

Can sort data from relational tables or flat files
Sort takes place on the Informatica Server machine
Multiple sort keys are supported
The Sorter transformation is often more efficient than
a sort performed on a database with an ORDER BY
clause
Lookup Transformation
By the end of this section you will be familiar with:
Lookup principles
Lookup properties
Lookup conditions
Lookup techniques
Caching considerations

How a Lookup Transformation Works
Lookup
value(s)
Return value(s)
Lookup transformation
For each Mapping row, one or more port values are looked
up in a database table
If a match is found, one or more table values are returned
to the Mapping. If no match is found, NULL is returned
Lookup Transformation
Looks up values in a database table and provides
data to other components in a Mapping
Passive Transformation
Connected / Unconnected
Ports
Mixed
L denotes Lookup port
R denotes port used as a
return value (unconnected
Lookup only)
Specify the Lookup Condition
Usage
Get related values
Verify if records exists or
if data has changed
Lookup Properties
Override
Lookup SQL
option
Native
Database
Connection
Object name
Toggle
caching
Additional Lookup Properties
Set cache
directory
Set
Lookup
cache sizes
Make cache
persistent
Lookup Conditions
Multiple conditions are supported
To Cache or not to Cache?
Caching can significantly impact performance
Cached
Lookup table data is cached locally on the Server
Mapping rows are looked up against the cache
Only one SQL SELECT is needed
Uncached
Each Mapping row needs one SQL SELECT
Rule Of Thumb: Cache if the number (and size) of
records in the Lookup table is small relative to the
number of mapping rows requiring lookup
Target Options
By the end of this section you will be familiar with:
Row type indicators
Row operations at load time
Constraint-based loading considerations
Rejected row handling options


Target Properties
Session Task


Select target
instance
Row loading
operations
Error handling
Properties Tab
Constraint-based Loading
pk1
fk1, pk2
fk2
pk1
fk1, pk2
fk2
Example 1
With only One Active source, rows
for Targets 1-3 will be loaded
properly and maintain referential
integrity
Example 2
With Two Active sources, it is not
possible to control whether rows for
Target 3 will be loaded before or
after those for Target 2
Maintains referential integrity in the Targets
The following transformations are Active sources: Advanced External Procedure,
Source Qualifier, Normalizer, Aggregator, Sorter, Joiner, Rank, Mapplet (containing
any of the previous transformations)
Update Strategy Transformation
By the end of this section you will be familiar with:
Update Strategy functionality
Update Strategy expressions
Refresh strategies
Smart aggregation

Update Strategy Transformation
Used to specify how each individual row will be used to
update target tables (insert, update, delete, reject)
Active Transformation
Connected

Ports
All input / output

Specify the Update
Strategy Expression

Usage
Updating Slowly
Changing Dimensions
IIF or DECODE logic
determines how to
handle the record
Target Refresh Strategies
Single snapshot: Target truncated, new records
inserted
Sequential snapshot: new records inserted
Incremental: Only new records are inserted.
Records already present in the target are ignored
Incremental with Update: Only new records are
inserted. Records already present in the target are
updated
Router Transformation
Rows sent to multiple filter conditions
Active Transformation
Connected
Ports
All input/output
Specify filter conditions
for each Group
Usage
Link source data in
one pass to multiple
filter conditions
Router Transformation in a Mapping
Parameters and Variables
By the end of this section you will understand:
System Variables
Creating Parameters and Variables
Features and advantages
Establishing values for Parameters and Variables

System Variables
SESSSTARTTIME
$$$SessStartTime
Returns the system date value as a
string. Uses system clock on machine
hosting Informatica Server
format of the string is database type
dependent
Used in SQL override
Has a constant value

Returns the system date value on the
Informatica Server
Used with any function that accepts
transformation date/time data types
Not to be used in a SQL override
Has a constant value
SYSDATE
Provides current datetime on the
Informatica Server machine
Not a static value
Mapping Parameters and Variables
Apply to all transformations within one Mapping
Represent declared values
Variables can change in value during run-time
Parameters remain constant during run-time
Provide increased development flexibility
Defined in Mapping menu
Format is $$VariableName or $$ParameterName
Mapping Parameters and Variables
Sample declarations
Declare Variables and Parameters in the Designer Mappings menu
Set the
appropriate
aggregation
type
Set optional
Initial Value
User-
defined
names
Functions to Set Mapping Variables
SetCountVariable -- Counts the number of
evaluated rows and increments or decrements a
mapping variable for each row
SetMaxVariable -- Evaluates the value of a mapping
variable to the higher of two values
SetMinVariable -- Evaluates the value of a mapping
variable to the lower of two values
SetVariable -- Sets the value of a mapping variable
to a specified value
Unconnected Lookup
Will be physically unconnected from other transformations
There can be NO data flow arrows leading to or from an
unconnected Lookup
Function in the
Aggregator calls the
unconnected Lookup
Lookup function can be set within any
transformation that supports expressions
Lookup data is
called from the
point in the
Mapping that
needs it
Conditional Lookup Technique
Two requirements:
Must be Unconnected (or function mode) Lookup
Lookup function used within a conditional statement
Conditional statement is evaluated for each row
Lookup function is called only under the pre-defined
condition
IIF ( ISNULL(customer_id),:lkp.MYLOOKUP(order_no))
Condition
Lookup function
Row keys
(passed to Lookup)
Conditional Lookup Advantage
Data lookup is performed only for those rows which
require it. Substantial performance can be gained
EXAMPLE: A Mapping will process 500,000 rows. For two
percent of those rows (10,000) the item_id value is NULL.
Item_ID can be derived from the SKU_NUMB.
IIF ( ISNULL(item_id), :lkp.MYLOOKUP (sku_numb))
Condition
(true for 2 percent of all rows)
Lookup
(called only when condition is true)
Net savings = 490,000 lookups
Connected vs. Unconnected Lookups

CONNECTED LOOKUP UNCONNECTED LOOKUP
Part of the mapping data flow Separate from the mapping data
flow
Returns multiple values (by linking
output ports to another
transformation)
Returns one value (by checking the
Return (R) port option for the output
port that provides the return value)
Executed for every record passing
through the transformation
Only executed when the lookup
function is called
More visible, shows where the
lookup values are used
Less visible, as the lookup is called
from an expression within another
transformation
Default values are used Default values are ignored

Heterogeneous Targets
By the end of this section you will be familiar with:
Heterogeneous target types
Heterogeneous target limitations
Target conversions


Definition: Heterogeneous Targets
Supported target definition types:
Relational database
Flat file
XML
ERP (SAP BW, PeopleSoft, etc.)
A heterogeneous target is where the target types are
different or the target database connections are different
within a single Session Task
Step One: Identify Different Target
Types
Oracle table
Flat file
Oracle table
Tables are EITHER in two
different databases, or
require different (schema-
specific) connect strings

One target is a flatfile load

Step Two: Different Database
Connections
The two database
connections WILL
differ

Flatfile requires
separate location
information
Target Type Override (Conversion)
Example: Mapping has SQL Server target definitions.
Session Task can be set to load Oracle tables instead,
using an Oracle database connection.
Only the following overrides are supported:
Relational target to flat file target
Relational target to any other relational database type
SAP BW target to a flat file target
CAUTION: If target definition datatypes are not compatible with datatypes in newly
selected database type, modify the target definition
Mapplet Designer
Mapplet
Transformation
Icons
Mapplet Output
Transformation
Mapplet Designer Tool
Mapplet Advantages
Useful for repetitive tasks / logic
Represents a set of transformations
Mapplets are reusable
Use an instance of a Mapplet in a Mapping
Changes to a Mapplet are inherited by all instances
Server expands the Mapplet at runtime
Active and Passive Mapplets

Passive Mapplets contain only passive transformations
Active Mapplets contain one or more active
transformations

CAUTION: changing a passive Mapplet into an active
Mapplet may invalidate Mappings which use that
Mapplet
Do an impact analysis in Repository Manager first
Using Active and Passive Mapplets
Multiple Passive
Mapplets can populate
the same target
instance
Multiple Active Mapplets
or Active and Passive
Mapplets cannot
populate the same
target instance
Active
Passive
Reusable Transformations
By the end of this section you will be familiar with:
Reusable transformation advantages
Reusable transformation rules
Promoting transformations to reusable
Copying reusable transformations


Reusable Transformations
Define once - reuse many times
Reusable Transformations
Can be a copy or a shortcut
Edit Ports only in Transformation Developer
Can edit Properties in the mapping
Instances dynamically inherit changes
Be careful: It is possible to invalidate mappings by
changing reusable transformations
Transformations that cannot be made reusable
Source Qualifier
ERP Source Qualifier
Normalizer used to read a Cobol data source
Promoting a Transformation to
Reusable
Place a
check in the
Make reusable
box
This action
is not
reversible
Sequence Generator Transformation
Generates unique keys for any port on a row
Passive Transformation
Connected

Ports
Two predefined
output ports,
NEXTVAL and
CURRVAL
No input ports allowed

Usage
Generate sequence
numbers
Shareable across mappings
Sequence Generator Properties
Number
of
Cached
Values
Dynamic Lookup
By the end of this section you will be familiar with:
Dynamic lookup theory
Dynamic lookup advantages
Dynamic lookup rules


Additional Lookup Cache Options
Dynamic Lookup Cache
Allows a row to know about the
handling of a previous row
Cache File Name Prefix
Reuse cache by
name for another
similar business
purpose
Recache from Database
Overrides other
settings and Lookup
data is refreshed
Make cache persistent
Persistent Caches
By default, Lookup caches are not persistent
When Session completes, cache is erased
Cache can be made persistent with the Lookup
properties
When Session completes, the persistent cache is
stored on server hard disk files
The next time Session runs, cached data is loaded
fully or partially into RAM and reused
Can improve performance, but stale data may pose
a problem
Dynamic Lookup Cache Advantages
When the target table is also the Lookup table,
cache is changed dynamically as the target load
rows are processed in the mapping
New rows to be inserted into the target or for
update to the target will affect the dynamic Lookup
cache as they are processed
Subsequent rows will know the handling of
previous rows
Dynamic Lookup cache and target load rows
remain synchronized throughout the Session run
Update Dynamic Lookup Cache
NewLookupRow port values
0 static lookup, cache is not changed
1 insert row to Lookup cache
2 update row in Lookup cache
Does NOT change row type
Use the Update Strategy transformation before or
after Lookup, to flag rows for insert or update to
the target
Ignore NULL Property
Per port
Ignore NULL values from input row and update the
cache using only with non-NULL values from input
Example: Dynamic Lookup
Configuration
Router Group Filter Condition should be:
NewLookupRow = 1
This allows isolation of insert rows from update rows
Concurrent and Sequential Workflows
By the end of this section you will be familiar with:
Concurrent Workflows
Sequential Workflows
Scheduling Workflows
Stopping, aborting, and suspending Tasks and
Workflows


Multi-Task Workflows - Sequential
Tasks can be run sequentially:
Tasks shows are all Sessions, but they can also be
other Tasks, such as Commands, Timer or Email Tasks
Multi-Task Workflows - Concurrent
Tasks can be run concurrently:
Tasks shows are all Sessions, but they can also be
other Tasks such as Commands, Timer or Email Tasks.
Multi-Task Workflows - Combined
Tasks can be run in a combination concurrent and
sequential pattern within one Workflow:
Tasks shows are all Sessions, but they can also be
other Tasks such as Commands, Timer or Email Tasks
Additional Transformations
By the end of this section you will be familiar with:
The Rank transformation
The Normalizer transformation
The Stored Procedure transformation
The External Procedure transformation
The Advanced External Procedure transformation

Rank Transformation
Active Transformation
Connected

Ports
Mixed
One pre-defined
output port
RANKINDEX
Variables allowed
Group By allowed

Usage
Select top/bottom
Number of records
Filters the top or bottom range of records
Normalizer Transformation
Normalizes records from relational or VSAM sources
Active Transformation
Connected

Ports
Input / output or output

Usage
Required for VSAM
Source definitions
Normalize flat file or
relational source
definitions
Generate multiple
records from one record
Normalizer Transformation
Turn one row

YEAR,ACCOUNT,MONTH1,MONTH2,MONTH3, MONTH12
1997,Salaries,21000,21000,22000,19000,23000,26000,29000,29000,34000,34000,40000,45000
1997,Benefits,4200,4200,4400,3800,4600,5200,5800,5800,6800,6800,8000,9000
1997,Expenses,10500,4000,5000,6500,3000,7000,9000,4500,7500,8000,8500,8250

Into multiple rows
Stored Procedure Transformation
Calls a database stored procedure
Passive Transformation
Connected/Unconnected

Ports
Mixed
R denotes port will
return a value from the
stored function to the
next transformation

Usage
Perform transformation
logic outside PowerMart /
PowerCenter
External Procedure Transformation
(TX)
Calls a passive procedure defined in a dynamic linked
library (DLL) or shared library
Passive Transformation
Connected/Unconnected

Ports
Mixed
R designates return
value port of an
unconnected
transformation

Usage
Perform transformation
logic outside PowerMart /
PowerCenter
Option to allow partitioning
Advanced TX Transformation
Calls an active procedure defined in a dynamic linked
library (DLL) or shared library
Active Transformation
Connected Mode only

Ports
Mixed

Usage
Perform
transformation logic
outside PowerMart /
PowerCenter
Sorting, Aggregation
Option to allow partitioning
Transaction Control Transformation
Passive Transformation
Connected Mode Only

Ports
Input and Output

Properties
Continue
Commit Before
Commit After
Rollback Before
Rollback After

Allows custom commit types (source- or target-
based) and user-defined conditional commits
Transaction Control Functionality
Commit Types
Target Based Commit -
Commit Based on approximate number of records
written to target
Source Based Commit
Ensures that a source record is committed in all targets
User Defined Commit
Uses Transaction Control Transform to specify commits and
rollbacks in the mapping based on conditions
Set the Commit Type (and other
specifications) in the Transaction Control
Condition
Versioning
View Object Version Properties
Track Changes to an Object
Check objects in and out
Delete or Purge Object version
Apply Labels and Run queries
Deployment Groups
Informatica Business Analytics Suite
Custom Built
Analytic Solutions
Packaged
Analytic Solutions
Modular
Plug-&-Play
Approach
Informatica Warehouses / Marts
Informatica Warehouse
Supply Chain

Human
Resources
Finance

Customer
Relationship
Sales
Marketing
Service
Web
G/L
Receivables
Payables
Profitability
Compensation
Scorecard
Planning
Sourcing
Inventory
Quality
Customer Product Supplier Geography
Organization Time Employee
Common Dimensions
Inside the Informatica Warehouse
Business Adapters (Extract)
Data Source Connectivity with Minimal
Load
Structural/Functional Knowledge of Sources
Analytic Bus (Transform)
Transaction consolidation and
standardization
Source independent interface
Warehouse Loader (Load)
Type I, II slowly changing dimensions
History and changed record tracking
Analytic Data Model
Industry Best Practice Metrics
Process-centric model & conformed
dimensions
Advanced Calculation Engine
Pre-aggregations for rapid query response
Complex calculation metrics (e.g. statistical)
SAP i2 PSFT SEBL ORCL Custom
Business Intelligence
Informatica Warehouse
Analytic
Data Model
Advanced
Calculation
Engine
Warehouse Loader
Analytic Bus
Business Adapters

E
x
t
r
a
c
t




T
r
a
n
s
f
o
r
m





L
o
a
d

PowerConnect Products
Family of enterprise software products that allow
companies to directly source and integrate ERP, CRM,
real-time message queue, mainframe, AS/400, remote
data and metadata with other enterprise data
PowerConnect for MQSeries (real time)
PowerConnect for TIBCO (real time)
PowerConnect for PeopleSoft
PowerConnect for SAP R/3
PowerConnect for SAP BW
PowerConnect for Siebel
PowerConnect for Mainframe
PowerConnect for AS/400
PowerConnect for Remote Data
PowerConnect SDK