You are on page 1of 309

Informatica PowerMart / PowerCenter 6 Basics

Hands-on Lab Guide

PC6B-20030512

Informatica Corporation, 2003. All rights reserved.


Duplication prohibited without written consent from Informatica Corporation
Table of Contents

Document Conventions..............................................................5
Lab Guidelines...........................................................................5
The Design Process...................................................................7
Lab 1 Create a Folder..............................................................7
Start Repository Manager......................................................7
Connect to the Repository......................................................7
Create a Folder....................................................................8
Close the Repository Manager................................................9
Lab 2 Analyze Source Data...................................................11
Start the Designer..............................................................11
Open Folder.......................................................................11
Open the Source Analyzer....................................................13
Analyze Source Definitions...................................................15
Edit the Source Definition.....................................................17
Create Metadata Extensions.................................................18
Clear the Workspace...........................................................19
Save Work.........................................................................20
Lab 3 Import Target Schema................................................21
Open the Warehouse Designer..............................................21
Import Target Table Definitions.............................................22
Lab 4 Create a Mapping........................................................25
Open Mapping Designer.......................................................25
Create Mapping..................................................................26
Add Source and Target Definitions.........................................27
Source Qualifier Transformation............................................29
Create an Expression Transformation.....................................30
Modify / Add Ports..............................................................33
Create Expression Formula...................................................33
Validate the Mapping...........................................................37
Lab 5 Create a Workflow......................................................41
Start Workflow Manager......................................................41
Create Workflow.................................................................42
Edit the Workflow...............................................................44
Create Metadata Extensions.................................................44
Working with Tasks.............................................................45
Create Session Task............................................................46
Edit Session Task................................................................47

Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 1


Link Workflow Tasks............................................................50
Validate the Workflow..........................................................51
Lab 6 Start and Monitor the Workflow..................................53
Open Workflow...................................................................53
Close the Workflow Monitor..................................................54
Start Workflow...................................................................55
The Workflow Monitor..........................................................56
Open Workflow Monitor........................................................56
Connect to the Repository (Workflow Monitor).........................58
Monitoring the Workflow......................................................60
View Session Properties.......................................................61
View the Session Log...........................................................63
Lab 7 Features and Techniques I..........................................65
Lesson 1 Arrange Objects..................................................66
Lesson 2 Remove Links.....................................................68
Lesson 3 Manual Linking...................................................68
Lesson 4 Revert to Saved..................................................70
Lesson 5 Link Path............................................................71
Lesson 6 Autolink by name and position...........................72
Autolink by name................................................................72
Autolink by name and prefix or suffix.....................................74
Autolink by Position.............................................................75
Lesson 7 Moving Ports......................................................77
Up & Down Arrows to Move a Port.........................................77
Drag-and-Drop Method to Move a Port...................................77
Lesson 8 Shortcut from Normal View to Edit Port.............78
Lesson 9 Copy Columns versus Link Columns....................79
Copy Columns....................................................................80
Link Columns.....................................................................80
Copy / Link Columns...........................................................80
Lesson 10 Create Transformation Methods.......................81
Transformation Toolbar Method.............................................81
Transformation Menu Method...............................................82
Lesson 11 Zoom and scale-to-fit.......................................83
Lesson 12 Designer Options..............................................86
Lab 8 The Debugger..............................................................87
Clear Workspace.................................................................89

Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 2


Close Mapping....................................................................90
Copy Mapping Setup...........................................................91
Open Mapping....................................................................95
Edit Mapping......................................................................96
Activate the Debugger Toolbar..............................................97
Start Debugger...................................................................97
Debug Mapping.................................................................103
Stop the Debugger............................................................104
Debugger Breakpoints.......................................................104
Lab 9 Flat File Wizard and Filter.........................................107
Analyze a Flat File source...................................................107
Create Expression Transformation.......................................112
Create Filter Transformation...............................................114
Results Session Properties...............................................117
Lab 10 Heterogeneous Join................................................121
Create Joiner Transformation..............................................124
Create Aggregator Transformation.......................................127
Results Session Properties...............................................131
Lab 11 Sorter......................................................................133
Results Session Properties...............................................137
Lab 12 Basic Lookup...........................................................139
Create Lookup Transformation............................................141
Results Session Properties...............................................147
Lab 13 Deleting Rows.........................................................149
Results Session Properties...............................................153
Lab 14 Data Driven Inserts and Rejects..............................155
Create Update Strategy Transformation................................155
Results Session Properties...............................................159
Extra Credit......................................................................160
Results Extra Credit Session Properties..............................161
Lab 15 Incremental Update................................................163
Create Source Qualifier......................................................165
Create Lookup Transformation - Connected...........................166
Results Session Properties...............................................172
Lab 16 Features and Techniques II....................................175
Lesson 1 The Find feature...............................................175
Find Next.........................................................................177
Lesson 2 View Dependencies...........................................179

Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 3


Lesson 3 Comparing Objects...........................................181
Compare Instances Within Mapping or Mapplets....................181
Compare Target Definitions................................................183
Compare Mapping Instances...............................................185
Lesson 4 Overview Window.............................................185
Lesson 5 Copying and Pasting Objects............................186
Lesson 6 Shortcuts..........................................................187
Create Shortcut to Source..................................................188
Lab 17 Router.....................................................................191
Create Router Transformation.............................................193
Results Session Properties...............................................196
Lab 18 Straight Load..........................................................199
Results Session Properties...............................................201
Lab 19 Conditional Lookup.................................................203
Create Mapping Parameter.................................................206
Create Unconnected Lookup Procedure.................................209
Results Session Properties...............................................214
Lab 20 Heterogeneous Targets...........................................217
Results Session Properties...............................................221
Lab 21 Mapplets.................................................................223
Create the Mapplet............................................................224
Lab 22 Reusable Transformations......................................229
Add Mapplet.....................................................................230
Create Persistent-Named Lookup Transformation...................231
Promote Aggregator to be Reusable.....................................233
Open the Transformation Developer.....................................235
Add Reusable Transformations to Mapping............................236
Results Session Properties...............................................238
Lab 23 Dynamic Lookup......................................................243
Create a Sequence Generator Transformation.......................245
Create Dynamic Cache Lookup Transformation......................246
Results Session Properties...............................................249
Lab 24 Sequential Workflow...............................................251
INDEX....................................................................................254

Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 4


Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 5
Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 6
DOCUMENT CONVENTIONS

This guide uses the following formatting conventions and icons:

If you see It means


Normal Text Normal Text
Menu Command or
Command text
button/screen text
Name of tables, files,
PowerCenter objects
Object Name
(transformations, workflows,
ports, etc.)
Text entered by student Text to be typed or selected by
the student during the lab

Information
Tips and hints for the lab
text.

Key concepts and background


Key Concept Text. for the topic being discussed
during the lab
Reference to other Informatica
Reference text documents that discuss this
topic in depth
A reference to the Flagged Step
Flagged Step
is made later in this guide

LAB GUIDELINES

Dont get stuck ask for help!


Note that there are dependencies among the labs subsequent
labs require objects that were created in previous labs. If you
are unable to complete a lab during the allotted time, you can
obtain a copy of the required objects from the Shared_Student
folder. (Your instructor will describe the process for obtaining
these objects.)

Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 7


Screen shots are based on columns that are not selected by
default. All of the transformation objects used in this course
have the following columns selected: Name, Datatype and
Length/Precision. Others will include Expression.

Informatica PowerMart / PowerCenter 6 Basics Hands-on Lab Guide 8


Lab
1

THE DESIGN PROCESS

The first several labs will provide a step-by-step review of the


Informatica Design Process.

OVERALL OBJECTIVES
Become familiar with Informatica PowerCenter-specific
terminologies
Learn how to navigate the PowerCenter GUI interfaces and
menus in the Repository Manager, Designer, Workflow Manager
and Workflow Monitor
Learn how to create Informatica objects: define and read source
table data, provide instructions to perform data reformatting,
and define and write data to a target table

LAB 1 CREATE A FOLDER

PURPOSE
Create a student folder to hold all work performed in this course

OBJECTIVES
Learn to navigate through the PowerCenter Repository Manager
GUI

DURATION
15 minutes

Start Repository Manager


Start the Repository Manager:
Start | Programs | Informatica PowerCenter Client 6.0 |
Repository Manager; or
Per the Instructors directions

Informatica PowerMart / PowerCenter 6 Basics Lab 1 Create a Folder 9


Connect to the Repository

There are several ways to connect to the


repository. From the Repository Managers Navigator
window, try one of the following methods:

Double-click on the repository; or


Select the repository and select Repository | Connect;
or
Select the repository and click the Connect icon in the
toolbar.

Any of the above methods will produce the


Connect to Repository dialog box:

In the above dialog box, the xx appended to


the word student represents the number assigned to you by
the Instructor (generally 01 to 12).

Enter the assigned Username and Password

Informatica passwords are case sensitive. The


logins are not.

Click on the Connect button

Create a Folder

A folder is a logical grouping of metadata in the Repository. Folders may group


metadata according to functionality (for example - CRM Group, Financial or Sales), or
by individual developer (for example - Jason, Tracy or Team_1). Creating (and
managing) folders is generally handled by an Informatica Administrator, rather than
by individual developers.

Informatica PowerMart / PowerCenter 6 Basics Lab 1 Create a Folder 10


Refer to Velocity, the Informatica Methodology, for best
practices in folder management.

In this course, each student will create his/her


own folder. All PowerCenter objects (and relationships)
created in the labs will be stored in this folder.

To create the folder:


Click on the Repository PC_Course and
select Folder | Create. The Create
Folder dialog box appears.

Informatica PowerMart / PowerCenter 6 Basics Lab 1 Create a Folder 11


Enter the following information:

Name: Enter
Studentxx (xx
represents the
assigned student
number)
Descriptions: Enter
information that
describes the
contents of folder
Owner: Select the
assigned student
login from the pull-
down list
Group: Select the
Students group for
permission purposes
Shortcut: Leave unchecked
Permissions: Leave the default permissions for the
Owner and Repository, but remove the Write permission
for the Owners Group.

A new folder is created and its icon appears in the Navigator


window.

Close the Repository Manager


In this course, the Instructor will perform other repository
administrative tasks, which would normally be done by the designated
PowerCenter Repository Administrator typically a Technical Leader.

Single-click on the PC_Course Repository


Disconnect from the repository by doing one of the following:
Click on the Disconnect icon in the toolbar; or
Select Repository | Disconnect; or
Right-click on the repository PC_Course, and select
Disconnect

Informatica PowerMart / PowerCenter 6 Basics Lab 1 Create a Folder 12


Close the Repository Manager by selecting Repository | Exit.

Informatica PowerMart / PowerCenter 6 Basics Lab 1 Create a Folder 13


Lab
2

LAB 2 ANALYZE SOURCE DATA

PURPOSE
Import the Data Definition for the EMPLOYEE relational table

OBJECTIVE
Learn to navigate through basic functions of the PowerCenter
Designer GUI
Learn how to use Designers Source Analyzer Tool to work with
Source Definitions

DURATION
20 minutes

Start the Designer


Start the PowerCenter Designer:
Start | Programs | Informatica PowerCenter Client 6.0 |
Designer; or
Per the Instructors directions

Connect to Repository
Connect to the same repository in the same manner described
under the flagged step Connect to the Repository on page 10.

Open Folder

Once youve connected to the Repository, there are several ways to open a
folder. However, there is some new terminology that must be explained regarding
the differences between an Open folder and an Expanded folder. What can
challenge new developers is that both the Open and Expanded Folders will appear

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 15


exactly the same in the Navigator window. The important difference is what displays
(or does not display) in the Workspace to the right.

Open Folder versus Expanded Folder An Open folder is required in order to add,
delete or modify objects. All of the work is performed in the Workspace Window to
the right of the Navigator Window (i.e.- where the tools such as the Source Analyzer,
Warehouse Designer, Mapplet Designer, etc., are active). Once created in the
Workspace, all objects will appear in the Navigator Window.

An Expanded folder looks like an Open folder in the Navigator window, but has no
active Workspace window associated with it. Therefore, no object creation or
modification is possible.

Expanding a folder in the Navigator window does allow you to copy objects from, or
create shortcuts to, another folder that is open. How to copy objects and create
shortcuts will be discussed later in this course.

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 16


In order for you to add, delete or change any object in a folder, the folder must be
open.

Locate the assigned Studentxx folder and try any one of the
following steps:

Double-click the Studentxx folder; or


Right-click on the Studentxx folder and select Open; or
Highlight the Studentxx folder and click on the open
folder icon in the toolbar

Note that the double-click method to open a


folder will only work upon initially connecting to the
Repository or after closing (Disconnect icon) the folder. If the
folder was previously highlighted or expanded, then the other methods
mentioned above must be used to open the folder.

Open the Source Analyzer

The Source Analyzer is the first of


PowerCenters five Designer tools. It will be used to define
the schemas (or structural definitions) for all sources of data.
When opening a folder for the first time, the Source Analyzer
is opened by default. If it is not the active tool in the
Workspace, then try one of the following:

In the Designer, highlight the Studentxx folder and select Tools


| Source Analyzer; or
Click on the first icon on the toolbar just above the Workspace

Workspace
Window
Maximize
icon

Ba

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 17


Maximize the window by clicking on the maximize icon
Create Workbook tabs at the bottom of the Window by selecting:
View | Workbook

The Workbook View allows you to easily


navigate among open folders.

Application
Title Bar

Ba
Open
Folder
drop-down
list

Workspace
(Source
Analyzer
displayed)

Workbook
Tab

Displayed in the Application Title Bar are the


Tool name (Source Analyzer), the Folder name and the
Repository name. The Folder name is also displayed in the
Open Folders drop-down list.

Notice the eight nodes within the folder. All


Repository folders contain these same nodes and they can
not be deleted or modified.

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 18


There are currently no objects defined in the
folder above, nor should there be in any of the Studentxx
folders created in the previous lab. Once objects are defined,
a + will appear to the left of any node that contains objects.
Clicking on the + will expand the node to reveal a list of objects.

Analyze Source Definitions

Source Definitions

All source data to be read by the Informatica Server must first have its structure
(schema) defined to the PowerCenter Repository. For relational sources, this
includes columns, keys, datatypes, precision and scale (decimals). The process of
defining the structure of any source data creates a PowerCenter Source Definition
object. (Defining other types of source data will be covered later in this course.)

Each Source Definition is similar to a parent object, which can be used many times
over in the form of child instances. Each child takes on the characteristics of the
parent and when the parent object is modified, each child instance is updated
automatically.

For this lab, the first step in working with PowerCenter objects is to
import the table schema definition for the EMPLOYEE database table.
Select Sources | Import from Database. The Import Tables
dialog box appears

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 19


a. Select the ODBC
data source from
the pull-down list
that corresponds to
the location of the
source tables

b. Enter the
Username and
Password given by
the Instructor

SDBU may remain


c.
as the default Owner
name this will be defined when the Username is entered

Note that when tabbing from Username edit


box, the Designer will automatically fill in the Owner name
edit box. Typically, when the source is either SQL Server or
Sybase, the default owner will not reveal the desired source.
Regardless of the database type, if the source is not found
try clicking on the All button under the Show owners:
section.

If the database type is Oracle, this may take


several seconds because the supported ODBC
driver is not database specific like it is with SQL
Server and Sybase; instead, it allows the search to
span across an entire database instance with
several schemas where a username may have
access.

Click the Connect button.

Once the Connect button changes to read Re-


connect, a direct connection to the source database has
been established.

In the Select tables box, expand the database Owner name


until the TABLES (node) listing appears.
Expand the TABLES node.

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 20


Select the EMPLOYEE table and click on the OK button.
The new source table definition now appears in the Source
Analyzer Workspace.

Source
Definition

In addition to the new source


object added to the Source Analyzer
Workspace, observe the new entry in the
Navigator window. Drill down to view the
new Source Definition in the Sources node
in the assigned Studentxx Folder.

Edit the Source Definition


The next step is to enter meaningful end-user metadata so business
analysts will be able to understand the data in the source tables.

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 21


In the Source Analyzer
Workspace, double-click
on the header of the
EMPLOYEE table
Source Definition. The
Edit Tables dialog box
appears.
Select the Table tab
In the Description
window, enter:
This source comes
from the CRM
system and
includes all Sales
Representatives from the Sales Department.

Select the Columns tab


Select the TYPE_CODE
column name. In the
Description box, type:
Human Resource Job
Code

Enter
Description

Ba

The Description field at the bottom of the


dialog box represents each column independently. In other
words, for every column in the column section above, a
description can be entered in the Description Edit box
below. To associate a description with a particular column,
simply highlight the column (anywhere on the column line)
and add a description.

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 22


This crucial business metadata may also be
imported to the Repository from a third party Data
Modeling tool (e.g. Erwin) if the object definition is
imported via Informaticas Metadata Exchange
(a.k.a. PowerPlug 6.0).

Click Apply to save comments.

Create Metadata Extensions

Metadata Extensions

Metadata may be extended and stored in the repository by creating metadata


extensions for repository objects. The Designer allows the creation of metadata
extensions for source definitions, target definitions, transformations, mappings, and
mapplets. Of those objects, Metadata Extensions may be used to store information
that is common across objects of the same type.

In addition, there are two different types of metadata extensions:

Non-reusable Metadata Extensions are unique to each object and will not appear in
other objects of the same type unless they are copies of the original object.

Reusable Metadata Extensions will appear in every object of the same type. For
this reason, it would be important to establish the names of many of these objects to
be as generic as possible. Subsequently, the values entered for the metadata
extensions are unique. It is possible to enter fixed values for each metadata
extension; however, the values can be overridden and will be stored accordingly.

Typically, the Repository Administrator would create Reusable Metadata Extensions


to be used by Developers.

In this example, every Source Definition created will have an author, creation date
and potentially, a last modified date. By creating Metadata Extensions with the
names Author, Creation Date and Last Modified Date, all Source Definition objects
will have the same Metadata Extensions by name, but different values may then be
entered for each.

Create two non-reusable, local Metadata Extensions as follows:


Click on the Metadata Extensions tab

Click on the Add Metadata Extension icon


Enter Author into the Extension Name column of the new entry

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 23


Select String Datatype with precision (Prec) of 30
Add a second Metadata Extension and name it Creation_Date
Select String Datatype with precision (Prec) of 10
DO NOT SELECT REUSABLE. Click Apply

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 24


Metadata
Extensions tab

Add Metadata
Extensions icon

Enter: Your
Name and the
current date

Enter your name for the value of Author


Enter the current date [using the syntax = mm/dd/yyyy] for the
value of Creation_Date

This field is not a date field, it is descriptive


only

Click the OK button to save the new entries to the Source


Definition

Clear the Workspace


To this point there has been no instruction to save to the repository,
hence, the new Source Definition object exists in memory on the client
workstation, only. The Workspace serves as a giant clipboard. All of
the work performed between saves will only be in memory including
adding, deleting or changing objects within the Workspace. Objects
may be cleared from the Workspace, but still reside in memory. This
can be demonstrated by doing the following:
Right-click on the header of the EMPLOYEE Source Definition in
the Workspace window and select Clear from the Workspace;
or
Select the object in the Workspace window and choose Edit |
Clear; or

In the respective steps above, selecting Delete


from the folder or Edit | Delete will remove the new
object from memory and it will no longer exist!

The object disappears from the Workspace, yet can be found in the
assigned Studentxx folder in the Navigator window (see page 21).

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 25


Since the object is still resident in memory and is visible in the
assigned Studentxx folder, the object may be placed, once again, to
the Workspace for additional viewing or editing.
Select the EMPLOYEE Source Definition in the Navigator window
Drag-and-drop the object into the Workspace window

Save Work

Save

The Designer, unlike the Repository Manager, requires that any changes be manually
saved to the Repository. The key concept to grasp is that folders can only be saved
one at a time. In order to save the contents of a folder, it must be the active folder
in the Workspace. The active folder is the one visible in the Open Folders drop-
down list and on the workbook tab (when that view is selected).

If changes were made to objects in other folders and not saved, then those folders
(one at time) must be the active folder in the Workspace to perform the Save
Repository command. In addition, if there is an attempt to close the Designer with
unsaved changes to objects, it will notify the end user and provide an opportunity to
save, again, one folder at a time.

It is time to save the Source Definition to the


Repository and there are several ways to perform this task.

Before proceeding, there is the Repository toolbar


that, by default, is not selected upon the
PowerCenter client tool installation that looks as
follows:

To add it, select Tools | Customize and check


the Repository checkbox on the Toolbars Tab.

Save the work in the Repository to this point by using one of the
following methods:
Select Repository | Save; or
Ctrl-s; or
Click on the Save icon

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 26


There is a feature to undo changes called
Revert to Saved that will be covered later in the course.

In addition, consider the risks where work can be


lost (e.g.: the client workstation crashes while
playing MP3 music, the database crashes not
uncommon in a development environment or
network connectivity halts, etc.) Over time,
several objects can be changed and if anything
should prevent the client workstation to
communicate with the PowerCenter Repository on
the database server, all the work will be lost since
the last save. So, a best practice would be to
SAVE OFTEN to avoid losing changes.

Informatica PowerMart / PowerCenter 6 Basics Lab 2 Analyze Source Data 27


Lab
3

LAB 3 IMPORT TARGET SCHEMA

PURPOSE
Import the Data Definition for the ODS_EMPLOYEE relational
table

OBJECTIVE
Learn how to navigate Designers Warehouse Designer Tool

DURATION
10 minutes

Open the Warehouse Designer

If the Designer application is not open, refer to


the flagged steps Start the Designer and Connect to
Repository on page 15

Select any of the Designer tools (at any time) via


the Tools menu or using one of the five icons
across the top of the Workspace, as seen below

Open the Warehouse Designer by trying one of the following:


Select Tools | Warehouse Designer; or
Click on the second icon on the toolbar just above the
Workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 3 Import Target Schema 29


Import Target Table Definitions

Target Definitions

Similar to defining the source in the previous exercise, the target must also be
defined and saved to the repository. For relational target tables, columns, keys,
datatypes, precision and scale (decimals) are included. Indexes may be defined, but
are not required. Special cases will be covered later in this course.

Defining the structure of target data either via importing from the database
(schema) or creating it manually -- creates a PowerCenter Target Definition object.

Import the structure of the ODS_EMPLOYEE table from the database


using Warehouse Designer.
Select Targets | Import from Database

Informatica PowerMart / PowerCenter 6 Basics Lab 3 Import Target Schema 30


The Import Tables dialog box is the same one
used to connect to the source database. Login to the target
database in the same manner; refer to the flagged step
Analyze Source Definitions on page 19.

Select the odbc_target ODBC data source connection from the


pull-down list
Enter the Username and Password assigned by the Instructor
typically tdbuxx / tdbuxx (where xx is the assigned student
number for the username / password)
Click on Connect
Expand the database owner name
Expand the TABLES (node) listing
Select the ODS_EMPLOYEE table
Click the OK button

Informatica PowerMart / PowerCenter 6 Basics Lab 3 Import Target Schema 31


Expand the Targets (node), in the Navigator Window. Notice the
addition of the ODS_EMPLOYEE definition

Save (See flagged step Save Work on page 26)

Informatica PowerMart / PowerCenter 6 Basics Lab 3 Import Target Schema 32


Lab
4

LAB 4 CREATE A MAPPING

PURPOSE
Create a mapping that represents the dataflow between the
EMPLOYEE source and the ODS_EMPLOYEE target

OBJECTIVE
Learn to navigate Designers Mapping Designer Tool.
Learn PowerCenter-specific terminologies as they relate to
defining data transformation instructions

DURATION
20 minutes

Open Mapping Designer

Mapping

A mapping represents the dataflow between sources and targets. When the
Informatica Server executes a Session Task within a Workflow (to be discussed
later), it uses the instructions configured in the mapping to read, transform, and write
data.

Select the Studentxx folder and open the Mapping Designer by


trying one of the following:
Select Tools | Mapping Designer; or
Click on the last icon on the toolbar just above the
Workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 33


Create Mapping

By default, there is an inactive toolbar that may


be desirable for some developers. To add it, select Tools |
Customize and check the Mapping/Mapplet checkbox on
the Toolbars Tab.

Create a new mapping using one of the following methods:


Select Mappings | Create; or
Click the Create Mapping icon from the
Mapping/Mapplet toolbar
Enter m_ODS_EMPLOYEE_xx for the new mapping name (where xx
is the assigned student number)

Click on the OK button

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 34


Recent
Mappings list

Mappings
Node

A new mapping has been created; however,


there are no objects present those will have to be added.
Notice that the name of the mapping appears on the Recent
Mappings pull down list AND in the Mappings node in the
Navigator window

