PWX 8601 Salesforce - Com UserGuide

Download as pdf or txt
Download as pdf or txt
You are on page 1of 58

User Guide

Informatica PowerExchange for


Salesforce.com
(Version 8.6.0.1)

Informatica PowerExchange for Salesforce.com User Guide


Version 8.6.0.1
July 2008
Copyright (c) 20062008 Informatica Corporation. All rights reserved.
This software and documentation contain proprietary information of Informatica Corporation and are provided under a license agreement containing restrictions on use and disclosure and are also
protected by copyright law. Reverse engineering of the software is prohibited. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying,
recording or otherwise) without prior consent of Informatica Corporation. This Software may be protected by U.S. and/or international Patents and other Patents Pending.
Use, duplication, or disclosure of the Software by the U.S. Government is subject to the restrictions set forth in the applicable software license agreement and as provided in DFARS 227.7202-1(a) and
227.7702-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable.
The information in this product or documentation is subject to change without notice. If you find any problems in this product or documentation, please report them to us in writing.
Informatica, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart, Metadata Manager, Informatica Data Quality, Informatica Data Explorer,
Informatica B2B Data Exchange and Informatica On Demand are trademarks or registered trademarks of Informatica Corporation in the United States and in jurisdictions throughout the world. All
other company and product names may be trade names or trademarks of their respective owners.
DISCLAIMER: Informatica Corporation provides this documentation as is without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of noninfringement, merchantability, or use for a particular purpose. Informatica Corporation does not warrant that this software or documentation is error free. The information provided in this software or
documentation may include technical inaccuracies or typographical errors. The information in this software and documentation is subject to change at any time without notice.

Book Part Number: PWX-SFU-86010-0001

Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Informatica Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Informatica Customer Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Informatica Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Informatica Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Informatica Knowledge Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Informatica Global Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

Chapter 1: Understanding PowerExchange for Salesforce.com . . . . . . . . . . . . . . . . . 1


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Integrating PowerCenter with Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Designer and Salesforce.com Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Integration Service and Salesforce.com Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Chapter 2: Installation and Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Installing PowerExchange for Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Upgrading PowerExchange for Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installing PowerExchange for Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installing the Client Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installing the Services Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Registering the Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Configuring HTTP Proxy Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Uninstalling PowerExchange for Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
New Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Viewing Record-Level Session Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Capturing Deleted and Archived Salesforce Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Supporting Salesforce Professional Edition Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Merging Duplicate Salesforce Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Validating Salesforce PickList Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Importing Related Object Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Upserting Records of Related Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Capturing Changed Data During a Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Performing Lookups on Salesforce Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Partitioning Salesforce Targets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Changed Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Handling Null Values in Update and Upsert Operations . . . . . . . . . . . . . . . . . . . . . . . . . 11
Upserting Related Object Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Using Salesforce APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Updating the Repository Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

iii

Chapter 3: Working with Salesforce Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Understanding Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Example of a Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Importing Fields of Related Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Rules and Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Working with Salesforce Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Time Zones for Salesforce Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Working with Salesforce Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Rules and Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Upserting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Determining the Update Strategy for the Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Time Zones for Salesforce Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Importing a Salesforce Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Chapter 4: Salesforce Lookup Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Salesforce Lookup Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Salesforce Lookup Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Lookup Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Pass-Through Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
LKP_FILTER Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
LKP_MATCHIDX Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Salesforce Lookup Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Creating a Salesforce Lookup Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Chapter 5: Salesforce Merge Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Rules and Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Sample Merge Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Salesforce Merge Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Salesforce Merge Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Salesforce Object Attribute Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
ID and SlaveID Input Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
MergedID, MergedSlaveID1, and MergedSlaveID2 Output Ports . . . . . . . . . . . . . . . . . . 27
Creating a Salesforce Merge Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Chapter 6: Salesforce PickList Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Rules and Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Salesforce PickList Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Salesforce PickList Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Creating a Salesforce PickList Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

iv

Table of Contents

Chapter 7: Salesforce Sessions and Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Configuring Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Filtering Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Capturing Deleted or Archived Salesforce Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Handling Null Values in Update and Upsert Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Capturing Changed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Capturing Changed Data Continuously . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Capturing Changed Data for a Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Upserting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Configuring the Maximum Batch Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Tuning the DTM Buffer Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Modifying the Precision of Fields that Map to the
String Transformation Datatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Logging PowerExchange for Salesforce.com Session Details . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Sample Success Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Sample Failure Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Appendix A: Salesforce Datatype Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Salesforce and Transformation Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Appendix B: Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Table of Contents

vi

Table of Contents

Preface
The PowerExchange for Salesforce.com User Guide provides information to build Salesforce mappings, extract
data from Salesforce objects, and load data into Salesforce objects. It is written for the developers who are
responsible for extracting data from Salesforce objects and loading data into Salesforce objects.
This book assumes you have knowledge of web services concepts, relational database concepts, PowerCenter,
and Salesforce.com. You must also be familiar with the interface requirements for other supporting
applications. For additional information about related Salesforce issues, refer to the Salesforce documentation.

Informatica Resources
Informatica Customer Portal
As an Informatica customer, you can access the Informatica Customer Portal site at http://my.informatica.com.
The site contains product information, user group information, newsletters, access to the Informatica customer
support case management system (ATLAS), the Informatica Knowledge Base, Informatica Documentation
Center, and access to the Informatica user community.

Informatica Documentation
The Informatica Documentation team takes every effort to create accurate, usable documentation. If you have
questions, comments, or ideas about this documentation, contact the Informatica Documentation team
through email at infa_documentation@informatica.com. We will use your feedback to improve our
documentation. Let us know if we can contact you regarding your comments.

Informatica Web Site


You can access the Informatica corporate web site at http://www.informatica.com. The site contains
information about Informatica, its background, upcoming events, and sales offices. You will also find product
and partner information. The services area of the site includes important information about technical support,
training and education, and implementation services.

Informatica Knowledge Base


As an Informatica customer, you can access the Informatica Knowledge Base at http://my.informatica.com. Use
the Knowledge Base to search for documented solutions to known technical issues about Informatica products.
You can also find answers to frequently asked questions, technical white papers, and technical tips.

vii

Informatica Global Customer Support


There are many ways to access Informatica Global Customer Support. You can contact a Customer Support
Center through telephone, email, or the WebSupport Service.
Use the following email addresses to contact Informatica Global Customer Support:

support@informatica.com for technical inquiries

support_admin@informatica.com for general customer service requests

WebSupport requires a user name and password. You can request a user name and password at
http://my.informatica.com.
Use the following telephone numbers to contact Informatica Global Customer Support:

viii

Preface

North America / South America

Europe / Middle East / Africa

Asia / Australia

Informatica Corporation
Headquarters
100 Cardinal Way
Redwood City, California
94063
United States

Informatica Software Ltd.


6 Waltham Park
Waltham Road, White Waltham
Maidenhead, Berkshire
SL6 3TN
United Kingdom

Informatica Business
Solutions Pvt. Ltd.
Diamond District
Tower B, 3rd Floor
150 Airport Road
Bangalore 560 008
India

Toll Free
+1 877 463 2435

Toll Free
00 800 4632 4357

Toll Free
Australia: 1 800 151 830
Singapore: 001 800 4632 4357

Standard Rate
Brazil: +55 11 3523 7761
Mexico: +52 55 1168 9763
United States: +1 650 385 5800

Standard Rate
Belgium: +32 15 281 702
France: +33 1 41 38 92 26
Germany: +49 1805 702 702
Netherlands: +31 306 022 797
United Kingdom: +44 1628 511 445

Standard Rate
India: +91 80 4112 5738

CHAPTER 1

Understanding PowerExchange for


Salesforce.com
This chapter includes the following topics:

Overview, 1

Integrating PowerCenter with Salesforce.com, 2

Overview
PowerExchange for Salesforce.com integrates PowerCenter with Salesforce.com to extract data from Salesforce
sources and write data to Salesforce targets. Salesforce sources and targets represent objects in the Salesforce
object model. Salesforce objects are tables that correspond to tabs and other user interface elements on the
Salesforce.com web site. For example, the Account object contains the information that appears in fields on the
Account tab of Salesforce.com.
Salesforce objects contain data that Salesforce customers access on Salesforce.com. Saleforce.com provides ondemand customer relationship management (CRM) solutions for organizations. You can view, create, update,
and delete data in Salesforce objects.
PowerExchange for Salesforce.com uses the Salesforce security model to enforce data access controls. Your
ability to access data depends on the Salesforce organization, or org, that is associated with the user login you
provide when you connect to Salesforce.com. It also depends on the user privileges and the field and row level
permissions associated with the login. You specify the Salesforce login user and password in an application
connection object that you create in the Workflow Manager or when you import a Salesforce source, lookup or
target definition in the Designer. PowerExchange for Salesforce.com uses the Salesforce API to apply existing
access policies, and it does not impose additional data access restrictions.
PowerExchange for Salesforce.com provides the following benefits:

Data integration and migration. Integrate data from diverse data sources, including other applications, with
Salesforce.com. Also, use PowerCenter to migrate data from various data sources to Salesforce.com.

Data analysis. Use the built-in data quality capability of PowerCenter to analyze and evaluate
Salesforce.com data.

Access to Salesforce.com functionality through PowerCenter. Gain full access to Salesforce objects as
sources and targets in PowerCenter.

Integrating PowerCenter with Salesforce.com


PowerExchange for Salesforce.com integrates Salesforce with the Designer so you can import Salesforce objects
into PowerCenter and use them in mappings. It integrates Salesforce with the Integration Service so you can
run workflows that extract, transform, and load Salesforce data.
PowerExchange for Salesforce.com uses Secure Sockets Layer (SSL) to encrypt all data that crosses the Internet.
It uses 128-bit SSL encryption. PowerExchange for Salesforce.com also uses 128-bit encryption before it stores
user IDs, passwords, and session IDs in the repository or in temporary storage locations.

Designer and Salesforce.com Integration


You use the Designer to import Salesforce source, target, and lookup target definitions. You can then use the
sources, targets, and lookups in mappings for seamless integration between PowerCenter and Salesforce.
When you import a Salesforce source, target, or lookup definition, you define the source, target, or lookup to
reflect the structure of the Salesforce object that you want the Integration Service to read from or write to.
Salesforce.com uses both standard and custom object types. Standard object types are objects packaged within
Salesforce.com, such as Account, AccountPartner, Event, Opportunity, and Product.
Custom object types extend the Salesforce data for an organization by defining data entities that are unique to
the organization. Salesforce administrators can define custom fields for both standard and custom objects.
When you connect to Salesforce.com to import source and target definitions, you import both standard and
custom objects. The Designer uses a Salesforce.com login call to authenticate with the Salesforce service. It then
dynamically generates a list of objects that are available for download.

Integration Service and Salesforce.com Integration


The Integration Service connects to Salesforce.com to extract, transform, and load Salesforce data. The
Integration Service uses a Salesforce login call to authenticate with the Salesforce service. You can specify the
login server to use either a production environment or a special testing and development environment called the
Salesforce Sandbox.
A connection object stores the Salesforce user ID, password, and end point URL information for the run-time
connection. Each Salesforce source or target in a mapping references a Salesforce application connection object.
You can use multiple Salesforce application connections in a mapping to access different sets of Salesforce data
for the sources and targets.
The Integration Service uses the Salesforce security mechanism to authenticate users and manage sessions. The
Salesforce API performs user ID and password authentication at the initiation of a run-time session.
At session run time, the Integration Service generates an SOQL query based on the Salesforce source definitions
and field projections in the mapping. The SOQL language is a derivative of SQL. The Salesforce API performs
SOQL syntax validation at run time.
The Integration Service uses the Salesforce API to read from and write to Salesforce objects. When reading a
significant amount of Salesforce data, the Integration Service breaks up the data into smaller segments.
PowerExchange for Salesforce.com submits sequential requests for subsets of a query result set until the entire
set has been retrieved.

Chapter 1: Understanding PowerExchange for Salesforce.com

