Vous êtes sur la page 1sur 243

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
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

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


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
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

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


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
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

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


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 to be typed or
Text entered by student selected by the student
during the lab

Information text. Tips and hints for the lab

Key concepts and


background for the topic
Key Concept Text. being discussed during the
lab
Reference to other
Reference text Informatica documents that
discuss this topic in depth
A reference to the Flagged
Flagged Step 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.)
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 7


Lab

1
THE DESIGN PROCESS

The first several labs will provide a step-by-step review of the Informatica Design
Process.

O VE R A L L O B J E C T I V E S

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


P U R P O S E

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

O B J E C T I V E S

Learn to navigate through the PowerCenter Repository Manager GUI

D U R ATI O N

15 minutes

Start Repository Manager


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

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.

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


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.

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 10


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

Close the Repository Manager by selecting Repository | Exit.

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


Lab

2
LAB 2 ANALYZE SOURCE DATA
P U R P O S E

Import the Data Definition for the EMPLOYEE relational table

O B J E C T I V E

Learn to navigate through basic functions of the PowerCenter Designer GUI


Learn how to use Designers Source Analyzer Tool to work with Source
Definitions

D U R ATI O N

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 9.

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 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.

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


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.

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

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


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

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.

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


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.

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.

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


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

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

c. SDBU may remain 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.

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


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.
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 18


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.

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.

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


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
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 20


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


folderor 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 18).

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

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


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

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 22


Lab

3
LAB 3 IMPORT TARGET SCHEMA

P U R P O S E

Import the Data Definition for the ODS_EMPLOYEE relational table

O B J E C T I V E

Learn how to navigate Designers Warehouse Designer Tool

D U R ATI O N

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 13

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 23


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

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 17.

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

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


Expand the database owner name
Expand the TABLES (node) listing
Select the ODS_EMPLOYEE table
Click the OK button

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

Save (See flagged step Save Work on page 22)

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


Lab

4
LAB 4 CREATE A MAPPING

P U R P O S E

Create a mapping that represents the dataflow between the EMPLOYEE


source and the ODS_EMPLOYEE target

O B J E C T I V E

Learn to navigate Designers Mapping Designer Tool.


Learn PowerCenter-specific terminologies as they relate to defining data
transformation instructions

D U R ATI O N

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 27


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

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

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


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

Organizing Source Definitions

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.

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


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

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 30


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 31


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.

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 32


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

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.

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


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. 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

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


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

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

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


Arrow
opens
Expression
Editor

Click on the arrow to open the Expression Editor dialog box

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

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


Ports Tab

Individual
Port Details

Based on which port is selected, the port details appear


under the Instance Name: section of the Ports tab

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 37


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 38


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.

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.

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


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

Output
Windows
Save Tab

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


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.

Validation
Time
Stamp

No Errors

Mapping
declared
Valid
Validate
Tab

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


Lab

5
LAB 5 CREATE A WORKFLOW
P U R P O S E

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

O B J E C T I V E

Learn to use the Informatica Workflow Manager

D U R ATI O N

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 9

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;

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

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


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 44


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

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 45


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 20. 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 46


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 be difficult to find. To
verify it is present, select Tools | Customize Toolbars and make sure there is
a checkmark in the Tasks checkbox.

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


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

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 28). 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

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


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 49


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

Select the native_source connection and click OK

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


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

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

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


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

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 52


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 occurred automatically,
just as it does when the mappings are saved in the Designer.

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


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 54


Lab

LAB 6 START AND MONITOR THE WORKFLOW


6
P U R P O S E

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

O B J E C T I V E

Learn how to start a workflow


Learn to use the Informatica Workflow Monitor

D U R ATI O N

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 43 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 55
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. 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

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 56
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

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 57
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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 58
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

Navigator Time
window window

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 59
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:

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 60
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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 61
Drill down (double-click on each object) all the way until the session task,
s_m_ODS_EMPLOYEE_xx, appears

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

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 62
The start_ODS_EMPLOYEE Task -- icon
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:
Locate the s_m_ODS_EMPLOYEE_xx Session task under the Task Name
column

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 63
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 64
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

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:

Informatica PowerMart / PowerCenter 6 Basics Lab 6 Start and Monitor the Workflow 65
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.

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 66
Lab

LAB 7 FEATURES AND TECHNIQUES I


7
O B J E C T I V E

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

D U R ATI O N

40 minutes

Start the Designer


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 9)

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


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

Open Mapping

Open the mapping, m_ODS_EMPLOYEE_xx (refer to the flagged step


Open Folder on page 13)

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:

And change it to look like this:

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


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.

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.

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


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

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

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


Note the behavior with absence of the link

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

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


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.

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

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


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 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 73


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
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

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


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

The Designer adds links between input and output ports


that have the same name, regardless of case.

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


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

Note the button toggles to become the Less button

Type _out in selected From Transformation

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


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

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

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


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

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 78


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

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

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


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

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 80


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

Use the mouse to choose the link columns icon Link columns

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

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


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

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 82


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.

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

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


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

Select the Aggregator from the drop down list

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


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

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

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


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


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 Fitor 2) Right-click anywhere in the workspace and
choose Scale to Fit.

Layout Menu Options


The layout menu has the following Zoom options

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


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.

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 87


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
the Source Qualifier, Update Strategy, Filter, Lookup, Joiner,
For
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 88


Lab

8
LAB 8 THE DEBUGGER
P U R P O S E

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

O B J E C T I V E S

Learn to use and apply the Informatica Debugger

D U R ATI O N

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 89


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 90


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 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.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 91


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 27 Recent
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

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 92


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

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 13.

Continue to drill down to the Mappings node in the same fashion as the
folder and select the m_ODS_EMPLOYEE_BAD mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 93


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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 94


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


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.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 95


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 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

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 96


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 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 97


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 98


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 99


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

Server Select
List

Instruct the
Debugger
Server to
Create a Debug
Session

Leave PC_Server as the Server to use for the debug Session the default
Server displayed on the pull-down list

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 100


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 101


Select the same native connections used for the run of the Workflow in the
flagged step Edit Session Task on page 48
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.

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

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 102


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

Debugger Real-time Target Instance Window: Instance Window:


Server Log Session Log Final data rows will appear Data Rows will appear

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 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:

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 103


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.

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 104


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 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 105


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 99)

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 106


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

Note the defined breakpoint is still present. Breakpoints


may be edited even when the Debugger is not running. When a

Informatica PowerMart / PowerCenter 6 Basics Lab 8 The Debugger 107


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 108


Lab

LAB 9 FLAT FILE WIZARD AND FILTER


9
P U R P O S E

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

O B J E C T I V E

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

D U R ATI O N

30 minutes

S U M M A R Y

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 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

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 109
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

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

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 110
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

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 111
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 112
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 28)

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.

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 113
Create Expression Transformation

Create an Expression Transformation (refer to the flagged step Create the


Expression Transformation on page 32)

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 81

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
Click on the Apply button
Click on the Ports tab

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 114
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 35).

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:

Click on the OK button

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 115
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 116
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. 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

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 117
Create Workflow

Complete the following steps (refer to Start Workflow Manager on page 43)
Start Workflow Manager
Connect to Repository
Open Folder

Create Workflow, wf_ODS_TIME_xx, via Workflows | Create

Edit wf_ODS_TIME_xx Workflow:


Propertiestab, add the wf_ODS_TIME_xx.log as the Workflow Log
File Name
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

Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 118
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.

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 119
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 17.

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 120
Informatica PowerMart / PowerCenter 6 Basics Lesson 9 Flat File Wizard and Filter 121
Lab

LAB 10 HETEROGENEOUS JOIN


10
P U R P O S E

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.

O B J E C T I V E

Learn how to perform a heterogeneous join using the Joiner transformation


Learn how to aggregate data using the Aggregator Transformation

D U R ATI O N

35 minutes

S U M M A R Y

SOURCES: PRODUCT table, ORDER flat file


TARGET: ODS_ORDER_AMOUNT table

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 123


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 109)
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 124


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 27.

Add target definition, ODS_ORDER _AMOUNT

Save the mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 125


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 126


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 127


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 Rows3200 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 128


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
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.

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 129


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)

Save the mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 130


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 74)

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 131


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

Create Workflow called wf_ODS_ORDER_AMOUNT_xx


Add wf_ODS_ORDER_AMOUNT_xx.log as the Workflow Log File Name

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 132


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 133


Results Session Transformation Statistics

Results Preview Data

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 10 Heterogeneous Join 134


Lab

11
LAB 11 SORTER
P U R P O S E

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.

O B J E C T I V E

Reiterate the Copy Mapping Process


Learn how to use the Sorter Transformation
Learn the purpose of the Aggregator Transformations Sorted Input property

D U R ATI O N

20 minutes

S U M M A R Y

SOURCES: PRODUCT table, ORDER flat file


TARGET: ODS_ORDER_AMOUNT table