Add Source and Target Definitions


In Designers Navigator window, expand the Sources node and
locate the EMPLOYEE Source Definition

Organizing Source Definitions

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 35


Normally there are several locations and types of sources, e.g. - databases, flat file,
ERP sources, etc. needed to populate a Data Warehouse. Note in the Sources node
the EMPLOYEE Source Definition is grouped under the name, odbc_source. When
the source is imported via an ODBC data source, the name of the ODBC data source
name (DSN) is taken as the database name. The reason for this is there may be
another EMPLOYEE table in another database with a different table structure that
may be needed the name taken from the ODBC DSN makes the Source Definition
unique.

If the same source table name, EMPLOYEE, were imported via a different ODBC
DSN into the same folder, the repository wouldnt be able to differentiate between the
two. This can potentially cause an organizational nightmare and will be very
confusing to developers. The database name can be changed while in Edit mode,
however, renaming several source definitions is a tedious task.

This scenario will often occur when there are several developers adding sources to
the same folder within the repository. Since ODBC data sources are not shared
across workstations, it is vital to select a naming convention to avoid this problem.
Hence, an Informatica Best Practice is for those who are responsible for importing
Source Definitions to synchronize the selected ODBC DSN naming convention
across workstations.

Another way to organize sources, among other select objects, is via the Business
Components node this will be discussed later in the course.

An important point to remember is no matter how source definitions are organized in


the repository, it will not impact how the data is moved from source to target. Refer
back to the architecture slides to see how everything connects. At runtime, the
connections (there are several options to discuss) are handled from the servers
perspective, not the client workstations, and will be discussed in greater detail when
the Workflow Manager is covered.

Drag-and-drop the EMPLOYEE Source Definition to the far left


side of the Workspace
In the Navigator, expand the Targets section (node) and locate
the ODS_EMPLOYEE table Target Definition. Select it with the
mouse

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 36


Unlike Source Definitions, the
ODS_EMPLOYEE Target Definition is not associated with
any ODBC DSN. Therefore, there is no need to coordinate
the name(s) of the ODBC DSN for those who are responsible
for the targets. Most customers, who use PowerCenter,
Extract from several disparate sources, Transform and Load
data (ETL) into a common data warehouse or data mart.

Drag-and-drop the ODS_EMPLOYEE Target Definition to the far


right side of the Workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 37


Source Qualifier Transformation

Source Qualifier Transformation

Notice the object called SQ_EMPLOYEE in the mapping above. This transformation
object is called the Source Qualifier and is required for all relational and flat file
sources. It was created automatically when an instance of the Source Definition
EMPLOYEE was added to the mapping.

The Source Qualifier is the interpreter for the PowerCenter engine. This is where
the file or table read is defined. For relational sources, the Source Qualifier will
deliver the SQL (dynamically or via SQL overrides) to the Informatica Server at
runtime, for execution according to database type. In turn, the database type
dictates or interprets the respective native data types that will be delivered to the
database engine for extraction.

As this course continues, there will be several other attributes of the Source Qualifier
to explore and other types of PowerCenter source interpreters will be introduced.

The Source Qualifier may be renamed if


desired. For this Lab, the default name SQ_EMPLOYEE is
adequate; although, it will be renamed to sq_EMPLOYEE to
follow Informatica Velocity Best Practices

Edit the sq_EMPLOYEE by either of the following methods:


Double-click on the header; or
Right-click on the header and select Edit
Click on the Ports tab to view the structure of the data to
be read

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 38


The Datatypes in the Source Qualifier are all
PowerCenter Datatypes. Fundamentally, this is how
PowerCenter can join sources of disparate database types
(e.g.: Oracle to DB2 or Flat File, which is considered as
database type in PowerCenter). Its not quite that simple,
however, the Informatica Server must translate the native
database datatypes to PowerCenter datatypes before
processing.

Once the native database Datatype is translated to


a PowerCenter datatype, it will remain a
PowerCenter Datatype in every transformation
object. That is, until it ultimately reaches the
Target, where it will be translated to the defined
database Datatype or Flat File.

Click on the OK button to close the sq_EMPLOYEE Source


Qualifier

Ports

Notice the name of the first column, Port Name. Port is the generic Informatica
term used for both table columns and flat file fields.

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 39


Create an Expression Transformation

One mapping objective is to concatenate the FIRST_NAME and


LAST_NAME on each row prior to loading the target. An Expression
Transformation is ideal for this task.

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 40


Passive versus Active Transformations

There are two types of transformations: Passive and Active. Passive


transformations allow every row of data to pass through it so if 100 rows go in, then
100 rows will go out to the next transformation. Active transformations may
decrease or increase the number of rows passing through.

As each transformation object is introduced during the course, it will be labeled as


either passive or active. There are internal validation checks to make sure
transformations can be linked together based on this very concept.

Locate the Transformation Toolbar

The default location is at the top right of the


Designer. Look for the arrow icon just to the right of a set

up vertical bars

Single-click on the double vertical bars and drag to the center of


the Workspace

Another suggested location is right below the default location of


the Standard Toolbar to move it, drag and drop from the title
bar

If at any time this toolbar is not visible, activate


it in the same way other toolbars have been activated by
selecting Tools | Customize and checking the
Transformation checkbox

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 41


If the checkmark is present, then try to maximize
the window of the Designer; or open the
Customize dialog box, again, and remove the
checkmark and click OK. Reopen the Customize
dialog box and check the Transformation
checkbox, and click OK.

Click on the Expression transformation icon in the


Transformation toolbar

Drag the pointer, which now appears as crosshairs , into the


Workspace window to the right of the Source Qualifier
transformation
Single-click (or, click-and-drag, which will draw a box, then
release)

Another way to add transformation objects to


mappings is selecting Transformation | Create. After the
Create Transformation dialog box appears select the type of
transformation from the pull-down list; or type the first letter
of the transformation name until the desired transformation
type appears on the list. Enter a name for the
transformation. Click on the Create button and if no
additional transformations are required then click on the
Done button.

Set the Mapping Designer to copy port names and create link
relationships between transformation objects:

Select Layout | Link Columns; OR

Select the Link Columns icon in the toolbar

Link the following ports from the sq_EMPLOYEE to the new


Expression transformation:

EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DATE_HIRED


and TYPE_CODE

With the Source Qualifier and the Expression


transformations in Normal mode, hold down the Ctrl key
and select the above ports in the sq_EMPLOYEE. Drag
them to an empty line on the Expression transformation.

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 42


When the mouse is released, not only will the port names
(including datatypes, precision and scale) will be copied from
sq_EMPLOYEE, but links connecting the ports between the
two transformations will also be created.

Double-click on the header of the Expression transformation to


enter Edit mode
Click the Rename button
Rename the transformation to exp_ODS_EMPLOYEE

If the transformation was created via the


Transformation | Create menu instead of the
Transformation Toolbar, the object will have a name

Click on the OK button to close the dialog box

Modify / Add Ports


Select the Ports tab
Disable the output ports for FIRST_NAME and LAST_NAME by
removing the checkmark in the O (output) column this will
define the port as input only
Click on the Add icon to add a new port and rename it,
NAME_out

Selecting the LAST_NAME port before clicking


the Add a new port to this transformation icon will cause the
new port to be positioned immediately after LAST_NAME.

Verify the data type is string and increase the precision to 51


Disable the input port for NAME_out by removing the
checkmark in the I (input) column this will define the port as
output only

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 43


Add Port
icon

New Port,
output-only

Create Expression Formula

Notice that expression for the NAME_out


column is no longer grayed out. Once the port is defined as
output only (or as a variable V port - to be discussed later),
it requires a user-defined formula in order to be valid. The
formula could simply call another port in the transformation
by name only.

Click in the Expression column of the NAME_out port and notice


the arrow that appears at the far right
Arrow
opens
Expression
Editor

Click on the arrow to open the Expression Editor dialog box

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 44


Formula
Undo icon

Formula
Window

NAME_out is currently defined in the


Formula: window. This name is taken by default, from the
name assigned to the port when it was created. This default
entry is invalid and must be changed.

Delete the text NAME_out in the Formula field


Select the Ports tab
Double-click on the port FIRST_NAME and note its presence in
the Formula field

Ports Tab

Individual
Port Details

Based on which port is selected, the port details


appear under the Instance Name: section of the Ports tab

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 45


Below the Formula field, locate the Operator
keypad (shown here). It contains mathematic (and other)
symbols that can be used in creating formulas

Click on the double-pipe icon (concatenation) and it appears


just to the right of FIRST_NAME
Click on the single-quote icon in the Operator keypad
Press the spacebar once and click the single-quote icon again.
This will cause a space to be placed between the FIRST_NAME
and the LAST_NAME at runtime
Click on the double-pipe icon, again
Double-click on LAST_NAME. The concatenation formula is
complete
FIRST_NAME || ' ' || LAST_NAME
Click OK. Upon successful parsing of the formula, a dialog will
appear proclaiming Expression parsed successfully

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 46


Once the formula parses, click OK to continue and return to the
exp_ODS_EMPLOYEE transformation in Edit mode

Completed
Expression
Formula

The formula may be typed in manually rather


than following the point-and-click method. If the names of
the Functions and Ports are known, it may be faster to type
them. If a port name changes, the expression will be
automatically changed to incorporate the new port name. If
you were to change a port name to a non-existent one from
within the formula field prior to changing it in the Port Name
dialog box, the expression would fail to parse.

Click OK to close the Edit Transformation dialog box


Ctrl-s to save

The finished Expression transformation will look like the


following:

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 47


Link Target Definition

Link the following ports from exp_ODS_EMPLOYEE to


ODS_EMPLOYEE (target definition):
EMPLOYEE_ID EMPLOYEE_ID
NAME_out NAME
DATE_HIRED DATE_HIRED
TYPE_CODE TYPE_CODE

The mapping is now complete and should look like the following:

Ctrl-s to save

Validate the Mapping

Mapping Validation

All mappings must pass a set of PowerCenter validation checks before executing it
within a Session Task.

Every time a repository save is executed, a series of validation checks are performed
on what has been changed. If a transformation object is changed within a mapping
or mapplet, the object will be checked and then mapping validation checks will occur.

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 48


Since development is iterative, it may be necessary to leave a mapping in an invalid
state. All mappings that are invalid will have a red x icon just to the left of the
mapping name in the Navigator Window.

Validation checks do not automatically seek out invalid mappings to check them.
Only when something changes (anything such as links, port names, expressions,
etc.) will mapping validation checks occur automatically upon the execution of a
repository save.

The Mappings | Validate menu command is a manual validation check that can
be performed on mappings that are active in the Workspace.

View the results of the Validation by locating the Save tab of the
Output window, at the bottom of Designer

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 49


Output
Windows
Save Tab

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 50


Expand the Output window and scroll up in the scrollbar on the
right side of the window, so the Validation test detail can be
reviewed

Save Time
Stamp

First Error

Mapping
declared
Invalid

If the Validation results shows INVALID, locate


the last time stamp when the save repository was executed
and scan for the first error. The series of validation checks
will display all of the errors, however, the first error may
cause a domino effect of errors.

Fix the first error and save or perform the


Mappings | Validate command from the main
menu (Note the results will be located in the
Output windows Validate tab).

Repeat the process until the mapping is valid.

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 51


Validation
Time
Stamp

No Errors

Mapping
declared
Valid
Validate
Tab

Informatica PowerMart / PowerCenter 6 Basics Lab 4 Create a Mapping 52


Lab
5
4

LAB 5 CREATE A WORKFLOW

PURPOSE
This lab provides instructions to create a simple Workflow with
a Start Task and Session Task. Collectively, the goal of
creating these objects is essentially to define a run-time version
of the mapping created in the previous lab

OBJECTIVE
Learn to use the Informatica Workflow Manager

DURATION
30 minutes

Start Workflow Manager


Open the Workflow Manager by selecting Start | Programs |
Informatica PowerCenter Client 6.0 | Workflow Manager

Connect to Repository
Connect to the same repository in the same manner described
under the flagged step Connect to the Repository on page 10

Open Folder
Locate the assigned Studentxx folder and try any one of the
following steps:

Double-click on Studentxx folder and, in the Navigator


Window; or
Right-click on the assigned Studentxx folder and select
Open or
Highlight the folder and click on the open folder icon
in the toolbar;

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 53


Open Workflow Designer
Open the Workflow Designer using one of the following methods:
Select Tools | Workflow Designer; or

Click the Workflow Designer icon above the


Workspace

Create Workflow
The next step is to create a Workflow to process data. It will contain a
Start Task and a Session Task.

A workflow is a set of instructions that tells the Informatica Server how to


execute tasks such as sessions, email notifications, and shell commands. After tasks
are created in the Task Developer and Workflow Designer, tasks are connected via
links to create a workflow.

In the Workflow Designer, conditional links and workflow variables are used to create
branches in the workflow. The Workflow Manager also provides Event-Wait and
Event-Raise tasks. The sequence of task execution can be controlled in the workflow.
Worklets (a group of tasks) can be created and inserted inside the workflow.

Every workflow contains a Start task, which represents the beginning of the workflow.

Refer to Creating a New Workflow in the


Workflow Administration Guide

This section provides the instructions to create


a Workflow first, and then create a Session Task within it.
The two objects may be created in reverse; however, a
Session Task must be within a Workflow in order to be
executed.

Select Workflows | Create


On the General tab, enter wf_ODS_EMPLOYEE_xx in the Name
box (xx represents the assigned student number from 01-12)

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 54


Click on the OK button

Note the presence of the Start Task which is


added to each new workflow by default

Select Repository | Save; or Ctrl-s to save

The workflow is incomplete and as a result


invalid, but that is to be expected at this point in the exercise

Double-click on the Start Task


Click the Rename button
Type start_ODS_EMPLOYEE in the Rename Task dialog box

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 55


Click the OK button to save the name
Click the OK button to return to the Workflow Designer
workspace

The preceding Start Task rename instruction is


optional, however, is recommended for clarity purposes when
reviewing all of the tasks in the Workflow Monitor.

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 56


Edit the Workflow

There are several parameters in the new workflow to be set. Edit the
workflow by doing one of the following:
Click on the Edit Workflow Icon in the Workflow
Toolbar; or
Select Workflow | Edit

On the Properties tab, wf_ODS_EMPLOYEE_xx.log into Attribute 2


displays the Workflow Log File Name

Workflow Log
File Name

Workflow Log
Directory

The workflow log contains basic information (execution start and completion
times, status, etc.) for all tasks in the workflow. It is optional and if left blank (default)
the Informatica Server writes workflow log messages to the Windows Event Log or
UNIX server log.

If a log file name is entered, the workflow log messages will be redirected to the
designated file name within the Workflow Log File directory on the Informatica Server.

Create Metadata Extensions


Metadata Extensions were introduced in the flagged step Create
Metadata Extensions on page 23. In this lab, the Instructor has
already created reusable Metadata Extensions for workflow
Creation_Date and Workflow_Author.

The non-reusable Metadata Extensions


created in Lab 2 were unique to each folder. With reusable
Metadata Extensions, they are available to all workflows
across all folders in the repository.

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 57


Click on the Metadata Extensions tab

Notice the two existing metadata extensions.


Each has a checkmark in the Reusable column in the right.

Typically, the designated Repository


Administrator(s) creates reusable metadata extensions in the
Repository Manager. Depending on how the Metadata
Extensions were set up, a default value will either be blank or
assigned. If the value entered is different than the default, a
new column will appear to allow the developer to revert back
to the default value (see below).

Enter the current date for the value of Creation_Date [using


the syntax as before = mm/dd/yyyy]
Enter your name for the value of Workflow_Author
Click on OK, to both apply the entries and exit the Workflow
Save the new entries to the Repository, select Repository |
Save, OR Ctrl-s.

Working with Tasks


Now that the Workflow has been created, the next step is to add a
Session Task to the Workflow.

By default, there is a toolbar to create tasks


that may be desirable for some developers; however, it may

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 58


be difficult to find. To verify it is present, select Tools |
Customize Toolbars and make sure there is a checkmark in
the Tasks checkbox.

Very little of the toolbar might be visible as it was


with the Transformation Toolbar in Lab 4. Locate
the arrow icon, which is the first icon in the
Tasks Toolbar. Once located, drag-and-drop to
the desired location to see all of the task icons
available (e.g. horizontally below the Standard
toolbar, vertically between windows or floating in
the workspace).

Create Session Task

Session Tasks

Session tasks represent mappings for the Informatica Server to run. The Informatica
Server uses the instructions configured in the session to move data from sources to
targets. Among its many properties are parameters for memory usage, log file
locations, and source and target read/write instructions. Each session task is
associated with one, and only one, mapping; however, one mapping may be used in
several session tasks.

Click on the Session icon on the Task Toolbar


Move the pointer into the Workspace and click

The Mappings dialog box appears listing all


mappings in the folder valid and invalid however, only
valid mappings are permitted to be selected

Select the mapping, m_ODS_EMPLOYEE_xx and click OK.

A Session Task appears in the Workspace and it


automatically prefixes the name with an s_ the end result
is s_m_ODS_EMPLOYEE_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 59


An alternate way to create a non-reusable
Session Task is to create it from the menu (similar to the
manner described in the flagged step Create the Mapping
on page 34). Select Task | Create then select the Session
Task type.

Select Repository | Save, OR Ctrl-s to save

Edit Session Task


Double-click on the s_m_ODS_EMPLOYEE_xx Session Task
and select the Properties tab

Session
Log Name

Session Log
Directory

The default Session Log File Name,


s_m_ODS_EMPLOYEE_xx, and the default Session Log
directory, $PMSessionLogDir, may be overridden, but this
is not recommended.

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 60


Select the Sources tab

Connection Native Database Connection


Settings tab Drop-down Listing

Click on the down arrow on the right side of the Value column
for the sq_EMPLOYEE listed in the Instance column

Source Native
Database
Connection

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 61


Select the native_source connection and click OK
Select the Targets tab

Properties Native Database Connection


Tab Drop-down List

Click on the down arrow on the right side of the Value column
for the ODS_EMPLOYEE Target Instance
Select native_target_xx (where xx represents the assigned
student number from 01-12) and click OK
Only if the target table database connection is using an
Oracle client less than 8.1.7.2 select the Properties
tab at the bottom and select Normal for Target load type

Release note: CR 38672, 36211: Oracle bulk


load session fails or runs in normal mode on some versions
of Oracle

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 62


When a session is configured for bulk loading and
the target database is on Oracle, the session fails
when the Oracle client version is greater than or
equal to 8.1.5 and less than 8.1.7.2. When the
Oracle client version is less than 8.1.5, the session
runs in normal mode.

Workaround: Apply the Oracle Threaded Bulk


Mode patch (Oracle bug number 1666360), use
Oracle client 8.1.7.2 or higher, or run the session
in normal mode.

Click OK to close the Edit Tasks dialog box


Save

Link Workflow Tasks

All tasks in a workflow must be linked together


for the workflow to be valid.

There are several ways to link tasks:


One way is to use the toolbar. Locate the Link icon on the
right side of the Task Toolbar
Drag the pointer, which now appears as crosshairs , into the
Workspace to the task

The cursor remains in link mode until toggled


off or one of the newly linked objects is single or double-
clicked upon. When hovering over a task, the crosshairs
change to

Draw a line between the start_ODS_EMPLOYEE and the


s_m_ODS_EMPLOYEE_xx tasks via a drag-and-drop method

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 63


Toggle off the link mode by clicking again on the Link icon
or single click on one of the objects

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 64


Another method to create the link is to:
First, remove the existing link to practice other linking methods
between the two objects. Select the link and hit the Delete Key.
Confirm that ONLY the link is to be deleted
To create the link again, hold down the Ctrl key and select both
the start_ODS_EMPLOYEE Task and the
s_m_ODS_EMPLOYEE_xx Session by single clicking on them
or by drawing a box around the two objects (no Ctrl key required
when drawing the box)
Select Tasks | Link sequential or right-click anywhere in the
workspace except on an object and select Link Sequential. A
link appears between the Start Task selected and the Session

Link Sequential or Link Concurrent relates to


how the tasks are processed. If there were two session tasks
linked to the Start Task, they would be considered concurrent
session tasks would start at the same time. Sequential
simply would be one at a time typically chosen because
there dependencies from one session to another.

Save

Refer to Working with Links in the Workflow


Administration Guide, Chapter 4.

Validate the Workflow


The detail of creating the Workflow is now complete. However, it must
pass PowerCenter Validation before it can process correctly.

Validating a Workflow

Similar to the mapping, a workflow must pass all validation checks prior to running it.
For example, if a workflow is created with a Start Task and a Session Task and the
two are not linked, the workflow is invalid.

The Output window in Workflow Manager displays the results of the validation checks
and will point out specifically what (not how) needs to be fixed.

Since a Repository | Save was just executed


in the preceding step, the Workflow validation checks

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 65


occurred automatically, just as it does when the mappings
are saved in the Designer.

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 66


Locate the Save tab in the Output Window at the bottom of the
Workflow Manager and view the results of the validation checks

Output
Windows
Save Tab

If the Validation results shows INVALID, locate


the last time stamp when the save repository was executed
and scan for the first error. The series of validation checks
will display all of the errors, however, the first error may
cause a domino effect of errors.

Fix the first error and save or perform the


Workflow | Standard validate command from
the main menu (Note the results will be located in
the Output windows Validate tab).

Repeat the process until the workflow is valid

Refer to Validating a Workflow in the


Workflow Administration Guide.

Informatica PowerMart / PowerCenter 6 Basics Lab 5 Create a Workflow 67


Lab
6

LAB 6 START AND MONITOR THE WORKFLOW

PURPOSE
This lesson provides instructions to start the workflow and
monitor the process with the Workflow Monitor.

OBJECTIVE
Learn how to start a workflow
Learn to use the Informatica Workflow Monitor

DURATION
40 minutes
Refer to Running the Workflow in the
Working with Workflows Chapter in the
Workflow Administration Guide

Open Workflow Manager


If the Workflow Manager was closed, re-open it (see flagged step
Start Workflow Manager on page 53 for details)

Open Workflow
There are two ways to re-open a workflow. To demonstrate both
methods, the Workspace must be clear of any workflows:

Select Workflows | Close if the menu item to Close is grayed


out, then there are no open workflows

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 69
Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 70
Drag-and-drop the wf_ODS_EMPLOYEE_xx Workflow from the
Navigator Window into the Workspace

Notice that the name of the workflow appears


on the Recent Workflows pull down list. The Recent
Workflows List holds the workflows that have been opened
since the last time the folder was closed (disconnected). A
folder can be closed in several ways (e.g. Closing the
Workflow Manager or Disconnecting from the repository or
the folder) any of which will net the same effect.

Recent
Workflows
List

Close the Workflow Monitor


A Workflow or a specific Task can be started from within the Workflow
Manager where it was created. The status of the Workflow and all
Tasks associated with it will be monitored from the Workflow Monitor.

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 71
To ensure that the Workflow Monitor Program was not opened
inadvertently, please do as follows:
Examine the icons in the Windows Task Bar for the presence of
the minimized Workflow Monitor icon
If found, right-click on the icon and select Exit otherwise,
continue

Start Workflow
If the workflow is valid, it is ready for execution. In the Workflow
Designer, use one of the following methods to start the
wf_ODS_EMPLOYEE_xx Workflow:
Select Workflows | Start workflow; or

Right-click in the Workspace and


select Start Workflow; or

Right-click on the
wf_ODS_EMPLOYEE_xx Workflow in the
Navigator window and select Start
Workflow; or

Right-click on the
start_ODS_EMPLOYEE task in
the wf_ODS_EMPLOYEE_xx
Workflow. Select Start Workflow from Task menu option

The menu option Start Task (shown below) is not


ideal in this case.
Starts a single
Task only

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 72
Selecting this menu option starts the
start_ODS_EMPLOYEE task, only, and would
not subsequently run the s_ODS_EMPLOYEE_xx
Session Task.

Similarly, starting a single Task directly from the


Session would run the session but make the
Workflow execution incomplete.

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 73
Any of the above options would show the following dialog box:

The workflow and all its tasks will be monitored


and examined for processing details in the Workflow Monitor
(next section). With the Workflow Monitor closed, as
suggested earlier in this lab, the Workflow Monitor icon will
automatically appear in the Windows Task Bar.

The Workflow Monitor

Workflow Monitor -- Initialize vs. Open

There is a difference between the Workflow Monitor program being initialized and
open. For example, a virus protection program may be initialized and operating in
the background (to actively protect the computer), without a client tool appearing as
an active program visible on the Desktop. It will be present in the form of a
minimized icon on the Windows Taskbar. However, all functional settings cannot be
accessed until the program is opened.