Figure 1-1 shows how the Integration Service connects to Salesforce.com to read from and
write to Salesforce objects:
Figure 1-1. Integration Service and Salesforce.com Integration
PowerCenter Repository

Workflow
Salesforce.com
Application Connection

Salesforce Session

Integration Service

The Integration Service reads and


writes Salesforce content based on
workflow and application connection
configurations. The Integration Service
uses the end point URL in the
connection object for the initial login to
Salesforce.com.
The Integration Service connects to the
Salesforce.com SOAP server. It sends
and receives SOAP requests to update
Salesforce content through the
Salesforce service.

Salesforce.com
SOAP Server
Web Server

The Integration Service uses the SOAP protocol to transmit data between the Integration
Service and the Salesforce service. To increase performance, the Integration Service uses
HTTP compression to reduce the size of the SOAP packets that are sent over the Internet.
When the Integration Service writes data to Salesforce.com, it converts the PowerCenter
datatypes to Salesforce datatypes. For more information about datatype conversion, see
Salesforce Datatype Reference on page 41.

Code Pages
Salesforce.com processes UTF-8 characters. The Integration Service handles Salesforce data
based on the following data movement modes:

ASCII. When the Integration Service runs in ASCII mode, it does not perform any code
page validation or any data conversion. You might get inconsistent or truncated data if the
Integration Service runs in ASCII mode but processes non-ASCII character data when
writing to a Salesforce target.

Unicode. When the Integration Service runs in Unicode mode, it converts data from the
source character set to UCS-2, processes the data, and then converts the UCS-2 data to the
target code page character set before loading the data. If a session writes to a Salesforce
target, the Integration Service converts the UCS-2 data to the UTF-8 character set.

Integrating PowerCenter with Salesforce.com

For more information about Integration Service data movement modes and about code page compatibility, see
the PowerCenter Administrator Guide.

Chapter 1: Understanding PowerExchange for Salesforce.com

CHAPTER 2

Installation and Configuration


This chapter includes the following topics:

Overview, 5

Installing PowerExchange for Salesforce.com, 6

Registering the Plug-in, 8

Configuring HTTP Proxy Options, 8

Uninstalling PowerExchange for Salesforce.com, 9

New Features, 10

Changed Behavior, 11

Overview
This chapter provides information about installing and upgrading PowerExchange for Salesforce.com. Before
you install or upgrade PowerExchange for Salesforce.com, verify that the minimum system requirements are
met and complete the prerequisite tasks.

Prerequisites
Complete the following tasks before you perform installation or upgrade tasks for PowerExchange for
Salesforce.com:

Verify that you have a valid Salesforce.com login. You must have a valid Salesforce.com user name and
password to create connections to access Salesforce.com. The Salesforce data that you can view and modify
depends on the Salesforce security policy associated with the organization and the user login. You must use
either the Enterprise edition, Unlimited edition, or Professional edition of Salesforce.com to use the
Salesforce AppExchange 12.0 API.

Install or upgrade PowerCenter. To run continuous Salesforce workflows, you must have the PowerCenter
Real-time option. For more information about installing or upgrading PowerCenter, see the PowerCenter
Installation Guide.

Installing PowerExchange for Salesforce.com


Complete the following tasks to install PowerExchange for Salesforce.com:
1.

Install PowerExchange for Salesforce.com. Install PowerExchange for Salesforce.com. You install the
PowerCenter Client and Services components. For more information, see Installing PowerExchange for
Salesforce.com on page 6.

2.

Register the plug-in. Register the plug-in with the repository. For more information, see Registering the
Plug-in on page 8.

3.

Configure the HTTP proxy options. Configure the HTTP proxy options for the PowerCenter Client and
the Integration Service. For more information, see Configuring HTTP Proxy Options on page 8.

After you install and configure PowerExchange for Salesforce.com, you can create connections to access
Salesforce.com. Create connection objects in the Workflow Manager so the Integration Service can connect to
Salesforce.com at run time. For more information about configuring connections, see Configuring
Connections on page 34.

Upgrading PowerExchange for Salesforce.com


Complete the following tasks to upgrade PowerExchange for Salesforce.com:
1.

Install PowerExchange for Salesforce.com. Install PowerExchange for Salesforce.com. You install the
PowerCenter Client and Services components. For more information, see Installing PowerExchange for
Salesforce.com on page 6.

2.

Upgrade the plug-in registration. Register the PowerExchange for Salesforce.com plug-in to update the
existing plug-in registration. For more information, see Registering the Plug-in on page 8.

3.

Verify the settings for the HTTP proxy options. Verify the settings for the HTTP proxy options for the
PowerCenter Client and the Integration Service. For more information, see Configuring HTTP Proxy
Options on page 8.

4.

Complete post-upgrade tasks. After you upgrade, complete additional post-upgrade tasks. For more
information, see Changed Behavior on page 11.

Installing PowerExchange for Salesforce.com


Step 1. Install
Step 1. Upgrade

When you install PowerExchange for Salesforce.com, the following components are installed:

Client component. Allows you to import definitions, create mappings, and create connection objects.

Services component. Allows the Repository Service to access the PowerExchange for Salesforce.com
metadata in the repository and allows the Integration Service to run Salesforce sessions.

Install these components on the machines that you want to access Salesforce.com.

Installing the Client Component


Install the Client component on each PowerCenter Client machine where you want to create or access
Salesforce metadata.
To install the Client component:
1.

Use WinZip to extract the files from the SFDC_8601_Client.zip file to the following directory:
<PowerCenter Installation Directory>\client\bin

Chapter 2: Installation and Configuration

Note: Ensure that you maintain the original directory structure that is created when you extract the files.

WinZip creates subfolders for some files.


2.

Exit all client applications that are running on the machine.

3.

Run installSFDCclient.cmd to install the PowerExchange for Salesforce.com client files.


Note: When prompted to enter the absolute path for the client, include the path up to the client folder.

Installing the Services Component


If the Integration Service or Repository Service is configured to run on primary and backup nodes, install the
Services component on each node configured to run the Integration Service or Repository Service process.
If the Integration Service is configured to run on a grid, install the Integration Service component on each node
configured to run on the grid. If you cannot install the Integration Service component on each node in the grid,
create a resource in the domain and assign it to each node where you installed the Integration Service
Component. When you create a session, configure the session to use the resource.
For example, create a custom resource called Salesforce.com. When you create a session, you can require the
session to use the resource Salesforce.com. The Load Balancer will only dispatch the session to nodes where the
Integration Service component is installed.
For more information about resources, see the PowerCenter Administrator Guide.
To install the Services component on Windows:
1.

Use WinZip to extract the files from the zip file to the following directory:
<PowerCenter Installation Directory>\server\bin

Table 2-1 lists the name of the zip file for each applicable Windows operating system:
Table 2-1. Zip Files for Integration Components on Windows Machines
Operating System

File Name

Windows 32-bit

SFDC_8601_Win32.zip

Windows EM64T 64-bit

SFDC_8601_WinEMT64.zip

Windows IA 64-bit

SFDC_8601_WinIA64.zip

Note: Ensure that you maintain the original directory structure that is created when you extract the files.

WinZip creates subfolders for some files.


2.

Disable the Integration Service. For more information about disabling the Integration Service, see the
PowerCenter Administrator Guide.

3.

Run installSFDCserver.cmd to install the PowerExchange for Salesforce.com files.


Note: When prompted to enter the absolute path for the server, include the path up to the server folder.

To install the Services component on UNIX:


1.

Log in to the UNIX machine.

2.

Use the tar utility to extract the files from the applicable tar file to the following directory:
<PowerCenter Installation Directory>\server\bin

Table 2-2 lists the name of the tar file for each applicable UNIX operating system:
Table 2-2. Tar Files for Integration Components on UNIX Machines
Operating System

File Name

Solaris 32-bit

SFDC_8601_Sol32.tar

Solaris 64-bit

SFDC_8601_Sol64.tar

Installing PowerExchange for Salesforce.com

Table 2-2. Tar Files for Integration Components on UNIX Machines


Operating System

File Name

AIX 32-bit

SFDC_8601_AIX32.tar

AIX 64-bit

SFDC_8601_AIX64.tar

HP-UX 32-bit

SFDC_8601_HPUX32.tar

Linux 32-bit

SFDC_8601_Linux32.tar

Linux 64-bit

SFDC_8601_Linux64.tar

3.

Disable the Integration Service. For more information about disabling the Integration Service, see the
PowerCenter Administrator Guide.

4.

Use the following command to grant execute permissions on the installSFDCserver file:
chmod +x installSFDCserver

You can find the installSFDCserver file in the directory where you extracted the files.
5.

Run installSFDCserver to install the PowerExchange for Salesforce.com files.


Note: When prompted to enter the absolute path for the server, include the path up to the server folder.

Registering the Plug-in


Step 2. Install
Step 2. Upgrade

After you upgrade PowerExchange for Salesforce.com, update the plug-in registration when you register the
plug-in.
A plug-in is an XML file that defines the functionality of PowerExchange for Salesforce.com. To register the
plug-in, the repository must be running in exclusive mode. Use the Administration Console or the pmrep
RegisterPlugin command to register the plug-in.
The plug-in file for PowerExchange for Salesforce.com is pmsfdc.xml. When you install PowerCenter, the
installer copies pmsfdc.xml to the following directory:
<PowerCenter Installation Directory>\server\bin\native

For more information about using the Administration Console to register a plug-in, see the PowerCenter
Administrator Guide.
For more information about the pmrep RegisterPlugin command, see the PowerCenter Command Reference.
Note: If you do not have the correct privileges to register the plug-in, contact the user who manages the

Repository Service.

Configuring HTTP Proxy Options


Step 3. Install
Step 3. Upgrade

If you are installing PowerExchange for Salesforce.com and your organization uses a proxy server to access the
internet, you must create the initialization file and configure HTTP proxy server authentication settings in the
file.
8

Chapter 2: Installation and Configuration

You must configure the HTTP proxy server authentication settings for the following PowerCenter components:

PowerCenter Client

Integration Service

If you are upgrading PowerExchange for Salesforce.com, verify that the settings for the HTTP Proxy options
for each component are correct.
To create the initialization file and configure the HTTP proxy options for the PowerCenter Client:
1.

Create an empty text file.

2.

Create the following parameters in the text file:

3.

ProxyHost

ProxyPort

ProxyUser

ProxyPassword

Specify the values for each parameter.


For example:
ProxyHost=d123456.informatica.com
ProxyPort=8082
ProxyUser=admin
ProxyPassword=password123

4.

Save the text file as an .ini file and use the following file name:
pmsfdc.ini

5.

Place the file in the following directory:


<PowerCenter Installation Directory>\client\bin

To configure the HTTP proxy options for the Integration Service:


1.

Open the PowerCenter Administration Console.

2.

Click the Administration tab, and then select the Integration Service.

3.

Click the Properties tab.

4.

Click Edit for the HTTP Proxy Properties section.

5.

Configure the following properties:

HttpProxyServer

HttpProxyPort

HttpProxyUser

HttpProxyPassword

HttpProxyDomain

Uninstalling PowerExchange for Salesforce.com


You can uninstall PowerExchange for Salesforce.com when you uninstall PowerCenter. For more information
about uninstalling PowerCenter, see the PowerCenter Installation Guide.

Uninstalling PowerExchange for Salesforce.com

New Features
Viewing Record-Level Session Logs
Effective in version 8.6.0.1, the Integration Service generates record-level logs for each session that writes to a
Salesforce.com target. The Integration Service generates the following types of logs:

Success log. The success log contains an entry for each record that is successfully inserted, updated, deleted,
or upserted. Each entry contains the values loaded for all fields of the record, including the Salesforce ID.
Use this file understand what data is loaded into the Salesforce target.