Copy Mapping
The first step will be to copy the previous mapping

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 135


Copy the mapping m_ODS_ORDER_AMOUNT_xx (See flagged step
Copy Mapping on page 93) 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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 11 Sorter 136


srt_ODS_ORDER_AMOUNT to
Autolink by name
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

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 137


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
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 138


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 139


Lab

12
LAB 12 BASIC LOOKUP
P U R P O S E

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

O B J E C T I V E

To demonstrate the use of a Lookup transformation where a Source Qualifier


SQL override or a Joiner may not be the best solution

D U R ATI O N

40 minutes

S U M M A R Y

SOURCE: INVOICE table


TARGET: ODS_CUSTOMER_ACTIVE table

Import Source Table

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 141


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 142


Create Filter Transformation

Create a Filter Transformation called fil_ODS_CUSTOMER_ACTIVE


(see flagged step Create Filter Transformation on page 116)
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 143


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:

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 17)

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 144


Expand the SDBU Tables list and select the table CUSTOMER

Click OK and a Lookup transformation window will appear in the workspace


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 145


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)

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

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 146


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.

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

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 147


After selecting the Location Information, close the Edit Transformations
Dialog Box and Save

Link Target Definition

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
Check property Truncate target table option

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 148


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 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

Informatica PowerMart / PowerCenter 6 Basics Lab 12 Basic Lookup 149


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 150


Lab

13
LAB 13 DELETING ROWS
P U R P O S E

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

O B J E C T I V E

To demonstrate how to run a session that only deletes rows

D U R ATI O N

25 minutes

S U M M A R Y

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 93 for other methods of copying
mappings)
Click yes to copy the mapping
Add _del to the mapping name before the student number, xx:

Open the new mapping in the Workspace

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 151


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 116

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'

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 152


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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 13 Deleting Rows 153


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

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 154


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 155


Lab

14
LAB 14 DATA DRIVEN INSERTS AND REJECTS
P U R P O S E

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.

O B J E C T I V E

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

D U R ATI O N

30 minutes

S U M M A R Y

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

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 157
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 is
INACTIVE or NULL INACTIVE or NULL
(BLANK) (BLANK), it will be
rejected.
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.

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 158
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

the upd_ODS_CUSTOMER_ACTIVE Update Strategy to


Autolink by name
ODS_CUSTOMER_ACTIVE Target Definition
Save

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 159
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 160
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 161
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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 162
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

Results Extra Credit Session Properties

Informatica PowerMart / PowerCenter 6 Basics Lab 14 Data Driven Inserts and Deletes 163
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 164
Lab

15
LAB 15 INCREMENTAL UPDATE

P U R P O S E

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.

O B J E C T I V E

Create and configure a Lookup and Update Strategy Transformations to do an


incremental update on the PRODUCT table

D U R ATI O N

40 minutes

S U M M A R Y

SOURCES: VENDOR, PRODUCT


TARGETS: ODS_PRODUCT

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 165


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
Import the relational Target, ODS_PRODUCT

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 166


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 167


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

Add a Lookup Transformation to the mapping and a dialog box appears

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 168


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;

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 169


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 170


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

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 database so
the column names must match to avoid database errors at
runtime.

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 171


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 ISNULL Insert The record was not found in lookup table
DISCONTINUED_FLAG = 0 and the product has not been
discontinued, so the record will be
inserted into target table.
LKP_PRODUCT_CODE NOT ISNULL Update The record was found in lookup table and
DISCONTINUED_FLAG = 0 the product has not been discontinued,
so the record will update the target table.
LKP_PRODUCT_CODE NOT ISNULL Delete The record was found in lookup table and
DISCONTINUED_FLAG != 0 the product has been discontinued, so
the record will be deleted from target
table.
LKP_PRODUCT_CODE ISNULL Reject The record was not found in lookup table
DISCONTINUED_FLAG != 0 and the product has 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)

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 172


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 173


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 174


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:

Results Preview Data


ODS_PRODUCT

Only the first few rows are shown.

Informatica PowerMart / PowerCenter 6 Basics Lab 15 Incremental Update 175


Lab

16
LAB 16 FEATURES AND TECHNIQUES II
O B J E C T I V E S

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

D U R ATI O N

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 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

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


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.

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

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


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.

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 179


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
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

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


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

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.

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


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)

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

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


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.

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

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


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.

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 184


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 185


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:

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.

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


Arrange the mapping to the Normal View
Select View | Overview Window

Drag the box around to reposition the mapping in the workspace


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

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


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

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

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