Such is the case with Workflow Monitor. Once initialized, it may then be opened by
the user without ever accessing the Windows Start menu. Starting the Workflow,
wf_ODS_EMPLOYEE_xx from the Workflow Manager automatically initialized
the Workflow Monitor. This is a convenient feature that is enabled by default and
cannot be turned off.

Open Workflow Monitor


Examine the Windows Task Bar for the presence of the
minimized Workflow Monitor icon

If the icon is not found minimized on the


taskbar, here are two other methods to open Workflow

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 74
Right-click on the PC_Course Repository in the Workflow
Managers Navigator window and select Run Monitor

Select Start | Programs | Informatica PowerCenter


Client 6.0 | Workflow Monitor

How quickly the Workflow Monitor initializes


depends on the speed of network between the
Informatica Server and PowerCenter client. A
remote connection from the client to the server
will likely cause a delay and take a few seconds up
to a minute.

To open Workflow Monitor from the minimized taskbar icon, try one of
the following methods:
Right-click on it and select Open; or
Double-click on it

One of the following two windows will appear:

Gantt Chart

Navigator Time
window window
(area) (area)

Task View

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 75
Navigator Time
window window

If the Workflow Monitor does not resemble the


above, either the Gantt Chart or Task View, then notify the
Instructor before proceeding. The Workflow Monitor needs to
be completely disconnected to continue with the instructions
going forward.

Connect to the Repository (Workflow Monitor)

Use any one of the following methods to connect to the repository:

Select Repository | Connect; or


Click the Connect icon in the toolbar; or
Double-click on Repository in the Navigator window

A list of available Repositories will appear in a


pull-down list in the Connect to Repository dialog box.
This list is local to the client workstation.

Any of these methods will produce the Connect to Repository dialog


box:

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 76
Repository
Select List

Connect to
Repository

Select the PC_Course Repository from the Repository pull-down


list
Tab to the Username box and note the username automatically
appears it was the last username logged into the client
workstation

Once the repository is selected, if the Workflow


Monitor had been previously used on the client workstation
then the last logged in Username, Host Name and Port
Number will appear automatically. These are listed in the
Windows registry of the local client. The Host/Port
combination is communication link where the Server machine
is listening for client requests.

Accept the default or enter the assigned Repository studentxx


Username and then the Password
In the Repository Server box, if there is no default entry, enter
the Host Name and Port Number designated by the Instructor
Click on the Connect button. The PC_Course Repository shows
in the Navigator window. Notice that the disconnect icon and
the PC_Server server is displayed; both are signs that the user is
connected to the repository

Connect to the Informatica Server


In order to view the results of the wf_ODS_EMPLOYEE_xx Workflow, the
Server must be connected in either On Line or Off Line mode.

On Line vs. Off Line Mode

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 77
In On Line mode, the Workflow Monitor continuously receives current information
from the Informatica Server via the Repository Server (e.g. Workflow development
testing). With Off Line mode, the Workflow Monitor displays historic information
about past Workflow and Task runs by retrieving the information from the Repository
(e.g. Production run review).

Both Developers and Production Operators will use the Workflow Monitor for
Workflow and Task processing on the Informatica PowerCenter Server. Developers,
typically, will be in On Line Mode to monitor current activities. They may also act as
Production Operators while testing and use it in Off Line Mode to review the previous
test runs; Production Operators, of course, will monitor production runs.

Select the Gantt Chart tab

Right-click on Server, PC_Server, and select Connect | On


Line. Or double-click on the server and select On Line
Double-click on the assigned Studentxx folder to view the
previously processed workflows
Drill down (double-click on each object) all the way until the
session task, s_m_ODS_EMPLOYEE_xx, appears

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 78
Monitoring the Workflow

Workflow Monitor provides the capability to review server-processing


information. For each Session task (the most common), information about rows
loaded or failed and run status. In addition, there are two primary types of views,
Gantt Chart and Task View.

Select the Task View

Task
Name
(icons)

Task
View tab

Three objects should appear in the selected folder. Note the run time
for each is within seconds of each other:
The s_m_ODS_EMPLOYEE_xx Session Task -- icon
The start_ODS_EMPLOYEE Task -- icon

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 79
The wf_ODS_EMPLOYEE_xx Workflow -- icon

Workflow Monitor Time

The Workflow Monitor displays Start and End times relative to the time configured on
the Informatica Server machine. The PowerCenter client machine interpolates and
displays the actual Server run times to the local client time zone. Since the
monitoring activity can take place on multiple clients, in multiple time zones, each
client will convert the Server time to its local time, e.g. if the Server runs a Session
at 12:00pm EST, a client in EST will display 12:00pm; a client in PST will display the
times 3 hours earlier (9:00am); a client in GMT will display the times 6 hours later
(6:00pm) than EST.

Notice the Status column on the right. The objective is to have all of
the tasks show Succeeded. Below, they are grouped together in a
view.

Session Status Success vs. Failure (vs. Completed with Errors)

A Succeeded status will display if the Informatica PowerCenter Server was able to
successfully complete a workflow or task. However, a Session Task may succeed in
processing, but may still contain warnings or non-fatal errors.

A Failed status may occur if the Informatica Server failed the Workflow or Task due to
fatal processing errors. A Session could fail for many reasons (e.g. - read login
failure, custom SELECT statement error, or the Server was not able to calculate data
due to a NULL condition). A rejected row by the database or discarded by a business
rule will not produce a Failed status.

View Session Properties


Developers, success or failure, will likely want to review processing
details. For example, to see if a Session Task processed and loaded an
expected amount of rows. Heres how to see the results:

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 80
Locate the s_m_ODS_EMPLOYEE_xx Session task under the
Task Name column

View the Session Properties by doing any one of the following:


Right-click anywhere on the line selected and select
Properties; or
Click on the Session Properties icon; or simply,
Double-click on the selected line for
s_m_ODS_EMPLOYEE_xx Session

The Properties tab of the s_m_ODS_EMPLOYEE_xx dialog box


opens. The Session should display the number of Target Success Rows
shown below:

Properties
Tab

Expected
Results

Click on the Transformation Statistics tab. More detail on the


number of rows handled by the Server are shown here:

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 81
Target
Instance
Transformation
Statistics Tab

Source
Qualifier
Instance

Applied / Affected / Rejected Rows

Applied rows are rows the Informatica Server successfully produced and applied to
the target without errors.

Affected rows are generated by the Server and affected to (or accepted by) the
target. They may be a combination of INSERT, UPDATE and DELETE rows, or
multiple rows in a database may be impacted by one UPDATE row.

Rejected rows are either those read rows that either the Server dropped during the
transformation process, or rows that rejected when writing to the target. Rejected
rows may be acceptable and expected.

Refer to Monitoring the Workflow in Chapter


12 of the Workflow Administration Guide

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 82
View the Session Log
The Session log is one method to determine what occurred during the
system run.
To view detailed Session information, try one of the following:

Right-click on Session in the Task Name column (Time window)


and select Get Session Log; or
Select the Session anywhere on the line in the Time Window and
click on Session Log icon

The Session Log is copied from the Informatica


PowerCenter Server machine as TmpSessionLog_x.log and
automatically opens with WordPad on the local client
workstation. Multiple logs may be opened on the client,
hence the _x in the log file name.

If errors have occurred, review the Session log to determine what


errors occurred. Test and rerun as necessary.

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 83
Processing)
Memory
(DTM Buffer
Pool)

Mapping
Name

Session
Name

Native Source
and Target
INSERT, UPDATE Database
and DELETE row Connections
syntax (if created)

Session
Processing
Threads

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 84
Lab
7

LAB 7 FEATURES AND TECHNIQUES I

OBJECTIVE

This is an Instructor-led follow along lesson to show and explain the


various Designer features and techniques that can improve efficiency
and ease of use. Because these features are introduced together,
under the guidance of the Instructor, they do not need to be
haphazardly squeezed into the labs. They can be used, when needed,
in the subsequent labs.

It is recommended not to save any changes at the conclusion of this


exercise because it may invalidate the mapping.

The following is a list of the more commonly used features and


techniques in the Designer tool to assist with mapping development
and navigation in the workspace:

Auto Arrange
Remove Links
Manual Linking
Revert to Saved
Link Path
Autolink by name and position
Moving Ports
Shortcut from Normal View to Edit Port
Copy Columns versus Link Columns
Create Transformation Methods
Zoom and size-to-fit
Designer Options

DURATION
40 minutes

Start the Designer

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 85


Start the Designer by selecting Start | Programs |
Informatica Power Center 6.0 | Designer.

Connect to Repository
Connect to the PC_Course Repository (refer to flagged step
Connect to the Repository on page 10)

Open Folder
Open the assigned Studentxx Folder (refer to the flagged step
Open Folder on page 15)

Open Mapping

Open the mapping, m_ODS_EMPLOYEE_xx (refer to the


flagged step Open Folder on page 15)

Lesson 1 Arrange Objects

The Designer includes the Arrange feature that will reorganize objects
in the workspace in one simple step. This aids in readability and
analysis of the mapping flow and can be applied to certain paths
through a mapping associated with specific target definitions this is
commonly referred to as a pipeline.

Attempt to Save

If there was nothing to save, dont fret. This


step was just in case the steps above were not needed to
open the mapping and a saved wasnt previously performed.

In a couple of clicks, this feature can take a mapping that looks


like this:

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 86


And change it to look like this:

Or this:

To display specific pipelines in the Mapping Designer:


Choose Layout | Arrange or right-click in the workspace and
select Arrange
Select the target

Select the Iconic option to display arranged


pipelines in the Iconic View.

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 87


Click OK

To restore entire mapping from Iconic View to Normal View, do the


following:

Choose Layout | Arrange


Click the Select All button
Uncheck the Iconic checkbox
Click OK
Save

This is the reset point (Normal View with the


objects aligned) that, when instructed to execute the Revert
to saved command, everyone will be at the same starting
place.

Lesson 2 Remove Links

Click-and-drag the pointer over the blue link lines, only,


between the exp_ODS_EMPLOYEE and the ODS_EMPLOYEE
Target Definition

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 88


By default, each link stroked changes in color
from blue to red. If any other objects (e.g.: transformations)
were selected along with the links, redo the process.

Press the Delete key to remove the connections and make sure
that is all that is deleted

Lesson 3 Manual Linking

This lesson is to demonstrate the proper technique to manually link


ports between transformations

Single-click and hold the left mouse button in the white space
just to the right of the text for the NAME_out port in the
exp_ODS_EMPLOYEE Expression and attempt to link it to the
NAME port in the ODS_EMPLOYEE Target Definition

Note the behavior with absence of the link

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 89


icon, this indicates the objective to create a
link is not in process. In addition, it appears as
though several other columns have been selected
in the exp_ODS_EMPLOYEE Expression. To
successfully create a manual link, the cursor must
originate on text in any column visible (e.g. Name,
Expression, Datatype, etc.) not the white space
to the right of the text

Make another attempt to create the same link; however, this


time, Single-click on text rather than the white space

Delete the link to try another manual link method


Select only the output ports (Ctrl-click) in the
exp_ODS_EMPLOYEE Expression and link them to all of the
ports to the ODS_EMPLOYEE Target Definition

In order to be successful, the port Datatypes


must be compatible. If the ports are out of order, but match
by name or some other pattern, consider Autolink as an
option.

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 90


Lesson 4 Revert to Saved

Reverting to a Previous Object Version

While editing an object in the Designer, if unwanted changes are made there is a way
to revert to a previously saved version undoing the changes since the last save.
This works for one transformation object or several depending on the tool. The
Revert to Saved feature works with the following objects: Sources; Targets;
Transformations; Mapplets and Mappings.

Select Edit | Revert to Saved

With mappings, if a Revert to Saved is


executed, then all changes must be reverted its not just
per selected object. However, if several mappings were
changed without a save, only the active mapping in the
Workspace would be reverted back.

To demonstrate that objects can not be reverted back


individually, remove the NAME_out and DATE_HIRED ports
from the exp_ODS_EMPLOYEE Expression
Remove the DATE_HIRED port from the sq_EMPLOYEE Source
Qualifier
With the sq_EMPLOYEE Source Qualifier being the only object
selected, select Edit | Revert to Saved

The same dialog box appears all changes


must revert back.

Individual objects may be reverted back to the


previous version without impacting objects around
it when using the Source Analyzer, Warehouse
Designer and Transformation Developer (to be
discussed later) the Mapplet (to be discussed

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 91


later) and Mapping Designers require all changes
to be reverted back to the previous version.

In the tools where individual objects may be


reverted back, a Ctrl-Click on each object (or draw
a box around those objects) would be required.
This technique may be practiced once a second
source or target definition is imported.

Lesson 5 Link Path

Tracing link paths allows the developer to highlight the path of a port either
forward or backward through an entire mapping or mapplet.

To make sure all students are on the same page, Revert to


Saved
Right-click on EMPLOYEE_ID in the sq_EMPLOYEE Source
Qualifier sq_EMPLOYEE and Select Link Path | Forward

Notice how EMPLOYEE_IDs path from


sq_EMPLOYEE all the way to ODS_EMPLOYEE is
highlighted in red

Right-click on the NAME_out port in the exp_ODS_EMPLOYEE


Expression and click Select Link Path | Both

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 92


Notice how NAME_out ports path not only
shows where it proceeds to the ODS_EMPLOYEE Target
Definition, but also from its origin all the way back to the
EMPLOYEE Source Definition. Both the FIRST_NAME and
LAST_NAME are used in the formula to produce NAME_out,
so both links are highlighted in red.

Right-click on the FIRST_NAME port in the EMPLOYEE Source


Definition and click Select Link Path | Forward

Similar to the last example, with the


FIRST_NAME going forward it doesnt stop at the
exp_ODS_EMPLOYEE Expression where the port is input
only. Because it is used in the formula to calculate the
NAME_out, the path continues to the target.

Lesson 6 Autolink by name and position

Autolink by name
Developers can automatically link ports by name in the Designer. Use
any of the following options to automatically link by name:
Link by name
Link by name and prefix
Link by name and suffix

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 93


The Designer adds links between input and output ports that have the
same name. Linking by name is case insensitive. Link by name when
using the same port names across transformations.

Revert to Saved to reset the mapping


Remove the links between the exp_ODS_EMPLOYEE
Expression and the ODS_EMPLOYEE Target Definition
From the Main Menu choose Layout | Autolink

The Autolink dialog box opens. Another


technique is right-click in the workspace and the same dialog
box will open.

By Name

Select the From Transformation from the


drop -down arrow then highlight the To Transformations.

Using the drop down list, only one transformation may be selected in
the From Transformation box and one to many transformations may
be selected in the To Transformations section. For objects that
contain groups such as Router transformations or XML targets, select
the group name from the To Transformations list.

Click OK

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 94


The Designer adds links between input and
output ports that have the same name, regardless of case.

Autolink by name and prefix or suffix

When Autolinking by name, the Designer adds links between ports that have the
same name, case insensitive. The Designer also has the ability to link ports based
on prefixes or suffixes defined. Adding Suffixes and/or Prefixes in Port Names help
identify the ports purpose. For example, a suggested best practice is to use the
suffix _out when the port is derived from input ports that were modified as it passes
through the transformation. Without this feature, Autolink would skip over the names
that dont match and force the developer to manually link the desired ports.

To link ports by name and prefix:

Delete the Links between exp_ODS_EMPLOYEE and


ODS_EMPLOYEE
Choose Layout | Autolink
Select the transformations and targets

Only one transformation can be selected in


From Transformation listing and multiple transformations
can be selected in the To Transformations list. For objects
that contain groups such as Router transformations or XML
targets, select the group name from the To
Transformations list.

Select Name radio button


Click More to view the options for entering prefixes and suffixes

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 95


Note the button toggles to become the Less
button

Type _out in selected From Transformation

This singles out all the ports with _out as a


suffix in the From Transformation, ignores the suffix and
attempts to match the name in the to the To
Transformation

Click OK and the results should look as follows

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 96


Autolink by Position

The Autolink by position links the first output port to the first input port, the
second output port to the second input port, and so forth. Use this option when
creating transformations with related ports when applicable in the same order.

The Datatype, precision and scale must be


considered when using this Autolink option. In addition, not
every port visible in the Normal View has both the input and
the output ports selected. In other words, some ports may
be required to create an output port (derived port), however,
are not needed down stream. A best practice is to uncheck
the output port of those ports deemed to be input only. It
not only gives the mapping a cleaner look, it simplifies
features like Autolink by position.

To link ports by position:

Revert to Saved to reset the mapping


Remove the links between the exp_ODS_EMPLOYEE
Expression and the ODS_EMPLOYEE Target Definition
Choose Layout | Autolink or right-click in the workspace and
select Autolink
Select the transformations and targets
Select Position

By Position

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 97


Click OK. The Designer links the first output port to the first
input port, the second output port to the second input port, and
so forth.

As noted above, ports that have incompatible


data types will not link automatically. Ports with compatible
data types will link because it does pass the validation check,
however, it is a best practice double-check the results of the
Autolink.

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 98


Lesson 7 Moving Ports

There are a couple of ways to move ports around within a transformation.


Moving ports around in a transformation may be required to see which ports are
needed for a calculation, or to group them (discussed later), or to simply line them up
with how the Target looks to see the flow of the mapping easier.

Up & Down Arrows to Move a Port


Revert to Saved to reset the mapping
Open the exp_ODS_EMPLOYEE Expression and click on the
Ports tab
Single-click on the TYPE_CODE port and move it up to the top
using the up arrow icon found in the upper right corner of
the tool bar

The results will look as follows:

Drag-and-Drop Method to Move a Port


Single-click on the number to the left of the DATE_HIRED port
Single-click and hold the left mouse button and note the faint
square that appears at the bottom of the pointer

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 99


While still holding the left mouse button, position the pointer just
below the TYPE_CODE port until a red-line appears under it

Release the mouse button and DATE_HIRED will appear below


TYPE_CODE

Click on the Cancel button to not save the changes

Lesson 8 Shortcut from Normal View to Edit Port

There is a shortcut to go from the Normal View directly to the port desired in the
Edit View this is especially useful in transformation objects that have dozens of
ports.

Prior to completing the next couple of lessons,


there is a port to be deleted from exp_ODS_EMPLOYEE
transformation in the m_ODS_Employee mapping. This is
a great opportunity to demonstrate another very useful
technique. From the previous exercise, the TYPE_CODE
should exist in the exp_ODS_EMPLOYEE transformation.

Revert to Saved to reset the mapping


Remove the links between the sq_EMPLOYEE Source Qualifier
and the exp_ODS_EMPLOYEE Expression
Resize or scroll down until the TYPE_CODE port appears in the
exp_ODS_EMPLOYEE Expression
Double-click on the TYPE_CODE port

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 100


This is the shortcut that goes directly to the
port in the Edit View

Delete the port by using the icon

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 101


Click on the OK button and the transformation objects should be
the same as below

Lesson 9 Copy Columns versus Link Columns

In the Mapping Designer, copying ports from one transformation to another is a


valuable time saver. In lieu of entering the ports manually which includes the name,
data type, precision and scale, the drag-and-drop method can be used by the
developer to create a port in the desired transformation.

The Designer includes a toggle feature to switch between Copy Columns and
Link Columns. With Copy Columns, a port may be dragged and dropped from
one transformation to another, capturing the integrity of the Name, Datatype,
Precision and Scale. With Link Columns, if the desired port does not exist in the
transformation to be linked, it will copy and link the port. If the port does exist, the
port can simply be linked. In order for the link to be established between
transformations, it must pass a validation check the Designer performs automatically.
If the validation check does not pass, the port will be copied, only, and not linked. If
only attempting to link ports the link will drop the message can be found in the
status bar at the bottom of the window.

Copy columns
Use the mouse to choose the copy columns icon

Link columns

Use the mouse to choose the link columns icon

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 102


Maneuver the transformations and adjust their sizes to all of the
ports

As a result of the previous exercise, note the


TYPE_CODE port exists in the sq_EMPLOYEE
transformation however, it does not appear as a port in the
exp_ODS_EMPLOYEE transformation

Copy Columns
Choose the copy columns by selecting Layout | Copy
Columns or the Copy Columns icon
Use the drag-and-drop method to copy the TYPE_CODE port
from the sq_EMPLOYEE Source Qualifier to the
exp_ODS_EMPLOYEE Expression

The exp_ODS_EMPLOYEE Expression displays


the TYPE_CODE port just copied from the sq_EMPLOYEE
Source Qualifier as shown above; however, in this mode no
link should have been created.

Link Columns
Choose the link columns by selecting Layout | Link Columns
or the Link Columns icon
Link the TYPE_CODE port from sq_EMPLOYEE Source Qualifier
to the exp_ODS_EMPLOYEE Expression

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 103


Copy / Link Columns

There is no mode change here the Link

Columns mode can just link ports and copy / link


ports as will be demonstrated here.

Delete the TYPE_CODE port from the exp_ODS_EMPLOYEE


Expression

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 104


Use the drag-and-drop method to copy / link the TYPE_CODE
from the sq_EMPLOYEE Source Qualifier to the
exp_ODS_EMPLOYEE Expression

Lesson 10 Create Transformation Methods

Developers can create transformations using the following Designer tools:

Mapping Designer. Create transformations that connect sources to targets.


Transformations in a mapping cannot be used in other mappings unless Developers
configure them to be reusable

Transformation Developer. Create individual transformations, called reusable


transformations that Developers can use in multiple mappings

Mapplet Designer. Create and configure a set of transformations, called


mapplets that Developers can use in multiple mappings

There are two ways to create transformations from scratch. There is the
Transformation Toolbar that includes every Informatica transformation and then there
is the menu option, Transformation | Create. When using the transformation
toolbar developers will be able to click and drop transformations to a desired location
in the workspace and it will also give it a default name. The Transformation |
Create option forces the developer to select the desired transformation from a drop
down list and the name must be typed in before the Designer creates the
transformation.

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 105


Transformation Toolbar Method

Revert to Saved to reset the mapping


On the Transformation toolbar, find the Aggregator
Transformation icon and single-click

Note when the mouse pointer hovers over a


transformation icon in the toolbar that the name of the
transformation object appears momentarily. In addition,
some transformations will be shadowed meaning the
transformation object is not available in the selected tool
(e.g. Transformation Developer, Mapplet or Mapping
Designer).

Drag the mouse into the workspace

Note the arrow changes to crosshairs while in


the workspace.

Pick a location where the transformation should appear and


single-click again

The selected transformation appears in the


desired location of the workspace and the crosshairs change
back to the arrow. The object has a default name that
should be changed for easy identification during a debug run.

Transformation Menu Method


Select Transformation| Create

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 106


Select the Aggregator from the drop down list

Select Create and give it the name agg_TargetTableName


Click on the Done button and the new transformation appears in
the workspace

Lesson 11 Zoom and scale-to-fit

A mapping may be difficult to view in the workspace and the developer may
want to change the magnification to see it better. Below are the features and
techniques to adjust the magnification.

Revert to Saved to reset the mapping

Zoom Out by using the Toolbar Option

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 107


There are features to change the magnification
of the contents of the workspace. Use the toolbar or the
Layout menu options to set zoom levels. The toolbar has the
following zoom options:

Zoom in based on rectangle Drop down list

Scale to fit

Zoom in by 10% button Zoom out by 10% button

Zoom in 10% on button


Uses a point selected as the center point from which to increase
the current magnification in 10 percent increments

Zoom out 10% on button. Uses a point


selected as the center point from which to decrease the
current magnification in 10 percent increments

Click on the Zoom Out 10% on button on the toolbar


Click anywhere in the workspace and the mapping will zoom out
by 10% each time the mouse is clicked
Keep clicking until the mapping is small enough to fit within the
window

Zoom In by using the Toolbar Option

Zoom in 10% on button increases the


current magnification of a rectangular area selected. Degree
of magnification depends on the size of the area selected,
workspace size, and current magnification

Click on the Zoom In 10% on button on the toolbar

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 108


Click anywhere in the workspace and the mapping will zoom in
by 10% each time the mouse is clicked.

A developer can also zoom in or out by right


clicking in the mapping designer and clicking on zoom in or
zoom out by the same 10% increments

Scale to Fit

Scale all objects to fit in the workspace

Toggle off the Zoom In 10% on button


Click on the Scale to Fit icon in the toolbar

Two other options are to 1) select the menu


option, Layout | Scale to Fit or 2) Right-click anywhere in
the workspace and choose Scale to Fit.

Layout Menu Options


The layout menu has the following Zoom options

Zoom in Based on Rectangle

Zoom in based on rectangle increases the


current magnification of a rectangular area selected. Degree
of magnification depends on the size of the area selected,
workspace size, and current magnification.

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 109