Failure log. The failure log contains an entry for each data error. Each log entry contains the values for all
fields of the record, including the Salesforce ID, and the error message. Use this file to understand why
records did not load into the Salesforce target.

Note: The PowerExchange for Salesforce.com session logs are different from the PowerCenter session logs. The

PowerExchange for Salesforce.com session logs contain record-level details that are specific to sessions with
Salesforce.com targets. You can also use the PowerCenter session logs to view information about the tasks
performed by the Integration Service, general session errors, and load summary and transformation statistics for
the session. For more information about PowerCenter session logs, see the PowerCenter Workflow
Administration Guide.
You can configure whether the Integration Service generates the success and failure logs and the directories
where the logs are stored.

Capturing Deleted and Archived Salesforce Records


Effective in version 8.6.0.1, the Integration Service can capture deleted and archived records from a Salesforce
source object. By default, mappings do not capture deleted or archived records.

Supporting Salesforce Professional Edition Accounts


Effective in version 8.6.0.1, the Integration Service can extract data from and load data into Salesforce
Professional edition accounts.

Merging Duplicate Salesforce Records


Effective in version 8.6.0.1, PowerExchange for Salesforce.com contains the Salesforce Merge transformation.
Use the Salesforce Merge transformation to merge duplicate records into a single record.

Validating Salesforce PickList Values


Effective in version 8.6.0.1, PowerExchange for Salesforce.com contains the Salesforce PickList transformation.
Use the Salesforce PickList transformation to retrieve picklist values from Salesforce.com and store them in the
PowerCenter repository. Use the picklist values to validate values that are loaded into a Salesforce target.

Importing Related Object Fields


Effective in version 8.1.1.0.2, when you import a Salesforce object as a source, target, or lookup definition, you
can also import fields of a related object into the same definition. The Designer determines related objects
based on the relationships defined among objects in Salesforce.com. For example, you create a source definition
based on the Account object. You can add the name, phone number, and address of the account owner into the
Account source definition. When you run the session, the Integration Service extracts the account data and the
account owner information.

10

Chapter 2: Installation and Configuration

Upserting Records of Related Objects


Effective in version 8.1.1.0.2, if you use an external ID to identify records in a Salesforce object, you can upsert
records in the Salesforce object while updating another Salesforce object. For example, you defined a target
definition for the Contact object. You added the external ID field for the associated Account object to the
Contact target definition. When you run a session to load records in the Contact object, you can also update
associated records in the Account object.

Capturing Changed Data During a Time Period


Effective in version 8.1.1.0.2, you can capture changed data during a specific time period. For example, you
schedule a workflow to run every two weeks and configure the workflow to capture all incremental changes
during each two-week period. The Integration Service extracts data that is created or modified during the
specified time period.

Performing Lookups on Salesforce Objects


Effective in version 8.1.1.0.2, you can create a Salesforce Lookup transformation to look up data in a Salesforce
object. You can partition the Salesforce Lookup transformation. When you create the Salesforce Lookup
transformation, you specify the Salesforce object to import. You can also import fields of related Salesforce
objects into the lookup definition.

Partitioning Salesforce Targets


Effective in version 8.1.1.0.2, you can partition a Salesforce target.

Changed Behavior
Handling Null Values in Update and Upsert Operations
Upgrade Impact: Behavior Change
Version Implemented: 8.6.0.1
Versions Affected: 8.1.1 / 8.1.1.0.2 / 8.5 / 8.5.1 / 8.6

Effective in version 8.6.0.1, you can configure the Integration Service to replace existing values in a Salesforce
record with null values during an update or upsert operation. By default, the Integration Service does not
replace existing values with null values.
Previously, the Integration Service replaced existing values with null values by default. When you upgrade, all
sessions are not configured to replace existing values with null values. To update existing value with null values,
configure the Set Fields to NULL session property.

Upserting Related Object Records


Upgrade Impact: Behavior Change
Version Implemented: 8.6.0.1
Versions Affected: 8.1.1 / 8.1.1.0.2 / 8.5 / 8.5.1 / 8.6

Effective in version 8.6.0.1, the Integration Service can upsert records from more than two related objects into
a Salesforce target object.
Previously, you could upsert records from one or two related objects.

Changed Behavior

11

Using Salesforce APIs


Upgrade Impact: Behavior Change, Upgrade Task
Version Implemented: 8.6.0.1
Versions Affected: 8.1.1 / 8.1.1.0.2 / 8.5 / 8.5.1 / 8.6

Effective in version 8.6.0.1, PowerExchange for Salesforce.com uses version 12.0 of the Salesforce API.
Previously, the application connections pointed to the Salesforce 7.0 or 8.0 service.

Updating Salesforce Application Connections


Existing application connections in mappings use previous Salesforce.com service URLs. To connect to the
12.0 version of a Salesforce object, change the service URL in the application connection from the previous
version to the 12.0 version. The following table shows the service URLs for application connections created in
previous versions of PowerExchange for Salesforce.com:
PowerExchange for Salesforce.com

Salesforce.com Service URL

8.1.1

https://www.salesforce.com/services/Soap/u/7.0

8.1.1.0.2, 8.5, 8.5.1, and 8.6

https://www.salesforce.com/services/Soap/u/8.0

The 12.0 version of the Salesforce.com service URL is:


https://www.salesforce.com/services/Soap/u/12.0

When you create a Salesforce application connection, the default service is 12.0.
For more information about configuring an application connection for Salesforce.com, see the PowerCenter
Workflow Administration Guide.

Reimporting Salesforce Definitions


If the 12.0 version of a Salesforce object has a different structure than the corresponding previous version of the
object, reimport the Salesforce source or target definition. After you reimport a source or target definition,
analyze the associated mapping to determine if you need to update transformations in the mapping. For
example, if you reimport a source definition that is based on a Salesforce object that contains a new field, you
can modify your mapping to extract the new field and write the data to the target.

Updating the Repository Plug-in


Upgrade Impact: Upgraded Metadata, Upgrade
Task
Version Implemented: 8.6.0.1
Versions Affected: 8.1.1 / 8.1.1.0.2 / 8.5 / 8.5.1 / 8.6

Effective in version 8.6.0.1, you must update the repository to register the repository plug-in. For more
information, see Updating the Repository Plug-in on page 12.

12

Chapter 2: Installation and Configuration

CHAPTER 3

Working with Salesforce


Mappings
This chapter includes the following topics:

Overview, 13

Understanding Relationships, 13

Working with Salesforce Sources, 15

Working with Salesforce Targets, 16

Importing a Salesforce Definition, 17

Overview
Use the Designer to import Salesforce source, target, and lookup definitions into the PowerCenter repository.
When you import a Salesforce object as a source, target, or lookup definition, you can also import attributes
about related objects into the same definition. PowerExchange for Salesforce.com determines related objects
based on the object relationships defined in Salesforce.com.

Understanding Relationships
Salesforce.com uses relationships to associate one object with another object. For example, Salesforce.com uses
the Contacts relationship to associate contacts with each account. The Contacts relationship is a many-to-one
relationship between the Contact object and the Account object. There may be one or more contacts for each
account. Some accounts may not have a contact. You can also create a relationship between a standard object
and a custom object to link the custom object to the standard object.
When you import a Salesforce object as a source, target, or lookup definition, you import the fields of a
Salesforce object. You can also import fields of related objects into the same definition. The Designer identifies
related objects based on relationships defined in Salesforce.com. Related objects include standard and custom
Salesforce objects. For more information about importing fields of related objects, see Importing Fields of
Related Objects on page 14.
For more information about relationships, see the Salesforce documentation.

13

Example of a Relationship
Salesforce.com defines relationships for some objects. For example, the Account object has a relationship with
the following objects:
Related Object

Relationship

Description

Account

MasterRecord

Identifies the master account record when there are duplicate account records.
You can configure one account record as the master record in Salesforce.

Account

Parent

Identifies the parent account. You can configure one account to be the parent
of another account in Salesforce. For example, the parent company and a
subsidiary of the same company may have two different customer accounts
with your organization.

User

Owner

Identifies the user who owns the account. This person might be the person
who manages the account.

User

CreatedBy

Identifies the user who created the account in Salesforce.

User

LastModifiedBy

Identifies the user who last modified the account information in Salesforce.

Importing Fields of Related Objects


The Designer identifies related objects based on the object relationships defined in Salesforce.com. For
example, if you import Opportunity as a source, you can also import fields of the following related objects:

Account. By default, the Opportunity object stores the account ID of the opportunity. If you import the
related object Account, you can view details about each account, such as account name, account type, and
the parent account.

Campaign. By default, the Opportunity object stores the campaign ID of the opportunity. If you import the
related object Campaign, you can view details about the corresponding campaign, such as campaign name,
type, description, and start and end dates.

In this example, the Opportunity object is the primary Salesforce object in the definition and the Account and
Campaign objects are related objects. A primary Salesforce object is the primary object used to create the
definition.
You can also import descendant objects, which are indirectly related to the primary object. For example, when
you import the Opportunity object, you can also import the User descendant object based on the Accounts
relationship with the Account related object. You might import the fields of the User object to get the details
about the account owner such as the account owner name, phone number, and email address.
Figure 3-1 shows the relationships between Salesforce objects:
Figure 3-1. Salesforce Objects and Relationships
Account

Account ID
Account Type
Account Parent
Account Owner ID

Opportunity
Opportunity ID
Opportunity Name
Account ID
Campaign ID

14

Account

Campaign

Chapter 3: Working with Salesforce Mappings

Campaign
Campaign ID
Campaign Type
Campaign Description
Campaign Start Date
Campaign End Date

Account.Owner

User
(Account Owner)
Account Owner ID
Account Owner Name
Account Owner Phone
Account Owner Email

When you import the primary Salesforce object in the Designer, you can also specify the related and descendant
child objects to import. The Designer displays related objects using the following naming convention:
<Relationship name> (<Salesforce object name>)

The Designer shows the relationship name and the object name as they are defined in Salesforce.com. The
Designer shows parent-to-child relationships defined in Salesforce.com. For example, Salesforce defines the
Opportunity object as the parent object of the Account object.

Rules and Guidelines


Use the following rules and guidelines when you import related objects for Salesforce source definitions,
Salesforce target definitions, and Salesforce lookup definitions.

Salesforce Source Definitions


Import fields of related objects under the following circumstances:

You are extracting data from Salesforce only.

You want to load data for the Salesforce object and one or more related objects.

You are not transforming the data before you load it into the target.

You want to improve session performance when you join data from multiple Salesforce objects. Instead of
using a Joiner transformation to join data from multiple Salesforce objects, import the fields of the related
objects in the Salesforce source definition to improve performance.

Salesforce Target Definitions


Import fields of related objects when you want to upsert records into a Salesforce target. To upsert records into
a Salesforce target, you must use the external ID field as the ID for the related objects. For more information
about upserting records with the external ID, see Upserting Records on page 16.

Salesforce Lookup Definitions


Import fields of related objects when you want to look up data in the primary Salesforce object and related
objects and do not want to perform a join. For example, you can lookup opportunity information in the
Opportunity object and also get the related account information in the Account related object.

Working with Salesforce Sources


The Integration Service can extract data from Salesforce source definitions. You can import one or more source
definitions for each Salesforce object. If you import multiple source definitions for the same Salesforce object,
you must provide unique names for the source definitions. If you do not provide unique names, the Designer
requires you to resolve the conflict.
When the Integration Service extracts data from a Salesforce source, it converts the data based on the datatypes
in the Application Source Qualifier associated with the source.

Time Zones for Salesforce Sources


Salesforce.com can store datetime data in multiple time zones. The Integration Service converts the time zones
of all times extracted from Salesforce.com to the Coordinated Universal Time (UTC) time zone.

Working with Salesforce Sources

15

Working with Salesforce Targets


You can perform insert, update, delete, and upsert operations on a Salesforce target.
The Integration Service determines whether records are new, existing, or deleted based on the record ID. You
can use the following types of IDs to identify records in Salesforce objects:

Salesforce ID. By default, Salesforce.com generates IDs for each new record.

External ID. External IDs are IDs that are generated outside of Salesforce. You can use external IDs to
identify records in Salesforce objects.

You can also configure the Integration Service to replace existing values in a record in a Salesforce target with
null values during an update or upsert operation. By default, the Integration Service does not replace existing
values with null values. For more information about configuring the session property, see Handling Null
Values in Update and Upsert Operations on page 35.

Rules and Guidelines


Use the following guidelines when configuring the update strategy for a Salesforce target:

The Integration Service cannot create or update system fields in a record of a Salesforce target. Each
Salesforce object includes read-only system fields that Salesforce.com creates or updates. For example, each
Salesforce object includes an Id system field. The Id field contains a unique identifier for the record. When
you run a session containing a Salesforce target definition, the Integration Service inserts the record into the
Salesforce target, but Salesforce generates the ID.

To upsert a record, you must provide the external ID. PowerExchange for Salesforce.com requires the
external ID to upsert a record. You cannot use the Salesforce ID.

To configure a session to update or delete records in the Salesforce target, you must pass the ID for each
record through the mapping and link it to the Id input port in the Salesforce target definition.
Salesforce.com uses the Id field to identify the record being updated or deleted. You can look up the IDs in
the Salesforce target to determine the IDs for existing records.

You do not need to link the Id input port for a session that inserts records. Salesforce generates the ID for
new records.You can also insert, update, and delete records in a Salesforce target based on the external ID if
you use the external ID field to identify records in a Salesforce object. You might choose to use an external
ID to update or delete records when it is difficult to get the ID from the Id field in the Salesforce target.

If the Integration Service encounters a transient error while performing an update, upsert, or delete
operation, it retries the operation. The Integration Service retries the operation three times with a fivesecond interval between retry attempts. Transient errors include errors such as network failures and timeouts
from Salesforce.com.

Upserting Records
The Integration Service can upsert records for Salesforce objects that include a custom field designated as the
external ID field. The external ID field identifies each record in a Salesforce table. For example, accounts are
defined by an external ID. When you import the target definition for the Contact Salesforce object, you import
fields for the related Account Salesforce object. The Designer adds the external ID as one of the ports for the
Account object. You can create a mapping to upsert new and updates account records.
To upsert records, link the external ID from the source through the transformations and to the external ID field
in the Salesforce target definition. Salesforce.com uses this custom field to identify records to be upserted.
The Integration Service can also upsert the external IDs of related objects in the records of a Salesforce target
object. For example, you import a target definition based on the Contact object, which is related to the Account
object. Each Contact target record contains the external ID for the associated account. When writing data to
the Contact target, the Integration Service can upsert a new external ID for the account field in each contact
record.

16

Chapter 3: Working with Salesforce Mappings

Determining the Update Strategy for the Target


When you view properties for a Salesforce target definition, you can determine whether you can create or
update object fields. In addition, you can determine if the object includes a custom field designated as the
external ID field. To view details about object fields, double-click the title bar of the target definition and select
the Attributes tab.
The Attributes tab lists attribute values for each field in the imported Salesforce object. The Createable,
Updateable, and External ID attribute have values of 0 (false) or 1 (true). The SforceName attribute provides
the field name in Salesforce. The Field Name column shows the name of the port as it is defined in the
Salesforce target definition.
Table 3-1 describes the attributes that display for each field:
Table 3-1. Attributes for Each Field in the Salesforce Object
Attribute

Description

Createable

Indicates whether you can insert a value for this field. If true, the Integration Service can
insert data in this field. A PowerCenter insert is equivalent to a Salesforce create
operation.

Updateable

Indicates whether you can update this field. If true, the Integration Service can update data
in this field.

External ID

Indicates whether the custom field is designated as an external ID field. Applicable for
custom fields only. Salesforce.com appends custom field names with __c. Each
Salesforce object can contain a single custom field designated as the external ID field.
If true, then the Integration Service can upsert records for this object. For more information
about external ID and custom fields, see the Salesforce documentation.

Time Zones for Salesforce Targets


Mappings must provide time data for Salesforce targets in the Coordinated Universal Time (UTC) time zone.
Ensure that each mapping converts time data to the UTC time zone before it loads the data into the target.

Importing a Salesforce Definition


You can define a Salesforce source, target, or lookup definition by importing object metadata from
Salesforce.com. You can import metadata from any standard or custom Salesforce object available to your
Salesforce user account.
When you import a Salesforce definition, the Designer creates one port for each field of the Salesforce object.
When you import the Salesforce definition, you can also choose to import fields of related objects. The
Designer determines related objects based on the relationships defined in Salesforce.com.
When you create a Salesforce Lookup transformation, you import a lookup definition based on the specified
Salesforce object. For more information about creating a Salesforce Lookup definition, see Creating a
Salesforce Lookup Transformation on page 23.
Note: Create the source and target definitions by importing the definitions of Salesforce objects. If you create a

Salesforce definition manually, the Designer creates the definition with no fields. You cannot add any field to
the definition. As a result, you cannot connect the definition to other mapping objects.
To import a Salesforce source or target definition from Salesforce.com:
1.

In the Source Analyzer, click Sources > Import from Salesforce.com.


-orIn the Target Designer, click Targets > Import from Salesforce.com.

Importing a Salesforce Definition

17

The Import Tables from Salesforce.com window appears.


2.

3.

Enter the following information:


Import Attribute

Description

User Name

Salesforce user name.

Password

Password for the Salesforce user name. Password is case sensitive.

Service URL

URL of the Salesforce service you want to access.


Default is https://www.salesforce.com/services/Soap/u/12.0.
In a test or development environment, you might want to access the Salesforce
Sandbox testing environment. For more information about the Salesforce Sandbox,
see the Salesforce documentation.

Click Connect.
The Designer displays a list of objects available to you.

4.

5.

Select the objects you want to import.

Hold down the Shift key to select blocks of tables.

Hold down the Ctrl key to make non-contiguous selections.

Use the Select All button to select all tables.

Use the Select None button to clear all highlighted selections.

Click OK.
The Include Salesforce.com Object Relationship window appears.

6.

Select the related objects to include in the source definition.


For more information about importing fields of related objects, see Importing Fields of Related Objects
on page 14.

7.

18

Click OK.

Chapter 3: Working with Salesforce Mappings

CHAPTER 4

Salesforce Lookup
Transformation
This chapter includes the following topics:

Overview, 19

Salesforce Lookup Components, 20

Salesforce Lookup Ports, 21

Salesforce Lookup Query, 22

Creating a Salesforce Lookup Transformation, 23

Overview
Transformation type:
Active
Connected

Use a Salesforce Lookup transformation to look up data in a Salesforce object. For example, the source table
includes the employee ID, but you want to include the employee name in the target table to make summary
data easy to read. You can use the transformation to look up the employee name in a Salesforce object.
You create a Salesforce Lookup transformation from any standard or custom Salesforce object available to your
Salesforce user account.
The Integration Service queries the lookup source based on ports in the transformation. It generates queries in
sforce Object Query Language (SOQL), which is a derivative of SQL. It generates a query for each row that
enters the transformation. The Integration Service compares the transformation port values to lookup source
field values based on the SOQL queries.
The Salesforce Lookup transformation returns all rows that match the query condition, unlike a Lookup
transformation, which returns one row. If the transformation returns multiple rows, it assigns a sequence ID to
each row that matches the condition.
A Salesforce Lookup transformation differs from a Lookup transformation. For example, a Salesforce Lookup
transformation returns all matched rows, but a Lookup transformation returns a single matched row.

19

Table 4-1 compares the Salesforce Lookup transformation to a Lookup transformation:


Table 4-1. Comparison of Salesforce Lookup Transformation and Lookup Transformation
Salesforce Lookup Transformation

Lookup Transformation

Salesforce object lookup

Flat file or relational table lookup

Connected

Connected or unconnected

Uncached

Cached or uncached

Active

Passive

Multiple matched rows returned

Single matched row returned

SOQL query

SQL query

Query condition based on connected ports

Query condition configured on Condition tab

For more information about the Lookup transformation, see the PowerCenter Transformation Guide.
Note: The Salesforce Lookup transformation can retrieve data in real time. To cache Salesforce data, use a

Salesforce source definition and join it to another source with a Joiner transformation.

Salesforce Lookup Components


When you configure a Salesforce Lookup transformation, you define the following components:

Transformation tab. You can rename the transformation and add a description on the Transformation tab.

Ports tab. The Salesforce Lookup transformation can include the following types of ports: lookup ports,
pass-through ports, and default ports.

Properties tab. You can configure the tracing level for the transformation. The default tracing level is
Normal. In addition, you can specify whether or not the output is deterministic. By default, the output is
deterministic.

Initialization Properties tab. The Salesforce Lookup transformation does not use initialization properties.
The Integration Service retrieves initialization information from a vendor-defined metadata extension.

Metadata Extensions tab. The Metadata Extension tab displays a vendor-defined metadata extension called
Object Type, which is used to initialize the transformation procedure. The value of the object type is the
name of the Salesforce object that was used to create the transformation.

Port Attribute Definitions tab. The Port Attribute Definitions tab displays the port attributes defined for a
Salesforce Lookup transformation. SforceDataType and SforceName are the only port attributes.

The transformation includes some configurable Custom transformation properties that the Integration Service
does not use for lookups. The Integration Service ignores those configurable properties at run time.
Table 4-2 lists configurable properties that the Salesforce Lookup transformation does not use:
Table 4-2. Unused Salesforce Lookup Transformation Properties

20

Property

Location

Description

Runtime Location

Properties tab

The Integration Service ignores the run-time location.

Initialization Property

Initialization Properties tab

The Integration Service ignores the initialization properties.


It retrieves initialization information from a vendor-defined
metadata extension.

Port Attribute Definition

Port Attribute Definitions tab

The Salesforce Lookup transformation uses a port attribute


definition named SforceDataType. If you configure
additional port attribute definitions, the Integration Service
ignores them.

Chapter 4: Salesforce Lookup Transformation

Salesforce Lookup Ports


You can include the following types of ports in a Salesforce Lookup transformation:

Lookup ports. You import the lookup ports from a Salesforce object definition when you create a Salesforce
Lookup transformation. The Integration Service uses lookup ports to generate the lookup query.

Pass-through ports. You can add pass-through ports to the transformation. The Integration Service passes
these port values unchanged through the transformation.

Default ports. When you import a Salesforce object definition, the Designer creates default ports named
LKP_FILTER and LKP_MATCHIDX. You can use the LKP_FILTER port to add a filter condition to the
lookup query. The Integration Service uses the LKP_MATCHIDX port to assign sequence IDs to matched
rows.

Lookup Ports
When you import a Salesforce object to create a Salesforce Lookup transformation, the Designer creates ports to
use in the lookup query. The Integration Service generates the lookup query based on connected input and
output ports. If you rename a port that you imported from a Salesforce object, the Integration Service does not
include the port in the lookup query. For more information about the lookup query, see Salesforce Lookup
Query on page 22.
When you import a Salesforce object, the Designer converts the Salesforce field datatypes to transformation
datatypes and stores the Salesforce datatypes as port attributes. The Ports tab of a Salesforce Lookup
transformation displays the transformation datatypes. To view the Salesforce datatypes, view the port-level
attributes.
To view the port-level attributes in a Salesforce Lookup transformation, click the Ports tab of the
transformation. Then click Edit > Port Attributes. The Salesforce datatypes for ports appear in the port-level
attributes.
For ports that are imported from Salesforce.com, the datatypes must conform to the Salesforce and
transformation datatype mapping. For more information about datatypes, see Salesforce and Transformation
Datatypes on page 41.

