Date post: | 14-Nov-2014 |
Category: |
Documents |
Upload: | api-3810732 |
View: | 11 times |
Download: | 3 times |
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..........................................................7Start Repository Manager...............................................................7Connect to the Repository..............................................................7Create a Folder...............................................................................8Close the Repository Manager........................................................9
Lab 2 – Analyze Source Data.................................................11Start the Designer.........................................................................11Open Folder..................................................................................11Open the Source Analyzer............................................................13Analyze Source Definitions...........................................................15Edit the Source Definition.............................................................17Create Metadata Extensions.........................................................18Clear the Workspace.....................................................................19Save Work.....................................................................................20
Lab 3 – Import Target Schema..............................................21Open the Warehouse Designer.....................................................21Import Target Table Definitions....................................................22
Lab 4 – Create a Mapping.....................................................25Open Mapping Designer...............................................................25Create Mapping............................................................................26Add Source and Target Definitions...............................................27Source Qualifier Transformation...................................................29Create an Expression Transformation...........................................30Modify / Add Ports.........................................................................33Create Expression Formula...........................................................33Validate the Mapping....................................................................37
Lab 5 – Create a Workflow....................................................41Start Workflow Manager...............................................................41Create Workflow...........................................................................42Edit the Workflow..........................................................................44Create Metadata Extensions.........................................................44Working with Tasks.......................................................................45Create Session Task......................................................................46Edit Session Task..........................................................................47Link Workflow Tasks.....................................................................50Validate the Workflow...................................................................51
Informatica PowerMart / PowerCenter 6 Basics – Hands-on Lab Guide 1
Lab 6 – Start and Monitor the Workflow................................53Open Workflow.............................................................................53Close the Workflow Monitor..........................................................54Start Workflow..............................................................................55The Workflow Monitor...................................................................56Open Workflow Monitor................................................................56Connect to the Repository (Workflow Monitor).............................58Monitoring the Workflow...............................................................60View Session Properties................................................................61View 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..........................72Autolink by name..........................................................................72Autolink by name and prefix or suffix...........................................74Autolink by Position......................................................................75
Lesson 7 – Moving Ports....................................................77Up & Down Arrows to Move a Port................................................77Drag-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...................79Copy Columns...............................................................................80Link Columns................................................................................80Copy / Link Columns.....................................................................80
Lesson 10 – Create Transformation Methods......................81Transformation Toolbar Method....................................................81Transformation Menu Method.......................................................82
Lesson 11 – Zoom and scale-to-fit......................................83
Lesson 12 – Designer Options............................................86
Lab 8 – The Debugger...........................................................87Clear Workspace...........................................................................89Close Mapping..............................................................................90Copy Mapping Setup.....................................................................91Open Mapping...............................................................................95Edit Mapping.................................................................................96
Informatica PowerMart / PowerCenter 6 Basics – Hands-on Lab Guide 2
Activate the Debugger Toolbar.....................................................97Start Debugger.............................................................................97Debug Mapping...........................................................................103Stop the Debugger......................................................................104Debugger Breakpoints................................................................104
Lab 9 – Flat File Wizard and Filter.......................................107Analyze a Flat File source...........................................................107Create Expression Transformation..............................................112Create Filter Transformation.......................................................114Results – Session Properties.......................................................117
Lab 10 – Heterogeneous Join...............................................121Create Joiner Transformation......................................................124Create Aggregator Transformation.............................................127Results – Session Properties.......................................................131
Lab 11 – Sorter..................................................................133Results – Session Properties.......................................................137
Lab 12 – Basic Lookup........................................................139Create Lookup Transformation...................................................141Results – Session Properties.......................................................147
Lab 13 – Deleting Rows......................................................149Results – Session Properties.......................................................153
Lab 14– Data Driven Inserts and Rejects..............................155Create Update Strategy Transformation.....................................155Results – Session Properties.......................................................159Extra Credit.................................................................................160Results – Extra Credit Session Properties...................................161
Lab 15 – Incremental Update..............................................163Create Source Qualifier...............................................................165Create Lookup Transformation - Connected...............................166Results – Session Properties.......................................................172
Lab 16 – Features and Techniques II...................................175
Lesson 1 – The Find feature.............................................175Find Next....................................................................................177
Lesson 2 – View Dependencies.........................................179
Lesson 3 – Comparing Objects.........................................181Compare Instances Within Mapping or Mapplets........................181Compare Target Definitions........................................................183Compare Mapping Instances.......................................................185
Lesson 4 – Overview Window...........................................185
Informatica PowerMart / PowerCenter 6 Basics – Hands-on Lab Guide 3
Lesson 5 – Copying and Pasting Objects...........................186
Lesson 6 – Shortcuts.......................................................187Create Shortcut to Source..........................................................188
Lab 17 – Router..................................................................191Create Router Transformation....................................................193Results – Session Properties.......................................................196
Lab 18 – Straight Load........................................................199Results – Session Properties.......................................................201
Lab 19 – Conditional Lookup...............................................203Create Mapping Parameter.........................................................206Create Unconnected Lookup Procedure......................................209Results – Session Properties.......................................................214
Lab 20 – Heterogeneous Targets.........................................217Results – Session Properties.......................................................221
Lab 21 – Mapplets..............................................................223Create the Mapplet.....................................................................224
Lab 22 – Reusable Transformations.....................................229Add Mapplet................................................................................230Create Persistent-Named Lookup Transformation......................231Promote Aggregator to be Reusable...........................................233Open the Transformation Developer..........................................235Add Reusable Transformations to Mapping................................236Results – Session Properties.......................................................238
Lab 23 – Dynamic Lookup...................................................243Create a Sequence Generator Transformation...........................245Create Dynamic Cache Lookup Transformation..........................246Results – 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
Command textMenu Command or button/screen text
Object Name
Name of tables, files, PowerCenter objects (transformations, workflows, ports, etc.)
Text entered by student Text to be typed or selected by the student during the lab
Information text.
Tips and hints for the lab
Key Concept Text.Key concepts and background for the topic being discussed during the lab
Reference textReference to other Informatica documents that discuss this topic in depth
Flagged Step A reference to the Flagged Step is made later in this guide
LAB GUIDELINES
Don’t 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
Informatica PowerMart / PowerCenter 6 Basics – Hands-on Lab Guide 7
have the following columns selected: Name, Datatype and Length/Precision. Others will include Expression.
Informatica PowerMart / PowerCenter 6 Basics – Hands-on Lab Guide 8
THE DESIGN PROCESS
The first several labs will provide a step-by-step review of the Informatica Design Process.
O V E 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 A T I O N
15 minutes
Start Repository Manager
Start the Repository Manager: Start | Programs | Informatica PowerCenter Client 6.0 |
Repository Manager; or Per the Instructor’s directions
Informatica PowerMart / PowerCenter 6 Basics – Lab 1 – Create a Folder 9
Lab11
Connect to the Repository
There are several ways to connect to the repository. From the Repository Manager’s Navigator window, try one of the following methods:
Double-click on the repository; or Select the repository and select Repository | Connect;
or
Select the repository and click the Connect icon in the toolbar.
Any of the above methods will produce the Connect to Repository dialog box:
In the above dialog box, the xx appended to the word student represents the number assigned to you by the Instructor (generally 01 to 12).
Enter the assigned Username and Password
Informatica passwords are case sensitive. The logins are not.
Click on the Connect button
Create a Folder
A folder is a logical grouping of metadata in the Repository. Folders may group metadata according to functionality (for example - CRM Group, Financial or Sales), or by individual developer (for example - Jason, Tracy or Team_1). Creating (and managing) folders is generally handled by an Informatica Administrator, rather than by individual developers.
Informatica PowerMart / PowerCenter 6 Basics – Lab 1 – Create a Folder 10
Refer to Velocity, the Informatica Methodology, for best practices in folder management.
In this course, each student will create his/her own folder. All PowerCenter objects (and relationships) created in the labs will be stored in this folder.
To create the folder: Click on the Repository PC_Course and
select Folder | Create. The Create Folder dialog box appears.
Informatica PowerMart / PowerCenter 6 Basics – Lab 1 – Create a Folder 11
Enter the following information:
Name: Enter Studentxx (xx – represents the assigned student number)
Descriptions: Enter information that describes the contents of folder
Owner: Select the assigned student login from the pull-down list
Group: Select the Students group for permission purposes
Shortcut: Leave unchecked
Permissions: Leave the default permissions for the Owner and Repository, but remove the Write permission for the Owner’s Group.
A new folder is created and its icon appears in the Navigator window.
Close the Repository Manager
In this course, the Instructor will perform other repository administrative tasks, which would normally be done by the designated PowerCenter Repository Administrator – typically a Technical Leader.
Single-click on the PC_Course Repository Disconnect from the repository by doing one of the following:
Click on the Disconnect icon in the toolbar; or Select Repository | Disconnect; or Right-click on the repository PC_Course, and select
Disconnect
Informatica PowerMart / PowerCenter 6 Basics – Lab 1 – Create a Folder 12
Close the Repository Manager by selecting Repository | Exit.
Informatica PowerMart / PowerCenter 6 Basics – Lab 1 – Create a Folder 13
LAB 2 – 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 Designer’s Source Analyzer Tool to work with Source Definitions
D U R A T I O N
20 minutes
Start the Designer
Start the PowerCenter Designer: Start | Programs | Informatica PowerCenter Client 6.0 |
Designer; or Per the Instructor’s directions
Connect to Repository
Connect to the same repository in the same manner described under the flagged step Connect to the Repository on page 10.
Open Folder
Once you’ve 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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 15
Lab22
Open Folder versus Expanded Folder – An Open folder is required in order to add, delete or modify objects. All of the work is performed in the Workspace Window to the right of the Navigator Window (i.e.- where the tools such as the Source Analyzer, Warehouse Designer, Mapplet Designer, etc., are active). Once created in the Workspace, all objects will appear in the Navigator Window.
An Expanded folder looks like an Open folder in the Navigator window, but has no active Workspace window associated with it. Therefore, no object creation or modification is possible.
Expanding a folder in the Navigator window does allow you to copy objects from, or create shortcuts to, another folder that is open. How to copy objects and create shortcuts will be discussed later in this course.
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 16
In order for you to add, delete or change any object in a folder, the folder must be open.
Locate the assigned Studentxx folder and try any one of the following steps:
Double-click the Studentxx folder; or Right-click on the Studentxx folder and select Open; or Highlight the Studentxx folder and click on the open
folder icon in the toolbar
Note that the double-click method to open a folder will only work upon initially connecting to the
Repository or after closing (Disconnect icon) the folder. If the folder was previously highlighted or expanded, then the other methods mentioned above must be used to open the folder.
Open the Source Analyzer
The Source Analyzer is the first of PowerCenter’s 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
Maximize the window by clicking on the maximize icon
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 17
Workspace Window Maximize icon
Ba
Create Workbook tabs at the bottom of the Window by selecting: View | Workbook
The Workbook View allows you to easily navigate among open folders.
Displayed in the Application Title Bar are the Tool name (Source Analyzer), the Folder name and the Repository name. The Folder name is also displayed in the Open Folders drop-down list.
Notice the eight ‘nodes’ within the folder. All Repository folders contain these same nodes and they can not be deleted or modified.
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 18
ApplicationTitle Bar
BaOpen Folder drop-down list
Workspace (Source Analyzer displayed)
Workbook Tab
There are currently no objects defined in the folder above, nor should there be in any of the Studentxx folders created in the previous lab. Once objects are defined, a ‘+’ will appear to the left of any node that contains objects. Clicking on the ‘+’ will expand the node to reveal a list of objects.
Analyze Source Definitions
Source Definitions
All source data to be read by the Informatica Server must first have its structure (schema) defined to the PowerCenter Repository. For relational sources, this includes columns, keys, datatypes, precision and scale (decimals). The process of defining the structure of any source data creates a PowerCenter Source Definition object. (Defining other types of source data will be covered later in this course.)
Each Source Definition is similar to a parent object, which can be used many times over in the form of child instances. Each child takes on the characteristics of the parent and when the parent object is modified, each child instance is updated automatically.
For this lab, the first step in working with PowerCenter objects is to import the table schema definition for the EMPLOYEE database table. Select Sources | Import from Database. The Import Tables
dialog box appears
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 19
a. Select the ODBC data source from the pull-down list that corresponds to the location of the source tables
b. Enter the Username and Password given by the Instructor
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.
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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 20
The new source table definition now appears in the Source Analyzer Workspace.
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.
In the Source Analyzer Workspace, double-click on the header of the
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 21
SourceDefinition
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
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 Informatica’s Metadata Exchange (a.k.a. PowerPlug 6.0).
Click Apply to save comments.
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 22
Enter Description
Ba
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 23
Enter your name for the value of ‘Author’ Enter the current date [using the syntax = mm/dd/yyyy] for the
value of Creation_Date
This field is not a date field, it is descriptive only
Click the OK button to save the new entries to the Source Definition
Clear the Workspace
To this point there has been no instruction to save to the repository, hence, the new Source Definition object exists in memory on the client workstation, only. The Workspace serves as a giant clipboard. All of the work performed between saves will only be in memory including adding, deleting or changing objects within the Workspace. Objects may be cleared from the Workspace, but still reside in memory. This can be demonstrated by doing the following: Right-click on the header of the EMPLOYEE Source Definition in
the Workspace window and select Clear from the Workspace; or
Select the object in the Workspace window and choose Edit | Clear; or
In the respective steps above, selecting Delete from the folder or Edit | Delete will remove the new object from memory and it will no longer exist!
The object disappears from the Workspace, yet can be found in the assigned Studentxx folder in the Navigator window (see page 21).
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 24
Add Metadata Extensions icon
Metadata Extensions tab
Enter: Your Name and the current date
Since the object is still resident in memory and is visible in the assigned Studentxx folder, the object may be placed, once again, to the Workspace for additional viewing or editing. Select the EMPLOYEE Source Definition in the Navigator window Drag-and-drop the object into the Workspace window
Save Work
Save
The Designer, unlike the Repository Manager, requires that any changes be manually saved to the Repository. The key concept to grasp is that folders can only be saved one at a time. In order to save the contents of a folder, it must be the active folder in the Workspace. The active folder is the one visible in the Open Folders drop-down list and on the workbook tab (when that view is selected).
If changes were made to objects in other folders and not saved, then those folders (one at time) must be the active folder in the Workspace to perform the Save Repository command. In addition, if there is an attempt to close the Designer with unsaved changes to objects, it will notify the end user and provide an opportunity to save, again, one folder at a time.
It is time to save the Source Definition to the Repository and there are several ways to perform this task.
Before proceeding, there is the Repository toolbar that, by default, is not selected upon the PowerCenter client tool installation that looks as follows:
To add it, select Tools | Customize and check the Repository checkbox on the Toolbars Tab.
Save the work in the Repository to this point by using one of the following methods:
Select Repository | Save; or Ctrl-s; or
Click on the Save icon
Informatica PowerMart / PowerCenter 6 Basics – Lab 2 – Analyze Source Data 25
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 26
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 Designer’s Warehouse Designer Tool
D U R A T I 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 15
Select any of the Designer tools (at any time) via the Tools menu or using one of the five icons across the top of the Workspace, as seen below
Open the Warehouse Designer by trying one of the following: Select Tools | Warehouse Designer; or Click on the second icon on the toolbar just above the
Workspace
Informatica PowerMart / PowerCenter 6 Basics – Lab 3 – Import Target Schema 27
Lab33
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 19.
Informatica PowerMart / PowerCenter 6 Basics – Lab 3 – Import Target Schema 28
Select the odbc_target ODBC data source connection from the pull-down list
Enter the Username and Password assigned by the Instructor – typically tdbuxx / tdbuxx (where xx is the assigned student number for the username / password)
Click on Connect Expand the database owner name Expand the TABLES (node) listing Select the ODS_EMPLOYEE table Click the OK button
Expand the Targets (node), in the Navigator Window. Notice the addition of the ODS_EMPLOYEE definition
Informatica PowerMart / PowerCenter 6 Basics – Lab 3 – Import Target Schema 29
Save (See flagged step Save Work on page 25)
Informatica PowerMart / PowerCenter 6 Basics – Lab 3 – Import Target Schema 30
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 Designer’s Mapping Designer Tool. Learn PowerCenter-specific terminologies as they relate to
defining data transformation instructions
D U R A T I 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 31
Lab44
Create Mapping
By default, there is an inactive toolbar that may be desirable for some developers. To add it, select Tools | Customize and check the Mapping/Mapplet checkbox on the Toolbars Tab.
Create a new mapping using one of the following methods: Select Mappings | Create; or
Click the Create Mapping icon from the Mapping/Mapplet toolbar
Enter m_ODS_EMPLOYEE_xx for the new mapping name (where xx is the assigned student number)
Click on the OK button
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 32
A new mapping has been created; however, there are no objects present – those will have to be added. Notice that the name of the mapping appears on the ‘Recent Mappings’ pull down list AND in the Mappings node in the Navigator window
Add Source and Target Definitions
In Designer’s Navigator window, expand the Sources node and locate the EMPLOYEE Source Definition
Organizing Source Definitions
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 33
Recent Mappings list
MappingsNode
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 wouldn’t 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 server’s perspective, not the client workstations, and will be discussed in greater detail when the Workflow Manager is covered.
Drag-and-drop the EMPLOYEE Source Definition to the far left side of the Workspace
In the Navigator, expand the Targets section (node) and locate the ODS_EMPLOYEE table Target Definition. Select it with the mouse
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 34
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 35
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 36
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). It’s not quite that simple, however, the Informatica Server must translate the native database datatypes to PowerCenter datatypes before processing.
Once the native database Datatype is translated to a PowerCenter datatype, it will remain a PowerCenter Datatype in every transformation object. That is, until it ultimately reaches the Target, where it will be translated to the defined database Datatype or Flat File.
Click on the OK button to close the sq_EMPLOYEE Source Qualifier
Ports
Notice the name of the first column, ‘Port Name’. ‘Port’ is the generic Informatica term used for both table columns and flat file fields.
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 37
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 38
Passive versus Active Transformations
There are two types of transformations: Passive and Active. Passive transformations allow every row of data to pass through it – so if 100 rows go in, then 100 rows will go out to the next transformation. Active transformations may decrease or increase the number of rows passing through.
As each transformation object is introduced during the course, it will be labeled as either passive or active. There are internal validation checks to make sure transformations can be linked together based on this very concept.
Locate the Transformation Toolbar
The default location is at the top right of the Designer. Look for the ‘arrow’ icon just to the right of a set
up vertical bars
Single-click on the double vertical bars and drag to the center of the Workspace
Another suggested location is right below the default location of the Standard Toolbar – to move it, drag and drop from the title bar
If at any time this toolbar is not visible, activate it in the same way other toolbars have been activated by selecting Tools | Customize and checking the Transformation checkbox
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 39
If the checkmark is present, then try to maximize the window of the Designer; or open the Customize dialog box, again, and remove the checkmark and click OK. Reopen the Customize dialog box and check the Transformation checkbox, and click OK.
Click on the Expression transformation icon in the Transformation toolbar
Drag the pointer, which now appears as crosshairs , into the Workspace window to the right of the Source Qualifier transformation
Single-click (or, click-and-drag, which will draw a box, then release)
Another way to add transformation objects to mappings is selecting Transformation | Create. After the Create Transformation dialog box appears select the type of transformation from the pull-down list; or type the first letter of the transformation name until the desired transformation type appears on the list. Enter a name for the transformation. Click on the Create button and if no additional transformations are required then click on the Done button.
Set the Mapping Designer to copy port names and create link relationships between transformation objects:
Select Layout | Link Columns; OR
Select the Link Columns icon in the toolbar
Link the following ports from the sq_EMPLOYEE to the new Expression transformation:
EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DATE_HIRED and TYPE_CODE
With the Source Qualifier and the Expression transformations in ‘Normal’ mode, hold down the Ctrl key and select the above ports in the sq_EMPLOYEE. Drag them to an empty line on the Expression transformation. When the mouse is released, not only will the port names (including
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 40
datatypes, precision and scale) will be copied from sq_EMPLOYEE, but links connecting the ports between the two transformations will also be created.
Double-click on the header of the Expression transformation to enter Edit mode
Click the Rename button Rename the transformation to exp_ODS_EMPLOYEE
If the transformation was created via the Transformation | Create menu instead of the Transformation Toolbar, the object will have a name
Click on the OK button to close the dialog box
Modify / Add Ports
Select the Ports tab Disable the output ports for FIRST_NAME and LAST_NAME by
removing the checkmark in the ‘O’ (output) column – this will define the port as input only
Click on the Add icon to add a new port and rename it, NAME_out
Selecting the LAST_NAME port before clicking the ‘Add a new port to this transformation’ icon will cause the new port to be positioned immediately after LAST_NAME.
Verify the data type is string and increase the precision to 51 Disable the input port for NAME_out by removing the
checkmark in the ‘I’ (input) column – this will define the port as output only
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 41
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
Click on the arrow to open the Expression Editor dialog box
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 42
Add Port icon
New Port, output-only
Arrow opens Expression Editor
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
Based on which port is selected, the port details appear under the ‘Instance Name:’ section of the Ports tab
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 43
Formula Undo icon
Formula Window
Ports Tab
Individual Port Details
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
completeFIRST_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 44
Once the formula parses, click OK to continue and return to the exp_ODS_EMPLOYEE transformation in Edit mode
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 45
Completed Expression Formula
Link Target Definition
Link the following ports from exp_ODS_EMPLOYEE to ODS_EMPLOYEE (target definition):
EMPLOYEE_ID EMPLOYEE_IDNAME_out NAMEDATE_HIRED DATE_HIREDTYPE_CODE TYPE_CODE
The mapping is now complete and should look like the following:
Ctrl-s to save
Validate the Mapping
Mapping Validation
All mappings must pass a set of PowerCenter validation checks before executing it within a Session Task.
Every time a repository save is executed, a series of validation checks are performed on what has been changed. If a transformation object is changed within a mapping or mapplet, the object will be checked and then mapping validation checks will occur.
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 46
Since development is iterative, it may be necessary to leave a mapping in an invalid state. All mappings that are invalid will have a red ‘x’ icon just to the left of the mapping name in the Navigator Window.
Validation checks do not automatically seek out invalid mappings to check them. Only when something changes (anything such as links, port names, expressions, etc.) will mapping validation checks occur automatically upon the execution of a repository save.
The Mappings | Validate menu command is a manual validation check that can be performed on mappings that are active in the Workspace.
View the results of the Validation by locating the Save tab of the Output window, at the bottom of Designer
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 47
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 48
Output Window’s Save Tab
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
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 window’s ‘Validate’ tab).
Repeat the process until the mapping is valid.
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 49
Save Time Stamp
First Error
Mapping declared Invalid
Informatica PowerMart / PowerCenter 6 Basics – Lab 4 – Create a Mapping 50
Validate Tab
Validation Time Stamp
No Errors
Mapping declared Valid
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 A T I 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 10
Open Folder
Locate the assigned Studentxx folder and try any one of the following steps:
Double-click on Studentxx folder and, in the Navigator Window; or
Right-click on the assigned Studentxx folder and select Open or
Highlight the folder and click on the open folder icon in the toolbar;
Open Workflow Designer
Open the Workflow Designer using one of the following methods:
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 51
Lab5544
Select Tools | Workflow Designer; or
Click the Workflow Designer icon above the Workspace
Create Workflow
The next step is to create a Workflow to process data. It will contain a Start Task and a Session Task.
A workflow is a set of instructions that tells the Informatica Server how to execute tasks such as sessions, email notifications, and shell commands. After tasks are created in the Task Developer and Workflow Designer, tasks are connected via links to create a workflow.
In the Workflow Designer, conditional links and workflow variables are used to create branches in the workflow. The Workflow Manager also provides Event-Wait and Event-Raise tasks. The sequence of task execution can be controlled in the workflow. Worklets (a group of tasks) can be created and inserted inside the workflow.
Every workflow contains a Start task, which represents the beginning of the workflow.
Refer to “Creating a New Workflow” in the Workflow Administration Guide
This section provides the instructions to create a Workflow first, and then create a Session Task within it. The two objects may be created in reverse; however, a Session Task must be within a Workflow in order to be executed.
Select Workflows | Create On the General tab, enter wf_ODS_EMPLOYEE_xx in the Name
box (xx represents the assigned student number from 01-12)
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 52
Click on the OK button
Note the presence of the Start Task which is added to each new workflow by default
Select Repository | Save; or Ctrl-s to save
The workflow is incomplete and as a result invalid, but that is to be expected at this point in the exercise
Double-click on the Start Task Click the Rename button Type start_ODS_EMPLOYEE in the Rename Task dialog box
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 53
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 54
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
The workflow log contains basic information (execution start and completion times, status, etc.) for all tasks in the workflow. It is optional and if left blank (default) the Informatica Server writes workflow log messages to the Windows Event Log or UNIX server log.
If a log file name is entered, the workflow log messages will be redirected to the designated file name within the Workflow Log File directory on the Informatica Server.
Create Metadata Extensions
Metadata Extensions were introduced in the flagged step Create Metadata Extensions on page 23. In this lab, the Instructor has already created reusable Metadata Extensions for workflow ‘Creation_Date’ and ‘Workflow_Author’.
The non-reusable Metadata Extensions created in Lab 2 were unique to each folder. With reusable Metadata Extensions, they are available to all workflows across all folders in the repository.
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 55
Workflow Log File Name
Workflow Log Directory
Click on the Metadata Extensions tab
Notice the two existing metadata extensions. Each has a checkmark in the ‘Reusable’ column in the right.
Typically, the designated Repository Administrator(s) creates reusable metadata extensions in the Repository Manager. Depending on how the Metadata Extensions were set up, a default value will either be blank or assigned. If the value entered is different than the default, a new column will appear to allow the developer to revert back to the default value (see below).
Enter the current date for the value of Creation_Date [using the syntax as before = mm/dd/yyyy]
Enter your name for the value of Workflow_Author Click on OK, to both apply the entries and exit the Workflow Save the new entries to the Repository, select Repository |
Save, OR Ctrl-s.
Working with Tasks
Now that the Workflow has been created, the next step is to add a Session Task to the Workflow.
By default, there is a toolbar to create tasks that may be desirable for some developers; however, it may
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 56
be difficult to find. To verify it is present, select Tools | Customize Toolbars and make sure there is a checkmark in the Tasks checkbox.
Very little of the toolbar might be visible as it was with the Transformation Toolbar in Lab 4. Locate the ‘arrow’ icon, which is the first icon in the Tasks Toolbar. Once located, drag-and-drop to the desired location to see all of the task icons available (e.g. horizontally below the Standard toolbar, vertically between windows or floating in the workspace).
Create Session Task
Session Tasks
Session tasks represent mappings for the Informatica Server to run. The Informatica Server uses the instructions configured in the session to move data from sources to targets. Among its many properties are parameters for memory usage, log file locations, and source and target read/write instructions. Each session task is associated with one, and only one, mapping; however, one mapping may be used in several session tasks.
Click on the Session icon on the Task Toolbar Move the pointer into the Workspace and click
The Mappings dialog box appears listing all mappings in the folder – valid and invalid – however, only valid mappings are permitted to be selected
Select the mapping, m_ODS_EMPLOYEE_xx and click OK.
A Session Task appears in the Workspace and it automatically prefixes the name with an “s_” – the end result is s_m_ODS_EMPLOYEE_xx
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 57
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 32). 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
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 58
Session Log Name
Session Log Directory
Select the Sources tab
Click on the down arrow on the right side of the Value column for the sq_EMPLOYEE listed in the Instance column
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 59
Source Native Database Connection
Native Database Connection Drop-down Listing
Connection Settings tab
Select the native_source connection and click OK Select the Targets tab
Click on the down arrow on the right side of the Value column for the ODS_EMPLOYEE Target Instance
Select native_target_xx (where xx represents the assigned student number from 01-12) and click OK
Only if the target table database connection is using an Oracle client less than 8.1.7.2 – select the Properties tab at the bottom and select Normal for Target load type
Release note: CR 38672, 36211: Oracle bulk load session fails or runs in normal mode on some versions of Oracle
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 60
Native Database Connection Drop-down List
Properties Tab
When a session is configured for bulk loading and the target database is on Oracle, the session fails when the Oracle client version is greater than or equal to 8.1.5 and less than 8.1.7.2. When the Oracle client version is less than 8.1.5, the session runs in normal mode.
Workaround: Apply the Oracle Threaded Bulk Mode patch (Oracle bug number 1666360), use Oracle client 8.1.7.2 or higher, or run the session in normal mode.
Click OK to close the Edit Tasks dialog box Save
Link Workflow Tasks
All tasks in a workflow must be ‘linked’ together for the workflow to be valid.
There are several ways to link tasks:
One way is to use the toolbar. Locate the Link icon on the right side of the Task Toolbar
Drag the pointer, which now appears as crosshairs , into the Workspace to the task
The cursor remains in ‘link mode’ until toggled off or one of the newly linked objects is single or double-clicked upon. When hovering over a task, the crosshairs change to
Draw a line between the start_ODS_EMPLOYEE and the s_m_ODS_EMPLOYEE_xx tasks via a drag-and-drop method
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 61
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 62
Another method to create the link is to: First, remove the existing link to practice other linking methods
between the two objects. Select the link and hit the Delete Key. Confirm that ONLY the link is to be deleted
To create the link again, hold down the Ctrl key and select both the start_ODS_EMPLOYEE Task and the s_m_ODS_EMPLOYEE_xx Session by single clicking on them or by drawing a box around the two objects (no Ctrl key required when drawing the box)
Select Tasks | Link sequential or right-click anywhere in the workspace except on an object and select Link Sequential. A link appears between the Start Task selected and the Session
Link Sequential or Link Concurrent relates to how the tasks are processed. If there were two session tasks linked to the Start Task, they would be considered concurrent session tasks would start at the same time. Sequential simply would be one at a time – typically chosen because there dependencies from one session to another.
Save
Refer to “Working with Links” in the Workflow Administration Guide, Chapter 4.
Validate the Workflow
The detail of creating the Workflow is now complete. However, it must pass PowerCenter Validation before it can process correctly.
Validating a Workflow
Similar to the mapping, a workflow must pass all validation checks prior to running it. For example, if a workflow is created with a Start Task and a Session Task and the two are not linked, the workflow is invalid.
The Output window in Workflow Manager displays the results of the validation checks and will point out specifically what (not how) needs to be fixed.
Since a Repository | Save was just executed in the preceding step, the Workflow validation checks
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 63
occurred automatically, just as it does when the mappings are saved in the Designer.
Informatica PowerMart / PowerCenter 6 Basics – Lab 5 – Create a Workflow 64
Locate the Save tab in the Output Window at the bottom of the Workflow Manager and view the results of the validation checks
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 window’s ‘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 65
Output Window’s Save Tab
LAB 6 – START AND MONITOR THE WORKFLOW
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 A T I 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 51 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 67
Lab66
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.
Close the Workflow Monitor
A Workflow or a specific Task can be started from within the Workflow Manager where it was created. The status of the Workflow and all Tasks associated with it will be monitored from the Workflow Monitor.
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 68
Recent Workflows List
To ensure that the Workflow Monitor Program was not opened inadvertently, please do as follows: Examine the icons in the Windows Task Bar for the presence of
the minimized Workflow Monitor icon If found, right-click on the icon and select Exit – otherwise,
continue
Start Workflow
If the workflow is valid, it is ready for execution. In the Workflow Designer, use one of the following methods to start the wf_ODS_EMPLOYEE_xx Workflow: Select Workflows | Start workflow; or
Right-click in the Workspace and select Start Workflow; or
Right-click on the wf_ODS_EMPLOYEE_xx Workflow in the Navigator window and select Start Workflow; or
Right-click on the start_ODS_EMPLOYEE task in the wf_ODS_EMPLOYEE_xx Workflow. Select Start Workflow from Task menu option
The menu option Start Task (shown below) is not ideal in this case.
Selecting this menu option starts the start_ODS_EMPLOYEE task, only, and would not
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 69
Starts a single Task only
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 70
Any of the above options would show the following dialog box:
The workflow and all its tasks will be monitored and examined for processing details in the Workflow Monitor (next section). With the Workflow Monitor closed, as suggested earlier in this lab, the Workflow Monitor icon will automatically appear in the Windows Task Bar.
The Workflow Monitor
Workflow Monitor -- Initialize vs. Open
There is a difference between the Workflow Monitor program being ‘initialized’ and ‘open’. For example, a virus protection program may be ‘initialized’ and operating in the background (to actively protect the computer), without a client tool appearing as an active program visible on the Desktop. It will be present in the form of a minimized icon on the Windows Taskbar. However, all functional settings cannot be accessed until the program is ‘opened’.
Such is the case with Workflow Monitor. Once initialized, it may then be ‘opened’ by the user – without ever accessing the Windows Start menu. Starting the Workflow, wf_ODS_EMPLOYEE_xx from the Workflow Manager automatically initialized the Workflow Monitor. This is a convenient feature that is enabled by default and cannot be turned off.
Open Workflow Monitor
Examine the Windows Task Bar for the presence of the minimized Workflow Monitor icon
If the icon is not found minimized on the taskbar, here are two other methods to open Workflow
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 71
Right-click on the PC_Course Repository in the Workflow Manager’s Navigator window and select Run Monitor
Select Start | Programs | Informatica PowerCenter Client 6.0 | Workflow Monitor
How quickly the Workflow Monitor initializes depends on the speed of network between the Informatica Server and PowerCenter client. A remote connection from the client to the server will likely cause a delay and take a few seconds up to a minute.
To open Workflow Monitor from the minimized taskbar icon, try one of the following methods: Right-click on it and select Open; or Double-click on it
One of the following two windows will appear:
Gantt Chart
Task View
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 72
Time window (area)
Navigator window (area)
If the Workflow Monitor does not resemble the above, either the Gantt Chart or Task View, then notify the Instructor before proceeding. The Workflow Monitor needs to be completely disconnected to continue with the instructions going forward.
Connect to the Repository (Workflow Monitor)
Use any one of the following methods to connect to the repository:
Select Repository | Connect; or
Click the Connect icon in the toolbar; or Double-click on ‘Repository’ in the Navigator window
A list of available Repositories will appear in a pull-down list in the Connect to Repository dialog box. This list is local to the client workstation.
Any of these methods will produce the Connect to Repository dialog box:
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 73
Time window
Navigator window
Select the PC_Course Repository from the Repository pull-down list
Tab to the Username box and note the username automatically appears – it was the last username logged into the client workstation
Once the repository is selected, if the Workflow Monitor had been previously used on the client workstation then the last logged in Username, Host Name and Port Number will appear automatically. These are listed in the Windows registry of the local client. The Host/Port combination is communication link where the Server machine is listening for client requests.
Accept the default or enter the assigned Repository studentxx Username and then the Password
In the Repository Server box, if there is no default entry, enter the Host Name and Port Number designated by the Instructor
Click on the Connect button. The PC_Course Repository shows
in the Navigator window. Notice that the disconnect icon and the PC_Server server is displayed; both are signs that the user is connected to the repository
Connect to the Informatica Server
In order to view the results of the wf_ODS_EMPLOYEE_xx Workflow, the Server must be connected in either On Line or Off Line mode.
On Line vs. Off Line Mode
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 74
Repository Select List
Connect to Repository
In On Line mode, the Workflow Monitor continuously receives current information from the Informatica Server via the Repository Server (e.g. Workflow development testing). With Off Line mode, the Workflow Monitor displays historic information about past Workflow and Task runs by retrieving the information from the Repository (e.g. Production run review).
Both Developers and Production Operators will use the Workflow Monitor for Workflow and Task processing on the Informatica PowerCenter Server. Developers, typically, will be in On Line Mode to monitor current activities. They may also act as Production Operators while testing and use it in Off Line Mode to review the previous test runs; Production Operators, of course, will monitor production runs.
Select the Gantt Chart tab
Right-click on Server, PC_Server, and select Connect | On Line. Or double-click on the server and select On Line
Double-click on the assigned Studentxx folder to view the previously processed workflows
Drill down (double-click on each object) all the way until the session task, s_m_ODS_EMPLOYEE_xx, appears
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 75
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
Three objects should appear in the selected folder. Note the run time for each is within seconds of each other:
The s_m_ODS_EMPLOYEE_xx Session Task -- icon
The start_ODS_EMPLOYEE Task -- icon
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 76
Task Name (icons)
Task View tab
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. Here’s how to see the results:
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 77
Locate the s_m_ODS_EMPLOYEE_xx Session task under the Task Name column
View the Session Properties by doing any one of the following: Right-click anywhere on the line selected and select
Properties; or
Click on the Session Properties icon; or simply, Double-click on the selected line for
s_m_ODS_EMPLOYEE_xx Session
The Properties tab of the s_m_ODS_EMPLOYEE_xx dialog box opens. The Session should display the number of Target Success Rows shown below:
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 78
Expected Results
PropertiesTab
Applied / Affected / Rejected Rows
Applied rows are rows the Informatica Server successfully produced and applied to the target without errors.
Affected rows are generated by the Server and ‘affected to’ (or accepted by) the target. They may be a combination of INSERT, UPDATE and DELETE rows, or multiple rows in a database may be impacted by one UPDATE row.
Rejected rows are either those read rows that either the Server dropped during the transformation process, or rows that rejected when writing to the target. Rejected rows may be acceptable and expected.
Refer to “Monitoring the Workflow” in Chapter 12 of the Workflow Administration Guide
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 79
Source Qualifier Instance
Transformation Statistics Tab
Target Instance
View the Session Log
The Session log is one method to determine what occurred during the system run. To view detailed Session information, try one of the following:
Right-click on Session in the Task Name column (Time window) and select Get Session Log; or
Select the Session anywhere on the line in the Time Window and
click on Session Log icon
The Session Log is copied from the Informatica PowerCenter Server machine as TmpSessionLog_x.log and automatically opens with WordPad on the local client workstation. Multiple logs may be opened on the client, hence the “_x” in the log file name.
If errors have occurred, review the Session log to determine what errors occurred. Test and rerun as necessary.
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 80
Informatica PowerMart / PowerCenter 6 Basics – Lab 6 – Start and Monitor the Workflow 81
Processing) Memory (DTM Buffer Pool)
Native Source and Target Database Connections
INSERT, UPDATE and DELETE row syntax (if created)
Session Processing Threads
Mapping Name
Session Name
LAB 7 – FEATURES AND TECHNIQUES I
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 A T I O N
40 minutes
Start the Designer
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 83
Lab77
Start the Designer by selecting Start | Programs | Informatica Power Center 6.0 | Designer.
Connect to Repository
Connect to the PC_Course Repository (refer to flagged step Connect to the Repository on page 10)
Open Folder
Open the assigned Studentxx Folder (refer to the flagged step Open Folder on page 15)
Open Mapping
Open the mapping, m_ODS_EMPLOYEE_xx (refer to the flagged step Open Folder on page 15)
Lesson 1 – Arrange Objects
The Designer includes the Arrange feature that will reorganize objects in the workspace in one simple step. This aids in readability and analysis of the mapping flow and can be applied to certain paths through a mapping associated with specific target definitions – this is commonly referred to as a “pipeline”.
Attempt to Save
If there was nothing to save, don’t fret. This step was just in case the steps above were not needed to open the mapping and a saved wasn’t previously performed.
In a couple of clicks, this feature can take a mapping that looks like this:
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 84
And change it to look like this:
Or this:
To display specific pipelines in the Mapping Designer: Choose Layout | Arrange or right-click in the workspace and
select Arrange Select the target
Select the Iconic option to display arranged pipelines in the Iconic View.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 85
Click OK
To restore entire mapping from Iconic View to Normal View, do the following:
Choose Layout | Arrange Click the Select All button Uncheck the Iconic checkbox Click OK Save
This is the reset point (Normal View with the objects aligned) that, when instructed to execute the Revert to saved command, everyone will be at the same starting place.
Lesson 2 – Remove Links
Click-and-drag the pointer over the blue link lines, only, between the exp_ODS_EMPLOYEE and the ODS_EMPLOYEE Target Definition
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 86
By default, each link stroked changes in color from blue to red. If any other objects (e.g.: transformations) were selected along with the links, redo the process.
Press the Delete key to remove the connections and make sure that is all that is deleted
Lesson 3 – Manual Linking
This lesson is to demonstrate the proper technique to manually link ports between transformations
Single-click and hold the left mouse button in the white space just to the right of the text for the NAME_out port in the exp_ODS_EMPLOYEE Expression and attempt to link it to the NAME port in the ODS_EMPLOYEE Target Definition
Note the behavior – with absence of the link
icon, this indicates the objective to create a link is not in process. In addition, it appears as
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 87
though several other columns have been selected in the exp_ODS_EMPLOYEE Expression. To successfully create a manual link, the cursor must originate on text in any column visible (e.g. Name, Expression, Datatype, etc.) – not the white space to the right of the text
Make another attempt to create the same link; however, this time, Single-click on text rather than the white space
Delete the link to try another manual link method Select only the output ports (Ctrl-click) in the
exp_ODS_EMPLOYEE Expression and link them to all of the ports to the ODS_EMPLOYEE Target Definition
In order to be successful, the port Datatypes must be compatible. If the ports are out of order, but match by name or some other pattern, consider Autolink as an option.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 88
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 – it’s not just per selected object. However, if several mappings were changed without a save, only the active mapping in the Workspace would be reverted back.
To demonstrate that objects can not be reverted back individually, remove the NAME_out and DATE_HIRED ports from the exp_ODS_EMPLOYEE Expression
Remove the DATE_HIRED port from the sq_EMPLOYEE Source Qualifier
With the sq_EMPLOYEE Source Qualifier being the only object selected, select Edit | Revert to Saved
The same dialog box appears – all changes must revert back.
Individual objects may be reverted back to the previous version without impacting objects around it when using the Source Analyzer, Warehouse Designer and Transformation Developer (to be discussed later) – the Mapplet (to be discussed later) and Mapping Designers require all changes to be reverted back to the previous version.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 89
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_ID’s 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 90
Notice how NAME_out port’s 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 doesn’t 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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 91
Revert to Saved to reset the mapping Remove the links between the exp_ODS_EMPLOYEE Expression
and the ODS_EMPLOYEE Target Definition From the Main Menu choose Layout | Autolink
The Autolink dialog box opens. Another technique is right-click in the workspace and the same dialog box will open.
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 92
By Name
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 don’t 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 93
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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 94
The Datatype, precision and scale must be considered when using this Autolink option. In addition, not every port visible in the Normal View has both the input and the output ports selected. In other words, some ports may be required to create an output port (derived port), however, are not needed down stream. A best practice is to uncheck the output port of those ports deemed to be input only. It not only gives the mapping a cleaner look, it simplifies features like Autolink by position.
To link ports by position:
Revert to Saved to reset the mapping Remove the links between the exp_ODS_EMPLOYEE Expression
and the ODS_EMPLOYEE Target Definition Choose Layout | Autolink or right-click in the workspace and
select Autolink Select the transformations and targets Select Position
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,
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 95
By Position
however, it is a best practice double-check the results of the Autolink.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 96
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 97
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
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 98
Delete the port by using the icon
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 99
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.
Use the mouse to choose the copy columns icon
Use the mouse to choose the link columns icon
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 100
Copy columns
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
Copy Columns
Choose the copy columns by selecting Layout | Copy
Columns or the Copy Columns icon Use the drag-and-drop method to copy the TYPE_CODE port
from the sq_EMPLOYEE Source Qualifier to the exp_ODS_EMPLOYEE Expression
The exp_ODS_EMPLOYEE Expression displays the TYPE_CODE port just copied from the sq_EMPLOYEE Source Qualifier as shown above; however, in this mode no link should have been created.
Link Columns
Choose the link columns by selecting Layout | Link Columns
or the Link Columns icon Link the TYPE_CODE port from sq_EMPLOYEE Source Qualifier
to the exp_ODS_EMPLOYEE Expression
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 101
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 102
Use the drag-and-drop method to copy / link the TYPE_CODE from the sq_EMPLOYEE Source Qualifier to the exp_ODS_EMPLOYEE Expression
Lesson 10 – Create Transformation Methods
Developers can create transformations using the following Designer tools:
Mapping Designer. Create transformations that connect sources to targets. Transformations in a mapping cannot be used in other mappings unless Developers configure them to be reusable
Transformation Developer. Create individual transformations, called reusable transformations that Developers can use in multiple mappings
Mapplet Designer. Create and configure a set of transformations, called mapplets that Developers can use in multiple mappings
There are two ways to create transformations from scratch. There is the Transformation Toolbar that includes every Informatica transformation and then there is the menu option, Transformation | Create. When using the transformation toolbar developers will be able to click and drop transformations to a desired location in the workspace and it will also give it a default name. The Transformation | Create option forces the developer to select the desired transformation from a drop down list and the name must be typed in before the Designer creates the transformation.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 103
Transformation Toolbar Method
Revert to Saved to reset the mapping On the Transformation toolbar, find the Aggregator
Transformation icon and single-click
Note when the mouse pointer hovers over a transformation icon in the toolbar that the name of the transformation object appears momentarily. In addition, some transformations will be shadowed meaning the transformation object is not available in the selected tool (e.g. Transformation Developer, Mapplet or Mapping Designer).
Drag the mouse into the workspace
Note the arrow changes to crosshairs while in the workspace.
Pick a location where the transformation should appear and single-click again
The selected transformation appears in the desired location of the workspace and the crosshairs change back to the arrow. The object has a default name that should be changed for easy identification during a debug run.
Transformation Menu Method
Select Transformation| Create
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 104
Select the Aggregator from the drop down list
Select Create and give it the name agg_TargetTableName Click on the Done button and the new transformation appears in
the workspace
Lesson 11 – Zoom and scale-to-fit
A mapping may be difficult to view in the workspace and the developer may want to change the magnification to see it better. Below are the features and techniques to adjust the magnification.
Revert to Saved to reset the mapping
Zoom Out by using the Toolbar Option
There are features to change the magnification of the contents of the workspace. Use the toolbar or the
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 105
Layout menu options to set zoom levels. The toolbar has the following zoom options:
Zoom in 10% on button
Uses a point selected as the center point from which to increase the current magnification in 10 percent increments
Zoom out 10% on button. Uses a point selected as the center point from which to decrease the current magnification in 10 percent increments
Click on the Zoom Out 10% on button on the toolbar Click anywhere in the workspace and the mapping will zoom out
by 10% each time the mouse is clicked Keep clicking until the mapping is small enough to fit within the
window
Zoom In by using the Toolbar Option
Zoom in 10% on button increases the current magnification of a rectangular area selected. Degree of magnification depends on the size of the area selected, workspace size, and current magnification
Click on the Zoom In 10% on button on the toolbar Click anywhere in the workspace and the mapping will zoom in
by 10% each time the mouse is clicked.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 106
Zoom in by 10% button Zoom out by 10% button
Zoom in based on rectangle Drop down list
Scale to fit
A developer can also zoom in or out by right clicking in the mapping designer and clicking on zoom in or zoom out by the same 10% increments
Scale to Fit
Scale all objects to fit in the workspace
Toggle off the Zoom In 10% on button
Click on the Scale to Fit icon in the toolbar
Two other options are to 1) select the menu option, Layout | Scale to Fit or 2) Right-click anywhere in the workspace and choose Scale to Fit.
Layout Menu Options
The layout menu has the following Zoom options
Zoom in Based on Rectangle
Zoom in based on rectangle increases the current magnification of a rectangular area selected. Degree of magnification depends on the size of the area selected, workspace size, and current magnification.
Zoom Center
Zoom Center maintains the center point of the workspace and zooms in or out by 10 percent increments.
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 107
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 108
Zoom Percent
Zoom Percent. Select the desired percent and Zoom in or out by that percent
Lesson 12 – Designer Options
As mentioned in Lab Guidelines, screen shots are based on columns that are not selected by default. All of the transformation objects used in this course have the following columns selected: Name, Datatype and Length/Precision. Others will include Expression.
Select Tools | Options Click on the Table Tab For the Source and Target, select Key Types, Name,
Datatype, Length/Precision For the Source Qualifier, Update Strategy, Filter, Lookup,
Joiner, Router, Mapplet and Sorter select Name, Datatype, Length/Precision
For the Expression and Aggregator select Name, Expression, Datatype, Length/Precision
Informatica PowerMart / PowerCenter 6 Basics – Lab 7 – Features and Techniques I 109
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 A T I 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 111
Lab8844
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 112
The missing TYPE_CODES in the results above are Nulls. To verify, use the Preview Data feature on the ODS_EMPLOYEE target within the Designer to see the values.
Prepare Designer
These first steps will be to setup the Mapping Designer. Some of the steps may not be necessary because the Designer may still be open from the previous exercise.
Open Designer and connect to the Repository PC_Course Repository
Open the assigned Studentxx folder
Clear Workspace
At the beginning of each new development project (or Lab) it is a good practice to clear any unneeded objects from the Source Analyzer or Warehouse Designer Workspace (e.g. - from a previous project that will no longer
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 113
be needed). If the objects are not cleared, they may simply be unnecessary clutter in the Workspace. If the Workspace in both tools is already clear, skip the following four steps.
The last tool present (Source Analyzer, Warehouse Designer, Mapping Designer, etc.) will have opened. If the Source Analyzer is not present in the work area, select it via the toolbar
Right-click and select Clear All to clear the Workspace
Change to the Warehouse Designer Clear the Workspace via the same method
Close Mapping
A good practice to set up for any new development assignment (in this case, a lab) is to close the previously opened mapping.
Change the Workspace to Mapping Designer as described in the
flagged step Open the Mapping Designer on page 31
Locate the Recent Mapping list immediately above the Mapping Designer Workspace. If the mapping name is present in the Recent Mappings drop-down list, then it is still open. If not, skip to the Copy Mapping Step
The Recent Mapping list holds the mappings that have been opened since the last time the folder was closed (disconnected). A folder can be closed in several ways (e.g. Closing the Designer or Disconnecting from the repository or the folder) – any of which will net the same effect.
Close the mapping by using one of the following methods: Select Mappings | Close; or
Click on the Close Mapping icon in the Toolbar
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 114
RecentMappings List
If a mapping is not closed prior to building a new mapping or viewing another in the Workspace, the Designer will prompt whether or not to close the current one.
If any changes were made to the mapping and not saved before opening or creating another, the Designer will NOT prompt to save changes until the folder is closed. Once a repository save is performed, any mappings that were opened in the Workspace and changed will be saved – it does not have to be performed individually. Anything saved will appear in the Output window.
Copy Mapping Setup
The first step will be to obtain access to the errant mapping and make a copy of it to the assigned Studentxx folder. Make sure the Workbook tab is
selected from View | Workbook. It should look depressed. When depressed, the bottom of the Workspace will display all of the open folders – the only folder that should be opened is the assigned Studentxx
Locate the Shared_Student folder in the Navigator window and expand it by clicking on the ‘+’ sign to the left of the folder name
If the Shared_Student folder appears as another Workbook tab next to the assigned Studentxx folder:
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 115
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 15.
Continue to drill down to the Mappings node in the same fashion as the folder and select the m_ODS_EMPLOYEE_BAD mapping
Copy Mapping – Edit | Copy or Ctrl-c Method
Copy the mapping by doing one of the following: Select Edit | Copy; or Ctrl-C
The m_ODS_EMPLOYEE_BAD mapping is in the Windows clipboard
Paste the mapping by selecting the assigned Studentxx folder and doing one of the following:
Select Edit | Paste; or Ctrl-V
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 116
The Designer displays the message to confirm the copy. Before proceeding, there is one other technique to practice.
Copy Mapping – Mappings | Copy As… Method
Select the No button to practice another method to copy mappings
Verify the Studentxx folder is active in the Workspace (or by viewing the Open Folder List – see below)
Select the Mapping Designer
In the Navigator Window, single-click the m_ODS_EMPLOYEE_BAD mapping from the Shared_Student folder
Select Mappings | Copy As…
Type in the name, m_ODS_EMPLOYEE_BAD_xx, and click OK
The mapping is copied to the Studentxx Folder. There is one more method to try, so adding the mapping will not be saved at this point.
Click on the assigned Studentxx Folder
Click on the Disconnect icon Click on the No button to not save changes
Copy Mapping – Drag and Drop Method
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 117
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
(DON’T DROP YET) – note the shortcut icon as it enters the Workspace
Click and hold the Ctrl key and note the copy icon
while in the Workspace Drop the mapping
This exercise requires the Ctrl key because the object is coming from a shared folder – one that allows shortcuts. Whenever an object is dragged from a shared folder to another, it is assumed that a shortcut is desired.
An analogy is the Windows standard when using Explorer to copy a file – if the file is an executable (.exe), then it assumes a shortcut is desired. The Ctrl key, in both cases, changes it from a shortcut to a copy.
As previously stated, the key here is pay close attention to the object that is anchored to the arrow.
If the anchor is dark arrow pointing to the upper right, then the action will create a shortcut. While
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 118
holding the Ctrl key, the anchor turns into a “+” sign which indicates a copy.
Regardless of which action is taken, the Designer provides a dialog box to confirm:
So, if is says ‘Create a shortcut…’, then try again
After selecting Yes to confirm the copy, two more decision dialog boxes appear. Select Reuse for both:
And…
When copying a mapping, the mapping itself is not the only object that appears in the target folder’s mapping node. Any object that exists in the original mapping
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 119
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 120
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 121
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 122
Click on the Next button. The next Debug Mapping Wizard page appears
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 123
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
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 124
Select the same native connections used for the run of the Workflow in the flagged step Edit Session Task on page 58
Only if the target table database connection is using an Oracle client less than 8.1.7.2, select the Properties tab at the bottom and select Normal for Target load type
Click on the Next button to proceed Leave the default settings on this page of the Wizard and click on
the Next> button
On the last page of the Wizard (not shown), leave the check in the Discard target data checkbox.
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 125
This option will take the data to the database to check for errors, but will not commit the rows
Click on the Finish button and wait for the ‘spinning’ (initializing)
of the Debugger icon to stop before proceeding
Look in the upper right corner of the Debugger. The initialization process may take several seconds.
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
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 126
Instance Window: Data Rows will appear
Target Instance Window: Final data rows will appearDebugger
Server LogReal-timeSession Log
Rotate position of the Instance windows if desired via drag and drop method
on its left side, and stretch it to make that Debugger and Session Log tabs visible. If that doesn’t do the trick, then the scroll bar may be in the way – that, too, may need adjustment. Click on the Session Log tab to watch the Real-Time log creation:
Furthermore, developers have a choice to position the windows in any of the three slots or undocked. Click up near the header (title) of the window and drag to the left or right to position them or hold the Ctrl key to prevent docking:
The Debugger toolbar will come become active when in debug mode.
Next Instance vs. Step to Instance
Once a starting point (transformation) for the debug process is selected, the Next
Instance icon allows the user to ‘follow’ a row through each transformation in the mapping. The Debugger will then proceed to the next row and follow it through each transformation.
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 127
Think of the two squares in the Next Instance icon as representing transformations, and a row stepping from one transformation to the next.
The Step to Instance icon allows the user to examine one transformation at a time, following one-row-after-another through the same transformation.
Think of the picture in the Step to Instance icon representing ‘steps’ – as if stepping down to the next row, in the same transformation.
Debug Mapping
There are errors in the mapping. Select a transformation to serve as a starting point for the debugging: Select the sq_EMPLOYEE Source Qualifier in the mapping.
Click on the Next Instance icon (or F10) to start the movement row through the Debugger
Notice the large Yellow arrow that appears on the Source Qualifier, sq_EMPLOYEE. This shows the focus of the debug action.
The smaller green arrow displaying a flashing yellow on the bottom of the Source Qualifier will continue to flash as long as rows are being read
Continue to press F10 and notice the focus of the debug change as row-by-row, each row moves from the sq_EMPLOYEE to the exp_ODS_EMPLOYEE
Examine the data in the Instance window and notice the pull-down list can be used to see a row in either of the two transformations in the mapping
Flipping back and forth between the sq_EMPLOYEE and the exp_ODS_EMPLOYEE shows how the data has been transformed. If it appears to be different records, then the Next Instance F10 needs to be pressed
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 128
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 129
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 122)
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 130
Double check the parameters above and click OK to save the breakpoint
Click the Continue button
The Debugger will run through all of the rows until the first occurrence of a NULL is present. Note that two rows pass to the Target and then stops. With the sq_EMPLOYEE as the Instance, note the TYPE_CODE is NULL – there is a check in the NULL checkbox on the left.
Click the Continue button, again
Ten rows enter the target and the debugger stops. Again, the TYPE_CODE is NULL.
Click the Continue button, once again
NULL is not found in any other row – all rows continue to the target.
Click the Continue button, yet again for a final time, and the Debugger stops
Edit the Breakpoints
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 131
Note the defined breakpoint is still present. Breakpoints may be edited even when the Debugger is not running. When a repository save is performed, any breakpoints defined will remain associated with the mapping until they are deleted.
Add additional breakpoints and experiment
Breakpoints may also be deactivated without being deleted – there is a checkbox to the left of the breakpoint. To see all of the Breakpoints, make sure ‘All Instances’ is selected at the top of the Edit Breakpoints Dialog box – from there it will be easier to determine which Breakpoints are needed for the debug run.
Informatica PowerMart / PowerCenter 6 Basics – Lab 8 – The Debugger 132
LAB 9 – FLAT FILE WIZARD AND FILTER
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 A T I 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.
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 133
Lab99
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 Server’s perspective – never from the client workstation.
Select Sources | Import From File Change the Files of type: to All Files (*.*), locate the
directory (Instructor will provide location, and import the Flat File, TIME.txt.
Select Delimited Click on Import Field Names From First Line
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 134
The first row in the TIME.txt flat file contains the column names. When the option is checked, it automatically starts the import at row 2 and assumes that future extracts will start at row 2. This, of course, can be changed if necessary without using the wizard (e.g. If the first extract contained column names – which is helpful to the developers who need to know – but future extracts do not, then this can be changed back to import from the 1st row.)
Click Next Make sure that Comma is set under the Delimiters section and
the text Qualifier should be set to Double Quotes
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 135
Import field names from first line
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 136
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 137
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 32)
When creating a new mapping, the Designer will prompt whether or not to close the current mapping in the workspace. Click on the Yes button when the prompted.
Add Source and Target Transformations
From the FlatFile database name under the Sources node, drag-and-drop TIME Source definition, into the Mapping Designer Workspace
Of course, the FlatFile database is not really a database, however, this is the chosen terminology in how Source Definitions are grouped.
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 138
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 139
Create Expression Transformation
Create an Expression Transformation (refer to the flagged step Create the Expression Transformation on page 38)
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 100
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
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 140
Click on the Ports tab
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 141
Highlight the third port, Quarter, then add the following ports,
each by clicking the Add Port button
PORT DATATYPE LENGTH PORT TYPEDATE_ID date/timestamp 19 (default) Output OnlyMONTH_out string 3 Output OnlyQUARTER_out string 2 Output OnlyYEAR_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 42).
As mentioned earlier, formulas can be typed in manually, however, it’s recommended to use the tabs in the Expression Editor’s 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 FORMULADATE_ID TO_DATE(DATE,’DD-MON-YYYY’) MONTH_out SUBSTR(DATE,4,3)QUARTER_out SUBSTR(QUARTER,6,1)YEAR_out SUBSTR(QUARTER,1,4)
Change the ports DATE and QUARTER to input ports only Examine the Ports Tab of the exp_ODS_TIME Expression – it
should resemble as follows:
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 142
Click on the OK button
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 143
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_IDDAY_OF_WEEKMONTH_outQUARTER_outYEAR_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 = MONTHQUARTER_out = QUARTER YEAR_out = YEAR
Click on the Properties tab
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 144
Click on the arrow on line 1 (Filter Condition) to the far right in the Value column to open the 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)
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 145
Click here to open Expression Editor
Validate the mapping by selecting Mapping |Validate
Remember to view the Validate Tab in the Output window for the results.
Save
Completed Mapping
Create Workflow
Complete the following steps (refer to Start Workflow Manager on page 51)
Start Workflow Manager Connect to Repository Open Folder
Create Workflow, wf_ODS_TIME_xx, via Workflows | Create
Edit wf_ODS_TIME_xx Workflow: Properties tab, add the wf_ODS_TIME_xx.log as the
Workflow Log File Name Metadata Extensions tab, add creation date and your
name in the respective reusable metadata extensions Edit Start Task:
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 146
Rename Start task to start_ODS_TIME Create Session Task called s_m_ODS_TIME_xx
Edit s_m_ODS_TIME_xx session Task – Sources/Properties tab, verify Source filename
is time.txt Task – Targets/Connections tab, select
native_target_xx for ODS_TIME target table Targets (top)/Properties (bottom), check Truncate
target table option Only if the target table database connection is using an
Oracle client less than 8.1.7.2 - Targets/Properties tab, select Normal for Target load type
Link start_ODS_TIME to s_m_ODS_TIME_xx Session Task Save, Validate and Start Workflow from Selected Task,
start_ODS_TIME Monitor and Review the results for s_m_ODS_TIME_xx in the
Workflow Monitor
Results – Session Properties
By using the date 12/04/1999, the ODS_TIME_xx table should contain 1489 rows.
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 147
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…
The above dialog box is similar to the ones used to connect to the source and target database. In this case the connection needs to be made to the target database. Login to the target database in the same manner; refer to the flagged step Analyze Source Definitions on page 19.
Informatica PowerMart / PowerCenter 6 Basics – Lesson 9 – Flat File Wizard and Filter 148
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 149
LAB 10 – HETEROGENEOUS JOIN
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 vendor’s 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 A T I O N
35 minutes
S U M M A R Y
SOURCES: PRODUCT table, ORDER flat fileTARGET: ODS_ORDER_AMOUNT table
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 151
Lab1010
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 152
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 133)
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 153
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 31.
Add target definition, ODS_ORDER _AMOUNT
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 154
Save the mapping
Click on the Navigator window and Output window toggle buttons which are located next to folder name as seen below, to minimize these two windows.
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 155
Navigator Window Toggle Button
Output Window Toggle Button
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 156
Port Precision (Width) for:
Ports PRODUCTORDERPRODUCT_CODE 10VENDOR_ID 10PRICE 10COST 10ORDER_DATE 11PRODUCT 10QUANTITY 1
Total Port Width 40 22Total Rows 80 200
Port Width x Rows 3200 4400
Add the following ports to jnr_ODS_ORDER_AMOUNT from: sq_PRODUCT (PRODUCT_CODE, VENDOR_ID, PRICE,
COST) sq_ORDER (ORDER_DATE, PRODUCT, QUANTITY)
Edit jnr_ODS_ORDER_AMOUNT – Ports tab, select the ports from the Product as the Master
On the ports tab, increase size of PRODUCT port to a precision of 10.
On the Condition tab, add one condition where PRODUCT_CODE =
PRODUCT by clicking on the Add a new condition button
On the Properties tab, confirm the Join Type is Normal
There are several different Join Types available to choose. There is the Normal Join (inner), Master Outer Join (left), Detail Outer Join (right), and Full Outer Join. See Defining the Join Type in Chapter 6 of the Transformation Guide.
Save the mapping
Create Expression Transformation
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 157
Create an Expression Transformation called exp_ORDER_DATE Copy/Link ORDER_DATE port from the
jnr_ODS_ORDER_AMOUNT to exp_ORDER_DATE Rename ORDER_DATE port to ORDER_DATE_in Add a new port called ORDER_DATE_out with the Datatype,
date/time Create an expression as follows:
TO_DATE(ORDER_DATE_in, 'DD-MON-YYYY')
Create Aggregator Transformation
The Aggregator transformation allows aggregate calculations, such as averages and sums. The Aggregator transformation is unlike the Expression transformation, in that it can be used to perform calculations on groups. The Expression transformation permits calculations on a row-by-row basis only.
Create an Aggregator Transformation ( icon) and name it agg_ODS_ORDER_AMOUNT
Add the ORDER_DATE_out port from the exp_ORDER_DATE to the agg_ODS_ORDER_AMOUNT
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 158
Add the following ports from jnr_ODS_ORDER_AMOUNT to agg_ODS_ORDER_AMOUNT and arrange them in this specified order following the ORDER_DATE_out port:
PRODUCT_CODE, VENDOR_ID, PRICE, COST, QUANTITY
It is important to specify how to group the data to do aggregate calculations. The group by ports can be input, output, or variable ports. To define a group, check the GroupBy checkbox for each port required on the Ports tab in the aggregator. The order of the ports from top to bottom determines the group by orders, so move them around if necessary.
In addition, when grouping data the last row of each group is output, unless otherwise specified in an Aggregator Expression. The “Expression” section of the port will be enabled, turn white and logic can be inserted in the Expression Editor section of the port for output and variable ports
Rename ORDER_DATE_out to ORDER_DATE
Edit agg_ODS_ORDER_AMOUNT – Ports tab, group the data by:
ORDER_DATE PRODUCT_CODE VENDOR_ID
On the Ports tab, append _in to the QUANTITY port. The end result will be QUANTITY_in. In addition, make this an Input only port by turning off the Output port
On the Ports tab, create an output port called QUANTITY_out with a Datatype of “integer”
Build an expression should result in the sum of the QUANTITY_in
SUM(QUANTITY_in)
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 159
Save the mapping
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 160
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 91)
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 161
Completed Mapping
Save the mapping and check for validation information on the Save tab in the output area. If valid, proceed to the Workflow Manager.
Create Workflow
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 162
Create Workflow called wf_ODS_ORDER_AMOUNT_xx Add wf_ODS_ORDER_AMOUNT_xx.log as the Workflow Log File
Name Add creation date and your name in the respective reusable
metadata extensions Rename Start task to start_ODS_ORDER_AMOUNT Create Session Task called s_m_ODS_ORDER_AMOUNT_xx Select native_source connection for sq_PRODUCT source
instance Verify Source filename is order.txt (Properties tab)
Select native_target_xx connection for ODS_ORDER_AMOUNT target instance
Check property Truncate target table option Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target load type property
Link start_ODS_ORDER_AMOUNT to s_m_ODS_ORDER_AMOUNT_xx
Save, Validate and Start Workflow wf_ODS_ORDER_AMOUNT_xx
Monitor and Review the results for s_m_ODS_ORDER_AMOUNT_xx in the Workflow Monitor
Results – Session Properties
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 163
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 164
Results – Session Transformation Statistics
Results – Preview Data
Only the first few rows are shown.
Informatica PowerMart / PowerCenter 6 Basics – Lab 10 – Heterogeneous Join 165
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. It’s 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 Transformation’s Sorted
Input property
D U R A T I O N
20 minutes
S U M M A R Y
SOURCES: PRODUCT table, ORDER flat fileTARGET: ODS_ORDER_AMOUNT table
Informatica PowerMart / PowerCenter 6 Basics –Lab 11 – Sorter 167
Lab1111
Copy Mapping
The first step will be to copy the previous mapping Copy the mapping m_ODS_ORDER_AMOUNT_xx (See flagged
step Copy Mapping on page 115) and name it m_ODS_ORDER_AMOUNT_sorter_xx
Open m_ODS_ORDER_AMOUNT_sorter_xx mapping in the Workspace
Save
Create Sorter Transformation
Create a Sorter transformation and name it srt_ODS_ORDER_AMOUNT
Add ORDER_DATE_out port from exp_ORDER_DATE Add QUANTITY, PRODUCT_CODE, VENDOR_ID, PRICE and
COST ports
Informatica PowerMart / PowerCenter 6 Basics –Lab 11 – Sorter 168
When inserting another transformation between transformations that are already linked it is easier to get a visual of what ports need to go where. So, rather than removing the input links from the agg_ODS_ORDER_AMOUNT transformation, add the links to the one that needs them, first.
Rename ORDER_DATE_out to ORDER_DATE Check the key check box for the ORDER_DATE,
PRODUCT_CODE, VENDOR_ID ports and make sure the ports are in that order
The intent is to match the grouping in the Aggregator
Save
Remove Links
Remove all input links to agg_ODS_ORDER_AMOUNT
This will be the location where the Sorter Transformation will be inserted
Add Links
Autolink by name srt_ODS_ORDER_AMOUNT to agg_ODS_ORDER_AMOUNT
Manually link QUANTITY from srt_ODS_ORDER_AMOUNT to QUANTITY_in in agg_ODS_ORDER_AMOUNT
Save
Set Sorted Input Property
Informatica PowerMart / PowerCenter 6 Basics –Lab 11 – Sorter 169
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 it’s 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 170
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
Informatica PowerMart / PowerCenter 6 Basics –Lab 11 – Sorter 171
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 172
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 173
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 A T I O N
40 minutes
S U M M A R Y
SOURCE: INVOICE tableTARGET: ODS_CUSTOMER_ACTIVE table
Import Source Table
Clear Source Analyzer Workspace – Right-click anywhere in the workspace and select Clear All
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 175
Lab1212
Continue to work in the assigned student folder and import the relational source, INVOICE
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 176
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 177
Create Filter Transformation
Create a Filter Transformation called fil_ODS_CUSTOMER_ACTIVE (see flagged step Create Filter Transformation on page 144)
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 178
Connected vs. Unconnected Lookups
In this step a connected Lookup is needed in order to bring back specific existing Customer data where a Joiner or SQL override will not work correctly. Like a number of other transformations, Lookups can be configured to be ‘connected’ or ‘unconnected’.
Add a Lookup Transformation to the mapping and a dialog box appears:
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 179
Since the CUSTOMER table has not yet been analyzed or imported as a Source or a Target, select the Import button (as shown above)
Enter the logon information needed to connect to the odbc_source location (see flagged step Analyze Source Definitions on page 19)
Expand the SDBU Tables list and select the table CUSTOMER
Click OK and a Lookup transformation window will appear in the workspace
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 180
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 181
Copy/Link CUST_NO from
fil_ODS_CUSTOMER_ACTIVE to an empty or output port in lkp_CUSTOMER – the icon will have the plus sign tagged at the bottom as it enters the Lookup Transformation
Double-click on the header of the Lookup transformation. On the Condition tab choose Add a new condition button (see
picture below)
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 182
The Designer will automatically choose the ports to compare based on the sequential order of Lookup ports and Input ports.
Select CUST_ID and CUST_NO for the condition
The Lookup, like the Joiner and the Aggregator discussed earlier, has the ability to cache the rows to memory (and disk). There are several caching options to be discussed later in the course; however, when a lookup is connected (every source row passes through), it is a Best Practice to choose one of many caching options to obtain the best performance.
Change the Location Information on the Properties tab to $Source
In this example, since the source and lookup tables come from the same Database (Schema), the $Source variable may be used. This means that when native database connection is chosen for the Source Instance in the Session Task, the Lookup will use the same one.
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 183
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.
After selecting the Location Information, close the Edit Transformations Dialog Box and Save
Link Target Definition
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 184
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
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 185
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
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 186
process. It is not recommended to leave a mapping or workflow in this state; however, there are several other features that have not been covered to apply best practices. The number listed in the Target Success Rows is accurate, however, there are ways to build mappings to identify rows that will be rejected by the database before they get there; hence reducing the Target Failed Rows to zero. Some of those features will be addressed in this basic course and others will be left for the advanced course.
Results – Preview Data
Only the first few rows are shown.
Informatica PowerMart / PowerCenter 6 Basics – Lab 12 – Basic Lookup 187
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 A T I O N
25 minutes
S U M M A R Y
SOURCE: INVOICE tableTARGET: 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 115 for other methods of copying mappings)
Click yes to copy the mapping Add ‘_del’ to the mapping name before the student number, xx:
Informatica PowerMart / PowerCenter 6 Basics – Lab 13 – Deleting Rows 189
Lab1313
Open the new mapping in the Workspace
Add Second Filter Transformation
Delete the links between the lkp_CUSTOMER and the ODS_CUSTOMER_ACTIVE before adding a new filter
Click-and-drag the mouse pointer over the blue link lines, only, between the lkp_CUSTOMER and the ODS_CUSTOMER_ACTIVE and note the lines change to red. If any other objects (e.g.: transformations) were selected along with the lines, redo the process
Press the Delete key to remove the connections Add a Filter Transformation to the mapping and give it the name
fil_ODS_CUSTOMER_ACTIVE_delete (See flagged step Create Filter Transformation on page 144
Informatica PowerMart / PowerCenter 6 Basics – Lab 13 – Deleting Rows 190
Add the following ports from lkp_CUSTOMER to fil_ODS_CUSTOMER_ACTIVE_delete: CUST_ID, CUST_NAME, FIRST_CONTACT, CUSTOMER_STATE, CUSTOMER_ZIP, CUSTOMER_TYPE and DISCOUNT_RATE
Edit fil_ODS_CUSTOMER_ACTIVE_delete – Properties tab, add the following condition:
ISNULL(CUSTOMER_TYPE) OR UPPER(RTRIM(CUSTOMER_TYPE)) = 'INACTIVE'
The UPPER function takes the string value and changes it to upper case.
In UNICODE mode, RTRIM removes both single- and double-byte spaces from the end of a string. In ASCII mode, RTRIM removes only single-byte spaces.
Click on Validate or OK to validate the filter condition Close the Edit Transformations window and Save
Link Target Definition
Informatica PowerMart / PowerCenter 6 Basics – Lab 13 – Deleting Rows 191
Autolink by name the fil_ODS_CUSTOMER_ACTIVE_delete to ODS_CUSTOMER_ACTIVE
Save
Completed Mapping
Create Workflow
Create Workflow called wf_ODS_CUSTOMER_ACTIVE_del_xx Add wf_ODS_CUSTOMER_ACTIVE_del_xx.log as the Workflow
Log File Name Add reusable metadata extensions: creation date and
your name
Rename Start task to start_ODS_CUSTOMER_ACTIVE_del Create Session Task called
s_m_ODS_CUSTOMER_ACTIVE_del_xx Select Task – Properties - Treat source rows as delete
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
Informatica PowerMart / PowerCenter 6 Basics – Lab 13 – Deleting Rows 192
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 193
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 194
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 A T I O N
30 minutes
S U M M A R Y
SOURCE: INVOICE tableTARGET: ODS_CUSTOMER_ACTIVE table
Copy Mapping
Copy the mapping m_ODS_CUSTOMER_ACTIVE_xx and name it m_ODS_CUSTOMER_ACTIVE_upd_xx
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 195
Lab1414
Create Update Strategy Transformation
Use an Update Strategy Transformation when keeping history information in a table or updating a table to keep most current information. In an Update Strategy a record can be flagged to be updated, inserted, deleted, or rejected using the following constants: DD_UPDATE, DD_INSERT, DD_DELETE, and DD_REJECT, respectively.
Delete the links between the lkp_CUSTOMER Lookup and ODS_CUSTOMER_ACTIVE Target Definition
Create an Update Strategy Transformation and name it upd_ODS_CUSTOMER_ACTIVE
Add the Following ports from lkp_CUSTOMER to upd_ODS_CUSTOMER_ACTIVE: CUST_ID, CUST_NAME, FIRST_CONTACT, CUSTOMER_STATE, CUSTOMER_ZIP, CUSTOMER_TYPE and DISCOUNT_RATE
Update Strategy Expression
Pseudo CodeIF (CUSTOMER_TYPE= ‘INACTIVE’ OR NULL THEN REJECT record ELSE INSERT record)
IIF statement logic:
Condition Action DescriptionCUSTOMER_TYPE = ‘INACTIVE’ or NULL (BLANK)
REJECT The CUSTOMER_TYPE is ‘INACTIVE’ or NULL (BLANK), it will be rejected.
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 196
CUSTOMER_TYPE=’ACTIVE’ INSERT The CUSTOMER_TYPE is ‘ACTIVE’. The row will be inserted.
Informatica has a set of constants used in the Update Strategy to flag the rows that pass through. They are:
DD_UPDATE flags row for update;
DD_INSERT flags row for insert;
DD_DELETE flags row for delete; and
DD_REJECT flags row for reject.
The ‘DD’ stands for Data Driven. DD_DELETE, DD_INSERT, DD_REJECT and DD_UPDATE are not listed in the functions tab, so they must be manually entered in the formula.
Edit upd_ODS_CUSTOMER_ACTIVE – properties tab, add the following expression:
IIF(UPPER(RTRIM(CUSTOMER_TYPE))='INACTIVE' or ISNULL(CUSTOMER_TYPE), DD_REJECT, DD_INSERT)
Click Validate button to validate the formula Click OK button Save the repository
Link Target Definition
Autolink by name the upd_ODS_CUSTOMER_ACTIVE Update Strategy to ODS_CUSTOMER_ACTIVE Target Definition
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 197
Save
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 198
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 199
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 200
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? It’s the Aggregator, of course.
Using the same mapping, m_ODS_CUSTOMER_ACTIVE_upd_xx, insert an Aggregator called agg_ODS_CUSTOMER_ACTIVE between the fil_ODS_CUSTOMER_ACTIVE Filter and the lkp_CUSTOMER Lookup Procedure
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 201
Copy/Link the CUST_NO port from the fil_ODS_CUSTOMER_ACTIVE Filter to agg_CUSTOMER_ACTIVE Aggregator
Link the CUST_NO port from the agg_CUSTOMER_ACTIVE Aggregator to the CUST_NO port in the lkp_CUSTOMER Lookup Procedure
Edit the agg_CUSTOMER_ACTIVE Aggregator Check the Groupby checkbox for the CUST_NO in the
Ports tab Check the Sorted Input checkbox in the Properties tab
Edit the sq_INVOICE Source Qualifier – in the Properties tab, increase the value for the Number of Sorted Ports from 0 to 1
By setting the value to 1, at session runtime, the Source Qualifier will dynamically build SQL selecting the first active output port and use it to build the Order by clause. If the value were set to 2, it would build the Order by clause by the first 2 active output ports, etc.
The generated SQL would be as follows:
SELECT INVOICE.CUST_NO, INVOICE.DATE_CLOSED, INVOICE.CANCELED FROM INVOICE ORDER BY INVOICE.CUST_NO
Save the mapping Validate the s_m_ODS_CUSTOMER_ACTIVE_upd_xx Session
Task Save the workflow Restart the wf_ODS_CUSTOMER_ACTIVE_upd_xx Workflow
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 202
Results – Extra Credit Session Properties
Informatica PowerMart / PowerCenter 6 Basics – Lab 14– Data Driven Inserts and Deletes 203
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 204
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 A T I O N
40 minutes
S U M M A R Y
SOURCES: VENDOR, PRODUCTTARGETS: ODS_PRODUCT
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 205
Lab
1515
Import Source Tables
Right-click anywhere in the Work Area and select Clear All Continue to work in the assigned student folder and import the
relational sources, PRODUCT and VENDOR
Click on the Replace button to replace the PRODUCT table
Import Target Table
Clear Warehouse Designer workspace – Right-click anywhere in the Work Area and select Clear All
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 206
Import the relational Target, ODS_PRODUCT
Create Mapping
Create a mapping called m_ODS_PRODUCT_xx
Add Sources and Target Definitions
Add PRODUCT and VENDOR Source Definitions Add ODS_PRODUCT Target Definition
Create Source Qualifier
If present, delete the Source Qualifiers
There is a primary key – foreign key relationship between the two source tables. To take advantage of the relationship, only one Source Qualifier is necessary. The Source Qualifier will pass the “where clause” to the database at runtime to join the tables.
There is a feature to prevent the Source Qualifier from entering the mapping when sources are added, however, it is easier to delete unwanted Source Qualifiers that enter the mapping and create anew than to manipulate turning the feature on and off.
The feature is located Tools | Options - Format tab – Tool: Mapping Designer -Create source Qualifier checkbox.
Create new Source Qualifier selecting both sources (PRODUCT and VENDOR) and name it sq_PRODUCT_VENDOR
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 207
Create Lookup Transformation - Connected
For more information on Connected vs. Unconnected Lookups refer to flagged step Create a Lookup on page 178.
Add a Lookup Transformation to the mapping and a dialog box appears
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 208
Choose Target button and select the ODS_PRODUCT table Copy/Link PRODUCT_CODE from the sq_PRODUCT_VENDOR to
the Lookup Transformation Rename the Lookup Transformation lkp_PRODUCT
Rename the port PRODUCT_CODE1, which came from sq_PRODUCT_VENDOR, to PRODUCT_CODE_src
Appending _src to a port states it came from the source and not the lookup. It will make more sense when it is used in a transformation later in the exercise.
Never change the name of a port that has the Lookup (L) port checked. Lookup ports are the ports that will be used in the SQL select statement sent to the database. If column is renamed, then a database error will occur at session runtime.
Turn off the ‘O’ (output) attribute for: VENDOR_ID, VENDOR_NAME, VENDOR_STATE, PRODUCT_NAME, CATEGORY, MODEL, PRICE, and FIRST_CONTACT
Another Best Practice with the Lookup Transformation is to be discerning when selecting the columns to be cached. The less cached, the better to prevent wasting system resources that would likely cause performance degradation. There are two approaches:
Delete the unnecessary port(s) – this is not recommended while in development mode;
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 209
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.
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 210
Uncheck these eight (8) Output ports to exclude them from the SQL Select Statement
Create Update Strategy Transformation
For more information about an Update Strategy see flagged step Create an Update Strategy on page 196.
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 port’s origin will be known.
However, to reiterate the point, never change the name of a lookup port in the Lookup Transformation or, for that matter, in the Source Qualifier. Both of these transformation objects generate SQL select statements passed to the
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 211
database so the column names must match to avoid database errors at runtime.
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 212
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 ISNULLDISCONTINUED_FLAG = 0
Insert The record was not found in lookup table and the product has not been discontinued, so the record will be inserted into target table.
LKP_PRODUCT_CODE NOT ISNULLDISCONTINUED_FLAG = 0
Update
The record was found in lookup table and the product has not been discontinued, so the record will update the target table.
LKP_PRODUCT_CODE NOT ISNULLDISCONTINUED_FLAG != 0
Delete The record was found in lookup table and the product has been discontinued, so the record will be deleted from target table.
LKP_PRODUCT_CODE ISNULLDISCONTINUED_FLAG != 0
Reject The record was not found in lookup table and the product has been discontinued, so the record will be rejected from target table.
Pseudo Code
IF(record doesn’t exist in target table) THENIF DISCONTINUED_FLAG = 0 THEN
INSERT recordELSE
REJECT record)ELSE (record exists in target table) THEN IF DISCONTINUED_FLAG = 0 THEN
UPDATE recordELSE
DELETE record)
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 213
Just below the expression, the Forward Rejected Rows Checkbox is checked by default – uncheck it to keep rejected rows from being forwarded
With the Forward Rejected Rows selected, the Informatica Server flags the rows for reject and writes them to the session reject file. When not selected, the Informatica Server drops rejected rows and writes them to the session log file.
Link Target Definition
Connect PRODUCT_CODE_src, VENDOR_ID, CATEGORY, PRODUCT_NAME, MODEL, PRICE, VENDOR_NAME, FIRST_CONTACT, and VENDOR_STATE from the from the upd_ODS_PRODUCT to the ODS_PRODUCT Target Definition
Save
Completed Mapping
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 214
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 215
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 216
In this case, the CMN_1079 WARNING message on the last line of the dialog box above is just that, a warning. Since this was the first run of the session and the lookup was on an empty target table, then the message can be ignored. The session will never fail on this message.
If, on the other hand, the lookup on the target table is expected to have rows in it from a previous run of the session task, then there is a problem to investigate.
Results – Session Transformation Statistics
If the Forward Reject Rows checkbox were checked, 3 rows would have been rejected:
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 217
Results – Preview Data
ODS_PRODUCT
Only the first few rows are shown.
Informatica PowerMart / PowerCenter 6 Basics – Lab 15 – Incremental Update 218
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 A T I 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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 219
Lab
1616
Open the m_ODS_EMPLOYEE_xx Mapping In any of the Designer tools, click the Find in Workspace button
or choose Edit- Find in Workspace In the Find What box type type_code and click on the Find Now
button
The choices are to search for Field names or Table names matching the search text. If Fields is chosen, the Designer searches for column or port names matching the search text. If Tables is selected, the Designer searches for table names matching the search text
By default, it is not case sensitive, however there are additional checkboxes to select, which will force it to do so.
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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 220
Double-click on the exp_ODS_EMPLOYEE result
In the Normal View, this positions the mapping where the TYPE_CODE port in the exp_ODS_EMPLOYEE Expression is located in the upper left corner of the Workspace. In other words, it would scroll down to the port’s 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
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 221
Enter the text to search for, in the Find box on the Standard toolbar. For example enter EMPLOY to locate an EMPLOYEE column
The search is not case-sensitive.
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 222
Find Next button Find Box
Select Edit | Find Next or click the Find Next icon or Function key, F3, to search for the string
The Designer finds the first occurrence of the search string. This is the only way to find text in the Output Window.
Press Enter again to search for the next occurrence of the search string
In the Designer, it searches each port or column name in the selected transformation and stops at the end of the transformation (see status bar at the bottom of the screen for messages)
In the Output window, it starts at the top of the log, searches to the bottom and loops back to the top as it finds the entered string.
Lesson 2 – View Dependencies
View Dependencies is a quick and powerful way to do a dependency analysis on virtually any object in the repository. This is especially powerful because it can be executed from the Designer tool
A simple example is a source needs to be changed. View Dependencies will show all of the mappings associated with the source. In turn, View Dependencies on those mappings impacted by the source change identifies the session tasks associated with the mappings.
Open the Navigator Window and expand the Targets Node in the assigned Student folder
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 223
Right-click on the ODS_CUSTOMER_ACTIVE Target Definition and select View Dependencies…
The folder must open (active) in the workspace for this feature to work
Try the same steps on any Mapping and note the dependency to a Session Task
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 224
Try expanding down to the Source Instance in a mapping such as, m_ODS_CUSTOMER_ACTIVE_xx, and View Dependencies… on INVOICE.
Note the dependencies on other mapping objects. This demonstrates this features versatility because it is available on virtually every object.
Lesson 3 – Comparing Objects
The Designer allows two repository objects of the same type to be compared to identify differences between them. There are limitations between each of Designer Tools; however, this is a very powerful feature. The Designer allows for the comparison of sources, targets, transformations, mapplets, mappings, instances or mapping/mapplet dependencies in detail. The comparison can be based on two objects simply within the same mapping, or on two objects across open folders, or across repositories (e.g. Development, Test, Production).
Use the following tools to compare sources, targets, or transformations:
Source Analyzer - Compare two sources, two source shortcuts, or a source with a source shortcut.
Warehouse Designer - Compare two targets, two target shortcuts, or a target with a target shortcut.
Transformation Developer - Compare two reusable transformations, two reusable transformation shortcuts, or a reusable transformation with a reusable transformation shortcut.
Mapping Developer (Mapplet Developer, too) - Compare two source instances, two transformation instances, two target instances, or two mapplet instances. Instances of different types cannot be compared (e.g. source instance with a transformation instance)
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 225
Compare Instances Within Mapping or Mapplets
Open mapping m_ODS_ORDER_AMOUNT_sorter_xx Right-click on jnr_ODS_ORDER_AMOUNT Joiner and select
Compare Objects…
Select srt_ODS_ORDER_AMOUNT as Instance 2 and click on the Compare button
Click through the different tabs to see the differences
All of the differences will appear in red. On the Ports tab note the ports names that are highlighted have identical names and are shown in the same row. Also note that the ORDER_DATE port has a different Datatypes and Precision and it is further highlighted in red.
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 226
Compare Target Definitions
Import ODS_EMPLOYEE_ROOKIE and the DIM_REP tables
ODS_EMPLOYEE_ROOKIE and DIM_REP will be used in the later labs; however, they are good examples to demonstrate the feature.
These additions should not be saved after this lesson.
Expand the Targets Node and pull ODS_EMPLOYEE into the Warehouse Designer
Right-click on ODS_EMPLOYEE, select Compare Objects… and a different dialog box will appear than the last
The key difference is this dialog box has a Browse button that will allow searching through all of the open folders for objects of the same type.
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 227
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 228
Click on the Compare button and view the Columns tab
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 229
Differences would appear in red
Note that columns that do match by name appear on different lines. There is nothing in red, indicating differences. Only when the column names are the same would differences appear in red.
Compare Mapping Instances
The ability to compare an entire mapping is the Grand Finale of comparisons in the Designer Tool. There is too much detail to cover all of the options, so this will just demonstrate the basics.
Disconnect from the Studentxx folder and do not save the changes from the previous lesson
Open Studentxx folder Open the m_ODS_ORDER_AMOUNT_xx Mapping Select Mappings | Compare from the main menu Click on the Browse button for Mapping 2 and select the
m_ODS_ORDER_AMOUNT_sorter_xx Mapping Click on Compare button
Again, the differences are highlighted in red. Key differences will be listed on the Summary Tab such as in this case:
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 230
Instances:
Instance agg_ODS_ORDER_AMOUNT is different across the two mappings.
Instance srt_ODS_ORDER_AMOUNT is present only in mapping m_ODS_ORDER_AMOUNT_sorter_xx.
Click on the Instances Tab and in the Transformations Instances, select agg_ODS_ORDER_AMOUNT Instance
Click on the Compare Instances… button Click through the tabs to find the difference
The only difference should be on the Properties tab – the Sorted Input flag was set to True for in the m_ODS_ORDER_AMOUNT_sorter_xx mapping
Lesson 4 – Overview Window
This feature assists with maneuvering around mappings with many transformation instances.
Open m_ODS_ORDER_AMOUNT_xx Mapping
The m_ODS_ORDER_AMOUNT_xx Mapping should be in the Recent Mappings drop down list.
Arrange the mapping to the Normal View Select View | Overview Window
Drag the box around to reposition the mapping in the workspace
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 231
Draw a box around a couple of transformations in the workspace and note the changes in the Overview Window
Objects selected in the space will be highlighted in red in the Overview Window.
It will also always remain on top of any client application, not just the Designer, until closed.
Lesson 5 – Copying and Pasting Objects
This feature is new with version 6 and allows the developer to copy and paste objects from mappings and mapplets within the same folder.
One of the primary advantages of using this feature is the ability to select more than one object at a time and paste the objects into a mapping, mapplet or both.
Keep the following concepts in mind when copying and pasting objects within a folder:
- Objects can be copied from any mapping or mapplet in a folder to any new, existing mapping or mapplet in the same folder
- Multiple objects can be copied from the workspace
- Selected objects can be viewed by choosing View | Overview window. Selected objects will appear in color.
Objects cannot be copied from a shortcut to a mapping or mapplet nor is it allowed to paste objects into a shortcut to a mapping or mapplet
Open m_ODS_ORDER_AMOUNT_sorter_xx Mapping Arrange the mapping to the Iconic View Draw a box around the Expression, Sorter and Aggregator Press Ctrl-C to copy Create a new mapping via Mappings | Create and select the
default name Click in the workspace and press Ctrl-V to paste
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 232
Lesson 6 – Shortcuts
One of the primary advantages of using a shortcut is maintenance. If a change is needed to all instances of an object, make the change to the original repository object and all shortcuts to it will automatically inherit those changes. In contrast, if there are multiple copies of an object, each will need to be updated.
A word of caution, changes can invalidate mappings and sessions. For example, if there is a shortcut to a reusable transformation and simple Precision change is made to a port, each and every mapping with a shortcut to that object will become invalid, which in turn, invalidates the session tasks using those mappings.
The key is to plan and use the Dependency Analysis Features to determine the impact of the change and plan accordingly. If the change is needed immediately, then temporarily make a copy of the object until the shortcut can be updated
Shortcuts have the following advantages over copied repository objects:
- Allows the developer to maintain a common repository object in a single location
- Inherits all changes
- Restricts developers to a set of predefined metadata by incorporating the shortcuts into their work instead of developing repository objects independently
- Share complex mappings, mapplets, or reusable transformations across folders and repositories – only if the repository where the shared folder is located is a Global Repository
- Saves space in the repository by keeping a single repository object and using shortcuts to that object, instead of creating copies of the object in multiple folders or multiple repositories
As with copying objects, the destination folder must be open with the appropriate tool active.
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 233
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 doesn’t say copy
`
Informatica PowerMart / PowerCenter 6 Basics – Lab 16 – Features and Techniques II 234
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 235
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 A T I O N
30 minutes
S U M M A R Y
SOURCE: ODS_EMPLOYEETARGETS: ODS_EMPLOYEE_SALES, ODS_EMPLOYEE_NON_SALES,
ODS_EMPLOYEE_ROOKIE
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 237
Lab1717
Import Source Table
The ODS_EMPLOYEE table is the first ODS table to be used in any exercise as a source – so, what once was a target is now a source, too. That means there will be two instances of this table in the folder -- both a Source Definition and Target Definition.
In contrast to the Automatic Target Creation (the next step) where a source can be pulled into the Warehouse Designer and it becomes an instant (automatic) target; a Target Definition cannot be copied to the Source Node. So, the most viable solution is to import the Source Definition from the target database (schema) into the Source Analyzer.
Import the relation source, ODS_EMPLOYEE. The key in this step is to import from the target database
Import Target Tables
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 238
Clear Warehouse Designer workspace Import the relational Targets, ODS_EMPLOYEE_SALES,
ODS_EMPLOYEE_NON_SALES ODS_EMPLOYEE_ROOKIE was imported in the previous
exercise
Create Mapping
Create a mapping called m_ODS_EMPLOYEE_TYPE_xx
Add Source and Target Definitions
Add ODS_EMPLOYEE Source Definition with its respective Source Qualifier
Add ODS_EMPLOYEE_SALES, ODS_EMPLOYEE_NON_SALES and ODS_EMPLOYEE_ROOKIE Target Definitions
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 239
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 that’s where the similarities end. The Filter test rows passing through it against one condition and drops the rows that do not match.
A Router Transformation tests each row against one or more conditions, called groups, and flags the row true allowing it to pass through that group. Each row will be tested against each and every group, so it can be dispersed across many groups if the conditions are met.
Another advantage the Router has over the Filter is if the row does not meet any of the defined group conditions, it will route the row to the Default Group. This feature alone makes it great transformation for error handling.
Create a Router Transformation and name it rtr_ODS_EMPLOYEE_TYPE
Copy/Link all of the ports from sq_ODS_EMPLOYEE to rtr_ODS_EMPLOYEE_TYPE
Edit the rtr_ODS_EMPLOYEE_TYPE Transformation and click on the Groups tab
Click on Add a new group button
Rename NEWGROUP to SALES
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 240
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 today’s date. Use the following condition:DATE_DIFF (SESSSTARTTIME, DATE_HIRED, 'dd') < 365
Click OK to close the Router edit window
The Router gives each row an opportunity to meet every group condition, so a row can exit the Router multiple times. Only when the row does not meet any condition does it slip all the way to the Default Group. The row can exit the Default group if the ports are linked to another transformation or simply terminate by not linking them.
Link Target Definitions
Link the ports from the various groups within the rtr_ODS_EMPLOYEE_TYPE Router to their corresponding columns in the three target definitions
Try Autolink to see the way groups are displayed and since the port names will have numbers associated with them in the Router Transformation it will either be a link by position or link by suffix – try both ways since there are three groups and target definitions.
Save
Completed Mapping
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 241
Create Workflow
Create Workflow called wf_ODS_EMPLOYEE_TYPE_xx Add wf_ODS_EMPLOYEE_TYPE_xx.log as the Workflow Log File
Name Rename Start task to start_ODS_EMPLOYEE_TYPE_upd Create Session Task called s_m_ODS_EMPLOYEE_TYPE_xx Select native_target_xx connection for sq_ODS_EMPLOYEE
source instance
Note that native_source is not the chosen database connection. The ODS_EMPLOYEE source table was populated in an earlier lesson and is located in the target database (schema), native_target_xx
Select native_target_xx connection for each of the target instances
Check property Truncate target table option for each target object (3 attribute changes)
Only if the target table database connection is using an Oracle client less than 8.1.7.2, select Normal for Target load type property for each target (3 attribute changes)
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 242
Link start_ODS_EMPLOYEE_TYPE to s_m_ODS_EMPLOYEE_TYPE_xx
Save, Validate and Start Workflow wf_ODS_EMPLOYEE_TYPE_xx
Monitor and Review the results for s_m_ODS_EMPLOYEE_TYPE_xx in the Workflow Monitor
Results – Session Properties
Results – Session Transformation Statistics
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 243
Results – Session Properties
ODS_EMPLOYEE_SALES:
ODS_EMPLOYEE_NON_SALES
ODS_EMPLOYEE_ROOKIES
Informatica PowerMart / PowerCenter 6 Basics – Lab 17 – Router 244
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 A T I O N
10 minutes
S U M M A R Y
SOURCE: INVOICETARGET: 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 245
Lab
1818
Create mapping called m_ODS_INVOICE_xx Add INVOICE Source Definition with its respective Source
Qualifier Add ODS_INVOICE Target Definition
There is no need to apply additional logic to the load. Hence, this is a straight through mapping meaning it will go directly from source to target.
Link the sq_INVOICE to ODS_INVOICE Save repository
Completed Mapping
Create Workflow
Create a Workflow called wf_ODS_INVOICE_xx Add wf_ODS_INVOICE_xx.log as the Workflow Log File Name
Rename Start task to start_ODS_INVOICE Create Session Task called s_m_ODS_INVOICE_xx Select native_source connection for sq_INVOICE source
instance Select native_target_xx connection for ODS_INVOICE target
instance Check property Truncate target table option
Informatica PowerMart / PowerCenter 6 Basics – Lab 18 – Straight Load 246
Only if the target table database connection is using an Oracle client less than 8.1.7.2, select Normal for Target load type property
Link start_ODS_INVOICE to s_m_ODS_INVOICE_xx Save, Validate and Start Workflow wf_ODS_INVOICE_xx Monitor and Review the results for s_m_ODS_INVOICE_xx in the
Workflow Monitor
Results – Session Properties
Results – Preview Data
ODS_INVOICE
Informatica PowerMart / PowerCenter 6 Basics – Lab 18 – Straight Load 247
Informatica PowerMart / PowerCenter 6 Basics – Lab 18 – Straight Load 248
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 A T I 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 249
Lab
1919
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 250
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 207 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 251
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 252
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 253
Create an Expression Transformation named exp_ODS_LINE_ITEM
Copy/Link the following ports from the sq_PRODUCT_INVOICE_LINE_ITEM to the exp_ODS_LINE_ITEM transformation: INVOICE.CUST_NO, LINE_ITEM.LINE_ITEM_NO, LINE_ITEM.INVOICE_NO, LINE_ITEM.PRODUCT_CODE, LINE_ITEM.QUANTITY, LINE_ITEM.DISCOUNT, PRODUCT.PRICE, and PRODUCT.COST ports
INVOICE_NO and PRODUCT_CODE have two entries in the sq_PRODUCT_INVOICE_LINE_ITEM. The duplicates are appended with the number “1”. For this exercise, both ports are to be sourced from the LINE_ITEM table – hence it is listed above as LINE_ITEM.INVOICE and LINE_ITEM.PRODUCT_CODE.
The bottom line is, choose the ports as they are listed in the bullet and ignore the names in the picture, as they may be different based on how the sq_PRODUCT_INVOICE_LINE_ITEM was created.
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 254
Rename the ports to exclude the number “1” where it was appended (e.g. INVOICE_NO and PRODUCT_CODE)
DISCOUNT port should be Input port, only Insert a new port called DISCOUNT_RATE_out (after the
DISCOUNT port)
Click OK
Create Unconnected Lookup Procedure
In this step an Unconnected Lookup will be utilized as a function within the mapping. As with a number of transformations, Lookups can be configured to be ‘connected’ or ‘unconnected’.
Unconnected Lookups
A Connected Lookup takes every row passed to it, processes it based on the lookup condition and passes it downstream to the next transformation. It should only be used when the majority or all of the rows are required to pass through it or when more than one port (return value) is required from the Lookup.
On the other hand, an Unconnected Lookup is called upon conditionally. It is ideal to use when the majority or all of the rows do not need a return value (ports) from it. This conditional Lookup is called unconnected because no physical links are present – it stands alone, unconnected.
To use it, it must be called upon by a formula in some other transformation; typically in a Filter or Update Strategy Transformation. Several ports may be passed to it to complete the condition, however, only one value may return designated by a new port attribute, the ‘R’ (return) port (see below).
The ‘R’ port is only required in when the Lookup is unconnected. If checked while connected, it will be ignored. Only one port can be selected, hence it acts like a radio button.
Another common usage of an unconnected lookup is when it needs to be called several times from different expressions – again, considering all of the limitations mentioned above.
In summary, use an Unconnected Lookup when:
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 255
1) Every row does NOT need a return value from the Lookup, in other words, can be called conditionally; and
2) Only one port is required (‘R’ port) for the return value
Create a Lookup Transformation and choose ODS_CUSTOMER_ACTIVE from the Target – the ports will look as follows:
Rename the transformation lkp_ODS_CUSTOMER_ACTIVE Add a port (input only) called CUST_ID_in with the same
Datatype, Precision and Scale as CUST_ID Uncheck the Output ‘O’ ports for CUST_NAME,
FIRST_CONTACT, CUSTOMER_STATE, CUSTOMER_ZIP and CUSTOMER_TYPE
This prevents those ports from being selected for the Lookup Cache, however, keeps them available in case they are needed later. See Key Concept under the CreateLookup Transformation - Connected step on starting on page 208.
Click the Return Port attribute for the DISCOUNT_RATE
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 256
On the Properties tab, change the Location Information to native_target_xx
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 257
On the Conditions tab, add the condition:CUST_ID = CUST_ID_in
Save repository
Edit Expression
Add an expression that includes a formula that calls the Lookup Transformation, hence the name of the Lab, Conditional Lookup
The reason for not doing this step during the Create Expression step is the Lookup Transformation, for which will be called in a formula, did not exist. This demonstrates a logical and iterative approach to development.
Build the following formula in expression of the DISCOUNT_RATE_out port:
For this exercise, try not to type the expression in manually. This entire expression can be created via the point-and-click method. Below are detailed instructions to accomplish this task, which is the best practice considering the new expressions and variables to be used in the formula.
For connected transformations, if the point-and-click method is used to enter port names in an expression, the Designer updates that expression when port names are changed in the transformation. For example, a valid expression is written that determines the difference between two dates, Date_Promised and Date_Delivered. Later, Date_Promised port name is changed to Due_Date. If the expression is developed using the point-and-click method, the Designer changes the Date_Promised port name to Due_Date in the expression. If, however, the expression was written manually, it must be updated manually to maintain a valid expression.
From the Functions tab, expand the Special category and double-click on the IIF function. Notice the function appears in the Formula work area with parenthesis in place.
There is no need to reposition the cursor until instructed
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 258
Expand the Test category and double-click on the ISNULL function. Again, note that this function is inserted automatically within the original parenthesis
From the Ports tab and double-click on the DISCOUNT port Position the cursor between the two right parentheses and click
on the OR button from the Operator Keypad Add the DISCOUNT port again From the Operator Keypad, click the less-than (<) button From the Variable tab, expand the Mapping Parameters
folder and double-click on $$MIN_RATE From the Operator Keypad, click on the OR button Return to the Ports tab, add the DISCOUNT port, yet again From the Operator Keypad, click the greater-than (>) button Return to the Variable tab, add the $$MAX_RATE to the
expression Insert a ‘,’ (comma) from the operator keypad Return to the Functions tab and expand the Lookup category
at the bottom of the list and double-click on lkp_ODS_CUSTOMER_ACTIVE
This activates the Lookup transformation as an expression
Return to the PORTS tab and add CUST_NO port
This establishes the input argument to the Lookup transformation
Position the cursor between the two right parentheses and insert a (,) (comma)
Return to the Ports tab, add the DISCOUNT port Your function should look like this:
IIF (ISNULL (DISCOUNT) OR DISCOUNT < $$MIN_RATE ORDISCOUNT > $$MAX_RATE,:LKP.lkp_ODS_CUSTOMER_ACTIVE(CUST_NO),
DISCOUNT) Validate and save to the repository
Link Target Definition
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 259
Link exp_ODS_LINE_ITEM to ODS_LINE_ITEM Save
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 260
Completed Mapping
Create Workflow
Create Workflow called wf_ODS_LINE_ITEM_xx Add wf_ODS_LINE_ITEM_xx.log as the Workflow Log File
Name Rename Start task to start_ODS_LINE_ITEM Create Session Task called s_m_ODS_LINE_ITEM_xx Select native_source connection for
sq_PRODUCT_INVOICE_LINE_ITEM source instance Select native_target_xx connection for ODS_LINE_ITEM target
instance Check property Truncate target table option Only if the target table database connection is using an
Oracle client less than 8.1.7.2, select Normal for Target load type property
In the Transformations Tab of the s_m_ODS_LINE_ITEM_xx Session Task:
Scroll down to where the Object Name is lkp_ODS_CUSTOMER_ACTIVE
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 261
Scroll down further to the Location Information Attribute
Verify the Value to native_target_xx
The Transformations Tab was designed to override properties when needed. It should not be considered a substitute for what really should have been in place in the mapping. If the value for the location information does not reflect native_target_xx as was suggested in the Create Unconnected Lookup Procedure step, then it needs to be updated here to run successfully. A best practice is to update the mapping with the correct value for future session tasks that may be created against it.
This property allows the location of the lookup to be somewhere other than where the Source and Target are located. It is required to set this property because the Lookup is Unconnected.
Link start_ODS_LINE_ITEM to s_m_ODS_LINE_ITEM_xx Save, Validate and Start Workflow wf_ODS_LINE_ITEM_xx Monitor and Review the results for s_m_ODS_LINE_ITEM_xx in
the Workflow Monitor
Results – Session Properties
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 262
Informatica PowerMart / PowerCenter 6 Basics – Lab 19 – Conditional Lookup 263
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 264
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 A T I O N
15 minutes
S U M M A R Y
SOURCE: ODS_EMPLOYEETARGETS: ODS_EMPLOYEE_SALES, ODS_EMPLOYEE_NON_SALES,
FF_EMPLOYEE_INVALID_xx
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 265
Lab2020
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 266
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 267
Completed Mapping
Create Workflow
Create Workflow called wf_ODS_EMPLOYEE_INVALID_TYPES_xx
Add wf_ODS_EMPLOYEE_INVALID_TYPES_xx.log as the Workflow Log File Name
Rename Start task to start_ODS_EMPLOYEE_INVALID_TYPES Create Session Task called
s_m_ODS_EMPLOYEE_INVALID_TYPES_xx Select native_target_xx connection for sq_ODS_EMPLOYEE
Source Instance
Note that native_source is not the chosen database connection. The ODS_EMPLOYEE source table was populated in an earlier lesson and is located in the target database (schema), native_target_xx
Select native_target_xx connection for ODS_EMPLOYEE_NON_SALES and ODS_EMPLOYEE_SALES Target Instances
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 268
Check property Truncate target table option for both target objects (2 attribute changes)
Only if the target table database connection is using an Oracle client less than 8.1.7.2, select Normal for Target load type property for each target (2 attribute changes)
No changes required for FF_EMPLOYEE_INVALID_xx Target Instance
Link start_ODS_EMPLOYEE_INVALID_TYPES to s_m_ODS_EMPLOYEE_INVALID_TYPES_xx
Save, Validate and Start Workflow wf_ODS_EMPLOYEE_INVALID_TYPES_xx
Monitor and Review the results for s_m_ODS_EMPLOYEE_INVALID_TYPES_xx in the Workflow Monitor
Results – Session Properties
Results – Session Transformation Statistics
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 269
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 270
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 271
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 A T I O N
30 minutes
S U M M A R Y
SOURCE: ODS_INVOICE, ODS_LINE_ITEMTARGETS: 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
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 272
Lab2121
needs to be manufactured in the Source Analyzer. This will have no impact on the database, however, in order for the Source Qualifier to dynamically build the “where clause”, the link (relationship) must be present.
Create the Mapplet
A Mapplet is a reusable object created in the Mapplet Designer. It contains a set of transformations that allows transformation logic to be used in multiple mappings. The Mapplet Designer is a component of the PowerCenter/PowerMart Designer tool.
Once saved, Mapplets are stored in their own node called ‘Mapplets’, visible in the Navigator window and can be used in any mapping by dragging and dropping the mapplet into the mapping from the Navigator window.
Creating Mapplets can save time by eliminating the need to create the same set of transformations again and again. They also enforce standards.
From a graphical user interface (GUI) perspective, there are very few differences between the Mapplet Designer and the Mapping Designer – they are virtually mirror images of each other. The primary differences are which transformation objects can be used and there are limitations -- the majority, of which, exist within the Mapplet Designer.
Furthermore, most objects can be copied between them. This is key because mapplets usually come to fruition as a result of mappings. If, after a mapping has already been created, it has been determined that the complexity and reusability warrants the creation of a Mapplet, it is easy to copy those key objects without building them from scratch.
Select Tools | Mapplet Designer or Mapplet Designer Icon
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 273
Choose Mapplets | Create and name it mplt_PROFIT_PERCENT
Informatica PowerMart / PowerCenter 6 Basics – Lab 20 – Heterogeneous Targets 274
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 275
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 expressionSUM(((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 276
Informatica PowerMart / PowerCenter 6 Basics – Lab 21 – Mapplets 277
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 278
Informatica PowerMart / PowerCenter 6 Basics – Lab 21 – Mapplets 279
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 A T I 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 281
Lab2222
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 282
Create Persistent-Named Lookup Transformation
The Lookup transformation has several performance enhancement properties related to its cache – specifically size and refresh parameters. One of those properties is called Lookup cache persistent.
If a lookup is performed more than once, either within the same session or in another, and the data does not change for several runs then consider using this property. If the intent is to use this property across sessions, then another property, Cache File Name Prefix needs to be selected to share the cache
If at some point in the various workflows and session tasks that use the Lookup Cache the data needs to be refreshed, another property can be used to force the persistent cache to be refreshed called Recache from the Database.
There is an entire chapter dedicated to Lookup Cache properties including a tips section. Informatica highly recommends studying all of the Lookup Cache Properties to gain the best performance. Refer to Lookup Caches Chapter in the Transformation Guide.
Create a Lookup against the ODS_TIME table in the assigned target schema and name it lkp_ODS_TIME
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 283
Edit the lkp_ODS_TIME Lookup Procedure and select the Lookup cache persistent property
Enter lkp_ODS_TIME_xx in the Cache File Name Prefix property
It is very important to include the assigned student number in the lkp_ODS_TIME_xx because by default, all of the name caches will be written to the same directory after the session task runs.
Link the DATE_OPEN port from the mplt_PROFIT_PERCENT transformation and rename it DATE_OPEN_src
Create the Lookup condition DATE_ID = DATE_OPEN_src
Create Aggregator
This mapping presents a good opportunity to create three reusable (general purpose) transformations for other mappings to use – ultimately this will reduce duplication of effort and ensure accuracy. Often it is easier to get a visual perspective on what is being built in the Mapping Designer, first, and then promote a specific transformation to be reusable.
Create an Aggregator and name it agg_3_ID_SUM_BY_MTH Add REP_NO, CUST_NO, PRODUCT_CODE and PROFIT from
the mptl_PROFIT_PERCENT Mapplet Link MONTH and YEAR from lkp_ODS_TIME
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 284
Since this Transformation is going to be reused in other mappings, Informatica recommends assigning generic port names considering names from other transformations may be different.
This general-purpose reusable transformation will SUM an input value grouped by three input identifiers and by a time slice derived from an input date. It will pass out the three Ids, the time slice, and the associated summarized value.
Rename the ports as shown in the picture above Group the ports: ID1, ID2, ID3, MONTH_in, YEAR_in Change Profit_in Port to Input Only Create Port called Profit_out with the same Datatype,
Precision and Scale as Profit_in Add the following formula to the Profit_out port
SUM(PROFIT_in)
Promote Aggregator to be Reusable
Reusable Transformations
Standard transformations exist within a single mapping. Reusable transformations can be used in multiple mappings or mapplets.
Rather than re-creating a transformation with the very same logic several times, create a reusable transformation. Wherever the reusable transformation is needed, add an instance of it to the mapping.
The Designer stores each reusable transformation as metadata separate from any mapping that uses the transformation – similar to a shortcut. Once promoted to be reusable, the transformation will appear in the Transformations Node and only to be edited in the Designer’s Transformation Developer.
One of the Transformation Developer purposes is for editing reusable transformations. Changes made on the Ports Tab of a reusable transformation are inherited by all its instances and automatically reflects those changes. Instances of the reusable transformation do not inherit changes on the Property Tab (with the exception of the Sequence Generator Transformation) – only modifications to Transformation, Ports, Condition, Groups and Metadata Extension Tabs are passed.
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 285
.
Edit agg_3_ID_SUM_BY_MTH
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 286
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 287
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 Ctrl–C and then Ctrl–V
Click on the Yes button and change the name to re_agg_3_ID_SUM_BY_QTR
Repeat the steps to create a third reusable transformation and name it re_agg_3_ID_SUM_BY_YEAR
Edit Reusable Aggregators
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 288
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 289
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 290
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 291
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 292
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. There’s 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.
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 293
Save the mapping and rerun s_m_ODS_TIME_xx Rerun the workflow wf_PROFIT_PERIODIC_xx and check the
results
Why are the results the same? Since the lookup property, Persistent Cache, on the Properties tab for lkp_ODS_TIME is turned on, it did not recache the new values from the ODS_TIME table.
The Recache from Database, on the same Properties tab, needs to be selected to update the cache with the new records. This can be accomplished both in the mapping and in the session task.
Turn on the property, Recache from Database, located on the Transformations tab of the session task, s_m_ODS_PROFIT_PERIODIC_xx
This demonstates how a session property, originally set in the mapping, can override the mapping and not impact it and other sessions tasks using same mapping. This is an excellent example of how to use Recache from Database.
After setting the property, rerun wf_PROFIT_PERIODIC_xx and note the differences in the results. The number of rows doesn't change, but all of the columns should no longer be blank
Results
All the numbers should be the same as the above results. The difference is in the data – there should no longer be any Nulls.
Results – Preview Data
Only the Monthly table will be shown for results.
ODS_PROFIT_MONTHLY
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 294
Informatica PowerMart / PowerCenter 6 Basics – Lab 22 – Reusable Transformations 295
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 296
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 Informatica’s Dynamic Caching feature when looking up source information against the target table
Use a Sequence Generator transformation
D U R A T I 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.
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 297
Lab2323
Import DIM_PRODUCT as a Target Definition Save the Repository
Create Mapping
Create a mapping called m_DIM_PRODUCT_xx Add the ODS_PRODUCT Source Definition and its’
corresponding Source Qualifier Rename Source Qualifier to sq_ODS_PRODUCT Add the DIM_PRODUCT Target Definition Create Shortcut to Reusable Transformation
Expand the Transformations Node in the Shared_Student folder
Create a shortcut to the re_exp_DECODE_CATEGORY Transformation in the m_DIM_PRODUCT_xx Mapping and confirm the creation of a shortcut
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
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 298
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 299
Create a Sequence Generator Transformation
Create a Sequence Generator Transformation and name it seq_DIM_PRODUCT
Create Expression Transformation
Create Expression Transformation and name it exp_DIM_PRODUCT
Copy/Link PRODUCT_NAME, CATEGORY, MODEL and PRICE ports from the sq_ODS_PRODUCT Transformation to exp_DIM_PRODUCT
Copy/Link PRODUCT_DEPARTMENT Port from the Shortcut_To_re_exp_DECODE_CATEGORY transformation to exp_DIM_PRODUCT
Copy/Link NEXTVAL from the seq_DIM_PRODUCT transformation to exp_DIM_PRODUCT
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 300
In the exp_DIM_PRODUCT, make the PRODUCT_NAME and MODEL ports Input Only Ports
Rename NEXTVAL port to PRODUCT_SEQUENCE Add a port after PRODUCT_SEQUENCE port rename it
PRODUCT_NAME_MODEL
Add the following expression to PRODUCT_NAME_MODELPRODUCT_NAME || ‘ ‘ || MODEL
Save repository
Create Dynamic Cache Lookup Transformation
Dynamic Cache Lookups
In this step a lookup will be utilized to determine if source rows exist in the target table. When the Dynamic Cache property is set on a Lookup Transformation, all rows sent to the Target will also update the lookup cache. Therefore, the Target and the lookup cache will be in sync.
Refer to “Working with a Dynamic Lookup Cache ” in the “Lookup Caches” Chapter in the Transformation Guide
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 301
Create lookup called lkp_DIM_PRODUCT based on the target table, DIM_PRODUCT, which will be in the assigned target schema, tbuxx
From the exp_DIM_PRODUCT transformation, copy/link CATEGORY, PRICE, PRODUCT_DEPARTMENT, PRODUCT_SEQUENCE and PRODUCT_NAME_MODEL to the lkp_DIM_PRODUCT
Rename all of the ports that entered lkp_DIM_PRODUCT from the exp_DIM_PRODUCT Expression by replacing the “1” with “_in”
Uncheck the Output Port “O” for each port that entered lkp_DIM_PRODUCT from the exp_DIM_PRODUCT Expression
Turn on the Dynamic Lookup Cache property:
Turning on Dynamic Lookup Cache changes the Ports Tab of the Lookup. A port called NewLookRow is inserted in the first position and the Associated Port column becomes active.
Add the following conditions:
Note that for each condition, the Associate Port is filled in and grayed out on the Ports tab.
Change the PRODUCT_SEQUENCE Datatype to Integer Remain on the Ports tab, click on the Associated port for
PRODUCT_SEQUENCE and select PRODUCT_SEQUENCE_in Save the repository
Create Filter Transformation
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 302
Create a Filter transformation called fil_DIM_PRODUCT Copy/Link the NewLookupRow, PRODUCT_SEQUENCE
PRODUCT_CATEGORY, PRODUCT_NAME_MODEL, PRICE, PRODUCT_DEPARTMENT Ports from the lkp_DIM_PRODUCT transformation to fil_DIM_PRODUCT transformation
Add the following condition on the Properties tab of the filter:NewLookupRow = 1
The Dynamic Lookup assigns the value 1, 2, or 0 to the NewLookupRow port to indicate if it inserts or updates the row in the cache, or makes no change, respectively.
Link Target Definition
Use the Autolink feature By Name to link the fil_DIM_PRODUCT to DIM_PRODUCT Target Definition
Save the repository
Completed Mapping
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 303
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 304
Results – Session Properties
Results – Session Transformation Statistics
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 305
Results – Preview Data
Informatica PowerMart / PowerCenter 6 Basics –Lab 23 – Dynamic Lookup 306
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 A T I 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
Informatica PowerMart / PowerCenter 6 Basics –Lab 24 – Sequential Workflow 307
Lab2424
Create Workflow
If this training environment was a true Development, QA or Production environment with enough processing power and memory to handle what is about to be created by each and every student, then a few of the dimension tables could be loaded concurrently. Since a typical training environment has limited resources, the following workflow will be loaded sequentially.
Create a Workflow called wf_LOAD_DW_xx Add wf_LOAD_DW_xx.log as the Workflow Log File Name
Rename Start task to start_LOAD_DW Create Session Task for each mapping shortcut with the names
of: s_Shortcut_To_m_DIM_TIME_xx s_Shortcut_To_m_DIM_REP_xx s_Shortcut_To_m_DIM_VENDOR_xx s_Shortcut_To_m_DIM_CUSTOMER_xx s_Shortcut_To_m_DIM_INVOICE_xx s_Shortcut_To_m_FACT_SALES_xx
Select native_source connection for s_Shortcut_To_m_DIM_VENDOR_xx Source Instance
Informatica PowerMart / PowerCenter 6 Basics –Lab 24 – Sequential Workflow 308
Select native_target_xx connection for each of the remaining Source Instances
Select native_target_xx connection for each of the Dimension and Fact Target Instances
For multiple practice loads, check property Truncate target table option
Only if the target table database connection is using an Oracle client less than 8.1.7.2, select Normal for Target load type property
Link sequentially from the start_ LOAD_DW in the following order:
s_Shortcut_To_m_DIM_TIME_xx s_Shortcut_To_m_DIM_REP_xx s_Shortcut_To_m_DIM_VENDOR_xx s_Shortcut_To_m_DIM_CUSTOMER_xx s_Shortcut_To_m_DIM_INVOICE_xx s_Shortcut_To_m_FACT_SALES_xx
Save, Validate and Start Workflow, wf_LOAD_DW_xx Monitor and Review the results for each of the session tasks in
the Workflow Monitor
Results – Session Transformation Statistics for DIM_TIME Table
Results – Session Transformation Statistics for DIM_REP Table
Results – Session Transformation Statistics for DIM_VENDOR Table
Results – Session Transformation Statistics for DIM_CUSTOMER Table
Informatica PowerMart / PowerCenter 6 Basics –Lab 24 – Sequential Workflow 309
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 310
INDEX
Aggregator Transformation
Create...............................127Purpose.............................127
Autolinkby Name..............................72by Name & Prefix or Suffix. .74by Position...........................75
ColumnsCopy & Link.........................79
DebuggerNext Instance....................102Start....................................97Step to Instance................102Stop...................................104
DesignerFind...................................175Find in Workspace.............175Find Next...........................177Start....................................11Using Shortcuts178, 180, 185, 186
ExpressionCreate formula....................33
Expression transformationPurpose...............................31
Filter TransformationCreate / Edit......114, 117, 134
Flat FileAnalyze.............................107
Flat File WizardPurpose.............................107
FolderCreate...............................7, 8Expanded............................12Open...................................11
Joiner TransformationCreate...............................124Purpose.............................125
Lookup TransformationCache File Name Prefix.....227
Connected and Unconnected..........................................142Create Connected.....141, 191Create Unconnected. 206, 211Dynamic Cached Lookup...242Persistent..........................227Recache from Database....227
MappingCopy..............................90, 91Create.........................26, 165Debug...............................103Edit......................................96Validation............................37
Mapping DesignerOpen...................................25
Mapping ParameterPurpose.............................204Using.................................209
MappletCreate...............................220Description........................220
Mapplet Designer...........220Metadata Extensions
Create.................................44Non-reusable.......................18Purpose...............................18Reusable.............................18
Output TransformationCreate...............................223Purpose.............................223
PortsDefinition.............................30Modify or Add......................33
RepositoryConnect to.............................7Revert to Saved...............70Save....................................20
Repository ManagerClose.....................................9Start......................................7
Informatica PowerMart / PowerCenter 6 Basics – Index 311
Router TransformationPurpose.............................191
Sequence Generator Transformation
Create...............................241Session
Properties............................61Status..................................61
Session LogView....................................63
Session TaskCreate.................................46Edit......................................47
ShortcutCreate...............................187Purpose.....178, 180, 185, 186
Source AnalyzerOpen...................................13
Source Qualifier Transformation
Purpose...............................29Sources
Analyze...............................15Edit definition......................17Organize..............................27
TargetsImport Definitions...............22
TaskLink.....................................50Session................................46
TransformationAggregator........................127Create.................................81Expression...........................30Filter..................114, 117, 134
Joiner.................................124Lookup......................141, 191Output...............................223Passive vs. Active................31Reusable...........................229Sequence Generator.........241Source Qualifier..................29Update Strategy................155
Transformation DeveloperOpen.................................231Purpose.............................229
Update Strategy Transformation
Create...............................155Forward Rejected Rows.....171
Warehouse DesignerOpen...................................21
WorkflowEdit......................................44Log......................................44Start....................................55Validate...............................51
Workflow ManagerStart............................41, 107
Workflow MonitorClose...................................54Gantt Chart.........................56Initialize...............................56Open...................................56Purpose...............................60Task View............................57
WorkspaceClear..............................19, 89
Zoom and scale-to-fitHow to...........................83, 86
Informatica PowerMart / PowerCenter 6 Basics – Index 312