Zoom Center

Zoom Center maintains the center point of the


workspace and zooms in or out by 10 percent increments.

Zoom Point

Zoom Point uses a point selected as the center


point from which to zoom in or out by 10 percent increments.

Zoom Rectangle

Zoom Rectangle increases the current


magnification of a rectangular area selected. Degree of
magnification depends on the size of the area selected,
workspace size, and current magnification.

Zoom Normal

Zoom Normal. Sets the zoom level to 100


percent.

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 110


Zoom Percent

Zoom Percent. Select the desired percent and


Zoom in or out by that percent

Lesson 12 Designer Options

As mentioned in Lab Guidelines, screen shots


are based on columns that are not selected by default. All of
the transformation objects used in this course have the
following columns selected: Name, Datatype and
Length/Precision. Others will include Expression.

Select Tools | Options


Click on the Table Tab
For the Source and Target, select Key Types, Name,
Datatype, Length/Precision
For the Source Qualifier, Update Strategy, Filter, Lookup,
Joiner, Router, Mapplet and Sorter select Name, Datatype,
Length/Precision
For the Expression and Aggregator select Name,
Expression, Datatype, Length/Precision

Informatica PowerMart / PowerCenter 6 Basics Lab 7 Features and Techniques I 111


Lab
8
4

LAB 8 THE DEBUGGER

PURPOSE
Troubleshoot a mapping that is not producing correct data
results. A fellow developer (student) has produced the same
m_ODS_EMPLOYEE_xx mapping created in Lab 4. The
mapping is valid. However, when the mapping is executed it is
not producing correct results. Obtain a copy of the mapping
then run a debug session to determine where the mapping errors
are

OBJECTIVES
Learn to use and apply the Informatica Debugger

DURATION
20 minutes

Review the Problem


The mapping created by the other developer produces database results
as follows:

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 113


The results of the mapping should be the same as the expected results
obtained in Lab 4:

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 114


The missing TYPE_CODES in the results above
are Nulls. To verify, use the Preview Data feature on the
ODS_EMPLOYEE target within the Designer to see the
values.

Prepare Designer
These first steps will be to setup the Mapping Designer. Some of the
steps may not be necessary because the Designer may still be open
from the previous exercise.

Open Designer and connect to the Repository PC_Course


Repository
Open the assigned Studentxx folder

Clear Workspace

At the beginning of each new development


project (or Lab) it is a good practice to clear any unneeded
objects from the Source Analyzer or Warehouse Designer
Workspace (e.g. - from a previous project that will no longer

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 115


be needed). If the objects are not cleared, they may simply
be unnecessary clutter in the Workspace. If the Workspace
in both tools is already clear, skip the following four steps.

The last tool present (Source Analyzer, Warehouse Designer,


Mapping Designer, etc.) will have opened. If the Source
Analyzer is not present in the work area, select it via the toolbar

Right-click and select Clear All to clear the Workspace

Change to the Warehouse Designer


Clear the Workspace via the same method

Close Mapping
A good practice to set up for any new development assignment (in this
case, a lab) is to close the previously opened mapping.

Change the Workspace to Mapping Designer as described in the


flagged step Open the Mapping Designer on page 33Recent
Mappings
List

Locate the Recent Mapping list immediately above the Mapping


Designer Workspace. If the mapping name is present in the
Recent Mappings drop-down list, then it is still open. If not,
skip to the Copy Mapping Step

The Recent Mapping list holds the mappings


that have been opened since the last time the folder was
closed (disconnected). A folder can be closed in several ways
(e.g. Closing the Designer or Disconnecting from the
repository or the folder) any of which will net the same
effect.

Close the mapping by using one of the following methods:


Select Mappings | Close; or
Click on the Close Mapping icon in the Toolbar

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 116


If a mapping is not closed prior to building a
new mapping or viewing another in the Workspace, the
Designer will prompt whether or not to close the current one.

If any changes were made to the mapping and not saved


before opening or creating another, the Designer will NOT
prompt to save changes until the folder is closed. Once a
repository save is performed, any mappings that were
opened in the Workspace and changed will be saved it
does not have to be performed individually. Anything saved
will appear in the Output window.

Copy Mapping Setup


The first step will be to obtain access to the errant mapping and make
a copy of it to the assigned Studentxx folder.
Make sure the Workbook tab is
selected from View | Workbook. It
should look depressed. When
depressed, the bottom of the Workspace
will display all of the open folders the
only folder that should be opened is the
assigned Studentxx

Locate the Shared_Student folder in


the Navigator window and expand it by
clicking on the + sign to the left of the folder name

If the Shared_Student folder appears as


another Workbook tab next to the assigned Studentxx
folder:

This tab
should
not be
visible

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 117


Then the folder was opened in error per the
instructions Please close (disconnect) by right
clicking on the Shared_Student folder in the
Navigator window and select Disconnect.

Opening the folder when there is no intent to


add or change anything within it is not a best
practice because it is easy to perform work in the
wrong folder (Workspace) if not careful.

Refer to the Key Concept Open Folder versus


Expanded Folder, in the flagged step Open
Folder on page 15.

Continue to drill down to the Mappings node in the same


fashion as the folder and select the m_ODS_EMPLOYEE_BAD
mapping

Copy Mapping Edit | Copy or Ctrl-c Method


Copy the mapping by doing one of the following:
Select Edit | Copy; or
Ctrl-C

The m_ODS_EMPLOYEE_BAD mapping is in


the Windows clipboard

Paste the mapping by selecting the assigned Studentxx folder


and doing one of the following:
Select Edit | Paste; or
Ctrl-V

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 118


The Designer displays the message to confirm
the copy. Before proceeding, there is one other technique to
practice.

Copy Mapping Mappings | Copy As Method


Select the No button to practice another method to copy
mappings
Verify the Studentxx folder is active in the Workspace (or by
viewing the Open Folder List see below)

Select the Mapping Designer

In the Navigator Window, single-click the


m_ODS_EMPLOYEE_BAD mapping from the Shared_Student
folder
Select Mappings | Copy As

Type in the name, m_ODS_EMPLOYEE_BAD_xx, and click OK

The mapping is copied to the Studentxx


Folder. There is one more method to try, so adding the
mapping will not be saved at this point.

Click on the assigned Studentxx Folder


Click on the Disconnect icon
Click on the No button to not save changes

Copy Mapping Drag and Drop Method

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 119


Verify the Studentxx folder is active in the Workspace (or by
viewing the Open Folder List see below)

Select the Mapping Designer

In the Navigator Window, drag the m_ODS_EMPLOYEE_BAD


mapping from the Shared_Student folder to the Workspace
(DONT DROP YET) note the shortcut icon

as it enters the Workspace


Click and hold the Ctrl key and note the copy icon

while in the Workspace


Drop the mapping

This exercise requires the Ctrl key because the


object is coming from a shared folder one that allows
shortcuts. Whenever an object is dragged from a shared
folder to another, it is assumed that a shortcut is desired.

An analogy is the Windows standard when using


Explorer to copy a file if the file is an executable
(.exe), then it assumes a shortcut is desired. The
Ctrl key, in both cases, changes it from a shortcut
to a copy.

As previously stated, the key here is pay close


attention to the object that is anchored to the
arrow.

If the anchor is dark arrow pointing to the upper


right, then the action will create a shortcut. While

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 120


holding the Ctrl key, the anchor turns into a +
sign which indicates a copy.

Regardless of which action is taken, the Designer


provides a dialog box to confirm:

So, if is says Create a shortcut, then try again

After selecting Yes to confirm the copy, two more decision dialog
boxes appear. Select Reuse for both:

And

When copying a mapping, the mapping itself is


not the only object that appears in the target folders
mapping node. Any object that exists in the original mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 121


that was pulled from other nodes such as the Sources and
Targets nodes (other nodes to be discussed later) will be
checked for duplicate names in the corresponding nodes
where the mapping is being copied; hence, the decision
boxes.

Collapse the Shared_Student folder (click on the - to the left


of the folder name in the Navigator window)
Save

Open Mapping
In order to run the Debugger, the mapping to be debugged must be
open in the Mapping Designer. It may already be open based on how
it was copied into the assigned Studentxx folder from the previous
step. Check for the name m_ODS_EMPLOYEE_BAD in the recent
mapping list:

If not listed in the recent mapping list, then do as follows:


In the Navigator window, locate the m_ODS_EMPLOYEE_BAD
mapping (just copied) in the mapping node of the Studentxx
folder
Click and hold the mouse button, then drag-and-drop the
mapping into the Workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 122


Notice the Open this mapping message in the status bar. Look to the status bar for
other useful information as these sorts of tasks are being performed.

Edit Mapping
Change the name of the m_ODS_EMPLOYEE_BAD mapping to
include the student assigned number to keep it unique consequently
it will have a unique session name and session log by default.
Select Mappings | Edit. The Edit Mappings dialog box opens

Change the mapping name to m_ODS_EMPLOYEE_BAD_xx


(xx represents the assigned student number)
Save

Arrange Mapping
Right-click in the Workspace
Select Arrange.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 123


Select the ODS_EMPLOYEE target instance listed, click the
Iconic checkbox and click the OK button

Activate the Debugger Toolbar

Before proceeding, there is the Debugger toolbar


that, by default, is not selected upon the
PowerCenter client tool installation that looks as
follows:

To add it, select Tools | Customize and check


the Debugger checkbox on the Toolbars Tab.

Start Debugger

Start the Debugger by doing one of the following:


Click on the Start Debugger icon; or
Select Mappings | Debugger | Start Debugger; or
Press the F9 key

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 124


Click on the Next button. The next Debug Mapping Wizard page
appears

Server Select
List

Instruct the
Debugger
Server to
Create a Debug
Session

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 125


Leave PC_Server as the Server to use for the debug Session
the default Server displayed on the pull-down list
In the Session box, leave the default, Create a debug session
instance for this mapping, radio button selected
Click on the Next button

The Debugger spawns a server process, hence


the selection of the PC_Server server. Since no session has
been created to represent this new mapping, the Debug
Mapping Wizard has the ability to create one on the fly. This
is especially useful when testing complex expressions and
logic before trying to create a Workflow with a Session task.

Since the Session is being created on the fly,


the Debugger needs to setup minimum parameters required
for execution.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 126


Select the same native connections used for the run of the
Workflow in the flagged step Edit Session Task on page 60
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select the Properties tab
at the bottom and select Normal for Target load type

Click on the Next button to proceed


Leave the default settings on this page of the Wizard and click
on the Next> button

On the last page of the Wizard (not shown), leave the check in
the Discard target data checkbox.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 127


This option will take the data to the database to
check for errors, but will not commit the rows

Click on the Finish button and wait for the spinning

(initializing) of the Debugger icon to stop before


proceeding

Look in the upper right corner of the Debugger.


The initialization process may take several seconds.

Rotate position of
the Instance
windows if desired
via drag and drop
method

Target Instance Window: Instance Window:


Debugger Real-time Final data rows will appear Data Rows will appear
Server Log Session Log

Click on the Session Log tab to watch the Real-Time log creation

When running the Debugger, there are two


very important logs, the Debugger and Session Logs, to view
in the Output window. They may be hidden and some size
adjustments may need to be made to the Output window to

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 128


see it. Move the log window using the Double-vertical bars
on its left side, and stretch it to make that Debugger and
Session Log tabs visible. If that doesnt do the trick, then
the scroll bar may be in the way that, too, may need
adjustment. Click on the Session Log tab to watch the Real-
Time log creation:

Furthermore, developers have a choice to position


the windows in any of the three slots or undocked.
Click up near the header (title) of the window and
drag to the left or right to position them or hold
the Ctrl key to prevent docking:

The Debugger toolbar will come become active when in debug mode.

Next Instance vs. Step to Instance

Once a starting point (transformation) for the debug process is selected, the Next
Instance icon allows the user to follow a row through each transformation in the
mapping. The Debugger will then proceed to the next row and follow it through each
transformation.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 129


Think of the two squares in the Next Instance icon as representing
transformations, and a row stepping from one transformation to the next.

The Step to Instance icon allows the user to examine one transformation at a
time, following one-row-after-another through the same transformation.

Think of the picture in the Step to Instance icon representing steps as if


stepping down to the next row, in the same transformation.

Debug Mapping
There are errors in the mapping. Select a transformation to serve as a
starting point for the debugging:
Select the sq_EMPLOYEE Source Qualifier in the mapping.

Click on the Next Instance icon (or F10) to start the


movement row through the Debugger

Notice the large Yellow arrow that appears on


the Source Qualifier, sq_EMPLOYEE. This shows the focus
of the debug action.

The smaller green arrow displaying a flashing yellow on the


bottom of the Source Qualifier will continue to flash as long as
rows are being read
Continue to press F10 and notice the focus of the debug change
as row-by-row, each row moves from the sq_EMPLOYEE to the
exp_ODS_EMPLOYEE
Examine the data in the Instance window and notice the pull-
down list can be used to see a row in either of the two
transformations in the mapping

Flipping back and forth between the


sq_EMPLOYEE and the exp_ODS_EMPLOYEE shows how
the data has been transformed. If it appears to be different

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 130


records, then the Next Instance F10 needs to be pressed
again to see the same row as it moves into the
exp_ODS_EMPLOYEE then flip back and forth to see how
the record is transformed.

Try the Step to Instance (Ctrl-F10) and watch each row


through one transformation
Compare the data from one transformation to the next and
determine where the mapping errors are

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 131


Stop the Debugger
Once a decision has been made on where data mapping has gone
wrong, stop the Debugger:
Click on the Stop the Debugger icon. The Designer will ask
for confirmation:

Click on Yes. The Debugger Server will shutdown and return to


the normal Mapping Designer Workspace

Examine the mapping to see if the anticipated errors


exist. It is not necessary to correct the mapping for this exercise. It was
introduced to encourage its use for the remaining exercises to assist the
learning process.

Debugger Breakpoints

Restart Debugger using exactly the same selections all the way
to initialization (refer to the flagged steps Start Debugger on
page 124)
Click on the Edit Breakpoint icon
Select the sq_EMPLOYEE for the Instance Name at the top of
the Edit Breakpoints dialog box
Click on the Add button in the Breakpoints: section towards
the bottom of the dialog box
Click on the Add a new column to this table icon in the
Condition section in the middle of the dialog box
Select <<ANY-PORT>> in the Ports Drop down list
Select ISNULL as the Operator

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 132


Double check the parameters above and click OK to save the
breakpoint
Click the Continue button

The Debugger will run through all of the rows


until the first occurrence of a NULL is present. Note that two
rows pass to the Target and then stops. With the
sq_EMPLOYEE as the Instance, note the TYPE_CODE is
NULL there is a check in the NULL checkbox on the left.

Click the Continue button, again

Ten rows enter the target and the debugger


stops. Again, the TYPE_CODE is NULL.

Click the Continue button, once again

NULL is not found in any other row all rows


continue to the target.

Click the Continue button, yet again for a final time, and the
Debugger stops
Edit the Breakpoints

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 133


Note the defined breakpoint is still present.
Breakpoints may be edited even when the Debugger is not
running. When a repository save is performed, any
breakpoints defined will remain associated with the mapping
until they are deleted.

Add additional breakpoints and experiment

Breakpoints may also be deactivated without


being deleted there is a checkbox to the left of the
breakpoint. To see all of the Breakpoints, make sure All
Instances is selected at the top of the Edit Breakpoints
Dialog box from there it will be easier to determine which
Breakpoints are needed for the debug run.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 134


Lab
9

LAB 9 FLAT FILE WIZARD AND FILTER

PURPOSE
Load a Time ODS Table. This table will contain filtered time data
based on an Instructor-defined date

OBJECTIVE
Perform Source Analysis of a Flat File using the Flat File Wizard
Learn to use the Filter Transformation

DURATION
30 minutes

SUMMARY

Analyze a Flat File source

In Designer, open the folder and open the Source Analyzer by


clicking the Source Analyzer Icon or by selecting Tools |
Source Analyzer

Flat File Wizard

Wherever a source flat file is located (Windows or UNIX) its definition must be
imported into the repository via the Source Analyzer in the Designer tool.

The definition for Flat Files may be imported into the Repository from local, mapped,
or NFS mounted drives. If a flat file is on UNIX, then it is suggested to copy it via
FTP to either a local or mapped drive (Windows-based operating system). When the

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 135
Session Task in the Workflow runs, the file will be read from the UNIX directory in
which it is physically located.

Once the file definition is in the repository, it can be discarded from the local or
mapped drive because the Informatica PowerCenter Server will not look to client
workstation for location information. When running a Session Task, always think
about the location of the file from the Informatica PowerCenter Servers perspective
never from the client workstation.

Select Sources | Import From File