Pass-Through Ports
You can add ports to a Salesforce Lookup transformation as pass-through ports. The Integration Service passes
the value of these ports through the transformation without performing lookup on the data.
To add a pass-through port, create a new port or copy and paste a port into the transformation. Then, connect
the port to upstream and downstream ports.

LKP_FILTER Port
When you import a Salesforce object to create a Salesforce Lookup transformation, the Designer creates a
default port named LKP_FILTER. Use the LKP_FILTER port to add filter conditions in the lookup query that
you cannot generate by connecting the lookup input ports of the Lookup transformation.
Note: You can use the LKP_FILTER port in conjunction with the connected lookup input ports.

In a mapping, you can create a transformation such as an Expression transformation that outputs a constant, a
range, or a mapping parameter or variable value. Then, you can connect the appropriate output port of the
transformation to the LKP_FILTER input port. The lookup query includes the output in the WHERE clause
of the lookup query.
For example, you create an Expression transformation that outputs the value of the Name port as a constant,
Edge Communications. The transformation uses the following expression:
'Name ='

|| CHR(39) || 'Edge Communications'

|| CHR(39)

Salesforce Lookup Ports

21

Then, you project the Expression transformation output for the Name port to the LKP_FILTER port in the
Salesforce Lookup transformation. In this example, the Salesforce Lookup transformation is based on the
Salesforce object named Account. The connected lookup input ports are Id, Sale_Amount, and Sale_Date. The
connected lookup output ports are Sale_Amount, Sale_Date, and Name.
The following figure shows the mapped ports to the Lookup transformation:
Figure 4-1. Mapping with LKP_FILTER Port in Salesforce Lookup Transformation

Note: If you use a default port and modify or rename it, you might get unexpected results.

The SOQL SELECT statement for each row that passes through the transformation has the following format:
SELECT Id, Name, Phone FROM Account WHERE Id = '<value of Id>' AND AccountNumber =
'<value of AccountNumber>' AND Name = 'Edge Communications'

RELATED TOPICS:
Salesforce Lookup Query on page 22

LKP_MATCHIDX Port
When you import a Salesforce object to create a Salesforce Lookup transformation, the Designer creates a
default port named LKP_MATCHIDX.
Use the LKP_MATCHIDX output port to identify the matched rows when a lookup query returns multiple
matches. For each matched row, the Integration Service assigns a unique sequence ID. A value of 0 means that
no match exists for the input row.
The following rules apply to matched and unmatched rows:

Matched. The SOQL query returns a row for each match found. It can return multiple rows for one input
row. If you use the LKP_MATCHIDX port and the query returns multiple matches, the Integration Service
generates a sequence ID for each returned row. The values of the sequence IDs are 1n.

Unmatched. If the SOQL query returns no rows, the Integration Service generates one output row with a
sequence ID of 0. The Integration Service retains the value of pass-through ports, and it sets the value of the
lookup output ports to NULL. To pass null values to the target, you must configure it to accept null values.
If you do not want to pass null values to the target, use a transformation to convert null values to a default
value.

Note: If you use a default port and modify or rename it, you might get unexpected results.

Salesforce Lookup Query


The input and output ports in a Salesforce Lookup transformation determine the sforce Object Query
Language (SOQL) query used in the lookup. The SOQL language is a derivative of SQL. The Integration
Service generates a separate SOQL query for each row that passes into the transformation. The port values for
each row determine the values used in the query.

22

Chapter 4: Salesforce Lookup Transformation

The Integration Service generates SOQL queries according to the following rules:

A lookup port is a port that you import from a Salesforce object and connect in a mapping.

All lookup ports must match the Salesforce field name and have an associated Salesforce datatype.

The Integration Service generates the SELECT statement based on the connected lookup output ports.

The Integration Service generates the WHERE clause based on the connected lookup input ports and the
LKP_FILTER port.

The Integration Service matches rows based on equality with the connected input port values and, if
applicable, based on an additional filter condition.

For example, a Salesforce Lookup transformation is based on the Salesforce object named Account. The
connected lookup input ports are Id and AccountNumber. The connected lookup output ports are Id, Name,
and Phone. The SOQL SELECT statement has the following format:
SELECT Id, Name, Phone FROM Account WHERE Id = '<value of Id>' AND AccountNumber =
'<value of AccountNumber>'

Creating a Salesforce Lookup Transformation


To create a Salesforce Lookup transformation:
1.

In the Transformation Developer or Mapping Designer, click Transformation > Create.


The Create Transformation dialog box appears.

2.

Select Salesforce Lookup as the transformation type, and enter a name.

3.

Click Create.
The Import Tables from Salesforce.com dialog box appears.

4.

5.

Enter the following information:


Import Attribute

Description

User Name

Salesforce user name.

Password

Password for Salesforce user name. The password is case sensitive.

Service URL

URL of the Salesforce service that you want to access. Default is


https://www.salesforce.com/services/Soap/u/12.0.
In a test or development environment, you might want to access the Salesforce
Sandbox testing environment. For more information about the Salesforce
Sandbox, see the Salesforce documentation.

Click Connect.
The Designer displays a list of objects available to the Salesforce user.

6.

Select the object you want to import.

7.

Click OK.
The Include Salesforce.com Object Relationships window appears.

8.

Select the relationships to include in the source definition.


For more information about relationships, see Understanding Relationships on page 13.

9.

Click OK.
If there are no conflicts, the Designer creates a Salesforce Lookup transformation based on the selected
object. If there are conflicts, resolve the conflicts. For more information about how to resolve conflicts, see
Importing a Salesforce Definition on page 17.
Creating a Salesforce Lookup Transformation

23

10.

24

In the Create Transformation dialog box, click Done.

Chapter 4: Salesforce Lookup Transformation

CHAPTER 5

Salesforce Merge Transformation


This chapter includes the following topics:

Overview, 25

Salesforce Merge Components, 26

Salesforce Merge Ports, 27

Creating a Salesforce Merge Transformation, 27

Overview
Transformation type:
Passive
Connected

Use a Salesforce Merge transformation to merge duplicate records in one of the following Salesforce objects:
Account, Contact, or Lead. You can merge up to three Salesforce records into a single record. When you create
a Salesforce Merge transformation, you identify the master record and up to two slave records. When you merge
the records, the Salesforce Merge transformation retains the master record and deletes the slave records from the
Salesforce object.
To ensure that no child records become orphaned, the Salesforce Merge transformation reassigns child records
of slave records to the master record. For example, you merge two records from the Account Salesforce object.
Each account record is the parent of a record in the Contact Salesforce object. When the Salesforce Merge
transformation merges the account records, it also assigns the contact record associated with the slave account
record to the master account record.
You can override the values of Salesforce object attributes in a master record. To override an attribute value,
configure the source to provide the value for the Salesforce object attribute, and map the field from the source
through the Salesforce Merge transformation to the target in the mapping. For more information about
configuring the port for a Salesforce object attribute, see Salesforce Object Attribute Ports on page 27.

Rules and Guidelines


Use the following guidelines to configure the Salesforce Merge transformation:

The session fails if you do not specify the master record ID and at least one slave ID.

The IDs for the master record and slave records must be valid Salesforce IDs.

Values of fields that are linked to the Salesforce Merge transformation overwrite existing values in the master
record.
25

If you project columns of the master record, but the values are null, the merge will take the value from the
slave record and update the master record with this value.

The Salesforce Merge transformation reassigns child records of each slave record to the master record during
the merge.

You can merge at most two slave records with a master record. To merge more than two slave records, create
and run the Salesforce Merge transformation multiple times using the same master record ID.

The Integration Service does not merge a slave record if the slave ID is blank, does not exist in the Salesforce
object, or the slave ID does not contain 18 characters.

If the master ID or at least one slave ID does not exist in the Salesforce object, the merge fails.

Sample Merge Transformation


You want to merge the following records in the Account Salesforce object:
ID

Account Name

Billing City

0015000000IcEgAAAV

ABC Tiles

Los Angeles

0015000000IcEgBAAV

ABC Tiles

0015000000IcEgCAAV

ABC

Phone

310-555-1212
San Diego

310-555-6666

The following table shows the source for the mapping that merges the records and updates the account name in
the Account object:
Master Record ID

Slave 1 Record ID

Slave 2 Record ID

Account Name

0015000000IcEgAAAV

0015000000IcEgBAAV

0015000000IcEgCAAV

Textiles to Go

The account name changed from ABC Tiles to Textiles to Go. You project the Textiles to Go value for the
Account Name field to the Salesforce Merge transformation to the target.
When you run the session that contains the mapping, the Integration Service deletes the slave records from the
Account Salesforce object and retains the following master record:
ID

Account Name

Billing City

0015000000IcEgAAAV

Textiles to Go

Los Angeles

Phone

The Salesforce Merge transformation does not overwrite the Account object attributes in the master record with
the values from the slave records. It does update the Account Name attribute because the value is provided.

Salesforce Merge Components


When you configure a Salesforce Merge transformation, you define the following components:

26

Transformation tab. You can rename the transformation and add a description on the Transformation tab.

Ports tab. The Salesforce Merge transformation can include the following types of ports: Salesforce object
attribute ports and default ports.

Properties tab. You can configure the tracing level for the transformation. The default tracing level is
Normal. In addition, you can specify whether or not the output is deterministic. By default, the output is
deterministic.

Initialization Properties tab. The Salesforce Merge transformation does not use initialization properties.
The Integration Service retrieves initialization information from a vendor-defined metadata extension.

Chapter 5: Salesforce Merge Transformation

Metadata Extensions tab. The Metadata Extension tab displays a vendor-defined metadata extension called
Object Type, which is used to initialize the transformation procedure. The value of the object type is the
name of the Salesforce object that was used to create the transformation.

Port Attribute Definitions tab. The Port Attribute Definitions tab displays the port attributes defined for a
Salesforce Merge transformation. SforceDataType and SforceName are the only port attributes.

Salesforce Merge Ports


You can include the following types of ports in a Salesforce Merge transformation:

Salesforce object attribute ports. Use these ports to update values for the Salesforce object attributes in the
master record. The values in these ports override the values in the master and slave records.

Default ports. When you import a Salesforce object definition, the Designer creates the default input ports
and the default MergedID, MergedSlaveID1, and MergedSlaveID2 output ports.

Salesforce Object Attribute Ports


The Salesforce Merge transformation contains input ports for all attributes of the Salesforce object. Provide
values for each port to override the values in the master record. The Integration Service updates the master
record with the values provided for each Salesforce object port.
When you map source values to a port, verify that the datatypes are compatible. If you map incompatible
datatypes, the session may fail or the master record may contain unexpected values. For more information
about datatypes, see Salesforce and Transformation Datatypes on page 41.

ID and SlaveID Input Ports


Map the master record ID to the ID input field. Map the slave record ID to the input SlaveID1 field. If
applicable, map the second slave record ID to the input SlaveID2 field. The Integration Service identifies the
master and slave records in the Salesforce object using the IDs provided by the source.

MergedID, MergedSlaveID1, and MergedSlaveID2 Output Ports


The Salesforce Merge transformation populates the master record ID in the MergedID field. The Integration
Service also deletes slave records that are identified in the SlaveID1 and SlaveID2 fields.

Creating a Salesforce Merge Transformation


To create a Salesforce Merge transformation:
1.

In the Transformation Developer or Mapping Designer, click Transformation > Create.


The Create Transformation dialog box appears.

2.

Select Salesforce Merge as the transformation type, and enter a name.

3.

Click Create.
The Import Tables from Salesforce.com dialog box appears.

Salesforce Merge Ports

27

4.

5.

Enter the following information:


Import Attribute

Description

User Name

Salesforce user name.

Password

Password for Salesforce user name. The password is case sensitive.

Service URL

URL of the Salesforce service that you want to access. Default is


https://www.salesforce.com/services/Soap/u/12.0.
In a test or development environment, you might want to access the Salesforce
Sandbox testing environment. For more information about the Salesforce
Sandbox, see the Salesforce documentation.

