Informatica PowerMart /
PowerCenter 6.x
Ted Williams
Upgrade Features
Informatica Corporation, 2002. All rights reserved.
Informatica PowerCenter 6 Architecture
Targets
Sources
Heterogeneous
Sources
Repository
Server
Heterogeneous
Targets
Repository
Agent
Repository Designer Workflow Workflow
Manager
Monitor Manager
Repository
Not Shown: Client ODBC Connections for Source
and Target metadata
2
Repository Server
Each repository has an independent architecture for the
management of the physical repository tables
Components: one Repository Server and a Repository
Agent for each repository
Server
Repository
Server
Repository
Repository
Agent(s)
Manager
Client overhead for repository management is
greatly reduced by the Repository Server
Repository
3
Repository Server
The Repository Server manages connections to the
repository from client applications
The Repository Server can manage multiple repositories
on different machines on a network
For each repository it manages, the Repository Server
uses one process, called the Repository Agent, to insert,
update, and fetch objects from the repository database
tables
The Repository Server maintains object consistency by
controlling object locking
The Repository Server runs on the same system
running the Repository Agent
4
Repository Server Console
Designer Enhancements
Heterogeneous Targets
ReplaceChr and ReplaceStr
Copy and Paste (Designer)
Sorter Object
Transaction Control Object
Cascading code changes
More robust migration via XML import/export (Replace option)
Compare Objects
Compare Mappings
Highlight Path Links
Removed restrictions on Mapplets
Dynamic Lookup Cache Update support
Expand Mapplets for visualization in Mappings
True Flat-file target objects
Metadata Extensions for better reporting
Session Manager to Workflow Manager Change
Represents the largest change to date
Similar in structure to Designer
New objects/tasks
Concept of Links
Better monitoring capabilities
Workflow Manager
Variables/
Events
Tasks
Links
Work
Folders
New Connection Features
Connection Dialogs
Replace Connections
Register Server
Assign to Workflows
9
Connection Dialogs
Type Filter
Copy As
Environmental
Options
- Type filters allow for easy
viewing of Database specific
connections
- Copy As feature allow for
quick propagation of main
connection info (maybe only
user and password is
different)
- Most significant change is
the ability to assign a
specific rollback segment
and/or prepare database
with environment SQL
10
Replace Connections
Replace
Connections
With folder closed, click on the
Replace Connections button.
This brings up the sub-dialog that allows a From-To
operation to allow the global replace of one connection
with another in the sessions.
11
Register Server
Similar to Relational Connection
dialog
Same parameters apply with the exception of
the new variables for Workflow logs.
12
Assign to Workflows
While folders are closed it is
possible to assign choose
sessions to a particular server
This dialog allows for individual or globally select
sessions to be assigned to run on a particular server
13
New Objects (Tasks)
Tasks are now the default units of work for building the workflow.
Global tasks are reusable across workflows. Local tasks are
independent and self-contained within workflows.
Global Tasks
Sessions
Local Tasks
Commands
Sessions
Email
Commands
Email
Decision
Assignment
Timer
Control
Event Raise
Event Wait
14
Sessions (Updates)
General
Updated
parameters
First page allows for options to treat conditional links attached to the object as AND/OR
functionality. Also control option to fail the parent (container) if task fails or does not run.
Disabling a task in a workflow allows the task to be skipped instead of having to remove it.
15
Sessions (Updates)
Updated
connection
resolution
Properties
Addition to this page is the option to choose a different connection to resolve $Source and
$Target used in lookups.
**Limitation - You can use $DBConnectionVariable but it will only resolve if the parameter is
evaluated with the appropriate Source or Target Connection
If used when sourcing and targeting flat-files the parameter will not resolve.
16
Sessions (Updates)
Drop-down for
common
settings
Config Object
This area is where typical allocation of memory occurs, log file options and error handling
strategies. The upgrade here is with the concept of maintaining common setting in a config
object which is setup separately and chosen from a drop-down list.
17
Config Object
Setup for reusable
Configuration object
Config Object
By creating a session configuration object you can cut down on repetitively assigning memory
and log options. When migrating sessions you can optionally migrate configurations or maintain
environment specific settings to be reassigned.
18
Sessions (Updates)
Filter
Sources
This area has primarily just been subdivided into sub tabs. The main addition is the filter dropdown that allows for either viewing all source object settings or by individual source object.
Instead of filelist option it is either direct or indirect (filelist)
19
Sessions (Updates)
Filter
Targets
Same subdivisions as sources. However in the Properties sub tab is where the Target Options
are defined. The writers sub tab preserves the legacy operation of writing to a flat-file while using
a database specific target (as opposed to the new flat-file target).
20
Source Target Connections
Connection
dialog
Connections
The drop-down list allows to select any available connection as well as specifically define the use
of a Connection Variable
21
Sessions (Updates)
Choice of
reusable or
local command
Components
The area where commands or email unique to this object can be defined. You can alternately
select a reusable task to use as well.
22
Non-Reusable Commands
Option for local
or reusable
Name of
command
object
Components
Regardless of reusable or non-reusable it is necessary to name the object since there is
potential to promote it.
23
Non-Reusable Commands
Error Control for
multiple
commands/tasks
Components
The properties tab allows for error control for commands/tasks
24
Non-Reusable Commands
Command editor
Components
The Command tab allows for editing of commands (obviously)
25
Reusable Commands
Reusable
Command
Selection Dialog
Components
A non-reusable command can be promoted to reusable or else you can select one from available
tasks.
26
Reusable Commands
Limitation
Components
Limitation a non-reusable and reusable command can resolve Server Variables but only from
within the Components tab of the session. A command can NOT resolve Server Variables if
used in an external Command Task. Understand before promoting.
27
Sessions (Updates)
Filter for modifiable
transformations
Instance Filter
Transformations
The transformations area preserves all the previous capabilities. The update is the addition of
the main instance filter and another filter button that only displays transformation where overrides
can be performed. Also this is where you can input the NEW pre/post SQL commands.
28
Sessions (Updates)
Add Partition points
Change Partition Type
Partitions
New partitioning scheme allows for repartitioning after Source Qualifier at almost any other
transformation object in the mapping. There are four main partition types Pass Through, Round
Robin, Hash Auto Keys, Hash User Keys.
29
Sessions (Updates)
Metadata column
Promote to
reusable
Metadata Extensions
Metadata extensions are available to individual object/tasks or can be made reusable and global.
These columns can not be auto-populated with functions but they do allow the extendibility for
more reporting options (e.g., Developer Name, Version, Creation Date, etc.)
30
Command Tasks
Created in Task
Developer
Command
The command object can be created globally under the Task Developer. It can also be promoted
here from within a mapping.
31
Command Tasks
Process Control
for multiple
commands
Command
The properties section homes the ability to either run all commands regardless or run them if
each previous command completes. Commands tab is where the actual commands are created.
One command per line.
32
Email Tasks
Email text
creation dialog
Built-in
Variables
Email
Email task is very similar to the command task since it can be either created in the Task
Developer or promoted from a mapping. The properties tab allows for an expression editor for
text creation utilizing the built-in variables.
33
Links and Conditions
Link condition
Defiinition
Links and their underlying conditions are what provide process control to the workflow. When an
attached link condition resolves to TRUE then the attached object may begin processing. There
can be no looping and links can only execute once per workflow. However more complex
branching and decisions can be made by combining multiple links to a single object or branching
into decision type paths. Each link has its own expression editor and can utilize upstream
resolved object variables or user-defined variables for its own evaluation.
34
Links and Conditions
Object Variables
Object Variables
The default set of object variables from a session can provide more information than just a status
of Completed. More complex evaluation can be done for ErrorCode, StartTime,
SrcSuccessRows, etc. In addition to the default object variables, User Defined variables can be
created and populated via parameter files or changed in the workflow via Assignment tasks. Also
any upstream task that has completed can have its variables utilized in downstream link
conditions.
35
Workflow Variables
Variable
Task Type
Datatype
** Supported Status
Returns
Condition
Decision Task
Integer
EndTime
All tasks
Date/time
ErrorCode
All tasks
Integer
DISABLED
ErrorMsg
All tasks
Nstring*
FAILED
FirstErrorCode
Session task
Integer
NOTSTARTED
FirstErrorMsg
Session task
Nstring*
STARTED
PrevTaskStatus
All tasks
Integer
STOPPED
SrcFailedRows
Session task
Integer
SUCCEEDED
SrcSuccessRows
Session task
Integer
StartTime
All tasks
Date/time
Status**
All tasks
Integer
TgtFailedRows
Session tasks
Integer
ABORTED
Pre-defined Variables
This is the list of all pre-defined task level variables available to evaluate upon
TgtSuccessRows
Sessions
Integer
36
Workflow Variables
Edit Variables
User-defined Variables
Variables are created at the container level much like the mappings. (Workflows=Mappings,
Worklets=Mapplets). Once created values can be passed to objects within the same container
for evaluation. (Assignment Task can modify/calculate variables)
37
Workflow Variables
Pre-Defined
Variable
User Defined
Variables
User-defined Variables
A user-defined variable can assist in more complex evaluations. In the above example, an
external parameter file contains the number of expected rows. This in turn is evaluated against
the actual rows successfully read from an upstream session. $ signifies and is reserved for predefined variables. User defined variables should maintain $$ naming.
38
Parameter File
Workflow variables:
[folder name.WF:workflow name]
Worklet variables:
[folder name.WF:workflow name.WT:worklet name]
Worklet variables in nested worklets:
[folder name.WF:workflow name.WT:worklet name.WT:worklet name...]
Session parameters, plus mapping parameters and variables:
[folder name.WF:workflow name.ST:session name]
or
[folder name.session name]
or
[session name]
Format
The format is slightly different going forward for declaring variables but legacy naming is
preserved with the foldername.session
39
Assignment Task
Edit Variables
Usage
The assignment task allows for workflow variables to be manipulated, assigned or calculated and
stored (either for the session run or as persistent) for downstream evaluation and condition
resolution. The Expression Section allows for the selection of the appropriate variable to
manipulate along with the assignment through an Expression Editor. In order to use it is
necessary to first create a variable through the Edit Variables dialog
40
Event Task
Edit Events
Usage
Events are similar to variables. They are repository tags that are a little more flexible (cleaner)
than dealing with indicator files (although event watch can be used with indicator files). Before
utilizing the new functionality it is necessary to create these Event tags within the container that
they will be used. Events can not be monitored across workflows or worklets (even if a worklet is
part of the workflow).
41
Event Task
Event Raise
Event Wait
Usage
If using Event tags then an Event Raise is used in conjunction with an Event Wait. In the above
example two branches are executed in parallel. The second session of the lower branch will
remain in stasis until the upper branch completes triggering the event. The lower branches event
wait task recognizes the event and allows for the second session to start.
42
Event Raise
Usage
To configure the Event Raise task the drop-down box allows for selection of the appropriate userdefined Event tag. This will create an entry in the repository for a matching event wait to look for.
43
Event Wait
Indicator File
User Defined
Event
Usage
The event wait allows for configuration for an Event Raise (user-defined event) or existence
check for an indicator file.
44
Event Wait
Resume/Restart
Support
Flat-file Cleanup
Usage
The properties section of the Event Wait task allows for further definition of behavior. If your
workflow has failed/suspended after Event Raise but before the Event Wait has resolved, then
the Enable Past Events is able to recognize that the Event has happened already. If working
with indicator files you have to ability to either delete the file or allow it to stay in case some
downstream Event Waits are also keying on that file.
45
Decision Task
Usage
The decision task allows for True/False based branching of process ordering. The Decision task
can home multiple conditions and therefore downstream links can be evaluated simply upon the
Decision being True or False.
**Note it is possible to have the decision based on SUCCEEDED or FAILED of previous task,
however if workflow is set to suspend on error than that branch is suspended and the decision
wont trigger on a FAILED condition
46
Control Task
Usage
The control task is utilized in a branching manner to present a level of stoppage during the
workflow. Consider if too many sessions have too many failed rows. The options allow for
different levels such as failing at the object level to Aborting the whole workflow.
47
Timer Task
Usage
The timer task has two main ways to be utilized. The first way is by absolute time that is time
evaluated by server time or a user-defined variable (that contains the date/time stamp to start).
48
Timer Task
Usage
The second usage is by Relative time that offers options of time calculated from when the
process reached this (Timer) task, from the start of the container this task, or from the start of the
absolute top-level workflow.
49
Practical
Business Case
Need for three sessions to wait for
indicator file(s) to start each one.
Window of opportunity is only between
10AM and 2AM (next morning). If any
one runs an extra session must run. At
cutoff time there is need to stop the
process (polling - not existing runs) so
that new activity does not continue
between 2AM and 10AM. Workflow is
scheduled to run everyday at 10AM
Objects Used:
Assignment Task Assigns the appropriate cutoff time for logic
File Wait Tasks Polls for the appropriate Indicator files
Timer Task Assigned to start based on the variable assigned by the Assignment task
Command Tasks After cutoff time the commands will put an indicator file to release the polling
Link Logic The remainder of the logic is contained within the links themselves. The main sessions evaluate end
time of file wait tasks to the cutoff time. If within cutoff then sessions will run. If over cutoff sessions will not run. The
cutoff branch also evaluates to see if file wait tasks are running over. If they are still running then the command tasks
will fire.
50
Practical_Descriptive
51
Workflow Monitor
52
Workflow Monitor Task View
53