Change the Files of type: to All Files (*.*), locate the
directory (Instructor will provide location, and import the Flat
File, TIME.txt.

Select Delimited
Click on Import Field Names From First Line

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 136
Import field
names from first
line

The first row in the TIME.txt flat file contains


the column names. When the option is checked, it
automatically starts the import at row 2 and assumes that
future extracts will start at row 2. This, of course, can be
changed if necessary without using the wizard (e.g. If the
first extract contained column names which is helpful to the
developers who need to know but future extracts do not,
then this can be changed back to import from the 1st row.)

Click Next
Make sure that Comma is set under the Delimiters section and
the text Qualifier should be set to Double Quotes

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 137
Click Next
By importing the field names from the first line (Step 1), the port
names have already been created. No other modifications are
necessary

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 138
The Wizard takes a best guess at the Datatype,
length and width based on the first 500 rows.

Refer to Importing Flat Files in the Designer


Guide.

Click Finish

The Source Definition should look as follows. If


any discrepancies exist, edit the Flat File definition and make
the necessary changes. Otherwise, for practice, delete the
definition, save the repository (Ctrl-s) and repeat the Flat
File Wizard Steps 1 - 3.

Save the Repository by Ctrl-s or clicking Repository | Save

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 139
Import Target Table
Open the Warehouse Designer by clicking the Warehouse
Designer icon on the toolbar
Click on Targets | Import From Database
Connect to your Target ODBC (tdbuxx - where xx is your
student number)
Expand the TDBU schema and TABLES folder
Select ODS_TIME
Click OK
The ODS_TIME Target Transformation should look as follows. If
any discrepancies exist, let your Instructor know

Save the Repository by Ctrl-s or clicking Repository | Save

Create Mapping
Create a new mapping called m_ODS_TIME_xx (refer to the
flagged step Create the Mapping on page 34)

When creating a new mapping, the Designer


will prompt whether or not to close the current mapping in
the workspace. Click on the Yes button when the prompted.

Add Source and Target Transformations


From the FlatFile database name under the Sources node,
drag-and-drop TIME Source definition, into the Mapping
Designer Workspace

Of course, the FlatFile database is not really a


database, however, this is the chosen terminology in how
Source Definitions are grouped.

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 140
From the Targets node, drag-and-drop ODS_TIME into the
Mapping Designer Workspace

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 141
Create Expression Transformation

Create an Expression Transformation (refer to the flagged step


Create the Expression Transformation on page 40)

Going forward, when there is a picture below a Step Title (e.g. Create
Expression Transformation), it reflects how the object should appear upon completion
of the step. When transformations are linked, it will show the previous transformation
and which columns are linked, input/output ports, etc. The bullets provide the details
necessary to complete the entire step.

Furthermore, the learning process should be in full swing and the steps will become
more vague expecting that tasks have been learned. As the instructor stated, the
rule of thumb is the first time step has been introduced in detail, the second time
there is reference back to it and finally, the third time and beyond it is expected to
have been learned.

Select all ports within the sq_TIME transformation, then drag-


and-drop the cursor to the Expression Transformation just
created

If the links do not appear, chances are Copy


Columns rather than Link Columns was selected. See
flagged step Copy Columns and Link Columns on page 102

Double-click on the header bar of the Expression Transformation


to go into edit mode
On the Transformation Tab, to the right of the EXPTRANS
name, click on the Rename button
Type in exp_ODS_TIME and click the OK button

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 142
Click on the Apply button
Click on the Ports tab

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 143
Highlight the third port, Quarter, then add the following ports,
each by clicking the Add Port button

PORT DATATYPE LENGTH PORT


TYPE
DATE_ID date/timestamp 19 (default) Output
Only
MONTH_out string 3 Output Only
QUARTER_out string 2 Output Only
YEAR_out string 4 Output
Only

An expression will be needed for each of the above ports. Open the
expression editor and add expressions for each port as follows (See
flagged step Create an Expression on page 44).

As mentioned earlier, formulas can be typed in


manually, however, its recommended to use the tabs in the
Expression Editors Navigator Window to build them. Select
the required functions (TO_DATE and SUBSTR) and ports
(Date and Quarter) from their respective tabs when building
these four separate expressions. This is a best practice,
especially, when building complex expressions with nested
functions using multiple ports. It will make debugging
expressions easier.

PORT FORMULA
DATE_ID TO_DATE(DATE,DD-MON-YYYY)
MONTH_out SUBSTR(DATE,4,3)
QUARTER_out SUBSTR(QUARTER,6,1)
YEAR_out SUBSTR(QUARTER,1,4)

Change the ports DATE and QUARTER to input ports only


Examine the Ports Tab of the exp_ODS_TIME Expression it
should resemble as follows:

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 144
Click on the OK button

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 145
Create Filter Transformation

Click on the Filter Transformation icon on the Transformation


toolbar

Drag the pointer, which now appears as crosshairs , into the


Workspace window to the right of the exp_ODS_TIME Expression
Single-click (or, click-and-drag, which will draw a box, then
release)
Drag and drop the following ports from exp_ODS_TIME to the
FILTRANS window:
DATE_ID
DAY_OF_WEEK
MONTH_out
QUARTER_out
YEAR_out
Double-click on the Filter Transformation
Under the Transformation tab click the Rename button and
enter fil_ODS_TIME
Click on the Ports tab and remove the _out from each of the
three ports (before = aft):
MONTH_out = MONTH
QUARTER_out = QUARTER
YEAR_out = YEAR
Click on the Properties tab

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 146
Click on the arrow on line 1 (Filter Condition) to the far right in
the Value column to open the Expression Editor
Click here to open
Expression Editor

To specify the Filter Condition, highlight TRUE and then press


the delete key to remove the default condition
Click on the Ports Tab in the Navigator Window
Double-click on DATE_ID under the fil_ODS_TIME
transformation
Click the greater than or equals button on the Operator
Keypad
Click the Functions Tab, expand the Conversion folder and
double-click on To_Date
To complete the expression, type '12/04/1999', 'MM/DD/YYYY'
between the parentheses. The final expression should look as
follows:

DATE_ID >=TO_DATE('12/04/1999', 'MM/DD/YYYY')

Click on the Validate button to validate the filter condition


Click OK to save changes

Link Target Transformation

Use the Autolink by Name or Position feature to link the


transformation objects. Select fil_ODS_TIME for the From
Transformation and ODS_TIME for the To Transformations.

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 147
Click OK. All ports should be linked between these two
transformations (shown above)
Validate the mapping by selecting Mapping |Validate

Remember to view the Validate Tab in the


Output window for the results.

Save

Completed Mapping

Create Workflow

Complete the following steps (refer to Start Workflow Manager on page


53)
Start Workflow Manager
Connect to Repository
Open Folder

Create Workflow, wf_ODS_TIME_xx, via Workflows | Create


Edit wf_ODS_TIME_xx Workflow:
Properties tab, add the wf_ODS_TIME_xx.log as the
Workflow Log File Name

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 148
Metadata Extensions tab, add creation date and your
name in the respective reusable metadata extensions
Edit Start Task:
Rename Start task to start_ODS_TIME
Create Session Task called s_m_ODS_TIME_xx
Edit s_m_ODS_TIME_xx session
Task Sources/Properties tab, verify Source filename
is time.txt
Task Targets/Connections tab, select
native_target_xx for ODS_TIME target table
Targets (top)/Properties (bottom), check Truncate
target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2 - Targets/Properties tab,
select Normal for Target load type
Link start_ODS_TIME to s_m_ODS_TIME_xx Session Task
Save, Validate and Start Workflow from Selected Task,
start_ODS_TIME
Monitor and Review the results for s_m_ODS_TIME_xx in the
Workflow Monitor

Results Session Properties


By using the date 12/04/1999, the ODS_TIME_xx table should
contain 1489 rows.

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 149
Expected
Results

Results Session Transformation Statistics

Results Preview Data


Use the Preview Data option in the Designer to preview Target Data
Return to the Designer and either go to:
Mapping Designer; or
Warehouse Designer
Right-click on ODS_TIME target definition and select Preview
Data

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 150
The above dialog box is similar to the ones used to connect to the
source and target database. In this case the connection needs to be
made to the target database. Login to the target database in the same
manner; refer to the flagged step Analyze Source Definitions on
page 19.

Select the odbc_target ODBC data source connection from the


pull-down list
Enter the Username and Password assigned by the Instructor
should be tdbuxx / tdbuxx (username / password)
Click on Connect and the results appear in the bottom half of
the dialog box. The default number of returned rows is 100,
however, for the exercises going forward, only the first few rows
will be shown in the Results sections.

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 151
Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 152
Lab
10

LAB 10 HETEROGENEOUS JOIN

PURPOSE
The purpose of this lab is to populate a fact table by joining a flat
file and a relational table. The flat file has orders to vendors
data for products and supplies. The product table has data on
the make and model name, the vendor that supplies the product,
and the cost. We want to load an ODS table with the costs
summarized by date, product and vendor. This will be the raw
data that will be used to populate the fact table.

OBJECTIVE
Learn how to perform a heterogeneous join using the Joiner
transformation
Learn how to aggregate data using the Aggregator
Transformation

DURATION
35 minutes

SUMMARY

SOURCES: PRODUCT table, ORDER flat file


TARGET: ODS_ORDER_AMOUNT table

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 153


Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 154
Import Sources

Clear Source Analyzer Workspace (Right-click anywhere in the


Workspace and select Clear All)
Continue to work in the assigned student folder and import tab
delimited flat file, ORDER.txt. The first row includes the field
names, so check the Import Field Names From First Line box
(see flagged step Analyze a Flat file source on page 135)
Import relational table, PRODUCT
Save Repository

Import Target
Clear Warehouse Designer Workspace (Right-click anywhere in
the Workspace and select Clear All)
Import the relational database target, ODS_ORDER_AMOUNT
Save Repository

Create Mapping
Create a mapping called m_ODS_ORDER_AMOUNT_xx

No more hints on how to create a mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 155


Add Sources and Target

Add both order and product source definitions with their


respective Source Qualifiers

Make sure each source has its own Source


Qualifier; if they do not, then they will have to be created
manually. Refer to Lab 4 on page 33.

Add target definition, ODS_ORDER _AMOUNT

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 156


Save the mapping

Click on the Navigator window and Output


window toggle buttons which are located next to folder name
as seen below, to minimize these two windows.

Navigator Output
Window Window
Toggle Button Toggle Button

This will expand the Workspace, which will make it


easier to work with all of the mapping objects.

The Output Window will automatically reappear when


information is added (e.g. Saving the repository or Mapping
Validation)

Create Joiner Transformation

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 157


While a Source Qualifier transformation can join data originating from a common
source database, the Joiner transformation joins two related heterogeneous sources
residing in different locations or file systems. The combination of sources can be
varied. The following sources are allowed:

Two relational tables existing in separate databases

Two flat files in potentially different file systems

Two different ODBC sources

Two instances of the same XML source

A relational table and a flat file source

A relational table and an XML source

Create Joiner Transformation and name it


jnr_ODS_ORDER_AMOUNT

The Joiner Transformation can only join two disparate (heterogeneous)


sources. If three or more heterogeneous sources are needed to complete the
mapping, then multiple Joiner transformations will be needed and they will be
nested the results from one Joiner will be passed on to the next and so forth. In
addition, the Joiner needs a minimum of two ports, one from each source to create a
join condition. Those two ports must be compatible data types and length to for the
join condition to be successful.

One of the two sources in each Joiner must be deemed the Master and the other, by
default, will become the Detail. The Master is designated by the M port attribute,
and is essentially cached to memory. If not enough memory is allocated on the
Properties tab (discussed later in the course) then the spillover will cache to disk and
ultimately degrade performance. To determine which source should be the Master, it
is recommended to choose the smaller (total bytes; not necessarily rows) of the two
since it will take less time and use less system resources to cache. To calculate
which source will cache less between the two, factor in the number of ports, their
respective data types, precision and scale and THEN, multiply that by the expected
number of rows.

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 158


Port Precision
(Width) for:
Ports PRODUCT ORDER
PRODUCT_CODE 10
VENDOR_ID 10
PRICE 10
COST 10
ORDER_DATE 11
PRODUCT 10
QUANTITY 1

Total Port Width 40 22


Total Rows 80 200

Port Width x Rows 3200 4400

Add the following ports to jnr_ODS_ORDER_AMOUNT from:


sq_PRODUCT (PRODUCT_CODE, VENDOR_ID,
PRICE, COST)
sq_ORDER (ORDER_DATE, PRODUCT, QUANTITY)
Edit jnr_ODS_ORDER_AMOUNT Ports tab, select the ports
from the Product as the Master
On the ports tab, increase size of PRODUCT port to a precision
of 10.
On the Condition tab, add one condition where PRODUCT_CODE =
PRODUCT by clicking on the Add a new condition button
On the Properties tab, confirm the Join Type is Normal

There are several different Join Types available


to choose. There is the Normal Join (inner),
Master Outer Join (left), Detail Outer Join
(right), and Full Outer Join. See Defining the
Join Type in Chapter 6 of the Transformation
Guide.

Save the mapping

Create Expression Transformation

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 159


Create an Expression Transformation called exp_ORDER_DATE
Copy/Link ORDER_DATE port from the
jnr_ODS_ORDER_AMOUNT to exp_ORDER_DATE
Rename ORDER_DATE port to ORDER_DATE_in
Add a new port called ORDER_DATE_out with the Datatype,
date/time
Create an expression as follows:
TO_DATE(ORDER_DATE_in, 'DD-MON-YYYY')

Create Aggregator Transformation

The Aggregator transformation allows aggregate calculations, such as averages


and sums. The Aggregator transformation is unlike the Expression transformation, in
that it can be used to perform calculations on groups. The Expression transformation
permits calculations on a row-by-row basis only.

Create an Aggregator Transformation ( icon) and name it


agg_ODS_ORDER_AMOUNT
Add the ORDER_DATE_out port from the exp_ORDER_DATE
to the agg_ODS_ORDER_AMOUNT

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 160


Add the following ports from jnr_ODS_ORDER_AMOUNT to
agg_ODS_ORDER_AMOUNT and arrange them in this
specified order following the ORDER_DATE_out port:

PRODUCT_CODE, VENDOR_ID, PRICE, COST, QUANTITY

It is important to specify how to group the data


to do aggregate calculations. The group by ports can be
input, output, or variable ports. To define a group, check the
GroupBy checkbox for each port required on the Ports tab in
the aggregator. The order of the ports from top to bottom
determines the group by orders, so move them around if
necessary.

In addition, when grouping data the last row of


each group is output, unless otherwise specified in
an Aggregator Expression. The Expression
section of the port will be enabled, turn white and
logic can be inserted in the Expression Editor
section of the port for output and variable ports

Rename ORDER_DATE_out to ORDER_DATE


Edit agg_ODS_ORDER_AMOUNT Ports tab, group the data
by:
ORDER_DATE
PRODUCT_CODE
VENDOR_ID
On the Ports tab, append _in to the QUANTITY port. The end
result will be QUANTITY_in. In addition, make this an Input
only port by turning off the Output port
On the Ports tab, create an output port called QUANTITY_out
with a Datatype of integer
Build an expression should result in the sum of the
QUANTITY_in

SUM(QUANTITY_in)

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 161


Save the mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 162


Link Target Definition

Use the Autolink feature to link agg_ODS_ORDER_AMOUNT


to ODS_ORDER_AMOUNT. All of the port names are the same
as the target except QUANTITY_out. Try By Name with _out
in the From Transformation Suffix for practice and click on the
OK button (see flagged step Autolink by Name on page 93)

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 163


Completed Mapping

Save the mapping and check for validation information on the


Save tab in the output area. If valid, proceed to the Workflow
Manager.

Create Workflow

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 164


Create Workflow called wf_ODS_ORDER_AMOUNT_xx
Add wf_ODS_ORDER_AMOUNT_xx.log as the Workflow Log File
Name
Add creation date and your name in the respective reusable
metadata extensions
Rename Start task to start_ODS_ORDER_AMOUNT
Create Session Task called s_m_ODS_ORDER_AMOUNT_xx
Select native_source connection for sq_PRODUCT source
instance
Verify Source filename is order.txt (Properties tab)
Select native_target_xx connection for
ODS_ORDER_AMOUNT target instance
Check property Truncate target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property
Link start_ODS_ORDER_AMOUNT to
s_m_ODS_ORDER_AMOUNT_xx
Save, Validate and Start Workflow
wf_ODS_ORDER_AMOUNT_xx
Monitor and Review the results for
s_m_ODS_ORDER_AMOUNT_xx in the Workflow Monitor

Results Session Properties

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 165


Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 166
Results Session Transformation Statistics

Results Preview Data

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 167


Lab
11

LAB 11 SORTER

PURPOSE
The purpose of this lab is to populate an ODS table by joining a
flat file and a relational table. Its the same table as the
previous lab, however, assuming there is a large amount of data
broken down into several groups, the data will flow through the
mapping much faster through the Aggregator if the data is
sorted. Since the data is not coming, solely, from a relational
source, grouping the data in the Source Qualifier will serve very
little purpose. The addition of the Sorter Transformation and a
property in the Aggregator has the potential to significantly
enhance performance.

OBJECTIVE
Reiterate the Copy Mapping Process
Learn how to use the Sorter Transformation
Learn the purpose of the Aggregator Transformations Sorted
Input property

DURATION
20 minutes

SUMMARY

SOURCES: PRODUCT table, ORDER flat file


TARGET: ODS_ORDER_AMOUNT table

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 169


Copy Mapping
The first step will be to copy the previous mapping
Copy the mapping m_ODS_ORDER_AMOUNT_xx (See
flagged step Copy Mapping on page 117) and name it
m_ODS_ORDER_AMOUNT_sorter_xx
Open m_ODS_ORDER_AMOUNT_sorter_xx mapping in the
Workspace
Save

Create Sorter Transformation

Create a Sorter transformation and name it


srt_ODS_ORDER_AMOUNT
Add ORDER_DATE_out port from exp_ORDER_DATE
Add QUANTITY, PRODUCT_CODE, VENDOR_ID, PRICE and
COST ports

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 170


When inserting another transformation between
transformations that are already linked it is easier to get a
visual of what ports need to go where. So, rather than
removing the input links from the
agg_ODS_ORDER_AMOUNT transformation, add the links
to the one that needs them, first.

Rename ORDER_DATE_out to ORDER_DATE


Check the key check box for the ORDER_DATE,
PRODUCT_CODE, VENDOR_ID ports and make sure the ports
are in that order

The intent is to match the grouping in the


Aggregator

Save

Remove Links
Remove all input links to agg_ODS_ORDER_AMOUNT

This will be the location where the Sorter


Transformation will be inserted

Add Links

Autolink by name srt_ODS_ORDER_AMOUNT to


agg_ODS_ORDER_AMOUNT
Manually link QUANTITY from srt_ODS_ORDER_AMOUNT to
QUANTITY_in in agg_ODS_ORDER_AMOUNT
Save

Set Sorted Input Property

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 171


Since the Sorter Transformation sorts the data, the Aggregator has a property to
keep the data flowing called Sorted Input. It makes no difference if the database
does the sorting or the Sorter Transformation, however if the property is checked the,
Aggregator expects the data to be sorted. How this property keeps the data flowing
is after the last row of a particular group (defined by the Aggregator GroupBy
checkboxes) enters its respective memory cache, the aggregation for that group
begins and a new memory cache is created for the next group and so on. Without
this property, each and every row would have to enter the memory cache before
aggregation would occur. This potentially could produce a very large bottleneck.

Check the Sorted Input checkbox on the Properties tab in the


agg_ODS_ORDER_AMOUNT Transformation

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 172


Completed Mapping

Create Workflow

Create Workflow called wf_ODS_ORDER_AMOUNT_sorter_xx


Add wf_ODS_ORDER_AMOUNT_sorter_xx.log as the Workflow
Log File Name
Rename Start task to start_ODS_ORDER_AMOUNT_sorter
Create Session Task called
s_m_ODS_ORDER_AMOUNT_sorter_xx
Select native_source connection for sq_PRODUCT source
instance
Verify Source filename is order.txt (Properties tab)
Select native_target_xx connection for
ODS_ORDER_AMOUNT target instance
Check property Truncate target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 173


Link start_ODS_ORDER_AMOUNT_sorter to
s_m_ODS_ORDER_AMOUNT_sorter_xx
Save, Validate and Start Workflow
wf_ODS_ORDER_AMOUNT_sorter_xx
Monitor and Review the results for
s_m_ODS_ORDER_AMOUNT_sorter_xx in the Workflow
Monitor

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 174


Results Session Properties
103 rows loaded (same as previous lesson)

Results Session Transformation Statistics

Results Preview Data

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 175


Lab
12

LAB 12 BASIC LOOKUP

PURPOSE
To load an ODS table with only those customers who have one
or more completed, non-cancelled, invoices on record

OBJECTIVE
To demonstrate the use of a Lookup transformation where a
Source Qualifier SQL override or a Joiner may not be the best
solution

DURATION
40 minutes

SUMMARY
SOURCE: INVOICE table
TARGET: ODS_CUSTOMER_ACTIVE table

Import Source Table

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 177


Clear Source Analyzer Workspace Right-click anywhere in the
workspace and select Clear All
Continue to work in the assigned student folder and import the
relational source, INVOICE

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 178


Import Target Table

Import the target table ODS_CUSTOMER_ACTIVE

Create Mapping
Create a mapping called m_ODS_CUSTOMER_ACTIVE_xx

Add Source and Target


Add INVOICE Source Definition with its respective Source
Qualifier

Add ODS_CUSTOMER_ACTIVE target definition

Use the Navigator and Output Widow toggle


buttons, again, to maximize the Workspace real estate.

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 179


Create Filter Transformation

Create a Filter Transformation called


fil_ODS_CUSTOMER_ACTIVE (see flagged step Create
Filter Transformation on page 146)
Add the following ports from sq_INVOICE to
fil_ODS_CUSTOMER_ACTIVE: CUST_NO, DATE_CLOSED
and CANCELED
Edit fil_ODS_CUSTOMER_ACTIVE
Click on the Properties tab and add the following Filter
Condition:

NOT (ISNULL (DATE_CLOSED)) AND CANCELED = 0

Only those invoices that have a date in the


DATE_CLOSED column and were not cancelled will meet the
filter condition

Click Validate or OK to validate the condition



Close the Edit Transformations window
Save

Create Lookup Transformation

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 180


Connected vs. Unconnected Lookups

In this step a connected Lookup is needed in order to bring back specific existing
Customer data where a Joiner or SQL override will not work correctly. Like a number
of other transformations, Lookups can be configured to be connected or
unconnected.

Add a Lookup Transformation to the mapping and a dialog


box appears:

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 181


Since the CUSTOMER table has not yet been analyzed or
imported as a Source or a Target, select the Import button (as
shown above)
Enter the logon information needed to connect to the
odbc_source location (see flagged step Analyze Source
Definitions on page 19)

Expand the SDBU Tables list and select the table CUSTOMER

Click OK and a Lookup transformation window will appear in the


workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 182


Rename LKPTRANS to lkp_CUSTOMER and exit an error
message appears stating: The lookup condition is empty (See
below)

If any edits are made to the Lookup


Transformation and no condition has been entered prior to
clicking on the Apply or OK buttons, the following error will
appear:

There is no problem with clicking on Yes to


continue, however, the mapping will not be valid
until a condition is entered. A similar error
message would occur with the Joiner (previous
exercise) and Router (discussed later)
Transformations as these, too, require valid
conditions.

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 183


Copy/Link CUST_NO from

fil_ODS_CUSTOMER_ACTIVE to an empty or output port in


lkp_CUSTOMER the icon will have the plus sign tagged at the
bottom as it enters the Lookup Transformation

Double-click on the header of the Lookup transformation.


On the Condition tab choose Add a new condition button (see
picture below)

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 184


The Designer will automatically choose the
ports to compare based on the sequential order of Lookup
ports and Input ports.

Select CUST_ID and CUST_NO for the condition

The Lookup, like the Joiner and the Aggregator discussed earlier, has the ability
to cache the rows to memory (and disk). There are several caching options to be
discussed later in the course; however, when a lookup is connected (every source
row passes through), it is a Best Practice to choose one of many caching options to
obtain the best performance.

Change the Location Information on the Properties tab to


$Source

In this example, since the source and lookup


tables come from the same Database (Schema), the
$Source variable may be used. This means that when
native database connection is chosen for the Source Instance
in the Session Task, the Lookup will use the same one.

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 185


Essentially, the $Target variable does the same
thing except the location of the lookup table
would have to be in the same location as the
target.

Choosing either of the two variables is a Best


Practice because it provides the most flexibility.
However, when neither is the correct Database
Location then it must be hard-coded. Note that in
the listing (see Select Database dialog box below)
just below $Source and $Target variables are all
of the available database connections.

odbc_source
represents the
Data Source
Name (DSN)
from where the
Lookup table
was imported
the Informatica
PowerCenter
Server will not
recognize this
as a valid
database
connection and
must be
changed

Click here to
open Select
Database Dialog
Box

Select $Source
variable

After selecting the Location Information, close the Edit


Transformations Dialog Box and Save

Link Target Definition

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 186


Autolink by name the lkp_CUSTOMER to
ODS_CUSTOMER_ACTIVE
Save the mapping

Completed Mapping

Create Workflow

Create Workflow called wf_ODS_CUSTOMER_ACTIVE_xx


Add wf_ODS_CUSTOMER_ACTIVE_xx.log as the Workflow Log
File Name
Rename Start task to start_ ODS_CUSTOMER_ACTIVE
Create Session Task called
s_m_ODS_CUSTOMER_ACTIVE_xx
Select native_source connection for sq_INVOICE source
instance
Select native_target_xx connection for
ODS_CUSTOMER_ACTIVE target instance

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 187


Check property Truncate target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property
Link start_ ODS_CUSTOMER_ACTIVE to
s_m_ODS_CUSTOMER_ACTIVE_xx
Save, Validate and Start Workflow
wf_ODS_CUSTOMER_ACTIVE_xx
Monitor and Review the results for
s_m_ODS_CUSTOMER_ACTIVE_xx in the Workflow Monitor

Results Session Properties

Results Session Transformation Statistics

The number of Failed or Rejected Rows


indicates how many were rejected by the database. In this
example, duplicate rows were rejected because of a unique

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 188


constraint violation. In general, building mappings, their
respective workflows and testing them are an iterative
process. It is not recommended to leave a mapping or
workflow in this state; however, there are several other
features that have not been covered to apply best practices.
The number listed in the Target Success Rows is accurate,
however, there are ways to build mappings to identify rows
that will be rejected by the database before they get there;
hence reducing the Target Failed Rows to zero. Some of
those features will be addressed in this basic course and
others will be left for the advanced course.

Results Preview Data

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 189


Lab
13

LAB 13 DELETING ROWS

PURPOSE
To delete rows from an ODS table where customers do not have
valid type codes, i.e., they have not been properly typed or are
marked INACTIVE

OBJECTIVE
To demonstrate how to run a session that only deletes rows

DURATION
25 minutes

SUMMARY
SOURCE: INVOICE table
TARGET: ODS_CUSTOMER_ACTIVE table

Copy mapping
Expand the Mappings node in the assigned folder in the
Navigator window
Select the m_ODS_CUSTOMER_ACTIVE_xx and hit Ctrl-C
and the Ctrl-V (See flagged step Copy Mapping on page 117
for other methods of copying mappings)
Click yes to copy the mapping
Add _del to the mapping name before the student number,
xx:

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 191


Open the new mapping in the Workspace

Add Second Filter Transformation


Delete the links between the lkp_CUSTOMER and the
ODS_CUSTOMER_ACTIVE before adding a new filter

Click-and-drag the mouse pointer over the blue link lines,


only, between the lkp_CUSTOMER and the
ODS_CUSTOMER_ACTIVE and note the lines change to
red. If any other objects (e.g.: transformations) were
selected along with the lines, redo the process
Press the Delete key to remove the connections
Add a Filter Transformation to the mapping and give it the name
fil_ODS_CUSTOMER_ACTIVE_delete (See flagged step
Create Filter Transformation on page 146

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 192


Add the following ports from lkp_CUSTOMER to
fil_ODS_CUSTOMER_ACTIVE_delete: CUST_ID,
CUST_NAME, FIRST_CONTACT, CUSTOMER_STATE,
CUSTOMER_ZIP, CUSTOMER_TYPE and DISCOUNT_RATE
Edit fil_ODS_CUSTOMER_ACTIVE_delete Properties tab,
add the following condition:

ISNULL(CUSTOMER_TYPE) OR
UPPER(RTRIM(CUSTOMER_TYPE)) = 'INACTIVE'

The UPPER function takes the string value and


changes it to upper case.

In UNICODE mode, RTRIM removes both single-


and double-byte spaces from the end of a string.
In ASCII mode, RTRIM removes only single-byte
spaces.

Click on Validate or OK to validate the filter condition


Close the Edit Transformations window and Save

Link Target Definition

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 193


Autolink by name the fil_ODS_CUSTOMER_ACTIVE_delete
to ODS_CUSTOMER_ACTIVE
Save

Completed Mapping

Create Workflow

Create Workflow called wf_ODS_CUSTOMER_ACTIVE_del_xx


Add wf_ODS_CUSTOMER_ACTIVE_del_xx.log as the Workflow
Log File Name
Add reusable metadata extensions: creation date and
your name
Rename Start task to start_ODS_CUSTOMER_ACTIVE_del
Create Session Task called
s_m_ODS_CUSTOMER_ACTIVE_del_xx
Select Task Properties - Treat source rows as delete

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 194


The above is a key property in the Session Task
that must be set to get the expected results. In this case,
the objective is to delete rows, hence the property will be
changed to delete

Select native_source connection for sq_INVOICE source


instance
Select native_target_xx connection for
ODS_CUSTOMER_ACTIVE target instance
do not Truncate

Since the table is suppose to have rows to


delete, do not Truncate the table as suggested in previous
Session Tasks.

Select Normal for Target load type property


Link start_ ODS_CUSTOMER_ACTIVE_del to
s_m_ODS_CUSTOMER_ACTIVE_del_xx
Save, Validate and Start Workflow
wf_ODS_CUSTOMER_ACTIVE_del_xx
Monitor and Review the results for
s_m_ODS_CUSTOMER_ACTIVE_del_xx in the Workflow
Monitor

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 195


Results Session Properties

Results Session Transformation Statistics

If more than 3 rows (shown above as Affected


Rows) were deleted, then fix the logic in the mapping or
session. Before rerunning this workflow, the workflow from
the previous exercise must be executed. In summary:

1) Fix logic in the


m_ODS_CUSTOMER_ACTIVE_del_xx mapping

2) Rerun wf_ODS_CUSTOMER_ACTIVE_xx
workflow to repopulate the 28 rows; and finally

3) Rerun wf_ODS_CUSTOMER_ACTIVE_del_xx
workflow

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 196


Lab
14

LAB 14 DATA DRIVEN INSERTS AND REJECTS

PURPOSE
In the previous labs filtering out all of the INACTIVE customers
created the ODS_CUSTOMER_ACTIVE table. In the Customers
table CUSTOMER_TYPE is either set to INACTIVE or ACTIVE.
Because Customers may change from ACTIVE to INACTIVE, Labs
12 and 13 would have to be run every time
ODS_CUSTOMER_ACTIVE is loaded. The use of an Update
Strategy eliminates the need for two mappings to accomplish the
same task.

OBJECTIVE
Create and configure an Update Strategy. Then do inserts and
rejects based on whether the customer type is ACTIVE or
INACTIVE

DURATION
30 minutes

SUMMARY
SOURCE: INVOICE table
TARGET: ODS_CUSTOMER_ACTIVE table

Copy Mapping
Copy the mapping m_ODS_CUSTOMER_ACTIVE_xx and
name it m_ODS_CUSTOMER_ACTIVE_upd_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 197
Create Update Strategy Transformation

Use an Update Strategy Transformation when keeping history information in a


table or updating a table to keep most current information. In an Update Strategy a
record can be flagged to be updated, inserted, deleted, or rejected using the
following constants: DD_UPDATE, DD_INSERT, DD_DELETE, and DD_REJECT,
respectively.

Delete the links between the lkp_CUSTOMER Lookup and


ODS_CUSTOMER_ACTIVE Target Definition

Create an Update Strategy Transformation and name it


upd_ODS_CUSTOMER_ACTIVE
Add the Following ports from lkp_CUSTOMER to
upd_ODS_CUSTOMER_ACTIVE: CUST_ID, CUST_NAME,
FIRST_CONTACT, CUSTOMER_STATE, CUSTOMER_ZIP,
CUSTOMER_TYPE and DISCOUNT_RATE