Click Connect.
The Designer displays a list of objects available to the Salesforce user.

6.

Select the object you want to import.

7.

Click OK.
The Include Salesforce.com Object Relationships window appears.

8.

Select the relationships to include in the source definition.


For more information about relationships, see Understanding Relationships on page 13.

9.

Click OK.
If there are no conflicts, the Designer creates a Salesforce Merge transformation based on the selected
object. If there are conflicts, resolve the conflicts. For more information about how to resolve conflicts, see
Importing a Salesforce Definition on page 17.

10.

28

In the Create Transformation dialog box, click Done.

Chapter 5: Salesforce Merge Transformation

CHAPTER 6

Salesforce PickList Transformation


This chapter includes the following topics:

Overview, 29

Salesforce PickList Components, 30

Salesforce PickList Ports, 30

Creating a Salesforce PickList Transformation, 30

Overview
Transformation type:
Passive
Connected

Use the Salesforce PickList transformation to generate a list of picklist values for an attribute of a Salesforce
object. A Salesforce picklist is a list of valid values for a field in a Salesforce object. You might choose to generate
a list of picklist values to validate existing values in a picklist field of a Salesforce object.
You can use any source when you create a mapping with the Salesforce PickList transformation. The
transformation does use the source to determine picklist values. When you create the Salesforce PickList
transformation, you specify the Salesforce object. The Integration Service retrieves the picklist for each attribute
defined for the given Salesforce object. Each Source Qualifier transformation can project one set of picklist
values for a Salesforce attribute. The transformation outputs one row containing one field. The field contains a
colon-separated list of valid values for the picklist.
To generate valid values for multiple picklists, create one Source Qualifier transformation for each picklist. You
can connect a single source to multiple Source Qualifier transformations, but each Source Qualifier
transformation connected to the source projects values for one Salesforce object attribute.
For example, to generate a list for the Type and Industry attributes of the Account Salesforce object, create one
Source Qualifier transformation for each attribute. Connect both Source Qualifier transformations to the
Salesforce PickList transformation. Configure the Type and Industry output ports in the Salesforce PickList
transformation to output values to the target.

Rules and Guidelines


Use the following guidelines to configure the Salesforce PickList transformation:

The default length for picklist ports is 512 characters. The Integration Service truncates values that are
longer than 512 characters. To prevent truncation, increase the port length.
29

You must connect at least one port from the source to the Salesforce PickList transformation.

Salesforce PickList Components


When you configure a Salesforce PickList transformation, you define the following components:

Transformation tab. You can rename the transformation and add a description on the Transformation tab.

Ports tab. The Salesforce PickList transformation can include the following types of ports: picklist and passthrough.

Properties tab. You can configure the tracing level for the transformation. The default tracing level is
Normal. In addition, you can specify whether or not the output is deterministic. By default, the output is
deterministic.

Initialization Properties tab. The Salesforce PickList transformation does not use initialization properties.
The Integration Service retrieves initialization information from a vendor-defined metadata extension.

Metadata Extensions tab. The Metadata Extension tab displays a vendor-defined metadata extension called
Object Type, which is used to initialize the transformation procedure. The value of the object type is the
name of the Salesforce object that was used to create the transformation.

Port Attribute Definitions tab. The Port Attribute Definitions tab displays the port attributes defined for a
Salesforce PickList transformation. The SforceDataType and SforceName are the only port attributes.

Salesforce PickList Ports


You can include the following types of ports in a Salesforce PickList transformation:

PickList_Input port. To enable the Integration Service to retrieve the Salesforce picklist, map any field in
the Source Qualifier transformation to the PickList_Input port in the Salesforce PickList transformation. If
you do not map a field to the PickList_Input port, the session fails.

Output ports. By default, the Designer creates output ports for Salesforce object attributes that have picklist
values. To output multiple picklists for different Salesforce object attributes, configure one Source Qualifier
transformation for each attribute. When you run the session, the Integration Service outputs picklist values
for each Salesforce object attribute included in the mapping.

Pass-through ports. You can add ports to a Salesforce PickList transformation as pass-through ports. The
Integration Service passes the value of a pass-through port through the transformation and into the target if
the port is connected to the target.

Creating a Salesforce PickList Transformation


To create a Salesforce PickList transformation:
1.

In the Transformation Developer or Mapping Designer, click Transformation > Create.


The Create Transformation dialog box appears.

2.

Select Salesforce PickList as the transformation type, and enter a name.

3.

Click Create.
The Import Tables from Salesforce.com dialog box appears.

30

Chapter 6: Salesforce PickList Transformation

4.

5.

Enter the following information:


Import Attribute

Description

User Name

Salesforce user name.

Password

Password for Salesforce user name. The password is case sensitive.

Service URL

URL of the Salesforce service that you want to access. Default is


https://www.salesforce.com/services/Soap/u/12.0.
In a test or development environment, you might want to access the Salesforce
Sandbox testing environment. For more information about the Salesforce
Sandbox, see the Salesforce documentation.

Click Connect.
The Designer displays a list of objects available to the Salesforce user.

6.

Select the object you want to import.

7.

Click OK.
The Include Salesforce.com Object Relationships window appears.

8.

Select the relationships to include in the source definition.


For more information about relationships, see Understanding Relationships on page 13.

9.

Click OK.
If there are no conflicts, the Designer creates a Salesforce PickList transformation based on the selected
object. If there are conflicts, resolve the conflicts. For more information about how to resolve conflicts, see
Importing a Salesforce Definition on page 17.

10.

In the Create Transformation dialog box, click Done.

Creating a Salesforce PickList Transformation

31

32

Chapter 6: Salesforce PickList Transformation

CHAPTER 7

Salesforce Sessions
and Workflows
This chapter includes the following topics:

Overview, 33

Configuring Connections, 34

Filtering Source Data, 35

Capturing Deleted or Archived Salesforce Records, 35

Handling Null Values in Update and Upsert Operations, 35

Capturing Changed Data, 36

Upserting Records, 38

Configuring the Maximum Batch Size, 38

Logging PowerExchange for Salesforce.com Session Details, 39

Overview
After you create mappings in the Designer, you can create a session and use the session in a workflow to extract,
transform, and load data. You create sessions and workflows in the Workflow Manager.
When you configure a Salesforce session, you create connections to read data from and write data to
Salesforce.com. You can also define properties in a session to determine how the Integration Service reads data
from a Salesforce source or writes data to a Salesforce target.
To configure the session, complete the following tasks:

Configure connections. Configure an application connection for Salesforce sources and targets in the
Workflow Manager. You configure application connections to read data from, look up data from, or write
data to Salesforce.com. For more information about configuring connections, see Configuring
Connections on page 34.

Filter the source data (optional). Enter a filter condition to filter Salesforce source data. For more
information, see Filtering Source Data on page 35.

Capture deleted or archived Salesforce records.com (optional). Configure the session to capture deleted or
archived Salesforce records. For more information, see Capturing Deleted or Archived Salesforce Records
on page 35.

33

Handling null values in update and upsert operations (optional). Configure the session how to handle null
values in update and upsert operations. For more information, see Handling Null Values in Update and
Upsert Operations on page 35.

Capture changed data (optional). Configure the session to capture changed data. If the Salesforce source is
a replicateable object, you can configure the session to capture changed data for the object. You can
configure the session to capture changed data continuously or based on a time period. For more
information, see Capturing Changed Data on page 36.

Upsert records (optional). Configure the sessions to use the Salesforce upsert operation to insert and update
records in the Salesforce targets. Salesforce uses the external ID to determine whether it should create a new
object or update an existing one. For more information, see Upserting Records on page 38.

Configure the maximum batch size. Configure the maximum number of records the Integration Service can
write to a Salesforce target in one batch. For more information, see Configuring the Maximum Batch Size
on page 38.

The Integration Service generates record-level success and failure logs for each session that writes to a
Salesforce.com target. The success log contains an entry for each record that successfully loads into the
Salesforce target. The failure log contains an entry for each data error. For more information, see Logging
PowerExchange for Salesforce.com Session Details on page 39.

Configuring Connections
Before the Integration Service can connect to Saleforce.com, you must configure application connections for
Salesforce sources, targets, and lookups in the Workflow Manager. When you configure a Salesforce application
connection, you specify connection attributes the Integration Service uses to connect to Salesforce.com. A
connection object stores the Salesforce user ID, password, and end point URL information for the run-time
connection.
The Integration Service uses the Salesforce security mechanism to authenticate the login. If you provide an
invalid login, the following error appears:
Invalid login. When accessing Salesforce from outside of your company's trusted networks, you must append a
security token to your password to log in to the API or a desktop client. To receive or reset your security
token, log in to Salesforce with your browser and click Setup | My Personal Information | Reset Security
Token.

For more information about obtaining a valid Salesforce.com login, see the Salesforce.com administrator for
your organization.
Note: You cannot use a connection variable for an application connection.
To configure a Salesforce application connection:
1.

In the Workflow Manager, connect to a PowerCenter repository.

2.

Click Connections > Application.


The Application Connection Browser dialog box appears.

3.

From Select Type, select Salesforce Connection.

4.

Click New.
The Connection Object Definition dialog box appears.

5.

Enter a name for the application connection.

6.

Enter the Salesforce user name for the application connection.


The Integration Service uses this user name to log in to Salesforce.com.

34

7.

Enter the password for the Salesforce user name.

8.

Enter the Salesforce service URL.

Chapter 7: Salesforce Sessions and Workflows

Default URL is https://www.salesforce.com/services/Soap/u/12.0.


In a test or development environment, you might want to access the Salesforce Sandbox testing
environment. For more information about the Salesforce Sandbox, see the Salesforce documentation.
9.

Click OK.
The new application connection appears in the Application Object Browser.

Filtering Source Data


At session run time, the Integration Service generates an SOQL query based on the objects and fields included
in the Salesforce source definition. When you configure a session that reads data from a Salesforce source, you
can enter a filter condition to filter records read from the source. When you enter a filter condition, you modify
and override the WHERE clause in the SOQL query.
To filter records from a Salesforce source, enter a filter condition for the SOQL Filter Condition attribute in
the session properties. Enter a filter condition according to the SOQL syntax in the Salesforce documentation.
The Salesforce API performs SOQL syntax validation at run time. If you enter an invalid filter condition, the
session fails.
For example, you can enter the following filter condition to read records from the Salesforce Account object
that were created before October 30, 2007:
CreatedDate < '2007-10-30'

Capturing Deleted or Archived Salesforce Records


The Integration Service can capture deleted or archived records from a Salesforce source object. By default,
mappings do not capture deleted or archived records.
To capture deleted or archived records, configure the following session properties:
Property

Description

IsArchived

Select to retrieve archived records for the Salesforce source object.

IsDeleted

Select to retrieve deleted records for the Salesforce source object.

QueryAll

Select to retrieve existing, deleted, and archived records from the Salesforce source
object. Note that change data capture overrides the QueryAll setting.

Handling Null Values in Update and Upsert Operations


By default, the Integration Service does not replace existing values in a record with null values during an update
or upsert operation. To replace existing values with null values, configure the Set Fields to NULL session
property for the Salesforce target.

Filtering Source Data

35

Capturing Changed Data


The Integration Service can capture changed data from a Salesforce object that is replicateable and contains
CreatedDate and LastModifiedDate fields. If you configure a session to capture changed data from a Salesforce
object that is not replicateable or does not contain CreatedDate and LastModifiedDate fields, the session fails.
For more information about replicateable objects, see the Salesforce documentation.
Use one of the following methods to capture changed data:

Capture changed data continuously. Configure a session to capture changed data to process data in realtime.

Capture changed data for a specific time period. Configure a session to capture changed data during a
particular time period when you know the data changes.

By default, change data capture is disabled. To enable a particular method, specify the required attributes in the
session properties.
Note: If you configure properties for both methods, you may encounter unexpected results. Configure the