As with copying objects, the destination folder must be
open with the appropriate tool active.

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 189


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 190


Lab

17
LAB 17 ROUTER
P U R P O S E

To develop a mapping where a row can be mapped to any one of or all three
possible Targets

O B J E C T I V E

Learn the functionality of the Router Transformation when multiple filtering


conditions are required in a mapping

D U R ATI O N

30 minutes

S U M M A R Y

SOURCE: ODS_EMPLOYEE
TARGETS: ODS_EMPLOYEE_SALES, ODS_EMPLOYEE_NON_SALES,
ODS_EMPLOYEE_ROOKIE

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 191


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

Clear Warehouse Designer workspace


Import the relational Targets, ODS_EMPLOYEE_SALES,
ODS_EMPLOYEE_NON_SALES

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 192


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

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 193


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


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.

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 194


Save

Completed Mapping

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)
Link start_ODS_EMPLOYEE_TYPE to s_m_ODS_EMPLOYEE_TYPE_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 195


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 196


Results Session Properties
ODS_EMPLOYEE_SALES:

ODS_EMPLOYEE_NON_SALES

ODS_EMPLOYEE_ROOKIES

Informatica PowerMart / PowerCenter 6 Basics Lab 17 Router 197


Lab

18
LAB 18 STRAIGHT LOAD
P U R P O S E

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.

O B J E C T I V E

Learn how to create a simple pass through mapping

D U R ATI O N

10 minutes

S U M M A R Y

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 199


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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 18 Straight Load 200


Results Session Properties

Results Preview Data


ODS_INVOICE

Informatica PowerMart / PowerCenter 6 Basics Lab 18 Straight Load 201


Lab

19
LAB 19 CONDITIONAL LOOKUP
P U R P O S E

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

O B J E C T I V E

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

D U R ATI O N

30 minutes

S U M M A R Y

SOURCES: INVOICE, LINE_ITEM and PRODUCT


TARGETS: ODS_LINE_ITEM

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 203


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 204


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 167 for more information)

Create a new Source Qualifier Transformation selecting all three sources (


PRODUCT, INVOICE and LINE_ITEM) and name it
sq_PRODUCT_INVOICE_LINE_ITEM

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 205


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
Set Initial Value: .35 and validate

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 206


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 207


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.

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

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 208


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:

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

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 209


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 168.

Click the Return Port attribute for the DISCOUNT_RATE

On the Properties tab, change the Location Information to native_target_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 210


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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 211


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

Link exp_ODS_LINE_ITEM to ODS_LINE_ITEM


Save

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 212


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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 19 Conditional Lookup 213


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 214


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 215


Lab

20
LAB 20 HETEROGENEOUS TARGETS
P U R P O S E

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

O B J E C T I V E

To demonstrate the ability to populate targets of different types

D U R ATI O N

15 minutes

S U M M A R Y

SOURCE: ODS_EMPLOYEE
TARGETS: ODS_EMPLOYEE_SALES, ODS_EMPLOYEE_NON_SALES,
FF_EMPLOYEE_INVALID_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 217


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 218


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 219


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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 220


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 221


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 222


Lab

21
LAB 21 MAPPLETS
P U R P O S E

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.

O B J E C T I V E

Learn the functionality and characteristics of Mapplets

D U R ATI O N

30 minutes

S U M M A R Y

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

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.

Informatica PowerMart / PowerCenter 6 Basics Lab 20 Heterogeneous Targets 223


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.

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 224


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 225


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 226


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 227


Lab

22
LAB 22 REUSABLE TRANSFORMATIONS
P U R P O S E

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.

O B J E C T I V E S

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

D U R ATI O N

75 minutes

S U M M A R Y

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 229


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 230


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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 231


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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 232


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.

Edit agg_3_ID_SUM_BY_MTH

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 233


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 234


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


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 235


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 236


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_ITEM 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 lessons and is located in the target database
(schema), native_target_xx

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 237


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 238


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.

E X T R A C R E D I T

Update the m_ODS_TIME_xx mapping by changing the year from 1999 to


1996

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

Informatica PowerMart / PowerCenter 6 Basics Lab 22 Reusable Transformations 239


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 240


Q U E S T I O N

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 241


Lab

23
LAB 23 DYNAMIC LOOKUP
P U R P O S E

Build a mapping to load the DIM_PRODUCT table when source rows do not
exist on the target

O B J E C T I V E

Utilize Informaticas Dynamic Caching feature when looking up source


information against the target table
Use a Sequence Generator transformation