Update Strategy Expression


Pseudo Code
IF (CUSTOMER_TYPE= INACTIVE OR NULL
THEN REJECT record
ELSE INSERT record)

IIF statement logic:

Condition Action Description


CUSTOMER_TYPE = REJECT The CUSTOMER_TYPE
INACTIVE or NULL is INACTIVE or NULL
(BLANK) (BLANK), it will be
rejected.

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 198
CUSTOMER_TYPE=ACTIVE INSERT The CUSTOMER_TYPE
is ACTIVE. The row
will be inserted.

Informatica has a set of constants used in the


Update Strategy to flag the rows that pass through. They
are:

DD_UPDATE flags row for update;


DD_INSERT flags row for insert;
DD_DELETE flags row for delete; and
DD_REJECT flags row for reject.

The DD stands for Data Driven. DD_DELETE,


DD_INSERT, DD_REJECT and DD_UPDATE are not
listed in the functions tab, so they must be
manually entered in the formula.

Edit upd_ODS_CUSTOMER_ACTIVE properties tab, add the


following expression:

IIF(UPPER(RTRIM(CUSTOMER_TYPE))='INACTIVE' or
ISNULL(CUSTOMER_TYPE), DD_REJECT, DD_INSERT)

Click Validate button to validate the formula


Click OK button
Save the repository

Link Target Definition

Autolink by name the upd_ODS_CUSTOMER_ACTIVE


Update Strategy to ODS_CUSTOMER_ACTIVE Target Definition

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 199
Save

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 200
Completed Mapping

Create Workflow

Create Workflow called


wf_ODS_CUSTOMER_ACTIVE_upd_xx
Add wf_ODS_CUSTOMER_ACTIVE_upd_xx.log as the Workflow
Log File Name
Rename Start task to start_ ODS_CUSTOMER_ACTIVE_upd
Create Session Task called
s_m_ODS_CUSTOMER_ACTIVE_upd_xx
Verify Task Properties - Treat source rows as Data Driven
(this is the default entry when an Update Strategy
Transformation is present)
Select native_source connection for sq_INVOICE source
instance
Select native_target_xx connection for
ODS_CUSTOMER_ACTIVE target instance
Truncate Table
Select Normal for Target load type property
Link start_ ODS_CUSTOMER_ACTIVE_upd to
s_m_ODS_CUSTOMER_ACTIVE_upd_xx
Save, Validate and Start Workflow
wf_ODS_CUSTOMER_ACTIVE_upd_xx
Monitor and Review the results for
s_m_ODS_CUSTOMER_ACTIVE_upd_xx in the Workflow
Monitor

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 201
Results Session Properties

Results Session Transformation Statistics

The above results still do not resemble the Best


Practice that is, the Database unique constraint errors
and the Rejected Rows are still present. There will be other
lessons on managing rows; however, additional topics need
to be covered. There is, however, a simple solution to avoid
them see the Extra Credit for more details.

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 202
Results Preview Data

Extra Credit
To avoid the database unique constraint violations, there is a very
simple solution. Try the following this exercise to eliminate them.

Consider there are 200 invoices and 30


customers. The objective was to identify active customers.
With the Invoice Table as the source and Customer table as
the lookup, there may be several invoices per customer.
Based on the criteria, it only takes one invoice to pass
through the lookup. Since several are passing through, the
database rejects them as unique constraint violations.

What transformation can take several rows and


group them together as one? Its the Aggregator,
of course.

Using the same mapping,


m_ODS_CUSTOMER_ACTIVE_upd_xx, insert an Aggregator
called agg_ODS_CUSTOMER_ACTIVE between the
fil_ODS_CUSTOMER_ACTIVE Filter and the lkp_CUSTOMER
Lookup Procedure

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 203
Copy/Link the CUST_NO port from the
fil_ODS_CUSTOMER_ACTIVE Filter to
agg_CUSTOMER_ACTIVE Aggregator
Link the CUST_NO port from the agg_CUSTOMER_ACTIVE
Aggregator to the CUST_NO port in the lkp_CUSTOMER
Lookup Procedure
Edit the agg_CUSTOMER_ACTIVE Aggregator
Check the Groupby checkbox for the CUST_NO in the
Ports tab
Check the Sorted Input checkbox in the Properties tab
Edit the sq_INVOICE Source Qualifier in the Properties tab,
increase the value for the Number of Sorted Ports from 0 to 1

By setting the value to 1, at session runtime,


the Source Qualifier will dynamically build SQL selecting the
first active output port and use it to build the Order by
clause. If the value were set to 2, it would build the Order
by clause by the first 2 active output ports, etc.

The generated SQL would be as follows:

SELECT INVOICE.CUST_NO, INVOICE.DATE_CLOSED,


INVOICE.CANCELED FROM INVOICE ORDER BY
INVOICE.CUST_NO

Save the mapping


Validate the s_m_ODS_CUSTOMER_ACTIVE_upd_xx Session
Task
Save the workflow
Restart the wf_ODS_CUSTOMER_ACTIVE_upd_xx Workflow

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 204
Results Extra Credit Session Properties

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 205
Results Extra Credit Session Transformation Statistics

It is, indeed, the same 25 rows that loaded,


however, more efficient and much cleaner results.

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 206
Lab

15

LAB 15 INCREMENTAL UPDATE

PURPOSE
The PRODUCT and VENDOR source tables will be used to create
an ODS PRODUCT table that has information about the
equipment and supplies that the company resells to customers.
This will update the ODS Product table to keep the most current
product information. Only equipment and supplies that are
currently available should be in the table, so all records that are
discontinued will be taken out of the ODS Product table.

OBJECTIVE
Create and configure a Lookup and Update Strategy
Transformations to do an incremental update on the PRODUCT
table

DURATION
40 minutes

SUMMARY
SOURCES: VENDOR, PRODUCT
TARGETS: ODS_PRODUCT

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 207


Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 208
Import Source Tables

Right-click anywhere in the Work Area and select Clear All


Continue to work in the assigned student folder and import the
relational sources, PRODUCT and VENDOR

Click on the Replace button to replace the PRODUCT table

Import Target Table

Clear Warehouse Designer workspace Right-click anywhere in


the Work Area and select Clear All

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 209


Import the relational Target, ODS_PRODUCT

Create Mapping
Create a mapping called m_ODS_PRODUCT_xx

Add Sources and Target Definitions


Add PRODUCT and VENDOR Source Definitions
Add ODS_PRODUCT Target Definition

Create Source Qualifier


If present, delete the Source Qualifiers

There is a primary key foreign key


relationship between the two source tables. To take
advantage of the relationship, only one Source Qualifier is
necessary. The Source Qualifier will pass the where clause
to the database at runtime to join the tables.

There is a feature to prevent the Source Qualifier


from entering the mapping when sources are
added, however, it is easier to delete unwanted
Source Qualifiers that enter the mapping and
create anew than to manipulate turning the
feature on and off.

The feature is located Tools | Options - Format


tab Tool: Mapping Designer -Create source
Qualifier checkbox.

Create new Source Qualifier selecting both sources


(PRODUCT and VENDOR) and name it
sq_PRODUCT_VENDOR

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 210


Create Lookup Transformation - Connected
For more information on Connected vs. Unconnected Lookups refer to
flagged step Create a Lookup on page 180.

Add a Lookup Transformation to the mapping and a dialog


box appears

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 211


Choose Target button and select the ODS_PRODUCT table
Copy/Link PRODUCT_CODE from the sq_PRODUCT_VENDOR
to the Lookup Transformation
Rename the Lookup Transformation lkp_PRODUCT
Rename the port PRODUCT_CODE1, which came from
sq_PRODUCT_VENDOR, to PRODUCT_CODE_src

Appending _src to a port states it came from


the source and not the lookup. It will make more sense
when it is used in a transformation later in the exercise.

Never change the name of a port that has the


Lookup (L) port checked. Lookup ports are the
ports that will be used in the SQL select statement
sent to the database. If column is renamed, then
a database error will occur at session runtime.

Turn off the O (output) attribute for: VENDOR_ID,


VENDOR_NAME, VENDOR_STATE, PRODUCT_NAME,
CATEGORY, MODEL, PRICE, and FIRST_CONTACT

Another Best Practice with the Lookup Transformation is to be discerning when


selecting the columns to be cached. The less cached, the better to prevent wasting
system resources that would likely cause performance degradation. There are two
approaches:

Delete the unnecessary port(s) this is not recommended while in development


mode;

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 212


Uncheck the Output attribute this prevents columns from being unnecessarily
cached. This can be done for those ports that are not needed for the condition, and
will not be used downstream in another transformation. If you later determine that a
port is needed, recheck the Output attribute, and the port will be cached and
available.

Uncheck
these eight
(8) Output
ports to
exclude them
from the SQL
Select
Statement

Add the Lookup condition: PRODUCT_CODE = PRODUCT_CODE_src


Click OK button and save the repository

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 213


Create Update Strategy Transformation
For more information about an Update Strategy see flagged step
Create an Update Strategy on page 198.

Create an Update Strategy Transformation and name it


upd_ODS_PRODUCT
Copy/Link PRODUCT_CODE and PRODUCT_CODE_src from
the lkp_PRODUCT to the upd_ODS_PRODUCT
Copy/Link VENDOR_ID, CATEGORY, PRODUCT_NAME,
MODEL, PRICE, DISCONTINUED FLAG, VENDOR_NAME,
FIRST_CONTACT, and VENDOR_STATE from the
sq_PRODUCT_VENDOR to upd_ODS_PRODUCT
Rename the PRODUCT_CODE port, which came from the
lkp_PRODUCT Lookup Procedure, to PRODUCT_CODE_lkp

Similar to the rename of the Product_Code_src,


once the ports are passed from the Lookup downstream to
another transformation, it can be renamed. Renaming
ports in this fashion will make expression building easier
because the ports origin will be known.

However, to reiterate the point, never change the


name of a lookup port in the Lookup
Transformation or, for that matter, in the Source
Qualifier. Both of these transformation objects
generate SQL select statements passed to the

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 214


database so the column names must match to
avoid database errors at runtime.

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 215


Click on the Properties tab. Add the following expression:

IIF(ISNULL(PRODUCT_CODE_lkp),
IIF(DISCONTINUED_FLAG = 0, DD_INSERT, DD_REJECT),
IIF(DISCONTINUED_FLAG = 0, DD_UPDATE, DD_DELETE))

Below is logic used in IIF statement:

Condition Action Description


LKP_PRODUCT_CODE Insert The record was not found in
ISNULL lookup table and the product has
DISCONTINUED_FLAG = 0 not been discontinued, so the
record will be inserted into target
table.
LKP_PRODUCT_CODE NOT Update The record was found in lookup
ISNULL table and the product has not
DISCONTINUED_FLAG = 0 been discontinued, so the
record will update the target
table.
LKP_PRODUCT_CODE NOT Delete The record was found in lookup
ISNULL table and the product has been
DISCONTINUED_FLAG != 0 discontinued, so the record will
be deleted from target table.
LKP_PRODUCT_CODE Reject The record was not found in
ISNULL lookup table and the product has
DISCONTINUED_FLAG != 0 been discontinued, so the record
will be rejected from target table.

Pseudo Code

IF(record doesnt exist in target table) THEN


IF DISCONTINUED_FLAG = 0 THEN
INSERT record
ELSE
REJECT record)
ELSE (record exists in target table) THEN
IF DISCONTINUED_FLAG = 0 THEN
UPDATE record
ELSE
DELETE record)

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 216


Just below the expression, the Forward Rejected Rows
Checkbox is checked by default uncheck it to keep rejected
rows from being forwarded

With the Forward Rejected Rows selected,


the Informatica Server flags the rows for reject and writes
them to the session reject file. When not selected, the
Informatica Server drops rejected rows and writes them to
the session log file.

Link Target Definition

Connect PRODUCT_CODE_src, VENDOR_ID, CATEGORY,


PRODUCT_NAME, MODEL, PRICE, VENDOR_NAME,
FIRST_CONTACT, and VENDOR_STATE from the from the
upd_ODS_PRODUCT to the ODS_PRODUCT Target Definition
Save

Completed Mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 217


Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 218
Create Workflow

Create Workflow called wf_ODS_PRODUCT_xx


Add wf_ODS_PRODUCT_xx.log as the Workflow Log File Name
Rename Start task to start_ODS_PRODUCT
Create Session Task called s_m_ODS_PRODUCT_xx
Verify Task Properties - Treat source rows as Data Driven
Select native_source connection for sq_PRODUCT_VENDOR
source instance
Select native_target_xx connection for ODS_PRODUCT
target instance
do not Truncate
select Normal for Target load type property
Link start_ODS_PRODUCT to s_m_ODS_PRODUCT_xx
Save, Validate and Start Workflow wf_ODS_PRODUCT_xx
Monitor and Review the results for s_m_ODS_PRODUCT_xx in
the Workflow Monitor

Results Session Properties

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 219


In this case, the CMN_1079 WARNING
message on the last line of the dialog box above is just that,
a warning. Since this was the first run of the session and the
lookup was on an empty target table, then the message can
be ignored. The session will never fail on this message.

If, on the other hand, the lookup on the target


table is expected to have rows in it from a
previous run of the session task, then there is a
problem to investigate.

Results Session Transformation Statistics

If the Forward Reject Rows checkbox were checked, 3 rows would have
been rejected:

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 220


Results Preview Data
ODS_PRODUCT

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 221


Lab

16

LAB 16 FEATURES AND TECHNIQUES II

OBJECTIVES
This is the second Instructor-led follow along lesson to show and
explain the various Designer features and tools that can improve
efficiency and ease of use. Below is a list of lessons to be covered:

Find (Search Options)


View Object Dependencies
Comparing Objects and Mappings
Overview Window
Copy Objects across Mappings
Shortcuts

DURATION
40 minutes

Lesson 1 The Find feature

The Designer includes the Find Next and Find in Workspace tools to
help you find columns or ports in repository objects, or strings in the
output window. This can be very helpful in any number of scenarios
including:
Tracing the impact of change through a mapping;
Debugging an invalid port;
Recognizing a miscalculated port value; or
Detecting a mapping logic flow error.

Find in Workspace

The Find in Workspace tool searches all of the


transformations in the workspace for port or transformation
names. It can search for column or port names or table
names matching the search string. The search can span
across all names in the workspace, or across the business

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 223


name of a table, column, or port. The search can be case
sensitive and match on a whole word.

Open the m_ODS_EMPLOYEE_xx Mapping


In any of the Designer tools, click the Find in Workspace button
or choose Edit- Find in Workspace
In the Find What box type type_code and click on the Find
Now button

The choices are to search for Field names or


Table names matching the search text. If Fields is chosen,
the Designer searches for column or port names matching
the search text. If Tables is selected, the Designer searches
for table names matching the search text

By default, it is not case sensitive, however


there are additional checkboxes to select, which will force it
to do so.

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 224


The Designer saves the last 10 search strings to
be chosen in the drop -down list from both the
Find in workspace and Find next (to be
discussed next) options.

Double-click on the exp_ODS_EMPLOYEE result

In the Normal View, this positions the


mapping where the TYPE_CODE port in the
exp_ODS_EMPLOYEE Expression is located in the upper left
corner of the Workspace. In other words, it would scroll
down to the ports location, highlight it, and position the
object in upper left corner of the Workspace.

In the Iconic View, Find in Workspace does the


same thing, however, the transformation object
would have to be opened to the Normal View to
see the port.

Find Next

The Find Next tool can search for a column or


port name (or any set of characters in a name) in:
Transformations, Mapplets, Source and Target Definitions.

Unlike Find in Workspace, the Find Next tool can


search one object at a time it cannot search
multiple objects at the same time. The Find Next
works in each Designer tool.

In addition, this is the ONLY way to do a full text


search in any of the Tabs in the Output Window
(e.g. Save, Validate, Debugger, etc.), which is
extremely useful when debugging.

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 225


Select a single transformation or click in the output window
before performing the search otherwise, the Find Box will
remain grayed out.

To find a column or port name:


Select the transformation, mapplet, source or target definition
Enter the text to search for, in the Find box on the Standard
toolbar. For example enter EMPLOY to locate an EMPLOYEE
column

Find Next button Find Box

The search is not case-sensitive.

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 226


Select Edit | Find Next or click the Find Next icon or
Function key, F3, to search for the string

The Designer finds the first occurrence of the


search string. This is the only way to find text in the Output
Window.

Press Enter again to search for the next occurrence of the search
string

In the Designer, it searches each port or


column name in the selected transformation and stops at the
end of the transformation (see status bar at the bottom of
the screen for messages)

In the Output window, it starts at the top of the


log, searches to the bottom and loops back to the
top as it finds the entered string.

Lesson 2 View Dependencies

View Dependencies is a quick and powerful way to do a dependency analysis


on virtually any object in the repository. This is especially powerful because it can be
executed from the Designer tool

A simple example is a source needs to be changed. View Dependencies will show


all of the mappings associated with the source. In turn, View Dependencies on
those mappings impacted by the source change identifies the session tasks
associated with the mappings.

Open the Navigator Window and expand the Targets Node in the
assigned Student folder

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 227


Right-click on the ODS_CUSTOMER_ACTIVE Target Definition
and select View Dependencies

The folder must open (active) in the workspace


for this feature to work

Try the same steps on any Mapping and note the dependency to
a Session Task

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 228


Try expanding down to the Source Instance in a mapping such
as, m_ODS_CUSTOMER_ACTIVE_xx, and View
Dependencies on INVOICE.

Note the dependencies on other mapping


objects. This demonstrates this features versatility because
it is available on virtually every object.

Lesson 3 Comparing Objects

The Designer allows two repository objects of the same type to be


compared to identify differences between them. There are limitations
between each of Designer Tools; however, this is a very powerful
feature. The Designer allows for the comparison of sources, targets,
transformations, mapplets, mappings, instances or mapping/mapplet
dependencies in detail. The comparison can be based on two objects
simply within the same mapping, or on two objects across open
folders, or across repositories (e.g. Development, Test, Production).

Use the following tools to compare sources,


targets, or transformations:

Source Analyzer - Compare two sources, two


source shortcuts, or a source with a source
shortcut.

Warehouse Designer - Compare two targets,


two target shortcuts, or a target with a target
shortcut.

Transformation Developer - Compare two


reusable transformations, two reusable
transformation shortcuts, or a reusable
transformation with a reusable transformation
shortcut.

Mapping Developer (Mapplet Developer, too)


- Compare two source instances, two
transformation instances, two target instances, or
two mapplet instances. Instances of different
types cannot be compared (e.g. source instance
with a transformation instance)

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 229


Compare Instances Within Mapping or Mapplets

Open mapping m_ODS_ORDER_AMOUNT_sorter_xx


Right-click on jnr_ODS_ORDER_AMOUNT Joiner and select
Compare Objects

Select srt_ODS_ORDER_AMOUNT as Instance 2 and click on


the Compare button
Click through the different tabs to see the differences

All of the differences will appear in red. On the


Ports tab note the ports names that are highlighted have
identical names and are shown in the same row. Also note
that the ORDER_DATE port has a different Datatypes and
Precision and it is further highlighted in red.

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 230


Compare Target Definitions
Import ODS_EMPLOYEE_ROOKIE and the DIM_REP tables

ODS_EMPLOYEE_ROOKIE and DIM_REP will


be used in the later labs; however, they are good examples
to demonstrate the feature.

These additions should not be saved after


this lesson.

Expand the Targets Node and pull ODS_EMPLOYEE into the


Warehouse Designer
Right-click on ODS_EMPLOYEE, select Compare Objects
and a different dialog box will appear than the last

The key difference is this dialog box has a


Browse button that will allow searching through all of the
open folders for objects of the same type.

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 231


Click on the Browse button and drill down through the assigned
Student folder to the Targets Node to select
ODS_EMPLOYEE_ROOKIE

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 232


Click on the Compare button and view the Columns tab

Differences
would appear
in red

Again, all differences would appear in red. In


this case, the difference is the Table Name.

Close and try the same steps with the DIM_REP table
compare ODS_EMPLOYEE to DIM_REP
Click on the Compare button and view the Columns tab

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 233


Note that columns that do match by name
appear on different lines. There is nothing in red, indicating
differences. Only when the column names are the same
would differences appear in red.

Compare Mapping Instances


The ability to compare an entire mapping is the Grand Finale of
comparisons in the Designer Tool. There is too much detail to cover all
of the options, so this will just demonstrate the basics.

Disconnect from the Studentxx folder and do not save the


changes from the previous lesson
Open Studentxx folder
Open the m_ODS_ORDER_AMOUNT_xx Mapping
Select Mappings | Compare from the main menu
Click on the Browse button for Mapping 2 and select the
m_ODS_ORDER_AMOUNT_sorter_xx Mapping
Click on Compare button

Again, the differences are highlighted in red.


Key differences will be listed on the Summary Tab such as in
this case:

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 234


Instances:

Instance agg_ODS_ORDER_AMOUNT is different


across the two mappings.

Instance srt_ODS_ORDER_AMOUNT is present only


in mapping m_ODS_ORDER_AMOUNT_sorter_xx.

Click on the Instances Tab and in the Transformations


Instances, select agg_ODS_ORDER_AMOUNT Instance
Click on the Compare Instances button
Click through the tabs to find the difference

The only difference should be on the Properties


tab the Sorted Input flag was set to True for in the
m_ODS_ORDER_AMOUNT_sorter_xx mapping

Lesson 4 Overview Window

This feature assists with maneuvering around mappings with many


transformation instances.

Open m_ODS_ORDER_AMOUNT_xx Mapping

The m_ODS_ORDER_AMOUNT_xx Mapping


should be in the Recent Mappings drop down list.

Arrange the mapping to the Normal View


Select View | Overview Window

Drag the box around to reposition the mapping in the workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 235


Draw a box around a couple of transformations in the workspace
and note the changes in the Overview Window

Objects selected in the space will be highlighted


in red in the Overview Window.

It will also always remain on top of any client


application, not just the Designer, until closed.

Lesson 5 Copying and Pasting Objects

This feature is new with version 6 and allows the developer to copy and paste
objects from mappings and mapplets within the same folder.

One of the primary advantages of using this feature is the ability to select more than
one object at a time and paste the objects into a mapping, mapplet or both.

Keep the following concepts in mind when copying and pasting objects within a
folder:

- Objects can be copied from any mapping or mapplet in a folder to any new, existing
mapping or mapplet in the same folder

- Multiple objects can be copied from the workspace

- Selected objects can be viewed by choosing View | Overview window. Selected


objects will appear in color.

Objects cannot be copied from a shortcut to a mapping or mapplet nor is it allowed


to paste objects into a shortcut to a mapping or mapplet

Open m_ODS_ORDER_AMOUNT_sorter_xx Mapping


Arrange the mapping to the Iconic View
Draw a box around the Expression, Sorter and Aggregator
Press Ctrl-C to copy
Create a new mapping via Mappings | Create and select the
default name
Click in the workspace and press Ctrl-V to paste

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 236


Lesson 6 Shortcuts

One of the primary advantages of using a shortcut is maintenance. If a change


is needed to all instances of an object, make the change to the original repository
object and all shortcuts to it will automatically inherit those changes. In contrast, if
there are multiple copies of an object, each will need to be updated.

A word of caution, changes can invalidate mappings and sessions. For example, if
there is a shortcut to a reusable transformation and simple Precision change is made
to a port, each and every mapping with a shortcut to that object will become invalid,
which in turn, invalidates the session tasks using those mappings.

The key is to plan and use the Dependency Analysis Features to determine the
impact of the change and plan accordingly. If the change is needed immediately,
then temporarily make a copy of the object until the shortcut can be updated

Shortcuts have the following advantages over


copied repository objects:

- Allows the developer to maintain a common


repository object in a single location

- Inherits all changes

- Restricts developers to a set of predefined


metadata by incorporating the shortcuts into their
work instead of developing repository objects
independently

- Share complex mappings, mapplets, or reusable


transformations across folders and repositories
only if the repository where the shared folder is
located is a Global Repository

- Saves space in the repository by keeping a single


repository object and using shortcuts to that
object, instead of creating copies of the object in
multiple folders or multiple repositories

As with copying objects, the destination folder


must be open with the appropriate tool active.

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 237


Shortcuts cannot be created to objects from non-
shared folders.

Create Shortcut to Source

Expand the Shared_Student folder

Click-and-drag EMPLOYEE Source Definition into the mapping


that is open in the workspace

As the cursor enters the workspace, the icon


should look as follows as:

If it does not, then start over and make sure the


object is being dragged in from the
Shared_Student Folder.