attributes for one CDC method.

Capturing Changed Data Continuously


Complete the following tasks to capture changed data continuously for sessions that read from replicateable
Salesforce objects:

For each CDC session, complete the configuration steps for real-time sessions. For more information about
real-time sessions, see the PowerCenter Workflow Administration Guide.

Set the time limit and flush interval for change data capture.

The following table describes session properties that you configure to capture changed data continuously:
Property

Description

CDC Time Limit

Time period (in seconds) that the Integration Service reads changed Salesforce data.
When you set the CDC Time Limit to a non-zero value, the Integration Service performs a
full initial read of the source data and then captures changes to the Salesforce data for the
time period you specify. Set the value to -1 to capture changed data for an infinite period of
time. Default is 0.

Flush Interval

Interval (in seconds) at which the Integration Service captures changed Salesforce data.
Default is 300. If you set the CDC Time Limit to a non-zero value, the Integration Service
captures changed data from the source every 300 seconds. Otherwise, the Integration
Service ignores this value.

Processing a Continuous CDC Session


When the Integration Service runs a continuous CDC session, it reads all records in the source object and
passes them to the next transformation as rows flagged for insert. After the Integration Service reads all source
data, the CDC time limit and flush interval begin.
After the flush interval ends, the Integration Service completes the following tasks to capture changed data:
1.

Reads all records created since the initial read and passes them to the next transformation as rows flagged
for insert.

2.

Reads all records updated since the initial read and passes them to the next transformation as rows flagged
for update.

3.

Reads all records deleted since the initial read and passes them to the next transformation as rows flagged
for delete.

After the Integration Service finishes reading all changed data, the flush interval starts again. The Integration
Service stops reading from Salesforce.com when the CDC time limit ends.

36

Chapter 7: Salesforce Sessions and Workflows

When you configure the session to capture changed data and use source-based commits, the Integration Service
commits data to the target based on the source-based commit interval and the flush interval.
For example, you set the CDC time limit to 4,000 seconds, the flush interval to 300 seconds, and the sourcebased commit interval to 1,000 rows. After the Integration Service reads all the source data, the flush interval
begins. The Integration Service captures changed data and commits rows to the target after reading 1,000 rows
from the source and after each 300 second flush interval. The Integration Service stops reading from
Salesforce.com after 4,000 seconds.
If you configure the session to use target-based commits, the Integration Service runs the session based on
source-based commits. Also, it only commits rows to the target based on the flush interval. It does not commit
rows to the target based on the commit interval.
For more information about commit types and real-time sessions, see the PowerCenter Workflow Administration
Guide.

Capturing Changed Data for a Time Period


To enable change data capture for a specific time period, you must define the start and end time for the time
period in the session properties.
The following table describes session properties that you configure to capture changed data for a specified time
period:
Property

Description

CDC Start
Timestamp

Start date and time for the time period. The Integration Service extracts data that was
added or modified after this timestamp. Must be in the format YYYY-MMDDTHH:MI:SS.SSSZ.

CDC End
Timestamp

End date and time for the time period. The Integration Service extracts data that was
added or modified before this timestamp. Must be in the format YYYY-MMDDTHH:MI:SS.SSSZ.

Processing a Time-Period CDC Session


When the Integration Service runs a CDC session for a specific time period, it reads all records in the source
object and extracts records that meet the CDC time period criteria.
The Integration Service completes the following steps to capture changed data:
1.

Reads all records created between the CDC start time and end time, and passes them to the next
transformation as rows flagged for insert.

2.

Reads all records updated between the CDC start time and end time, and passes them to the next
transformation as rows flagged for update.

3.

Reads all records deleted between the CDC start time and end time, and passes them to the next
transformation as rows flagged for delete.

Rules and Guidelines


Use the following rules and guidelines when you run a CDC session for a particular time period:

The Integration Service validates the formats of the start and end times when you run the session. If either
timestamp format is wrong, the session fails.

The values for the start and end times must be in the past.

The start time must predate the end time.

You cannot run the session continuously.

When you configure the session to capture changed data and to use source-based commits, the Integration
Service commits data to the target based on the source-based commit interval. If you configure the session to

Capturing Changed Data

37

use target-based commits, the Integration Service runs the session based on source-based commits. For more
information about commit types and intervals, see the PowerCenter Workflow Administration Guide.

Upserting Records
The Salesforce upsert operation uses a custom field designated as the external ID field to determine whether it
should create a new object or update an existing one. You can configure the session to upsert records only if the
Salesforce target object includes a custom field designated as the external ID field. If you configure a session to
upsert records to a target object that does not include this custom field, the session fails.
You can view the properties of a Salesforce target definition to see if the object includes this custom field. For
more information about viewing the properties of a target definition, see Determining the Update Strategy for
the Target on page 17.
Use the following attributes in the session properties to configure a Salesforce session to upsert records:

Treat Insert as Upsert. The Integration Service upserts any records flagged as insert. By default, the
Integration Service treats all records as insert.

Treat Update as Upsert. The Integration Service upserts any records flagged as update. Select this option
only if you use the Update Strategy transformation in the mapping or the Treat Source Rows As session
property to flag records as update.

Configuring the Maximum Batch Size


The Integration Service writes data to a Salesforce target as a batch. The Max Batch Size attribute in the session
properties determines the maximum number of records the Integration Service can write to a Salesforce target
in a batch. By default, the Max Batch Size is 200 records.
The Salesforce service can receive a maximum of 200 records in a single insert, update, or delete call.
To minimize the number of calls made to the Salesforce service, each batch should contain the maximum
number of records as configured in the Max Batch Size property. To optimize session performance, use the
default Max Batch Size of 200 and tune the DTM Buffer Size session property so that buffer blocks contain
multiples of 200 records.

Tuning the DTM Buffer Size


The DTM Buffer Size determines the size of the buffer blocks that the Integration Service uses to move data
from sources to targets. When a target definition receives a buffer block, the Integration Service creates one or
more batches to send the records to the Salesforce service.
For example, if Max Batch Size is set to 200 and a buffer block contains 200 records, the Integration Service
sends one batch to the Salesforce target containing 200 records. If a buffer block contains 500 records, the
Integration Service sends three batches containing 200, 200, and 100 records each.
The performance of a session that writes to a Salesforce target may be slower than a similar session that writes to
a relational database because the Salesforce service runs on top of a relational database.
To optimize the performance of a session for a Salesforce target, tune the DTM Buffer Size session property so
that buffer blocks contain multiples of 200 records.
For more information about tuning the DTM buffer size, see the PowerCenter Performance Tuning Guide.

38

Chapter 7: Salesforce Sessions and Workflows

Modifying the Precision of Fields that Map to the


String Transformation Datatype
To improve performance, you can reduce the precision to the anticipated size of the source or target data. For
example, the precision of a field of the String datatype in a Salesforce source definition is 64 KB. However, this
field contains data with a maximum size of 1 KB. You can reduce the precision for the field in the source
definition to 1 KB so that the Integration Service processes less data for the field.
Edit the Salesforce source or target definition to change the precision of fields that map to the String
transformation datatype in PowerCenter. Do not change the precision of fields that do not map to the String
transformation datatype in PowerCenter.
For more information about Salesforce datatypes, see Salesforce Datatype Reference on page 41.

Logging PowerExchange for Salesforce.com Session


Details
The Integration Service generates record-level logs for each session that writes to a Salesforce.com target. The
Integration Service generates the following types of logs:

Success log. The success log contains an entry for each record that successfully loads into the Salesforce
target. Each entry contains the values loaded for all fields of the record, including the Salesforce ID. Use this
file understand what data is loaded into the Salesforce target. You can use the success log as an audit trail for
all operations performed.

Failure log. The failure log contains an entry for each data error. Each log entry contains the values for all
fields of the record, including the Salesforce ID, and the error message. The failure log displays error
messages from Salesforce.com and Informatica On Demand. Use this file to understand why records did not
load into the Salesforce target.

The Integration Service inserts quotes around commas and quotes included in the data.
Note: The PowerExchange for Salesforce.com session logs are different from the PowerCenter session logs. The

PowerExchange for Salesforce.com session logs contain record-level details that are specific to sessions with
Salesforce.com targets. You can also use the PowerCenter session logs to view information about the tasks
performed by the Integration Service, general session errors, and load summary and transformation statistics for
the session. For more information about PowerCenter session logs, see the PowerCenter Workflow
Administration Guide.
The Integration Service uses the following naming conventions for the log files:
Type of Log File

Naming Convention

Success log file

<session name><timestamp>success.csv

Failure log file

<session name><timestamp>failure.csv

To configure the Integration Service to generate success and failure logs for a session that writes to Salesforce
target, enable logging and specify the directory of the success log files.

Logging PowerExchange for Salesforce.com Session Details

39

The following table describes session properties for a Salesforce target that you configure to enable logging and
to specify the directory of the success log files:
Property

Description

Use SFDC Error


File

Select to enable the Integration Service to generate failure logs. By default, the
Integration Service does not generate failure logs.

Use SFDC
Success File

Select to enable the Integration Service to generate success logs. By default, the
Integration Service does not generate success logs.

SFDC Success
File Directory

Specify the directory where the Integration Service stores the success logs. By default,
the Integration Service stores the success logs in the $PMTargetFileDir directory.

The Integration Service stores the failure logs in the $PMBadFileDir directory.

Sample Success Log


The following table shows an excerpt of a success log:
ID

NAME

ACCOUNT
NUMBER

EXTERNAL_ACCOUNT
_NUMBER__C

STATUS

0017000000NYre4AAD

JumpCo

76543

666

Item Created

The Status field indicates whether Integration Service created, updated, or deleted the record.

Sample Failure Log


The following table shows an excerpt of a failure log:

40

NAME

ACCOUNT
NUMBER

ANNUAL
REVENUE

EXTERNAL_
ACCOUNT_
NUMBER__C

Company1

76544

about 8 Million

555

Error converting value to


correct data type: For input
string: "about 8 Million"

Company2

76545

444

Duplicate external id specified:


444

Company3

76546

444

Duplicate external id specified:


444

3.70E+10

Chapter 7: Salesforce Sessions and Workflows

ERROR

APPENDIX A

Salesforce Datatype Reference


This appendix includes the following topics:

Overview, 41

Salesforce and Transformation Datatypes, 41

Overview
When the Integration Service extracts data or looks up data from a Salesforce object, it converts each Salesforce
datatype to a compatible PowerCenter transformation datatype. When the Integration Service loads data into a
Salesforce object, it converts each PowerCenter transformation datatype to a compatible Salesforce datatype.
PowerExchange for Salesforce.com uses the following datatypes:

Salesforce datatypes. Salesforce datatypes appear in Salesforce source, target, and lookup definitions in a
mapping.

Transformation datatypes. Transformation datatypes are generic datatypes that PowerCenter uses during
the transformation process. The transformation datatypes appear in PowerCenter transformations. For more
information, see Salesforce and Transformation Datatypes on page 41.

Salesforce and Transformation Datatypes


When the Integration Service reads data from a Salesforce source, it converts the data in the data fields to
transformation datatypes used in the Application Source Qualifier. When writing data to a Salesforce target, the
Integration Service converts the data based on the native datatypes in the target objects.
Table A-1 shows the conversion between Salesforce datatypes and transformation datatypes:
Table A-1. Salesforce and Transformation Datatypes
Salesforce
Datatype

Range and Description

Transformation
Datatype

Range and Description

base64

Base64-encoded arbitrary binary data.

String

1 to 104,857,600 characters

boolean

Boolean (true/false) values.

Integer

Precision 10, scale 0

currency

Currency values.

Decimal

Precision 1 to 28 digits, scale 0 to


28

41

Table A-1. Salesforce and Transformation Datatypes


Salesforce
Datatype

Range and Description

