Professional Documents
Culture Documents
Cloud Enterprise
Training Class
Summer 2012
1
Module 0: Course Introduction and
Overview
2
Course Logistics
• Lecture/presentations
• Demo/walkthroughs
• Hands-on labs
• Course Etiquette
• Ask questions at the end
• Use WebEx Chat window
• You may be asked to share your desktop/application so
Instructor can assist you
• Keep phone on mute, not on hold
3
Course Audience
• Developers
• INFORM Partners
• Informatica Cloud Enterprise Customers
• Prerequisites:
• PowerCenter Developer Level I course or equivalent
• Informatica Cloud Services training course or equivalent experience
4
Introductions
• Instructor
• Elias „Elvis‟ Shaikh – Customer Success Engineer
• Participants
• Relative experience
• Current/upcoming projects
• How do you expect to benefit from this course?
• Prior experience with PowerCenter or Web Services
5
Student Logins
Student Name Login Student Number
X icsstudent01@informatica.com 01
x icsstudent02@informatica.com 02
x icsstudent03@informatica.com 03
x icsstudent04@informatica.com 04
x icsstudent05@informatica.com 05
x icsstudent06@informatica.com 06
x icsstudent07@informatica.com 07
password: x
6
Course Objectives
Upon completion of this course, you should be able to:
• Understand the Informatica Cloud Enterprise platform
• Use Power Center to extend the capabilities of Informatica Cloud
• Build a Plug-in for Informatica Cloud
• Build a PowerCenter Service for Informatica Cloud
• Build Templates
• Create a PowerCenter Service that converts an unsupported file to a cloud-
consumable format
• Create a plug-in that performs advanced data transformations
• Create a plug-in that uses the Salesforce Connector
• Create a Plug-in that connects to a SaaS application via Web Services
• Use the Informatica Cloud Services Rest API
• Employ best practices when using Informatica Cloud Enterprise
7
Course Agenda – Day 1: Morning
• Module 0 – Course Overview
• Lab Pre-Steps - Setting up your Lab Environment
8
Course Agenda – Day 1: Afternoon
• Module 3 – Converting File Formats
• Lab 1 – Converting a Fixed Width File to a Flat File
• Lab 2 – Converting Hierarchical XML to Flat File Format
• Lab 3 – Using a PowerCenter Service Task in a Task Flow
• Lab 4 – BONUS
9
Course Agenda – Day 2: Morning
• Module 6 – Enterprise Connectivity via Web Services – Part
2 (SOAP)
• Lab 1 – Calling a SOAP Style Web Service via RPC
10
Course Agenda – Day 2: Afternoon
• Module 9 – Informatica Cloud REST API
• Lab 1 – Running a Task via an API Call
• Lab 2 – Creating a Log In Plug-in to Access the Informatica Cloud API
• Lab 3 – Creating a Plug-in to Read the Activity Log
11
Course Materials
12
Course Resources/Applications
• Salesforce.com
• Developer or Sandbox Account
13
Course Resources/Applications
• Amazon Class Resource Web Site(s)
• For downloading files, viewing database tables, etc.
• URL(s) in Lab Guide
• Power Center
• Your own Repository and Client Applications
• Local machine or Amazon Machine Instance (AMI) EC2
• Version 9.x
14
Additional Resources
• Informatica Cloud Community Site
community.informatica.com
15
Training Environment
Personal Developer Account
or Sandbox
AMI Machine
PowerCenter
SQL Server
Training Org
CSV Files
Student01
Student02
.
Secure Agent .
.
Student n
16
Training Environment
http://ec2-75-101-208-253.compute-1.amazonaws.com/TrainingHelp/Main2.aspx
Personal Developer Account
Student Machine or Sandbox
PowerCenter
SQL Server
Files
Training Org
CSV Files
Student01
Student02
.
Secure Agent .
.
Student n
17
Setting up the Lab Environment: Pre-Steps
18
Module 1: Informatica Cloud Enterprise
19
Objectives
After completing this unit, you will be able to:
20
Unit Objectives
After completing this unit, you will be able to:
• Explain the purpose of Informatica Cloud Enterprise
• Understand the interoperability between Informatica Cloud and
PowerCenter
• Define a Plug-In
• Define a PowerCenter Service
• Define a Template and Custom integration task
• Understand when you might use a Plug-in versus a PowerCenter
Service vs a custom integration task
21
IT is Moving to the Cloud
CRM
Application
Custom HR Custom
Application Application Application
22
The Cloud is “The New Best of Breed”
SaaS PaaS IaaS
I need to integrate
65 percent of IT my new cloud
services
managers recognize
integration issues
as the top barrier
for SaaS adoption.
23
Evolution of
Cloud MDM
Informatica Cloud
Cloud Cloud
Cloud Integration Integration
Connectivity Applications Platform
24
Welcome to the Era Hybrid IT
SaaS PaaS IaaS
Your
New
Hybrid
IT
Org
Your
IT Custom Custom Custom
Org Application Application Application
Mainframe
Custom Custom
Application Application Your
Company
25
Cloud for All
Industry’s Broadest Integration Portfolio Coming to the Cloud
Informatica Cloud
Informatica Platform
ULTRA COMPLEX EVENT B2B DATA ENTERPRISE DATA APPLICATION DATA MASTER DATA
MESSAGING PROCESSING EXCHANGE INTEGRATION ILM QUALITY MANAGEMENT
26
Informatica Cloud Strategy
1) The Integration
Platform for
Hybrid IT
27
Informatica Cloud Strategy
1) The Integration
Platform for
Hybrid IT
2) Informatica
Cloud for All
28
Informatica Cloud Strategy
1) The Integration
Platform for
Hybrid IT
2) Informatica
Cloud for All
3) Informatica
Inside
29
Using Informatica Cloud
Your Company
1
Secure 3
Agent
30
Cloud Integration for the Enterprise
Robert Mahowald,
Research Vice President of SaaS and Cloud Services, IDC
31
Enterprise Integration Competency Centers
PowerCenter Interoperability
http://www.informaticacloud.com/icc
32
Scaling the ICC
Providing self service while maintaining control
ICC
33
Rapid Development, Configuration, and Consumption
Cloud Connector Cloud Integration
Toolkit Templates
Aggregation
Lead De-duplication
Opportunity Conversion
34
Cloud-Centric Approach to Integration
http://www.informaticacloud.com/connectivity
http://www.informaticacloud.com/products/cloud-integration-processes
http://www.informaticacloud.com/products/cloud-integration-processes/greatplains-integration.html
35
Evolving to a Cloud Platform
36
Building on the Informatica Cloud Platform
• Plug-ins
• Adding Functionality inside of a DSS task
• Between source and target
• flexible, re-usable
• Built at mapplet level in PowerCenter
• PowerCenter Services
• Use this if something is not supported in Plug-in
• Built at mapping level in PowerCenter
• Templates
• save time by using pre-defined mappings for specific processes
• Connector Toolkit
• Build a source or target in DSS tasks
• Requires Java development
• Not covered in this class to build – but to use
• REST API
37
REST API
• Administrating
• Provisioning
• Orgs
• custom integration tasks
• Dynamically creating users
• Deploying
38
Cloud Integration Templates and Custom Wizards
Enterprise
Developers
Business Users Data Sync Data Replication
Custom Integration
Wizards
Dynamic
Integration Common
Templates Integration
Patterns
Parameters
39
Cloud Integration Templates
Easily select from
1 numerous prebuilt
integration processes
40
How do I build a Plug-in?
• Built in PowerCenter
• Build and test mapplet in PowerCenter
• Workflow XML is exported from PowerCenter
• Plug-in is created (and XML uploaded) in Informatica Cloud
• A simple, purpose-built
• Used inside a DSS task
wf_convert_file.xml
41
Plug-In versus PowerCenter Service
Plug-In PowerCenter Service
42
Comparing Custom Integration Task
Plug-In and PowerCenter service Custom Integration Task – from a template
Mapplet ->Plug-in
43
Instructor Demo: Show Plug-in, PCS and
Template
• Business Scenario:
• Aggregate and summarize data
44
Lab 1: Exporting an Informatica Cloud
Task and Importing into PowerCenter
• Business Scenario:
• Your business users have built a task in Informatica Cloud.
You would like to bring this task into PowerCenter so it can
be reviewed, and possibly edited, or run and managed as
part of the ICC (Integration Competency Center).
45
Module 2: Getting Started with Plug-Ins and
PCS Task
46
Unit Objectives
After completing this unit, you will be able to:
• Export a workflow from PowerCenter
• Import Plug-in (PowerCenter workflow) in Informatica Cloud
47
Informatica Cloud vs. Cloud Enterprise
Business IT Developer
Manager
48
Informatica Cloud Enterprise
Using PowerCenter to extend what’s possible in
Informatica Cloud
49
Steps for Creating a Plug-in
1. Create a mapplet
50
Step 1 – Create a Mapplet in PowerCenter
51
Step 1 – Create a Mapplet
Input Fields will be Plug-in Input Fields (available in
Field Mapping)
52
Step 1 – Create a Mapplet
Output Fields will be Plug-in Output Fields (available
in Field Mapping)
53
Step 3 – Create a Mapping
54
Step 5 – Create a Workflow
55
Step 6 – Export the Workflow XML
56
Creating a Plug-in Informatica Cloud
57
Creating a Plug-in Informatica Cloud
58
Plug-ins: Active or Passive?
59
Picklist Pivot Business Scenario
Typical Modeling of Relational Data into Salesforce: Using Multiple Objects
Company
Account
CompanyID
Name ID
Address Contact Name
Address
ContactID Contact
ContactName
CompanyID ID
Name
AccountID
60
Picklist Pivot Business Scenario
Alternative Option: Using Multi-Select Picklist to hold secondary table data
Company
CompanyID
Name Accounts
Address Certifications ID
Name
CertID Address
CertName …
CompanyID Certifications (Multiselect picklist)
61
Picklist Business Scenario
• DSS task upserts account data
• Plug-in “pivots” certification data for insertion into
multi-select picklist on Account record
DSS Task
Certifications
62
Picklist Pivot Mapplet
1 2
63
Steps for Creating a Plug-in in PowerCenter
1. Create a mapplet
64
Lab 1: Importing/Exporting a PowerCenter
Workflow
• Business Scenario:
• You have data in a Certifications table. You want to store
this data in a multi-select picklist in Salesforce, so you
need to “pivot” the data before inserting it.
65
Lab 2: Using a Plug-in in a Data
Synchronization Task
• Business Scenario:
• You have data in a Certifications table. You want to store
this data in a multi-select picklist in Salesforce, so you
need to “pivot” the data before inserting it.
66
Lab 3: Modifying a Plug-in in PowerCenter
• Business Scenario:
• You used the plug-in and realized that it is not functioning
correctly. You need to add a Sorter transformation to the
plug-in and re-export.
67
What if you run into mapplet limitations?
• The following cannot be used in a mapplet:
• Normalizer transformation
• COBOL sources
• XML Source Qualifier
• XML Sources
• Target definitions
68
Steps for Creating a PowerCenter Service
Task in PowerCenter
1. Create a mapping
2. Create a workflow
3. Export workflow XML
69
PowerCenter Service Task: File Paths
• Input/output file paths are hard-coded for a
PowerCenter Service Task
• Unlike plug-in, no DSS task with source and target
70
Creating a PowerCenter Service Task in
Informatica Cloud
71
Creating a PowerCenter Service Task in
Informatica Cloud
72
Directory Setup on Agent Machine
• Best practice/naming convention for directory structure
on Agent machine
73
Steps for Creating a Plug-in in PowerCenter
1. Creating a mapping
74
Building on the Informatica Cloud Platform
• Two options for extending Informatica Cloud using
PowerCenter:
• Plug-ins
• Preferred method – try this first!
• More flexible, re-usable
• Built at mapplet level in PowerCenter
• PowerCenter Services
• Use this if something is not supported in Plug-
in
• Built at mapping level in PowerCenter
75
Plug-In versus PowerCenter Service
Plug-In PowerCenter Service
76
Bonus Lab 4: Creating a PowerCenter
Service Task
• Business Scenario:
• You will import the same workflow created in previous labs
and import into Informatica Cloud as PowerCenter Service
Task.
77
Module 3: Informatica Cloud Integration
Templates
Authoring and
Configuration
78
Module Objectives
After completing this module, you will be able to:
• Additional Resources
79
Introduction To Templates
1. Convenient Consumption
• Cloud Integration Templates Mall
• Published from Master ICS Org
2. Easy Configuration
3. Rapid Development
4. Embeddable Integration
80
Rapid Development, Configuration, and Consumption
Aggregation
Lead De-duplication
Opportunity Conversion
www.InformaticaCloud.com/developer
81
Consumption
In your organization - https://community.informatica.com/docs/DOC-2668
https://community.informatica.com/community/marketplace/cloud_integration_templates_mall
82
Configuration
• Custom Integration Tasks
83
Embeddable Integration
ICS REST API enables via custom application UI to define which objects to integration
84
Cloud Integration Templates and Custom Wizards
Enterprise
Developers
Business Users Data Sync Data Replication
Custom Integration
Wizards
Dynamic
Integration Common
Templates Integration
Patterns
Parameters
85
Development - Building Template
86
Development - Template Designer
87
Link Rules for Cloud Templates
To Route “all” ports
88
Link Rule: All Ports
Use to route all ports forward. Use for
example when you want to read in all
the ports from a source.
Custid Custid
Fname Fname
Lname Lname
Phone All Ports Phone
Email Email
Street Street
City City
State State
Zip Zip
89
Link Rule- Datatype
EXP Use when want to perform
Fname
Datatype specific operations
Lname e.g trim all strings, format dates etc
Phone
DT:String Email
SQ
Street
Custid City
Fname State
Lname
Phone
Email
dateofbirth
Street EXP2
DT:integer
City
State
Custid
Zip
Zip
DT::datetime
EXP2
dateofbiirth
90
Link Rule- Regex Pattern
EXP
Use when ports use specific
Order_id Order_id name patterns.
Customer_id Customer_id
Product_id Product_id Assign names with patterns in ports to
Pattern:_id$
qty
orderdate
Control downstream routing
shipdate Route output ports of a expr/agg
Transform forward
EXP2
You can change name of the “to” port.
Pattern:date$ orderdate
E.g drop the _o from output ports
shipdate
Exp
Deptid
Mgrid
Mgrname_o EXP2
Empname_o
Empdate_o
Mgrname
Empname
Empdate
Pattern:_o$
91
Link Rule- Named
EXP2 Use when you want to route ports by
Order_id
name of the port. You can specify a
Order_id Order_id Customer_id list of portnames. You can rename the
Customer_id customer_id
Addr1
ports to a different name.
City
State
Zip
country
Named:addr1,city,
State,zip,country
(to) EXP
Street,city,state
Postalcode,country
street
City
State
Postalcode
country
92
Link Rule- Dictionary
Use when you want to route ports and
rename them using an external
cid
dictionary file. Used for example, to
EXP
Name1 assign canonical names to source
Name2 Dict: mydict
Phone
customer_id ports.
email First_name
Last_name
Tel mydict (contents)
email
cid=customer_id
Name1=first_name
Name2=last_name
Phone=Tel
email=email
93
Link Rule- Exclude
EXP
Use when you want to exclude certain
ports from being routed.
Order_id Order_id To use this rule first include all ports
Customer_id Customer_id
Product_id Product_id
and then exclude the ports not
qty Pattern:_id$ needed.
orderdate
shipdate
EXP2
All Ports
qty
Exclude Pattern:_id$
orderdate
shipdate
94
Expression Macros
• Used in Expression and Aggregator Transform
• Dynamic Expression generation
• End user does not have to specify repetitive expressions
• Examples
• Horizontal Macro (Generates one long expression)
• Checknull = IIF(ISNULL(c1),1,IIF(ISNULL(c2,1,……))))))
• Vertical Macro (Generates multiple expressions)
• C1_1 = TO_DATE(c1,‟mm/dd/yyyy‟)
• C2_1 = TO_DATE(c2,‟mm/dd/yyyy‟)
• .
• .
95
Expression Macro – Vertical Expansion
Order_ID
Customer_ID
Product_ID
qty
orderdate
shipdate
iif(IS_DATE(%port%,'$fromdatef$'),TO_CHAR(TO_DATE(%port%,'$fromdate
f$'),'$todatef$'),%port%)
EXP
orderdate_o= iif(IS_DATE(orderdate,„mm/dd/yyyy),TO_CHAR(TO_DATE(orderdate,„mm/dd/yyyy'),„mm-
dd-yyyy'),orderdate)
Shipdate_o=iif(IS_DATE(shipdate,„mm/dd/yyyy),TO_CHAR(TO_DATE(shipdate,„mm/dd/yyyy'),„mm-dd-
yyyy'),shipdate)
96
Expression Macro – Horizontal
Expansion
Order_ID
Customer_ID
Product_ID
qty
orderdate
shipdate
EXP
nullcount = iif(ISNULL(Order_ID),1,0)+iif(ISNULL(Customer_ID),1,0)+
iif(ISNULL(Product_ID),1,0)
97
How to Parameterize Expressions
Expression/Aggregator Transform
98
Expression/Aggregate Transformation
Parameterization (Cont..)
Expression with
no parameter Parameterize
output/variable
port‟s
“Expression”
value
Parameterize a
Parameterize the
set of
output/variable
Expressions
port name
99
Template Lifecycle & User Roles
100
Comparing Custom Integration Task
Plug-In and PowerCenter service Custom Integration Task – from a template
Mapplet ->Plug-in
101
When to use Integration Templates?
102
Demo Lab 1: Creating Template
• Business Scenario:
• Build a generic template that routes data from any given
source to two different targets based on if the row is valid
or invalid determined by a user specified validation rule.
103
Module 4 – Managing Cloud Enterprise
Assets
104
Unit Objectives
After completing this unit, you will be able to:
105
Best of Breed: SaaS Sprawl
106
Cloud Integration Custom
Applications Apps
107
Powering Hybrid IT: The Best of Both
Worlds
Simplicity Enterprise-Class
Views Access Controls
Scheduling Delegated Admin
REST API Authentication
108
Scaling the ICC
Providing self service while maintaining control
ICC
109
Delegated Administration
110
Simplicity: Customizable Views
• Define custom
queries based on
personal preferences
and manage multiple
cloud data
integration tasks
111
Simplicity: Customizable Views
Best Practice
112
Enterprise-Class:
Two-Factor Authentication
113
Fine-grained Access Controls
114
Object Migration
115
Module 5: Using Cloud Enterprise for
Advanced Data Processing
116
Unit Objectives
After completing this unit, you will be able to:
118
Business Scenario - Task Flow
1•Power Center Service Task – converts fixed-width file to
CSV file
2• DSS Task– inserts leads from CSV file into Salesforce
Leads object
Leads 1
from Partner
(Fixed-
width file)
2
Leads
(CSV file)
Leads
119
XML to/from Delimited File
• Need to “flatten” multi-object, hierarchical XML file
(Accounts and Contacts)
• Use Source Analyzer tool in PowerCenter Designer
120
XML Example
121
Target/Resulting File(s)
• You must create one or more “shells” for target file(s)
Customers.csv
Contacts.csv
122
Mapping the Files
123
Mapping the Files
124
Example Use Case
• Business Problem:
• You have an XML file (from a legacy Contact
Management system) that contains Customers and
Contacts
• Need to load contents into Salesforce as Accounts
and Contacts
• Solution:
• Convert file to cloud-consumable format using
PowerCenter Service Task
• Use new file(s) as source for DSS tasks (File ->
Salesforce Accounts and File -> Salesforce Contacts )
125
High Level - Task Flow
1 2• Power Center Service Tasks – convert hierarchical XML
file to CSV file(s)
3• DSS Task– inserts Accounts from CSV file into Salesforce
4• DSS Task – inserts Contacts from CSV file into Salesforce
Customers 1
and Contacts
(XML file)
2
Customers
(CSV File) 3
Accounts
Contacts
(CSV File) 4
Contacts
126
List of Certified Transformations
Transformation Name Works in PC Service? Works in Plug-in?
Expression
Lookup
Aggregator
Sorter
Filter
Sequence Generator NO
Stored Procedure
Custom NO NO
Normalizer NO
Update Strategy NO
Union NO
127
List of Certified Transformations, cont.
Transformation Name Works in PC Service? Works in Plug-in?
128
List of Certified Transformations, cont.
Transformation Name Works in PC Service? Works in Plug-in?
Java NO NO
External Procedure NO NO
Data Masking NO NO
Rank NO NO
Router NO
SQL NO NO
Transaction Control
Unstructured Data NO NO
Multi Source NO NO
Disconnected Objects NO NO
Parameters NO NO
129
Expression Transformation
Click here to
invoke the
Expression Editor
130
Sorter Transformation
Sort Order
Sorts data on one or more ports Sort Keys
Ports
• Input/Output
• Define one or more
sort keys
• Define sort order for
each key
131
Aggregator Transformation
Performs aggregate calculations
Ports
• Mixed I/O ports allowed
• Variable ports allowed
• Group By allowed
Create aggregate
expressions in
non-input ports
Usage
• Standard aggregations
132
Aggregate Expressions
Aggregate
functions
AVG
COUNT
FIRST
LAST
MAX
MEDIAN
MIN
PERCENTILE
STDDEV
SUM
VARIANCE
Conditional Aggregate
expressions are supported: Conditional SUM format: SUM(value, condition)
133
Downloading Plug-ins: the Informatica
Marketplace
www.informatica.com
134
Informatica Marketplace
135
Informatica Marketplace
136
Marketplace Aggregate by Choice
https://community.informatica.com/solutions/aggregator_by_choice
137
Business Scenario
• Order data is stored in system outside Salesforce
• You need to total order data by account and by type:
• Direct
• Web
Orders
Accounts
Aggregator Plug-in
138
Aggregator Mapplet
1• Expression Transformation – concatenates match fields to
form key field
1 2 3
139
Aggregator Mapplet
1• Expression Transformation – concatenates match fields to
form key field
2• Sorter Transformation – sorts by match key
1 2 3
140
Aggregator Mapplet
1• Expression Transformation – concatenates match fields to
form key field
2• Sorter Transformation – sorts by match key
1 2 3
141
Lab 1: Modifying the Aggregator Plug-in
• Business Scenario:
• You need to summarize data in an Orders table (by
Account and by Order Type) and make it available to your
Salesforce users. You have downloaded the existing
Aggregator plug-in from the Informatica marketplace as a
starting point.
142
Business Scenario
• You can create a plug-in that de-duplicates
source data
• Determines duplicates by comparing up to five fields
143
De-dupe Mapplet
1• Expression Transformation - concatenates all match fields
together to create unique de-dupe key
2• Sorter Transformation - sorts by de-dupe key
2 3
144
De-dupe Mapplet
1• Expression Transformation - concatenates all match fields
together to create unique de-dupe key
2• Sorter Transformation - sorts by de-dupe key
2 3
145
De-dupe Mapplet
1• Expression Transformation - concatenates all match fields
together to create unique de-dupe key
2• Sorter Transformation - sorts by de-dupe key
2 3
146
Lab 2: Building a De-dupe Plug-in
• Business Scenario:
• You need to remove duplicate records in your source data
before inserting into target (Salesforce Leads object).
147