Click on Yes to create the shortcut make sure it doesnt say


copy

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 238


The Source Definition and the Source Qualifier
both reflect that the source is a shortcut.

To copy an object from a Shared Folder rather


than to shortcut it, hold the CTRL key before
dropping the object.

Do Not Save Changes


Disconnect from the Studentxx folder and do not save the
changes from the previous lesson

Informatica PowerMart / PowerCenter 6 Basics Lab 16 Features and Techniques II 239


Lab
17

LAB 17 ROUTER

PURPOSE
To develop a mapping where a row can be mapped to any one of
or all three possible Targets

OBJECTIVE
Learn the functionality of the Router Transformation when
multiple filtering conditions are required in a mapping

DURATION
30 minutes

SUMMARY

SOURCE: ODS_EMPLOYEE
TARGETS: ODS_EMPLOYEE_SALES,
ODS_EMPLOYEE_NON_SALES,
ODS_EMPLOYEE_ROOKIE

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 241


Import Source Table

The ODS_EMPLOYEE table is the first ODS


table to be used in any exercise as a source so, what once
was a target is now a source, too. That means there will be
two instances of this table in the folder -- both a Source
Definition and Target Definition.

In contrast to the Automatic Target Creation (the


next step) where a source can be pulled into the
Warehouse Designer and it becomes an instant
(automatic) target; a Target Definition cannot be
copied to the Source Node. So, the most viable
solution is to import the Source Definition from the
target database (schema) into the Source
Analyzer.

Import the relation source, ODS_EMPLOYEE. The key in this


step is to import from the target database

Import Target Tables

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 242


Clear Warehouse Designer workspace
Import the relational Targets, ODS_EMPLOYEE_SALES,
ODS_EMPLOYEE_NON_SALES
ODS_EMPLOYEE_ROOKIE was imported in the previous
exercise

Create Mapping
Create a mapping called m_ODS_EMPLOYEE_TYPE_xx

Add Source and Target Definitions


Add ODS_EMPLOYEE Source Definition with its respective
Source Qualifier

Add ODS_EMPLOYEE_SALES, ODS_EMPLOYEE_NON_SALES


and ODS_EMPLOYEE_ROOKIE Target Definitions

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 243


Hold down the Ctrl key as each table is selected so
that all three tables can be moved at the same time

Create Router Transformation

A Router Transformation is similar to a Filter Transformation because both


transformations allow you to test data based on a condition; but thats where the
similarities end. The Filter test rows passing through it against one condition and
drops the rows that do not match.

A Router Transformation tests each row against one or more conditions, called
groups, and flags the row true allowing it to pass through that group. Each row will
be tested against each and every group, so it can be dispersed across many groups
if the conditions are met.

Another advantage the Router has over the Filter is if the row does not meet any of
the defined group conditions, it will route the row to the Default Group. This feature
alone makes it great transformation for error handling.

Create a Router Transformation and name it


rtr_ODS_EMPLOYEE_TYPE
Copy/Link all of the ports from sq_ODS_EMPLOYEE to
rtr_ODS_EMPLOYEE_TYPE
Edit the rtr_ODS_EMPLOYEE_TYPE Transformation and click
on the Groups tab
Click on Add a new group button

Rename NEWGROUP to SALES

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 244


Add a condition for TYPE_CODE equal to SALES (e.g.
TYPE_CODE = 'SALES')
Add two more groups (using the same method) by the names:
NON_SALES and ROOKIES
For NON_SALES, check for TYPE_CODE of ADMIN or FIN or
MGR.
For ROOKIES check where their hire date is less than 365 days
from todays date. Use the following condition:
DATE_DIFF (SESSSTARTTIME, DATE_HIRED, 'dd') < 365

Click OK to close the Router edit window

The Router gives each row an opportunity to


meet every group condition, so a row can exit the Router
multiple times. Only when the row does not meet any
condition does it slip all the way to the Default Group. The
row can exit the Default group if the ports are linked to
another transformation or simply terminate by not linking
them.

Link Target Definitions


Link the ports from the various groups within the
rtr_ODS_EMPLOYEE_TYPE Router to their corresponding
columns in the three target definitions

Try Autolink to see the way groups are


displayed and since the port names will have numbers
associated with them in the Router Transformation it will
either be a link by position or link by suffix try both ways
since there are three groups and target definitions.

Save

Completed Mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 245


Create Workflow

Create Workflow called wf_ODS_EMPLOYEE_TYPE_xx


Add wf_ODS_EMPLOYEE_TYPE_xx.log as the Workflow Log File
Name
Rename Start task to start_ODS_EMPLOYEE_TYPE_upd
Create Session Task called s_m_ODS_EMPLOYEE_TYPE_xx
Select native_target_xx connection for sq_ODS_EMPLOYEE
source instance

Note that native_source is not the chosen


database connection. The ODS_EMPLOYEE source table
was populated in an earlier lesson and is located in the target
database (schema), native_target_xx

Select native_target_xx connection for each of the target


instances
Check property Truncate target table option for each
target object (3 attribute changes)
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property for each target (3 attribute changes)

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 246


Link start_ODS_EMPLOYEE_TYPE to
s_m_ODS_EMPLOYEE_TYPE_xx
Save, Validate and Start Workflow
wf_ODS_EMPLOYEE_TYPE_xx
Monitor and Review the results for
s_m_ODS_EMPLOYEE_TYPE_xx in the Workflow Monitor

Results Session Properties

Results Session Transformation Statistics

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 247


Results Session Properties
ODS_EMPLOYEE_SALES:

ODS_EMPLOYEE_NON_SALES

ODS_EMPLOYEE_ROOKIES

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 248


Lab

18

LAB 18 STRAIGHT LOAD

PURPOSE
In the exercise that follows this one, there is a table,
ODS_LINE_ITEM that will have a foreign key relationship with the
table in this exercise, ODS_INVOICE. Ultimately, the aforementioned
tables will be joined together in another exercise.

OBJECTIVE
Learn how to create a simple pass through mapping

DURATION
10 minutes

SUMMARY
SOURCE: INVOICE
TARGET: ODS_INVOICE

Import Target

A Mapplet to be developed during a later lab will need two sources,


ODS_INVOICE and ODS_LINE_ITEMS. ODS_INVOICE has not
been populated in any previous exercise

Import ODS_INVOICE Target Definition

Create Mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 18 Straight Load 249


Create mapping called m_ODS_INVOICE_xx
Add INVOICE Source Definition with its respective Source
Qualifier
Add ODS_INVOICE Target Definition

There is no need to apply additional logic to the


load. Hence, this is a straight through mapping meaning it
will go directly from source to target.

Link the sq_INVOICE to ODS_INVOICE


Save repository

Completed Mapping

Create Workflow

Create a Workflow called wf_ODS_INVOICE_xx


Add wf_ODS_INVOICE_xx.log as the Workflow Log File Name
Rename Start task to start_ODS_INVOICE
Create Session Task called s_m_ODS_INVOICE_xx
Select native_source connection for sq_INVOICE source
instance
Select native_target_xx connection for ODS_INVOICE target
instance
Check property Truncate target table option

Informatica PowerMart / PowerCenter 6 Basics Lab 18 Straight Load 250


Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property
Link start_ODS_INVOICE to s_m_ODS_INVOICE_xx
Save, Validate and Start Workflow wf_ODS_INVOICE_xx
Monitor and Review the results for s_m_ODS_INVOICE_xx in
the Workflow Monitor

Results Session Properties

Results Preview Data


ODS_INVOICE

Informatica PowerMart / PowerCenter 6 Basics Lab 18 Straight Load 251


Informatica PowerMart / PowerCenter 6 Basics Lab 18 Straight Load 252
Lab

19
LAB 19 CONDITIONAL LOOKUP

PURPOSE
Read from a large source that has a few rows of invalid data. To
validate specific data, look up the value in another table. This is
only necessary for about one row out of ten

OBJECTIVE
Build a mapping to load an ODS table that contains line item
data that will ultimately be used to load the fact table in the data
mart

DURATION
30 minutes

SUMMARY

SOURCES: INVOICE, LINE_ITEM and PRODUCT


TARGETS: ODS_LINE_ITEM

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 253


Import Source Tables

Continue to work in the assigned student folder and import the


relational source, LINE_ITEM. The Sources PRODUCT
and INVOICE tables have already been imported for use in
previous mappings and should be in the Sources node.

Import Target Table

Import the target table ODS_LINE_ITEM

Create Mapping
Create a mapping called m_ODS_LINE_ITEM_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 254


Add Sources and Target
Add the PRODUCT, LINE_ITEM and INVOICE Source
Definitions
Add the ODS_LINE_ITEM Target Definition

Create Source Qualifier

If present, delete all of the Source Qualifiers (see flagged step


Create Source Qualifier on page 210 for more information)

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 255


Create a new Source Qualifier Transformation selecting all
three sources ( PRODUCT, INVOICE and LINE_ITEM) and
name it sq_PRODUCT_INVOICE_LINE_ITEM

Create Mapping Parameter

A Mapping Parameter represents a constant value that can be defined before


running a session task. A mapping parameter retains the same value throughout the
entire session. By creating these, hard coding values within logical expression can
be avoided.

See Mapping Parameters and Variables


Chapter in the Designer Guide for additional
information.

Select Mappings | Parameters and Variables


Click the Add button
In the Name column, type in $$MIN_RATE

$$ is the required prefix for User Defined


Mapping Parameter and Variable object names

Hit the Tab key to jump to the Type column and click on the
down-arrow or type the letter p to select Parameter
Hit the Tab key to jump to the Datatype column and click on
the down-arrow or type the letter d, twice, to select decimal.
If you bypass decimal, continue to cycle through all of the
Datatypes that begin with d until decimal is found
Set Precision to 10 and Scale to 2
Click in the Initial Value: edit box and key in .00
Validate the initial value by clicking on the Validate button at
the far right of the edit box
Click the ADD button, again
In the Name column, type $$MAX_RATE
Select Parameter as the Type
Select decimal as the Datatype
Set Precision to 10 and Scale to 2

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 256


Set Initial Value: .35 and validate

Click OK to continue

These Parameters will be utilized in an


expression later in this lesson.

Create an Expression Transformation

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 257


Create an Expression Transformation named
exp_ODS_LINE_ITEM
Copy/Link the following ports from the
sq_PRODUCT_INVOICE_LINE_ITEM to the
exp_ODS_LINE_ITEM transformation: INVOICE.CUST_NO,
LINE_ITEM.LINE_ITEM_NO, LINE_ITEM.INVOICE_NO,
LINE_ITEM.PRODUCT_CODE, LINE_ITEM.QUANTITY,
LINE_ITEM.DISCOUNT, PRODUCT.PRICE, and
PRODUCT.COST ports

INVOICE_NO and PRODUCT_CODE have two


entries in the sq_PRODUCT_INVOICE_LINE_ITEM. The
duplicates are appended with the number 1. For this
exercise, both ports are to be sourced from the LINE_ITEM
table hence it is listed above as LINE_ITEM.INVOICE and
LINE_ITEM.PRODUCT_CODE.

The bottom line is, choose the ports as they are


listed in the bullet and ignore the names in the
picture, as they may be different based on how
the sq_PRODUCT_INVOICE_LINE_ITEM was
created.

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 258


Rename the ports to exclude the number 1 where it was
appended (e.g. INVOICE_NO and PRODUCT_CODE)
DISCOUNT port should be Input port, only
Insert a new port called DISCOUNT_RATE_out (after the
DISCOUNT port)

Click OK

Create Unconnected Lookup Procedure


In this step an Unconnected Lookup will be utilized as a function within
the mapping. As with a number of transformations, Lookups can be
configured to be connected or unconnected.

Unconnected Lookups

A Connected Lookup takes every row passed to it, processes it based on the lookup
condition and passes it downstream to the next transformation. It should only be
used when the majority or all of the rows are required to pass through it or when
more than one port (return value) is required from the Lookup.

On the other hand, an Unconnected Lookup is called upon conditionally. It is ideal


to use when the majority or all of the rows do not need a return value (ports) from it.
This conditional Lookup is called unconnected because no physical links are
present it stands alone, unconnected.

To use it, it must be called upon by a formula in some other transformation; typically
in a Filter or Update Strategy Transformation. Several ports may be passed to it to
complete the condition, however, only one value may return designated by a new
port attribute, the R (return) port (see below).

The R port is only required in when the Lookup is unconnected. If checked while
connected, it will be ignored. Only one port can be selected, hence it acts like a radio
button.

Another common usage of an unconnected lookup is when it needs to be called


several times from different expressions again, considering all of the limitations
mentioned above.

In summary, use an Unconnected Lookup when:

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 259


1) Every row does NOT need a return value from the Lookup, in other words, can
be called conditionally; and

2) Only one port is required (R port) for the return value

Create a Lookup Transformation and choose


ODS_CUSTOMER_ACTIVE from the Target the ports will look
as follows:

Rename the transformation lkp_ODS_CUSTOMER_ACTIVE


Add a port (input only) called CUST_ID_in with the same
Datatype, Precision and Scale as CUST_ID
Uncheck the Output O ports for CUST_NAME,
FIRST_CONTACT, CUSTOMER_STATE, CUSTOMER_ZIP and
CUSTOMER_TYPE

This prevents those ports from being selected


for the Lookup Cache, however, keeps them available in case
they are needed later. See Key Concept under the
Create Lookup Transformation - Connected step on starting
on page 211.

Click the Return Port attribute for the DISCOUNT_RATE

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 260


On the Properties tab, change the Location Information to
native_target_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 261


On the Conditions tab, add the condition:
CUST_ID = CUST_ID_in
Save repository

Edit Expression
Add an expression that includes a formula that calls the Lookup
Transformation, hence the name of the Lab, Conditional Lookup

The reason for not doing this step during the


Create Expression step is the Lookup Transformation, for
which will be called in a formula, did not exist. This
demonstrates a logical and iterative approach to
development.

Build the following formula in expression of the


DISCOUNT_RATE_out port:

For this exercise, try not to type the expression


in manually. This entire expression can be created via the
point-and-click method. Below are detailed instructions to
accomplish this task, which is the best practice considering
the new expressions and variables to be used in the formula.

For connected transformations, if the point-and-click method is used to enter


port names in an expression, the Designer updates that expression when port names
are changed in the transformation. For example, a valid expression is written that
determines the difference between two dates, Date_Promised and Date_Delivered.
Later, Date_Promised port name is changed to Due_Date. If the expression is
developed using the point-and-click method, the Designer changes the
Date_Promised port name to Due_Date in the expression. If, however, the
expression was written manually, it must be updated manually to maintain a valid
expression.

From the Functions tab, expand the Special category and


double-click on the IIF function. Notice the function appears in
the Formula work area with parenthesis in place.

There is no need to reposition the cursor until


instructed

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 262


Expand the Test category and double-click on the ISNULL
function. Again, note that this function is inserted automatically
within the original parenthesis
From the Ports tab and double-click on the DISCOUNT port
Position the cursor between the two right parentheses and click
on the OR button from the Operator Keypad
Add the DISCOUNT port again
From the Operator Keypad, click the less-than (<) button
From the Variable tab, expand the Mapping Parameters
folder and double-click on $$MIN_RATE
From the Operator Keypad, click on the OR button
Return to the Ports tab, add the DISCOUNT port, yet again
From the Operator Keypad, click the greater-than (>) button
Return to the Variable tab, add the $$MAX_RATE to the
expression
Insert a , (comma) from the operator keypad
Return to the Functions tab and expand the Lookup category
at the bottom of the list and double-click on
lkp_ODS_CUSTOMER_ACTIVE

This activates the Lookup transformation as an


expression

Return to the PORTS tab and add CUST_NO port

This establishes the input argument to the


Lookup transformation

Position the cursor between the two right parentheses and


insert a (,) (comma)
Return to the Ports tab, add the DISCOUNT port
Your function should look like this:

IIF (ISNULL (DISCOUNT) OR DISCOUNT < $$MIN_RATE OR


DISCOUNT > $$MAX_RATE,
:LKP.lkp_ODS_CUSTOMER_ACTIVE(CUST_NO),
DISCOUNT)
Validate and save to the repository

Link Target Definition

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 263


Link exp_ODS_LINE_ITEM to ODS_LINE_ITEM
Save

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 264


Completed Mapping

Create Workflow

Create Workflow called wf_ODS_LINE_ITEM_xx


Add wf_ODS_LINE_ITEM_xx.log as the Workflow Log File
Name
Rename Start task to start_ODS_LINE_ITEM
Create Session Task called s_m_ODS_LINE_ITEM_xx
Select native_source connection for
sq_PRODUCT_INVOICE_LINE_ITEM source instance
Select native_target_xx connection for ODS_LINE_ITEM
target instance
Check property Truncate target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property
In the Transformations Tab of the
s_m_ODS_LINE_ITEM_xx Session Task:
Scroll down to where the Object Name is
lkp_ODS_CUSTOMER_ACTIVE

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 265


Scroll down further to the Location Information
Attribute
Verify the Value to native_target_xx

The Transformations Tab was designed to


override properties when needed. It should not be
considered a substitute for what really should have been in
place in the mapping. If the value for the location
information does not reflect native_target_xx as was
suggested in the Create Unconnected Lookup Procedure step,
then it needs to be updated here to run successfully. A best
practice is to update the mapping with the correct value for
future session tasks that may be created against it.

This property allows the location of the lookup


to be somewhere other than where the Source and Target
are located. It is required to set this property because the
Lookup is Unconnected.

Link start_ODS_LINE_ITEM to s_m_ODS_LINE_ITEM_xx


Save, Validate and Start Workflow wf_ODS_LINE_ITEM_xx
Monitor and Review the results for s_m_ODS_LINE_ITEM_xx
in the Workflow Monitor

Results Session Properties

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 266


Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 267
Results Session Transformation Statistics

Results Preview Data


ODS_LINE_ITEM

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 268


Lab
20

LAB 20 HETEROGENEOUS TARGETS

PURPOSE
To alter the mapping created in the Router lab to send rows not
loaded into any of the three target tables to a flat file for
inspection

OBJECTIVE
To demonstrate the ability to populate targets of different types

DURATION
15 minutes

SUMMARY
SOURCE: ODS_EMPLOYEE
TARGETS: ODS_EMPLOYEE_SALES,
ODS_EMPLOYEE_NON_SALES,
FF_EMPLOYEE_INVALID_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 269


Create Flat File Target Definition

Drag the ODS_EMPLOYEE Source Definition into the Warehouse


Designer workspace

Click on the Rename button and name it


FF_EMPLOYEE_INVALID_xx
Change the Database type to Flat File (on the Table tab)
In the Flat File information (also on the Table tab), select
Delimited and click on the Advanced button and verify the
defaults: Comma delimited with no optional quotes

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 270


On the Columns tab, change the Key Type to NOT A KEY for
the EMPLOYEE_ID column

Click OK

Copy Mapping
Copy the m_ODS_EMPLOYEE_TYPE_xx mapping and call it
m_ODS_EMPLOYEE_INVALID_TYPES_xx

Edit Mapping
Delete the ODS_EMPLOYEE_ROOKIE Target Definition from
the mapping

Deleting a Target Definition from the mapping


does not delete it from the Target Node it only deletes it
from the mapping

Edit rtr_ODS_EMPLOYEE_TYPE Groups tab, - delete the


ROOKIES group
Add the FF_EMPLOYEE_INVALID_xx target to the mapping
Leave the rest of the mapping intact

Link Flat File Target Definition

Link the rtr_EMPOLYEE_TYPE Default Group to the


FF_EMPLOYEE_INVALID_xx Target Definition
Save

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 271


Completed Mapping

Create Workflow

Create Workflow called


wf_ODS_EMPLOYEE_INVALID_TYPES_xx
Add wf_ODS_EMPLOYEE_INVALID_TYPES_xx.log as the
Workflow Log File Name
Rename Start task to
start_ODS_EMPLOYEE_INVALID_TYPES
Create Session Task called
s_m_ODS_EMPLOYEE_INVALID_TYPES_xx
Select native_target_xx connection for sq_ODS_EMPLOYEE
Source Instance

Note that native_source is not the chosen


database connection. The ODS_EMPLOYEE source table
was populated in an earlier lesson and is located in the target
database (schema), native_target_xx

Select native_target_xx connection for


ODS_EMPLOYEE_NON_SALES and ODS_EMPLOYEE_SALES
Target Instances

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 272


Check property Truncate target table option for both
target objects (2 attribute changes)
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property for each target (2 attribute changes)
No changes required for FF_EMPLOYEE_INVALID_xx Target
Instance
Link start_ODS_EMPLOYEE_INVALID_TYPES to
s_m_ODS_EMPLOYEE_INVALID_TYPES_xx
Save, Validate and Start Workflow
wf_ODS_EMPLOYEE_INVALID_TYPES_xx
Monitor and Review the results for
s_m_ODS_EMPLOYEE_INVALID_TYPES_xx in the Workflow
Monitor

Results Session Properties

Results Session Transformation Statistics

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 273


Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 274
Results Preview Data
To preview the data on Windows-based Operating System servers:
Right-click on FF_EMPLOYEE_INVALID_xx and select
Preview Data
Click on the button to the right of the Flat File Name

Drill down to the directory given by the Instructor and select


ff_employee_invalid_xx.out

Click on the Open button

Click on the Open button, again.

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 275


Lab
21

LAB 21 MAPPLETS

PURPOSE
The purpose of this lab is to introduce the concept of Mapplets.
Mapplets are a group of transformations that are saved as a set. This
set then becomes reusable, and can be used in any mapping. The
mapplet created here will be used in next lab.

OBJECTIVE
Learn the functionality and characteristics of Mapplets

DURATION
30 minutes

SUMMARY
SOURCE: ODS_INVOICE, ODS_LINE_ITEM
TARGETS: out_PROFIT_PERCENT

Import Source Tables

Import ODS_LINE_ITEM and ODS_INVOICE as sources


Add the Foreign Key/Primary Key relationship from
ODS_LINE_ITEM.INVOICE_NO to
ODS_INVOICE.INVOICE_NO

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 276


In the mapplet, the two source definitions
above will be joined via the Source Qualifier. There are
times when the relationship between tables is not present
and needs to be manufactured in the Source Analyzer. This
will have no impact on the database, however, in order for
the Source Qualifier to dynamically build the where clause,
the link (relationship) must be present.

Create the Mapplet

A Mapplet is a reusable object created in the Mapplet Designer. It contains a


set of transformations that allows transformation logic to be used in multiple
mappings. The Mapplet Designer is a component of the PowerCenter/PowerMart
Designer tool.

Once saved, Mapplets are stored in their own node called Mapplets, visible in the
Navigator window and can be used in any mapping by dragging and dropping the
mapplet into the mapping from the Navigator window.

Creating Mapplets can save time by eliminating the need to create the same set of
transformations again and again. They also enforce standards.

From a graphical user interface (GUI) perspective, there are very few differences
between the Mapplet Designer and the Mapping Designer they are virtually mirror
images of each other. The primary differences are which transformation objects can
be used and there are limitations -- the majority, of which, exist within the Mapplet
Designer.

Furthermore, most objects can be copied between them. This is key because
mapplets usually come to fruition as a result of mappings. If, after a mapping has
already been created, it has been determined that the complexity and reusability
warrants the creation of a Mapplet, it is easy to copy those key objects without
building them from scratch.

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 277


Select Tools | Mapplet Designer or Mapplet
Designer Icon
Choose Mapplets | Create and name it
mplt_PROFIT_PERCENT

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 278


Add Sources and Create Source Qualifier

Add the ODS_LINE_ITEM and ODS_INVOICE Source


Definitions
If they exist, delete the two Source Qualifiers and create another
using both the ODS_LINE_ITEM and ODS_INVOICE Sources
one Source Qualifier should remain.
Rename the Source Qualifier
sq_ODS_INVOICE_ODS_LINE_ITEM

Informatica PowerMart / PowerCenter 6 Basics Lab 21 Mapplets 279


Create Aggregator

Create Aggregator with the name agg_PROFIT_PERCENT


Copy/Link ports from the
sq_ODS_INVOICE_ODS_LINE_ITEM to the
agg_PROFIT_PERCENT as shown above
The ports, QUANTITY, DISCOUNT, PRICE and COST should
be Input, only Create Port called PROFIT_out (decimal 10,2)
with the expression
SUM(((PRICE*((100-DISCOUNT)/100))-COST)*QUANTITY)
Group by REP_NO, CUST_NO, DATE_OPEN and
PRODUCT_CODE

Create Output Transformation (available in Mapplet Designer only)

Informatica PowerMart / PowerCenter 6 Basics Lab 21 Mapplets 280