Transformation
Datatype

date

Date values.

Date/time

Jan 1, 1753 AD to Dec 31, 9999 AD


(precision to nanosecond)

dateTime

Date and time values.

Date/time

Jan 1, 1753 AD to Dec 31, 9999 AD


(precision to nanosecond)

double

Double values.

Decimal

Precision 1 to 28 digits, scale 0 to


28

email

Email addresses.

String

1 to 104,857,600 characters

ID

Primary key for a Salesforce object.

String

1 to 104,857,600 characters

Int

Integer values.

Integer

Precision 10, scale 0

multipicklist

Multiple-selection picklists, which provide a


set of enumerated values that you can
select multiple values from.

String

1 to 104,857,600 characters

percent

Percentage values.

Decimal

Precision 1 to 28 digits, scale 0 to


28

picklist

Single-selection picklists, which provide a


set of enumerated values that you can
select one value from.

String

1 to 104,857,600 characters

reference

Cross-reference to another Salesforce


object.

String

1 to 104,857,600 characters

string

String values.

String

1 to 104,857,600 characters

textarea

String that appears as a multiple-line text


field.

String

1 to 104,857,600 characters

url

URL values.

String

1 to 104,857,600 characters

Range and Description

Note: After you import a Salesforce definition, you can change the precision of fields that map to the String

transformation datatype in PowerCenter. In some cases, you might want to decrease the precision to improve
performance. Do not change the precision of fields that do not map to the String transformation datatype in
PowerCenter.

42

Appendix A: Salesforce Datatype Reference

APPENDIX B

Glossary
This appendix includes the following topic:

Glossary of Terms, 43

Glossary of Terms
This appendix lists definitions of terms introduced in the PowerExchange for Salesforce.com documentation.
CDC

See Change Data Capture (CDC) on page 43.


Change Data Capture (CDC)

An option that enables PowerExchange for Salesforce.com to process changed data. You can capture changed
data for replicateable objects that have the CreatedDate and LastModifiedDate fields.
external ID

A record ID generated by a system outside of Salesforce. The Integration Service uses the external ID field to
identify records in a Salesforce object if the object is configured with an external ID field. You indicate whether
primary Salesforce object
The primary object for which you import a source, target, or lookup definition in PowerCenter. The definition
might also include fields of related objects.
related Salesforce object

A Salesforce object that is related to a primary Salesforce object. When you import a Salesforce definition based
on a primary Salesforce object, you can also import fields of related objects. The Designer determines related
objects based on the relationships defined in Salesforce.com.
replicateable object

A Salesforce object that can be duplicated in another environment. Every Salesforce object has a replicateable
flag that determines if an object can be duplicated in another environment. PowerExchange for Salesforce.com
uses the flag to determine if it can replicate the Salesforce object.

43

Salesforce objects

Subject areas in Salesforce.com, such as Account, Asset, Case Solution, and Lead. Salesforce objects usually
correspond to tabs in Salesforce.com user interface. For example, you can add accounts in the Accounts tab on
Salesforce.com. You import Salesforce objects into PowerCenter as source, target, and lookup definitions.
Salesforce Sandbox

A special testing or development Salesforce environment.


Sforce Object Query Language (SOQL)

Proprietary Salesforce language used to construct a query in a Salesforce query call. At run time, the Integration
Service generates an SOQL query based on the objects and fields included in the mapping.
SOQL

See Sforce Object Query Language (SOQL) on page 44.


upsert

A Salesforce operation that uses a custom field designated as the external ID field to determine whether it
should create a new record or update an existing one when loading data into a Salesforce target. You can
configure the session to upsert records only if the Salesforce target object includes a custom field designated as
the external ID field.

44

Appendix B: Glossary

INDEX

application connections (Salesforce)


configuring 34
creating 12
description 2
endpoint URL 34
attributes for fields (Salesforce)
description 17
authentication (Salesforce)
user authentication 2, 34

data access controls (Salesforce)


description 1
data movement mode (Salesforce)
ASCII 3
Unicode 3
datatypes (Salesforce)
conversion 15, 41
Salesforce 41
transformation 41
descendant object (Salesforce)
description 14
DTM Buffer Size (Salesforce)
configuring 38
tuning 38

B
batch size (Salesforce)
description 38

C
CDC (Salesforce)
See change data capture
CDC End Timestamp (Salesforce)
configuring 37
CDC Start Timestamp (Salesforce)
configuring 37
CDC Time Limit (Salesforce)
configuring 36
description 36
change data capture (Salesforce)
configuring 36
continuous capture 36
definition 43
rules for continuous capture 36
rules for time-period capture 37
time-period capture 37
code pages (Salesforce)
See also PowerCenter Administrator Guide
supported code pages 3
validation 3
connection objects (Salesforce)
description 2
continuous workflows (Salesforce)
and change data capture 36
Createable (Salesforce)
description 17
custom fields (Salesforce)
external ID attribute 13
custom objects (Salesforce)
description 2

E
External ID (Salesforce)
definition 43
description 17
determining 17
external IDs (Salesforce)
description 16

F
field attributes (Salesforce)
description 17
filter conditions (Salesforce)
on Salesforce lookup 21
Salesforce data 35
Flush Interval (Salesforce)
configuring 36
description 36

H
HTTP proxy options (Salesforce)
See also PowerCenter Administrator Guide
configuring 8
HTTP proxy server (Salesforce)
PowerExchange for Salesforce.com, configuration 8

45

I
IDs
types for Salesforce records 16
IDs (Salesforce)
external IDs for Salesforce records 16
installation (Salesforce)
PowerExchange for Salesforce.com 6
prerequisite tasks for PowerExchange for Salesforce.com 5
tasks 6
integration (Salesforce)
Designer and Salesforce.com 2
Integration Service and Salesforce.com 2
PowerCenter and Salesforce.com, overview of 1

L
LKP_FILTER port (Salesforce)
description 21
LKP_MATCHIDX port (Salesforce)
description 22
login
PowerExchange for Salesforce 5
lookup ports (Salesforce)
in Salesforce Lookup transformation 21
lookup query (Salesforce)
description 22
matches 22

PickList_Input port (Salesforce)


in Salesforce PickList transformation 30
plug-ins
pmsfdc.xml 8
registering PowerExchange for Salesforce.com 8
updating the registration for PowerExchange for Salesforce.com 8
pmsfdc.ini
configuring 8
creating 8
pmsfdc.xml
PowerExchange for Salesforce.com plug-in 8
ports (Salesforce)
types in Salesforce Lookup transformation 21
types in Salesforce Merge transformation 27
types in Salesforce PickList transformation 30
PowerExchange for Salesforce.com
application connections, creating 12
overview 1
post-upgrade tasks 11
prerequisite tasks 5
reimport definitions 12
precision (Salesforce)
modifying 39
primary Salesforce object (Salesforce)
definition 43
description 14

object types (Salesforce)


custom 2
standard 2
output ports (Salesforce)
in Salesforce PickList transformation 30

related Salesforce object (Salesforce)


definition 43
naming convention 15
relationships (Salesforce)
creating 13
definitions, importing 15
description 13
replicateable object (Salesforce)
definition 43
description 36
repository plug-in
Salesforce, updating 12
rules (Salesforce)
for continuous change data capture 36
for definition imports 15
for time-period change data capture 37
rules and guidelines
configuring update strategy for Salesforce targets 16

pass-through ports (Salesforce)


in Salesforce Lookup transformation 21
in Salesforce PickList transformation 30
performance (Salesforce)
configuring buffer block size 38
configuring DTM Buffer Size 38
permissions (Salesforce)
on data 1

Salesforce (Salesforce)
datatypes 41
Salesforce definitions (Salesforce)
description 17
importing 17
overview 13
performance 15
reimporting 12
Salesforce lookup definitions (Salesforce)
import rules 15

M
Max Batch Size (Salesforce)
configuring 38

N
naming conventions (Salesforce)
for related Salesforce objects 15

46

Index

Salesforce Lookup transformation (Salesforce)


compared to Lookup transformation 20
components 20
creating 23
default ports 21
lookup filter 21
lookup ports 21
matches, identifying 22
overview 19
pass-through ports 21
port types 21
Salesforce mappings (Salesforce)
overview 13
Salesforce Merge transformation (Salesforce)
components 26
creating 27
default ports 27
guidelines 25
overview 25
port types 27
Salesforce objects (Salesforce)
attributes 17
definition 44
definitions, importing 13
description 1
permissions 1
relationships 13
Salesforce PickList transformation (Salesforce)
components 30
creating 30
guidelines 29
output ports 30
overview 29
pass-through ports 30
PickList_Input port 30
port types 30
Salesforce Sandbox (Salesforce)
accessing 18
definition 44
Salesforce source definitions (Salesforce)
creating 15, 17
import rules 15
overview 13
Salesforce target definitions (Salesforce)
creating 17
import rules 15
overview 13
Salesforce.com
login 5
session conditions (Salesforce)
CDC End Timestamp 37
CDC Start Timestamp 37
CDC Time Limit 36
DTM Buffer Size 38
Flush Interval 36
IsArchived 35
IsDeleted 35
Max Batch Size 38
QueryAll 35
Set Fields to NULL 35
SFDC Success File Directory 40
SOQL Filter Condition 35
Treat Insert as Upsert 38

Treat Update as Upsert 38


Use SFDC Error File 40
Use SFDC Success File 40
sessions (Salesforce)
tuning DTM Buffer Size 38
tuning joins 15
Set Fields to NULL
session property, description 35
SFDC Success File Directory (Salesforce)
configuring 40
Sforce Object Query Language (SOQL) (Salesforce)
definition 44
description 2
SOQL (Salesforce)
See Sforce Object Query Language (SOQL)
SOQL Filter Condition (Salesforce)
configuring 35
SOQL filter condition (Salesforce)
configuring 35
SOQL override (Salesforce)
configuring 35
description 35
source definitions (Salesforce)
See Salesforce source definitions
sources (Salesforce)
data, filtering 35
SSL (Salesforce)
transport-layer security 2

T
target definitions (Salesforce)
See Salesforce target definitions
target operations
for PowerExchange for Salesforce.com 16
transformations (Salesforce)
Salesforce Lookup 19
Salesforce Merge 25
Salesforce PickList 29
Treat Insert as Upsert (Salesforce)
configuring 38
Treat Update as Upsert (Salesforce)
configuring 38

U
uninstalling
See also PowerCenter Installation Guide
PowerExchange for Salesforce.com 9
Updateable (Salesforce)
description 17
upgrade (Salesforce)
prerequisite tasks for PowerExchange for Salesforce.com 5
tasks 6
upsert (Salesforce)
configuring 38
definition 44
description 16
session configuration 38
Use SFDC Error File (Salesforce)
configuring 40

Index

47

Use SFDC Success File (Salesforce)


configuring 40

V
validation (Salesforce)
SOQL syntax 2

W
workflows (Salesforce)
See also PowerCenter Workflow Administration Guide
overview 33

48

Index

NOTICES
This Informatica product (the Software) includes certain drivers (the DataDirect Drivers) from DataDirect Technologies, an operating company of Progress Software Corporation (DataDirect)
which are subject to the following terms and conditions:
1. THE DATADIRECT DRIVERS ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
2. IN NO EVENT WILL DATADIRECT OR ITS THIRD PARTY SUPPLIERS BE LIABLE TO THE END-USER CUSTOMER FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
CONSEQUENTIAL OR OTHER DAMAGES ARISING OUT OF THE USE OF THE ODBC DRIVERS, WHETHER OR NOT INFORMED OF THE POSSIBILITIES OF DAMAGES IN
ADVANCE. THESE LIMITATIONS APPLY TO ALL CAUSES OF ACTION, INCLUDING, WITHOUT LIMITATION, BREACH OF CONTRACT, BREACH OF WARRANTY,
NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION AND OTHER TORTS.

You might also like