D U R ATI O N

30 minutes

S U M M A R Y

SOURCE: ODS_PRODUCT
TARGET: DIM_PRODUCT

Import Source and Target Table


Import ODS_PRODUCT as a Source Definition

Note that this source will be found using the


odbc_target DSN.

Import DIM_PRODUCT as a Target Definition


Save the Repository

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 243


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

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 244


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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 245


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

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:

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 246


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

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

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 247


Use the Autolink feature By Name to link the fil_DIM_PRODUCT to
DIM_PRODUCT Target Definition
Save the repository

Completed Mapping

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 248


Results Session Properties

Results Session Transformation Statistics

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 249


Results Preview Data

Informatica PowerMart / PowerCenter 6 Basics Lab 23 Dynamic Lookup 250


Lab

24
LAB 24 SEQUENTIAL WORKFLOW
P U R P O S E

Build a workflow to load the remaining dimensions table, and then the fact
table to complete the course.

O B J E C T I V E

Create shortcuts to mappings


Setup a workflow with sequential loading

D U R ATI O N

30 minutes

S U M M A R Y

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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 24 Sequential Workflow 251


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
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

Informatica PowerMart / PowerCenter 6 Basics Lab 24 Sequential Workflow 252


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

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 253


INDEX

Aggregator Transformation Create..............................26, 165


Create....................................127 Debug....................................103
Purpose..................................127 Edit..........................................96
Autolink Validation.................................37
by Name...................................72 Mapping Designer
by Name & Prefix or Suffix..........74 Open........................................25
by Position................................75 Mapping Parameter
Columns Purpose..................................204
Copy & Link..............................79 Using.....................................209
Debugger Mapplet
Next Instance..........................102 Create....................................220
Start........................................97 Description..............................220
Step to Instance......................102 Mapplet Designer.....................220
Stop.......................................104 Metadata Extensions
Designer Create......................................44
Find.......................................175 Non-reusable............................18
Find in Workspace....................175 Purpose....................................18
Find Next................................177 Reusable..................................18
Start........................................11 Output Transformation
Using Shortcuts. 178, 180, 185, 186 Create....................................223
Expression Purpose..................................223
Create formula..........................33 Ports
Expression transformation Definition..................................30
Purpose....................................31 Modify or Add............................33
Filter Transformation Repository
Create / Edit.............114, 117, 134 Connect to..................................7
Flat File Revert to Saved......................70
Analyze..................................107 Save........................................20
Flat File Wizard Repository Manager
Purpose..................................107 Close.........................................9
Folder Start..........................................7
Create....................................7, 8 Router Transformation
Expanded.................................12 Purpose..................................191
Open........................................11 Sequence Generator Transformation
Joiner Transformation Create....................................241
Create....................................124 Session
Purpose..................................125 Properties.................................61
Lookup Transformation Status......................................61
Cache File Name Prefix.............227 Session Log
Connected and Unconnected.....142 View........................................63
Create Connected.............141, 191 Session Task
Create Unconnected..........206, 211 Create......................................46
Dynamic Cached Lookup...........242 Edit..........................................47
Persistent...............................227 Shortcut
Recache from Database............227 Create....................................187
Mapping Purpose............178, 180, 185, 186
Copy..................................90, 91 Source Analyzer

Informatica PowerMart / PowerCenter 6 Basics Index 254


Open........................................13 Open......................................231
Source Qualifier Transformation Purpose..................................229
Purpose....................................29 Update Strategy Transformation
Sources Create....................................155
Analyze....................................15 Forward Rejected Rows............171
Edit definition............................17 Warehouse Designer
Organize...................................27 Open........................................21
Targets Workflow
Import Definitions......................22 Edit..........................................44
Task Log..........................................44
Link.........................................50 Start........................................55
Session....................................46 Validate....................................51
Transformation Workflow Manager
Aggregator..............................127 Start.................................41, 107
Create......................................81 Workflow Monitor
Expression................................30 Close.......................................54
Filter........................114, 117, 134 Gantt Chart...............................56
Joiner.....................................124 Initialize...................................56
Lookup............................141, 191 Open........................................56
Output....................................223 Purpose....................................60
Passive vs. Active......................31 Task View.................................57
Reusable.................................229 Workspace
Sequence Generator.................241 Clear..................................19, 89
Source Qualifier.........................29 Zoom and scale-to-fit
Update Strategy......................155 How to................................83, 86
Transformation Developer

Informatica PowerMart / PowerCenter 6 Basics Index 255

Vous aimerez peut-être aussi