Informatica PowerMart / PowerCenter 6 Basics Lab 21 Mapplets 281
Target Definitions are not allowed in a Mapplet. Hence the existence of the
Output Transformation, which will be the link that transports the data from a
mapplet to the mappings that use it. Each Output Transformation created in a
mapplet displays as an output group, similar to the Router, when viewed in a
mapping.

Select Transformation| Create - Output Transformation or


Use the Output transformation icon on the designer toolbar

The Output Transformation is only available in


the Mapplet Designer.

Name the Output Transformation out_PROFIT_PERCENT


Copy/Link all of the ports from the agg_PROFIT_PERCENT
Aggregator to the out_PROFIT_PERCENT Output
Transformation
Rename the PROFIT_out port to PROFIT
Save the mapplet
View the Mapplet Node the location of the newly created
mapplet, mplt_PROFIT_PERCENT in the Navigator window

As stated in the purpose of this lab, the


mapplet created will be used in next lab. The key is when
building a Session Task a mapplet cannot be selected. A
mapplet must be included within a mapping in order for a
Session Task to use it.

Completed Mapplet

Informatica PowerMart / PowerCenter 6 Basics Lab 21 Mapplets 282


Informatica PowerMart / PowerCenter 6 Basics Lab 21 Mapplets 283
Lab
22

LAB 22 REUSABLE TRANSFORMATIONS

PURPOSE
The mapplet created in the previous exercise supplies a profit
value for each sales rep, customer, product, and date. In this
lab, the data will be distributed among four ODS tables, one that
will hold the data on a daily level, which is how it is coming
directly from the mapplet, and the other three will hold the same
data summarized or aggregated on a monthly, quarterly and
yearly basis, respectively. To accomplish the further aggregation
required (monthly, quarterly and yearly), three general-purpose
Reusable Aggregator transformations will be created. The
Aggregators are considered general purpose (generic) because
each can take any numeric data regardless of the meaning of
that data and summarize it on a monthly, quarterly and yearly
level.

OBJECTIVES
Promote Transformation to be Reusable
Create a mapping that uses a mapplet and Reusable
Transformations
Use Persistent Named Lookups, mapplets as inputs, as well as,
object copy and paste

DURATION
75 minutes

SUMMARY
SOURCE: mplt_PROFIT_PERCENT (Sources within mapplet)
TARGETS: Shortcuts to ODS_PROFIT_DAILY,
ODS_PROFIT_WEEKLY, ODS_PROFIT_MONTHLY
and ODS_PROFIT_YEARLY

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 285


Create Mapping
Continue to work from the assigned folder and create mapping
called m_ODS_PROFIT_PERIODIC_xx

Add Mapplet
Add the mplt_PROFIT_PERCENT, created in the previous
exercise, to the mapping from the Mapplets Node

Create Shortcuts to Target Definitions


Expand the Target Node in the Shared_Student folder
Create shortcuts in the new mapping from the following tables:
ODS_PROFIT_DAILY
ODS_PROFIT_MONTHLY
ODS_PROFIT_QUARTERLY
ODS_PROFIT_YEARLY

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 286


Create Persistent-Named Lookup Transformation

The Lookup transformation has several performance enhancement properties


related to its cache specifically size and refresh parameters. One of those
properties is called Lookup cache persistent.

If a lookup is performed more than once, either within the same session or in another,
and the data does not change for several runs then consider using this property. If
the intent is to use this property across sessions, then another property, Cache File
Name Prefix needs to be selected to share the cache

If at some point in the various workflows and session tasks that use the Lookup
Cache the data needs to be refreshed, another property can be used to force the
persistent cache to be refreshed called Recache from the Database.

There is an entire chapter dedicated to Lookup


Cache properties including a tips section.
Informatica highly recommends studying all of
the Lookup Cache Properties to gain the best
performance. Refer to Lookup Caches Chapter
in the Transformation Guide.

Create a Lookup against the ODS_TIME table in the assigned


target schema and name it lkp_ODS_TIME

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 287


Edit the lkp_ODS_TIME Lookup Procedure and select the
Lookup cache persistent property
Enter lkp_ODS_TIME_xx in the Cache File Name Prefix
property

It is very important to include the assigned


student number in the lkp_ODS_TIME_xx because by
default, all of the name caches will be written to the same
directory after the session task runs.

Link the DATE_OPEN port from the mplt_PROFIT_PERCENT


transformation and rename it DATE_OPEN_src
Create the Lookup condition DATE_ID = DATE_OPEN_src

Create Aggregator
This mapping presents a good opportunity to create three reusable
(general purpose) transformations for other mappings to use
ultimately this will reduce duplication of effort and ensure accuracy.
Often it is easier to get a visual perspective on what is being built in the
Mapping Designer, first, and then promote a specific transformation to
be reusable.

Create an Aggregator and name it agg_3_ID_SUM_BY_MTH


Add REP_NO, CUST_NO, PRODUCT_CODE and PROFIT from
the mptl_PROFIT_PERCENT Mapplet
Link MONTH and YEAR from lkp_ODS_TIME

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 288


Since this Transformation is going to be reused
in other mappings, Informatica recommends assigning
generic port names considering names from other
transformations may be different.

This general-purpose reusable transformation will


SUM an input value grouped by three input
identifiers and by a time slice derived from an
input date. It will pass out the three Ids, the time
slice, and the associated summarized value.

Rename the ports as shown in the picture above


Group the ports: ID1, ID2, ID3, MONTH_in, YEAR_in
Change Profit_in Port to Input Only
Create Port called Profit_out with the same Datatype,
Precision and Scale as Profit_in
Add the following formula to the Profit_out port

SUM(PROFIT_in)

Promote Aggregator to be Reusable

Reusable Transformations

Standard transformations exist within a single mapping. Reusable transformations


can be used in multiple mappings or mapplets.

Rather than re-creating a transformation with the very same logic several times,
create a reusable transformation. Wherever the reusable transformation is needed,
add an instance of it to the mapping.

The Designer stores each reusable transformation as metadata separate from any
mapping that uses the transformation similar to a shortcut. Once promoted to be
reusable, the transformation will appear in the Transformations Node and only to be
edited in the Designers Transformation Developer.

One of the Transformation Developer purposes is for editing reusable


transformations. Changes made on the Ports Tab of a reusable transformation are
inherited by all its instances and automatically reflects those changes. Instances of
the reusable transformation do not inherit changes on the Property Tab (with the
exception of the Sequence Generator Transformation) only modifications to
Transformation, Ports, Condition, Groups and Metadata Extension Tabs are passed.

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 289


.

Edit agg_3_ID_SUM_BY_MTH

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 290


On the Transformation tab, check Make Reusable check box
immediately the Designer warns that this action is irreversible

Click on Yes to continue

Several things just occurred: the


Transformation Type now includes (Reusable) in the
name and the Make Reusable Checkbox disappeared.

Click on the Ports tab and note the ports are not editable they
have been completely grayed out; on the other hand, the
attributes displayed on the Properties Tab are editable

The Reusable Transformation was added to the


Transformations Node. Once the repository is saved, it
can only be edited in the Transformation Developer.

Save the repository

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 291


Open the Transformation Developer
Switch over to the Transformation Developer

Copy Reusable Aggregators


Expand the Transformations Node in the Navigator window
and open the agg_3_ID_SUM_BY_MTH Reusable
Transformation in the Transformation Developer using the
drag-and-drop method
Rename the transformation re_agg_3_ID_SUM_BY_MTH re
representing reusable
Save the repository
From the Transformation Node in the Navigator Window, copy
re_agg_3_ID_SUM_BY_MTH by selecting it (single-click),
press CtrlC and then CtrlV

Click on the Yes button and change the name to


re_agg_3_ID_SUM_BY_QTR

Repeat the steps to create a third reusable transformation and


name it re_agg_3_ID_SUM_BY_YEAR

Edit Reusable Aggregators

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 292


Edit the re_agg_3_ID_SUM_BY_QTR change the
MONTH_in port to QUARTER_in
Edit the re_agg_3_ID_SUM_BY_YEAR remove the
MONTH_in port

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 293


Add Reusable Transformations to Mapping

Add the re_agg_3_ID_SUM_BY_QTR and


re_agg_3_ID_SUM_BY_YEAR Reusable Transformations to
the m_ODS_PROFIT_PERIODIC_xx Mapping
Link QUARTER and YEAR from lkp_ODS_TIME to
re_agg_3_ID_SUM_BY_QTR Transformation
Link YEAR from lkp_ODS_TIME to
re_agg_3_ID_SUM_BY_YEAR Transformation
Link REP_NO, CUST_NO, PRODUCT_CODE and PROFIT from
mplt_PROFIT_PERCENT to both
re_agg_3_ID_SUM_BY_QTR and
re_agg_3_ID_SUM_BY_YEAR (see diagram above)

Link Target Definitions


Link mplt_PROFIT_PERCENT Mapplet directly to the
Shortcut_To_ODS_PROFIT_DAILY target definition
Link the Reusable Aggregators based on Month, Quarter and
Year to their corresponding Target Definitions
Save

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 294


Completed Mapping

Create Workflow

Create Workflow called wf_ODS_PROFIT_PERIODIC_xx


Add wf_ODS_PROFIT_PERIODIC_xx.log as the Workflow Log
File Name
Rename Start task to start_ODS_PROFIT_PERIODIC
Create Session Task called
s_m_ODS_PROFIT_PERIODIC_xx
Select native_target_xx connection for
mplt_PROFIT_PERCENT.sq_ODS_INVOICE_ODS_LINE_IT
EM Source Instance

Note that native_source is not the chosen


database connection. The ODS_INVOICE and
ODS_LINE_ITEM Source tables were populated in earlier

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 295


lessons and is located in the target database (schema),
native_target_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 296


Select native_target_xx connection for all four (4) Target
Instances
Potentially change a total of 8 properties (4 minimum) on the
Targets | Properties Tab:
Check property Truncate target table option for all 4
Shortcuts to the ODS Target Objects (4 attribute
changes)
Select Normal for Target load type property for each
target (4 attribute changes)
In the Transformations Tab of the
s_m_ODS_PROFIT_PERIODIC_xx Session Task:
Scroll down to where the Object Name is
lkp_ODS_TIME
Scroll down further to the Location Information
Attribute
Change the Value to native_target_xx

Link start_ODS_PROFIT_PERIODIC to
s_m_ODS_PROFIT_PERIODIC_xx
Save, Validate and Start Workflow
wf_ODS_PROFIT_PERIODIC_xx
Monitor and Review the results for
s_m_ODS_PROFIT_PERIODIC_xx in the Workflow Monitor

Results Session Properties

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 297


Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 298
Results Session Transformation Statistics

Results Preview Data


ODS_PROFIT_MONTHLY

After previewing data for the Monthly (shown


above), note the missing data that is, the NULLs. Theres
no need to review Quarterly and Yearly Profit tables because
we can assume those are bad, too.

After troubleshooting, it has been determined that


lookup, lkp_ODS_TIME, has only returned dates
starting in 1999 and the source data goes all the
way back to 1997.

EXTRA CREDIT
Update the m_ODS_TIME_xx mapping by changing the year
from 1999 to 1996

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 299


Of course this is not the best solution, however,
this demonstrates how to do a quick fix and see results.

Save the mapping and rerun s_m_ODS_TIME_xx


Rerun the workflow wf_PROFIT_PERIODIC_xx and check the
results

Why are the results the same? Since the


lookup property, Persistent Cache, on the Properties tab
for lkp_ODS_TIME is turned on, it did not recache the new
values from the ODS_TIME table.

The Recache from Database, on the same


Properties tab, needs to be selected to update
the cache with the new records. This can be
accomplished both in the mapping and in the
session task.

Turn on the property, Recache from Database, located on the


Transformations tab of the session task,
s_m_ODS_PROFIT_PERIODIC_xx

This demonstates how a session property,


originally set in the mapping, can override the mapping and
not impact it and other sessions tasks using same mapping.
This is an excellent example of how to use Recache from
Database.

After setting the property, rerun wf_PROFIT_PERIODIC_xx


and note the differences in the results. The number of rows
doesn't change, but all of the columns should no longer be blank

Results
All the numbers should be the same as the above results. The
difference is in the data there should no longer be any Nulls.

Results Preview Data


Only the Monthly table will be shown for results.

ODS_PROFIT_MONTHLY

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 300


Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 301
QUESTION
Based on the fact there were no calculations being performed by the
reusable transformations re_agg_3_ID_SUM_BY_MTH and
re_agg_3_ID_SUM_BY_QTR because the lkp_ODS_TIME provided
it, could these transformation been combined into one?

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 302


Lab
23

LAB 23 DYNAMIC LOOKUP

PURPOSE
Build a mapping to load the DIM_PRODUCT table when source
rows do not exist on the target

OBJECTIVE
Utilize Informaticas Dynamic Caching feature when looking up
source information against the target table
Use a Sequence Generator transformation

DURATION
30 minutes

SUMMARY
SOURCE: ODS_PRODUCT
TARGET: DIM_PRODUCT

Import Source and Target Table


Import ODS_PRODUCT as a Source Definition

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 303


Note that this source will be found using the
odbc_target DSN.

Import DIM_PRODUCT as a Target Definition


Save the Repository

Create Mapping
Create a mapping called m_DIM_PRODUCT_xx
Add the ODS_PRODUCT Source Definition and its
corresponding Source Qualifier
Rename Source Qualifier to sq_ODS_PRODUCT
Add the DIM_PRODUCT Target Definition
Create Shortcut to Reusable Transformation

Expand the Transformations Node in the Shared_Student


folder
Create a shortcut to the re_exp_DECODE_CATEGORY
Transformation in the m_DIM_PRODUCT_xx Mapping and
confirm the creation of a shortcut

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 304


Open the re_exp_DECODE_CATEGORY transformation and
click on the Ports tabs

As explained in the previous lab, the Ports tab


of the Reusable Transformation cannot be edited from the
mappings using them. In addition, Reusable Transformations
can only be edited within the Transformation Developer.
Certain attributes on the Properties tab can be modified.
What can be changed differs between each type of
transformation.

Link CATEGORY port from the sq_ODS_PRODUCT to the


CATEGORY_in port of the re_exp_DECODE_CATEGORY

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 305


Create a Sequence Generator Transformation

Create a Sequence Generator Transformation and name it


seq_DIM_PRODUCT

Create Expression Transformation

Create Expression Transformation and name it


exp_DIM_PRODUCT
Copy/Link PRODUCT_NAME, CATEGORY, MODEL and PRICE
ports from the sq_ODS_PRODUCT Transformation to
exp_DIM_PRODUCT
Copy/Link PRODUCT_DEPARTMENT Port from the
Shortcut_To_re_exp_DECODE_CATEGORY transformation to
exp_DIM_PRODUCT
Copy/Link NEXTVAL from the seq_DIM_PRODUCT
transformation to exp_DIM_PRODUCT

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 306


In the exp_DIM_PRODUCT, make the PRODUCT_NAME and
MODEL ports Input Only Ports
Rename NEXTVAL port to PRODUCT_SEQUENCE
Add a port after PRODUCT_SEQUENCE port rename it
PRODUCT_NAME_MODEL

Add the following expression to PRODUCT_NAME_MODEL


PRODUCT_NAME || || MODEL
Save repository

Create Dynamic Cache Lookup Transformation

Dynamic Cache Lookups

In this step a lookup will be utilized to determine if source rows exist in the target
table. When the Dynamic Cache property is set on a Lookup Transformation, all
rows sent to the Target will also update the lookup cache. Therefore, the Target and
the lookup cache will be in sync.

Refer to Working with a Dynamic Lookup


Cache in the Lookup Caches Chapter in the
Transformation Guide

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 307


Create lookup called lkp_DIM_PRODUCT based on the target
table, DIM_PRODUCT, which will be in the assigned target
schema, tbuxx
From the exp_DIM_PRODUCT transformation, copy/link
CATEGORY, PRICE, PRODUCT_DEPARTMENT,
PRODUCT_SEQUENCE and PRODUCT_NAME_MODEL to the
lkp_DIM_PRODUCT
Rename all of the ports that entered lkp_DIM_PRODUCT from
the exp_DIM_PRODUCT Expression by replacing the 1 with
_in
Uncheck the Output Port O for each port that entered
lkp_DIM_PRODUCT from the exp_DIM_PRODUCT Expression
Turn on the Dynamic Lookup Cache property:

Turning on Dynamic Lookup Cache changes the


Ports Tab of the Lookup. A port called NewLookRow is
inserted in the first position and the Associated Port column
becomes active.

Add the following conditions:

Note that for each condition, the Associate


Port is filled in and grayed out on the Ports tab.

Change the PRODUCT_SEQUENCE Datatype to Integer


Remain on the Ports tab, click on the Associated port for
PRODUCT_SEQUENCE and select PRODUCT_SEQUENCE_in
Save the repository

Create Filter Transformation

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 308


Create a Filter transformation called fil_DIM_PRODUCT
Copy/Link the NewLookupRow, PRODUCT_SEQUENCE
PRODUCT_CATEGORY, PRODUCT_NAME_MODEL, PRICE,
PRODUCT_DEPARTMENT Ports from the lkp_DIM_PRODUCT
transformation to fil_DIM_PRODUCT transformation
Add the following condition on the Properties tab of the filter:
NewLookupRow = 1

The Dynamic Lookup assigns the value 1, 2, or


0 to the NewLookupRow port to indicate if it inserts or
updates the row in the cache, or makes no change,
respectively.

Link Target Definition

Use the Autolink feature By Name to link the


fil_DIM_PRODUCT to DIM_PRODUCT Target Definition
Save the repository

Completed Mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 309


Create Workflow
Create a Workflow called wf_DIM_PRODUCT_xx
Add wf_DIM_PRODUCT_xx.log as the Workflow Log File Name
Rename Start task to start_ DIM_PRODUCT
Create Session Task called s_m_DIM_PRODUCT_xx
Select native_target_xx connection for sq_ODS_PRODUCT
source instance
Select native_target_xx connection for DIM_PRODUCT target
instance
Check property Truncate target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property
Link start_ DIM_PRODUCT to s_m_DIM_PRODUCT_xx
Save, Validate and Start Workflow wf_DIM_PRODUCT_xx
Monitor and Review the results for s_m_DIM_PRODUCT_xx in
the Workflow Monitor

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 310


Results Session Properties

Results Session Transformation Statistics

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 311


Results Preview Data

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 312


Lab
24

LAB 24 SEQUENTIAL WORKFLOW

PURPOSE
Build a workflow to load the remaining dimensions table, and
then the fact table to complete the course.

OBJECTIVE
Create shortcuts to mappings
Setup a workflow with sequential loading

DURATION
30 minutes

SUMMARY

Create Mapping Shortcuts

To complete the mini Data Warehouse or


DataMart, is to load the five required dimension tables,
DIM_REP, DIM_CUSTOMER, DIM_VENDOR, DIM_INVOICE,
and DIM_TIME and the fact table, FACT_SALES. The six
mappings that load the tables have been created and reside
in the Shared_Student folder.

Create shortcuts and rename them (Mappings | Edit) replacing


the xx to include the assigned student number from the
following mappings:
m_DIM_CUSTOMER_xx
m_DIM_INVOICE_xx
m_DIM_REP_xx
m_DIM_TIME_xx
m_DIM_VENDOR_xx
m_FACT_SALES_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 24 Sequential Workflow 313


Save

Create Workflow

If this training environment was a true


Development, QA or Production environment with enough
processing power and memory to handle what is about to be
created by each and every student, then a few of the
dimension tables could be loaded concurrently. Since a
typical training environment has limited resources, the
following workflow will be loaded sequentially.

Create a Workflow called wf_LOAD_DW_xx


Add wf_LOAD_DW_xx.log as the Workflow Log File Name
Rename Start task to start_LOAD_DW
Create Session Task for each mapping shortcut with the names
of:
s_Shortcut_To_m_DIM_TIME_xx
s_Shortcut_To_m_DIM_REP_xx
s_Shortcut_To_m_DIM_VENDOR_xx
s_Shortcut_To_m_DIM_CUSTOMER_xx
s_Shortcut_To_m_DIM_INVOICE_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 24 Sequential Workflow 314


s_Shortcut_To_m_FACT_SALES_xx
Select native_source connection for
s_Shortcut_To_m_DIM_VENDOR_xx Source Instance
Select native_target_xx connection for each of the remaining
Source Instances
Select native_target_xx connection for each of the Dimension
and Fact Target Instances
For multiple practice loads, check property Truncate
target table option
Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target
load type property
Link sequentially from the start_ LOAD_DW in the following
order:
s_Shortcut_To_m_DIM_TIME_xx
s_Shortcut_To_m_DIM_REP_xx
s_Shortcut_To_m_DIM_VENDOR_xx
s_Shortcut_To_m_DIM_CUSTOMER_xx
s_Shortcut_To_m_DIM_INVOICE_xx
s_Shortcut_To_m_FACT_SALES_xx
Save, Validate and Start Workflow, wf_LOAD_DW_xx
Monitor and Review the results for each of the session tasks in
the Workflow Monitor

Results Session Transformation Statistics for DIM_TIME Table

Results Session Transformation Statistics for DIM_REP Table

Results Session Transformation Statistics for DIM_VENDOR


Table

Informatica PowerMart / PowerCenter 6 Basics Lab 24 Sequential Workflow 315


Results Session Transformation Statistics for DIM_CUSTOMER
Table

Results Session Transformation Statistics for DIM_INVOICE


Table

Results Session Transformation Statistics for FACT_SALES Table

Informatica PowerMart / PowerCenter 6 Basics Lab 24 Sequential Workflow 316


INDEX

Aggregator Transformation Cache File Name Prefix. . . .227


Create...........................127 Connected and Unconnected
Purpose.........................127 ....................................142
Autolink Create Connected. . . .141, 191
by Name..........................72 Create Unconnected. 206, 211
by Name & Prefix or Suffix. 74 Dynamic Cached Lookup. .242
by Position.......................75 Persistent.......................227
Columns Recache from Database. . .227
Copy & Link.....................79 Mapping
Debugger Copy.........................90, 91
Next Instance.................102 Create......................26, 165
Start...............................97 Debug...........................103
Step to Instance.............102 Edit.................................96
Stop..............................104 Validation........................37
Designer Mapping Designer
Find..............................175 Open...............................25
Find in Workspace...........175 Mapping Parameter
Find Next.......................177 Purpose.........................204
Start...............................11 Using............................209
Using Shortcuts178, 180, 185, Mapplet
186 Create...........................220
Expression Description.....................220
Create formula.................33 Mapplet Designer............220
Expression transformation Metadata Extensions
Purpose...........................31 Create.............................44
Filter Transformation Non-reusable...................18
Create / Edit.. . .114, 117, 134 Purpose...........................18
Flat File Reusable.........................18
Analyze.........................107 Output Transformation
Flat File Wizard Create...........................223
Purpose.........................107 Purpose.........................223
Folder Ports
Create...........................7, 8 Definition.........................30
Expanded........................12 Modify or Add...................33
Open...............................11 Repository
Joiner Transformation Connect to.........................7
Create...........................124 Revert to Saved.............70
Purpose.........................125 Save...............................20
Lookup Transformation Repository Manager

Informatica PowerMart / PowerCenter 6 Basics Index 317


Close................................9 Filter...............114, 117, 134
Start.................................7 Joiner............................124
Router Transformation Lookup...................141, 191
Purpose.........................191 Output...........................223
Sequence Generator Passive vs. Active.............31
Transformation Reusable........................229
Create...........................241 Sequence Generator........241
Session Source Qualifier................29
Properties........................61 Update Strategy..............155
Status.............................61 Transformation Developer
Session Log Open.............................231
View...............................63 Purpose.........................229
Session Task Update Strategy
Create.............................46 Transformation
Edit.................................47 Create...........................155
Shortcut Forward Rejected Rows....171
Create...........................187 Warehouse Designer
Purpose....178, 180, 185, 186 Open...............................21
Source Analyzer Workflow
Open...............................13 Edit.................................44
Source Qualifier Log.................................44
Transformation Start...............................55
Purpose...........................29 Validate...........................51
Sources Workflow Manager
Analyze...........................15 Start........................41, 107
Edit definition...................17 Workflow Monitor
Organize..........................27 Close..............................54
Targets Gantt Chart......................56
Import Definitions.............22 Initialize..........................56
Task Open...............................56
Link................................50 Purpose...........................60
Session...........................46 Task View........................57
Transformation Workspace
Aggregator.....................127 Clear.........................19, 89
Create.............................81 Zoom and scale-to-fit
Expression.......................30 How to.......................83, 86

Informatica PowerMart / PowerCenter 6 Basics Index 318

You might also like