Sei sulla pagina 1di 265

Salesforce Lookup Transformation

Overview
The Salesforce Lookup transformation is an active transformation. 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 Salesforce Lookup transformation to look up the employee
name in a Salesforce object.
You can create a Salesforce Lookup transformation from any standard or custom Salesforce
object available to your Salesforce user account. You can also include fields from related
Salesforce objects in the Salesforce Lookup transformation.
The PowerCenter 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 Salesforce Lookup
transformation. The PowerCenter Integration Service compares the transformation port values to
lookup source field values based on the SOQL queries.
A Salesforce Lookup transformation differs from a Lookup transformation. For example, the
Salesforce Lookup transformation returns all rows that match the lookup query condition. The
Lookup transformation returns one row. When the Salesforce Lookup transformation returns
multiple rows, it assigns a sequence ID to each row that matches the condition.
The following table describes the differences between the Salesforce Lookup transformation and
the Lookup transformation:

Item
Salesforce Lookup
Transformation

Lookup Transformation

Lookup object
Salesforce object

Flat file or relational table

Active

Passive

Connected

Connected or unconnected

Uncached

Cached or uncached

Transformation type

Transformation in
mapping
Cache type

Item
Salesforce Lookup
Transformation

Lookup Transformation

Return rows
All matched rows

Single matched row

SOQL query

SQL query

Based on connected ports

Defined on the Condition tab of the


transformation

Query language

Query condition
configuration

Note: The Salesforce Lookup transformation can retrieve data in real time. To cache Salesforce
data, use a Salesforce source definition instead of a Salesforce Lookup transformation. You can
use a Joiner transformation to join two data sources and cache source data during processing.

Salesforce Lookup Components


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

T
r
a
n
sf
o
r
m
a
ti
o
n
t
a
b

.
Y
o
u
c
a
n
r
e
n
a
m
e
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
a
n
d
a
d
d
a
d
e
s
c

ri
p
ti
o
n
o
n
t
h
e
T
r
a
n
sf
o
r
m
at
i
o
n
ta
b
.
P
o
r
ts
t
a
b
.
T
h
e
S

al
e
sf
o
r
c
e
L
o
o
k
u
p
tr
a
n
sf
o
r
m
at
i
o
n
c
a
n
i
n
cl
u
d
e
l
o
o
k
u

p
p
o
rt
s,
p
a
s
st
h
r
o
u
g
h
p
o
rt
s,
a
n
d
d
e
f
a
u
lt
p
o
rt
s.
P
r
o
p

e
r
ti
e
s
t
a
b
.
Y
o
u
c
a
n
c
o
n
fi
g
u
r
e
t
h
e
tr
a
ci
n
g
le
v
el
f
o
r
t

h
e
tr
a
n
sf
o
r
m
at
i
o
n
.
T
h
e
d
e
f
a
u
lt
tr
a
ci
n
g
le
v
el
is
N
o
r
m
al
.

I
n
a
d
d
it
i
o
n
,
y
o
u
c
a
n
s
p
e
ci
f
y
w
h
et
h
e
r
o
r
n
o
t
t
h
e
o
u

t
p
u
t
is
d
et
e
r
m
i
n
is
ti
c.
B
y
d
e
f
a
u
lt
,
t
h
e
o
u
t
p
u
t
is
d
et
e
r

m
i
n
is
ti
c.
I
n
it
i
a
li
z
a
ti
o
n
P
r
o
p
e
r
ti
e
s
t
a
b
.
T
h
e
S
al
e
sf

o
r
c
e
L
o
o
k
u
p
tr
a
n
sf
o
r
m
at
i
o
n
d
o
e
s
n
o
t
u
s
e
i
n
it
ia
li
z
at

i
o
n
p
r
o
p
e
rt
ie
s.
T
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic

e
r
et
ri
e
v
e
s
i
n
it
ia
li
z
at
i
o
n
i
n
f
o
r
m
at
i
o
n
fr
o
m
a
v
e
n
d
o
r-

d
e
fi
n
e
d
m
et
a
d
at
a
e
x
te
n
si
o
n
.
M
e
t
a
d
a
t
a
E
x
t
e
n
si
o
n
s

t
a
b
.
C
r
e
at
e
a
n
o
n
r
e
u
s
a
b
le
m
et
a
d
at
a
e
x
te
n
si
o
n
t
o
e
x

te
n
d
t
h
e
m
et
a
d
at
a
o
f
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
tr
a
n
sf
o
r
m
at
i
o

n
.
C
o
n
fi
g
u
r
e
t
h
e
e
x
te
n
si
o
n
n
a
m
e,
d
at
at
y
p
e,
p
r
e
ci
si
o
n
,

a
n
d
v
al
u
e.
Y
o
u
c
a
n
al
s
o
p
r
o
m
o
te
a
m
et
a
d
at
a
e
x
te
n
si
o
n
t
o

b
e
r
e
u
s
a
b
le
if
y
o
u
w
a
n
t
t
o
m
a
k
e
it
a
v
ai
la
b
le
t
o
al
l
tr
a
n
sf

o
r
m
at
i
o
n
s.
P
o
r
t
A
tt
ri
b
u
t
e
D
e
fi
n
it
i
o
n
s
t
a
b
.
T
h
e
P
o

rt
A
tt
ri
b
u
te
D
e
fi
n
it
i
o
n
s
ta
b
d
is
p
la
y
s
t
h
e
p
o
rt
at
tr
i
b
u
te
s
d

e
fi
n
e
d
f
o
r
a
S
al
e
sf
o
r
c
e
L
o
o
k
u
p
tr
a
n
sf
o
r
m
at
i
o
n
.
S
f
o

r
c
e
D
at
a
T
y
p
e
a
n
d
S
f
o
r
c
e
N
a
m
e
a
r
e
t
h
e
o
n
l
y
p
o
rt
at
tr

i
b
u
te
s.
The transformation includes some configurable Custom transformation properties that the
PowerCenter Integration Service does not use for lookups. The PowerCenter Integration Service
ignores those configurable properties at run time.
The following table lists configurable properties that the Salesforce Lookup transformation does
not use:

Property

Location

Description
i
m
p
o
rt
t
h
e
l
o
o
k
u
p
p
o
rt
s
fr
o
m
a
S
al
e
sf
o
r
c
e
o
b
je
ct
d
e
fi
n

Property

Location

Description
it
i
o
n
w
h
e
n
y
o
u
c
r
e
at
e
a
S
al
e
sf
o
r
c
e
L
o
o
k
u
p
tr
a
n
sf
o
r
m

Property

Location

Description
at
i
o
n
.
T
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
u
s
e
s
l

Property

Location

Description
o
o
k
u
p
p
o
rt
s
t
o
g
e
n
e
r
at
e
t
h
e
l
o
o
k
u
p
q
u
e
r
y.
P
a
s
st

Property

Location

Description
h
r
o
u
g
h
p
o
r
ts
.
Y
o
u
c
a
n
a
d
d
p
a
s
st
h
r
o
u
g
h
p
o
rt
s
t
o
t

Property

Location

Description
h
e
tr
a
n
sf
o
r
m
at
i
o
n
.
T
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e

Property

Location

Description
r
v
ic
e
p
a
s
s
e
s
t
h
e
s
e
p
o
rt
v
al
u
e
s
u
n
c
h
a
n
g
e
d
t
h
r
o
u
g

Property

Location

Description
h
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
.
D
e
f
a
u
lt
p
o
r
ts
.
W
h
e
n
y
o
u
i
m
p

Property

Location

Description
o
rt
a
S
al
e
sf
o
r
c
e
o
b
je
ct
d
e
fi
n
it
i
o
n
,
t
h
e
D
e
si
g
n
e
r
c
r
e
at

Property

Location

Description
e
s
d
e
f
a
u
lt
p
o
rt
s
n
a
m
e
d
L
K
P
_
F
I
L
T
E
R
a
n
d
L
K
P
_
M
A
T
C

Property

Location

Description
H
I
D
X
.
Y
o
u
c
a
n
u
s
e
t
h
e
L
K
P
_
F
I
L
T
E
R
p
o
rt
t
o
a
d
d
a
fi
lt

Property

Location

Description
e
r
c
o
n
d
it
i
o
n
t
o
t
h
e
l
o
o
k
u
p
q
u
e
r
y.
T
h
e
P
o
w
e
r
C
e
n
te

Property

Location

Description
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
u
s
e
s
t
h
e
L
K
P
_
M
A
T
C
H
I
D
X
p
o
rt

Property

Location

Description
t
o
a
s
si
g
n
s
e
q
u
e
n
c
e
I
D
s
t
o
m
at
c
h
e
d
r
o
w
s.

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
PowerCenter Integration Service generates the
lookup query based on connected input and

Property

Location

Description
output ports. If you rename a port that you
imported from a Salesforce object, the
PowerCenter Integration Service does not include
the port in the lookup query.
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, the
datatypes must conform to the Salesforce and
transformation datatype mapping.

Related Topics:
Salesforce Lookup Query
Salesforce and Transformation Datatypes

Pass-Through Ports
You can add ports to a Salesforce Lookup
transformation as pass-through ports. The
PowerCenter 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

Property

Location

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

Property

Location

Description
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

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

M
a
t
c
h
e
d
.
T
h
e
S

Property

Location

Description
O
Q
L
q
u
e
r
y
r
et
u
r
n
s
a
r
o
w
f
o
r
e
a
c
h
m
at
c
h
f
o
u
n
d
.
It
c
a

Property

Location

Description
n
r
et
u
r
n
m
u
lt
i
p
le
r
o
w
s
f
o
r
o
n
e
i
n
p
u
t
r
o
w
.
If
y
o
u
u
s
e

Property

Location

Description
t
h
e
L
K
P
_
M
A
T
C
H
I
D
X
p
o
rt
a
n
d
t
h
e
q
u
e
r
y
r
et
u
r
n
s
m
u
lt

Property

Location

Description
i
p
le
m
at
c
h
e
s,
t
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
g

Property

Location

Description
e
n
e
r
at
e
s
a
s
e
q
u
e
n
c
e
I
D
f
o
r
e
a
c
h
r
et
u
r
n
e
d
r
o
w
.
T
h

Property

Location

Description
e
v
al
u
e
s
o
f
t
h
e
s
e
q
u
e
n
c
e
I
D
s
a
r
e
1

n
.
U
n
m
a
t
c
h
e

Property

Location

Description
d
.
If
t
h
e
S
O
Q
L
q
u
e
r
y
r
et
u
r
n
s
n
o
r
o
w
s,
t
h
e
P
o
w
e
r
C
e
n

Property

Location

Description
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
g
e
n
e
r
at
e
s
o
n
e
o
u
t
p
u
t
r
o
w
w

Property

Location

Description
it
h
a
s
e
q
u
e
n
c
e
I
D
o
f
0
.
T
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o

Property

Location

Description
n
S
e
r
v
ic
e
r
et
ai
n
s
t
h
e
v
al
u
e
o
f
p
a
s
st
h
r
o
u
g
h
p
o
rt
s,
a
n

Property

Location

Description
d
it
s
et
s
t
h
e
v
al
u
e
o
f
t
h
e
l
o
o
k
u
p
o
u
t
p
u
t
p
o
rt
s
t
o
N
U
L

Property

Location

Description
L
.
T
o
p
a
s
s
n
u
ll
v
al
u
e
s
t
o
t
h
e
ta
r
g
et
,
y
o
u
m
u
st
c
o
n
fi
g
u

Property

Location

Description
r
e
it
t
o
a
c
c
e
p
t
n
u
ll
v
al
u
e
s.
If
y
o
u
d
o
n
o
t
w
a
n
t
t
o
p
a
s
s

Property

Location

Description
n
u
ll
v
al
u
e
s
t
o
t
h
e
ta
r
g
et
,
u
s
e
a
tr
a
n
sf
o
r
m
at
i
o
n
t
o
c
o
n

Property

Location

Description
v
e
rt
n
u
ll
v
al
u
e
s
t
o
a
d
e
f
a
u
lt
v
al
u
e.
Note: If you use a default port and modify or
rename it, you might get unexpected results.

n 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 PowerCenter Integration Service
ignores them.

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 PowerCenter 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.
The PowerCenter Integration Service generates SOQL queries according to the following rules:

Creating a Salesforce Lookup Transformation


To create a Salesforce Lookup transformation:

1In
.th
e
Tr
an
sf
or
m
ati
on
D
ev
el
op
er
or
M
ap
pi
ng
D
es
ig
ne
r,
cli
ck

Tr
an
sf
or
m
ati
on
>
Cr
ea
te.
T
he
Cr
ea
te
Tr
an
sf
or
m
ati
on
di
al
og
bo
x
ap
pe
ar
s.
2Se
.le
ct
Sa

le
sf
or
ce
L
oo
ku
p
as
th
e
tra
ns
fo
r
m
ati
on
ty
pe
,
an
d
en
ter
a
na
m
e.
3Cl
.ic
k
Cr
ea
te.
4In

.th
e
I
m
po
rt
Ta
bl
es
fr
o
m
Sa
le
sf
or
ce
di
al
og
bo
x,
en
ter
th
e
fo
llo
wi
ng
in
fo
r
m
ati
on
:

Import Attribute
User Name
Password
Service URL

5Cl
.ic
k
C
on
ne
ct.
T
he
D
es
ig
ne
r
di
sp
la
ys
a
lis
t
of
ob
je
ct
s
av

ail
ab
le
to
th
e
Sa
le
sf
or
ce
us
er.
6Se
.le
ct
th
e
ob
je
ct
yo
u
w
an
t
to
im
po
rt,
an
d
cli
ck
O
K.

7In
.th
e
In
cl
ud
e
Sa
le
sf
or
ce
O
bj
ec
t
R
el
ati
on
sh
ip
s
di
al
og
bo
x,
se
le
ct
th
e
rel
ati
on
sh
ip

s
to
in
cl
ud
e,
an
d
cli
ck
O
K.
If
th
er
e
ar
e
no
co
nf
lic
ts,
th
e
D
es
ig
ne
r
cr
ea
te
sa
Sa
le
sf

or
ce
L
oo
ku
p
tra
ns
fo
r
m
ati
on
ba
se
d
on
th
e
se
le
ct
ed
ob
je
ct
an
d
rel
at
ed
ob
je
ct
s.
If
th
er

e
ar
e
co
nf
lic
ts,
re
so
lv
e
th
e
co
nf
lic
ts.
8In
.th
e
Cr
ea
te
Tr
an
sf
or
m
ati
on
di
al
og
bo
x,
cli
ck

D
on
e.

Salesforce Merge Transformation Overview


The Salesforce Merge transformation is a passive transformation. Use a Salesforce Merge
transformation to merge duplicate records.
You can create a Salesforce Merge transformation from Account, Contact or Lead Salesforce
objects. You can also include fields from related Salesforce objects in the Salesforce Merge
transformation.
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.

Sample Salesforce Merge Transformation


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

ID

Account Name

Billing City

Phone

0015000000IcEgAAAV

ABC Tiles

Los Angeles

0015000000IcEgBAAV

ABC Tiles

310-555-1212

ID
0015000000IcEgCAAV

Account Name
ABC

Billing City
San Diego

Phone
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 PowerCenter Integration Service
deletes the slave records from the Account Salesforce object and retains the following master
record:

ID

Account Name

Billing City

Phone

0015000000IcEgAAAV

Textiles to Go

Los Angeles

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:

T
r
a
n
sf
o
r

m
a
ti
o
n
t
a
b
.
Y
o
u
c
a
n
r
e
n
a
m
e
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
a
n
d

a
d
d
a
d
e
s
c
ri
p
ti
o
n
o
n
t
h
e
T
r
a
n
sf
o
r
m
at
i
o
n
ta
b
.
P
o
r
ts

t
a
b
.
T
h
e
S
al
e
sf
o
r
c
e
M
e
r
g
e
tr
a
n
sf
o
r
m
at
i
o
n
c
a
n
i
n
cl
u

d
e
S
al
e
sf
o
r
c
e
o
b
je
ct
at
tr
i
b
u
te
p
o
rt
s
a
n
d
d
e
f
a
u
lt
p
o
rt
s.

P
r
o
p
e
r
ti
e
s
t
a
b
.
Y
o
u
c
a
n
c
o
n
fi
g
u
r
e
t
h
e
tr
a
ci
n
g
le
v
el

f
o
r
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
.
T
h
e
d
e
f
a
u
lt
tr
a
ci
n
g
le
v
el
is
N
o

r
m
al
.
I
n
a
d
d
it
i
o
n
,
y
o
u
c
a
n
s
p
e
ci
f
y
w
h
et
h
e
r
o
r
n
o
t
t

h
e
o
u
t
p
u
t
is
d
et
e
r
m
i
n
is
ti
c.
B
y
d
e
f
a
u
lt
,
t
h
e
o
u
t
p
u
t
is

d
et
e
r
m
i
n
is
ti
c.
I
n
it
i
a
li
z
a
ti
o
n
P
r
o
p
e
r
ti
e
s
t
a
b
.
T
h
e

S
al
e
sf
o
r
c
e
M
e
r
g
e
tr
a
n
sf
o
r
m
at
i
o
n
d
o
e
s
n
o
t
u
s
e
i
n
it
ia

li
z
at
i
o
n
p
r
o
p
e
rt
ie
s.
T
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e

r
v
ic
e
r
et
ri
e
v
e
s
i
n
it
ia
li
z
at
i
o
n
i
n
f
o
r
m
at
i
o
n
fr
o
m
a
v
e
n

d
o
rd
e
fi
n
e
d
m
et
a
d
at
a
e
x
te
n
si
o
n
.
M
e
t
a
d
a
t
a
E
x
t
e
n
si

o
n
s
t
a
b
.
C
r
e
at
e
a
n
o
n
r
e
u
s
a
b
le
m
et
a
d
at
a
e
x
te
n
si
o
n
t

o
e
x
te
n
d
t
h
e
m
et
a
d
at
a
o
f
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
tr
a
n
sf
o
r
m

at
i
o
n
.
C
o
n
fi
g
u
r
e
t
h
e
e
x
te
n
si
o
n
n
a
m
e,
d
at
at
y
p
e,
p
r
e
ci
si

o
n
,
a
n
d
v
al
u
e.
Y
o
u
c
a
n
al
s
o
p
r
o
m
o
te
a
m
et
a
d
at
a
e
x
te
n
si
o

n
t
o
a
r
e
u
s
a
b
le
e
x
te
n
si
o
n
if
y
o
u
w
a
n
t
t
o
m
a
k
e
t
h
e
e
x
te

n
si
o
n
a
v
ai
la
b
le
t
o
al
l
tr
a
n
sf
o
r
m
at
i
o
n
tr
a
n
sf
o
r
m
at
i
o
n
s.

P
o
r
t
A
tt
ri
b
u
t
e
D
e
fi
n
it
i
o
n
s
t
a
b
.
T
h
e
P
o
rt
A
tt
ri
b
u
te
D
e

fi
n
it
i
o
n
s
ta
b
d
is
p
la
y
s
t
h
e
p
o
rt
at
tr
i
b
u
te
s
d
e
fi
n
e
d
f
o
r
a

S
al
e
sf
o
r
c
e
M
e
r
g
e
tr
a
n
sf
o
r
m
at
i
o
n
.
S
f
o
r
c
e
D
at
a
T
y
p
e

a
n
d
S
f
o
r
c
e
N
a
m
e
a
r
e
t
h
e
o
n
l
y
p
o
rt
at
tr
i
b
u
te
s.

Salesforce Merge Ports


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

S
a
le
sf
o
r
c
e
o
b
j
e
c
t
a
tt
ri
b
u
t
e
p
o
r
ts
.
U
s
e
t
h
e
s
e
p
o
rt
s
t
o

u
p
d
at
e
v
al
u
e
s
f
o
r
t
h
e
S
al
e
sf
o
r
c
e
o
b
je
ct
at
tr
i
b
u
te
s
i
n
t
h
e

m
a
st
e
r
r
e
c
o
r
d
.
T
h
e
v
al
u
e
s
i
n
t
h
e
s
e
p
o
rt
s
o
v
e
rr
i
d
e
t
h

e
v
al
u
e
s
i
n
t
h
e
m
a
st
e
r
a
n
d
sl
a
v
e
r
e
c
o
r
d
s.
D
e
f
a
u
lt
p
o
r
ts

.
W
h
e
n
y
o
u
i
m
p
o
rt
a
S
al
e
sf
o
r
c
e
o
b
je
ct
d
e
fi
n
it
i
o
n
,
t
h
e
D
e

si
g
n
e
r
c
r
e
at
e
s
t
h
e
d
e
f
a
u
lt
i
n
p
u
t
p
o
rt
s
a
n
d
t
h
e
d
e
f
a
u

lt
M
e
r
g
e
d
I
D
,
M
e
r
g
e
d
S
la
v
e
I
D
1
,
a
n
d
M
e
r
g
e
d
S
la
v
e
I
D
2

o
u
t
p
u
t
p
o
rt
s.

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 PowerCenter
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 the source data and ports are
compatible. If you map incompatible datatypes, the session may fail or the master record may
contain unexpected values.

Related Topics:

Salesforce and Transformation Datatypes

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 PowerCenter
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
PowerCenter Integration Service also deletes slave records that are identified in the SlaveID1
and SlaveID2 fields

Rules and Guidelines for the Salesforce Merge


Transformation
Use the following rules and 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.
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 PowerCenter 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.

Creating a Salesforce Merge Transformation


To create a Salesforce Merge transformation:

1In
.th
e
Tr
an
sf
or
m
ati
on
D
ev
el
op

er
or
M
ap
pi
ng
D
es
ig
ne
r,
cli
ck
Tr
an
sf
or
m
ati
on
>
Cr
ea
te.
T
he
Cr
ea
te
Tr
an
sf
or
m
ati
on
di

al
og
bo
x
ap
pe
ar
s.
2Se
.le
ct
Sa
le
sf
or
ce
M
er
ge
as
th
e
tra
ns
fo
r
m
ati
on
ty
pe
,
an
d
en
ter
a

na
m
e.
3Cl
.ic
k
Cr
ea
te.
4In
.th
e
I
m
po
rt
Ta
bl
es
fr
o
m
Sa
le
sf
or
ce
di
al
og
bo
x,
en
ter
th
e

fo
llo
wi
ng
in
fo
r
m
ati
on
:
Import Attribute
User Name
Password
Service URL

5Cl
.ic
k
C
on
ne
ct.
T
he
D
es
ig
ne
r
di
sp
la

ys
a
lis
t
of
ob
je
ct
s
av
ail
ab
le
to
th
e
Sa
le
sf
or
ce
us
er.
6Se
.le
ct
th
e
ob
je
ct
yo
u
w
an
t
to
im
po
rt,
an
d

cli
ck
O
K.
7In
.th
e
In
cl
ud
e
Sa
le
sf
or
ce
O
bj
ec
t
R
el
ati
on
sh
ip
s
di
al
og
bo
x,
se
le
ct
th
e

rel
ati
on
sh
ip
s
yo
u
w
an
t
to
in
cl
ud
e,
an
d
cli
ck
O
K.
If
th
er
e
ar
e
no
co
nf
lic
ts,
th
e
D
es
ig
ne
r
cr

ea
te
sa
Sa
le
sf
or
ce
M
er
ge
tra
ns
fo
r
m
ati
on
ba
se
d
on
th
e
se
le
ct
ed
ob
je
ct
an
d
rel
at
ed
ob
je
ct
s.
If
th
er
e
ar
e

co
nf
lic
ts,
re
so
lv
e
th
e
co
nf
lic
ts.
8In
.th
e
Cr
ea
te
Tr
an
sf
or
m
ati
on
di
al
og
bo
x,
cli
ck
D
on
e.

Salesforce PickList Transformation Overview

The Salesforce PickList transformation is a passive transformation. Use the Salesforce PickList
transformation to retrieve a list of picklist values for a field in a Salesforce object. A Salesforce
picklist is a list of valid values for a Salesforce field. You might retrieve picklist values to validate
source data.
You can create a Salesforce PickList transformation from any standard or custom Salesforce
object available to your Salesforce user account. You can also include fields from related
Salesforce objects in the Salesforce PickList transformation.
The PowerCenter Integration Service can retrieve the picklist for each field with a defined picklist
in the Salesforce PickList transformation. In the mapping, you can use any source type with the
Salesforce PickList transformation. To retrieve the list of picklist values, connect the Source
Qualifier transformation to the PickList_Input port of the Salesforce PickList transformation. The
transformation outputs a colon-separated list of valid values for the picklist fields linked to the
target.

Salesforce PickList Components


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

T
r
a
n
sf
o
r
m
a
ti
o
n
t
a
b
.
Y
o
u

c
a
n
r
e
n
a
m
e
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
a
n
d
a
d
d
a
d
e
s
c
ri
p
ti
o

n
o
n
t
h
e
T
r
a
n
sf
o
r
m
at
i
o
n
ta
b
.
P
o
r
ts
t
a
b
.
T
h
e
S
al
e
sf
o

r
c
e
P
ic
k
L
is
t
tr
a
n
sf
o
r
m
at
i
o
n
c
a
n
i
n
cl
u
d
e
p
ic
k
li
st
p
o
rt
s

a
n
d
p
a
s
st
h
r
o
u
g
h
p
o
rt
s.
P
r
o
p
e
r
ti
e
s
t
a
b
.
Y
o
u
c
a
n

c
o
n
fi
g
u
r
e
t
h
e
tr
a
ci
n
g
le
v
el
f
o
r
t
h
e
tr
a
n
sf
o
r
m
at
i
o
n
.
T

h
e
d
e
f
a
u
lt
tr
a
ci
n
g
le
v
el
is
N
o
r
m
al
.
I
n
a
d
d
it
i
o
n
,
y
o
u
c
a

n
s
p
e
ci
f
y
w
h
et
h
e
r
o
r
n
o
t
t
h
e
o
u
t
p
u
t
is
d
et
e
r
m
i
n
is
ti
c.

B
y
d
e
f
a
u
lt
,
t
h
e
o
u
t
p
u
t
is
d
et
e
r
m
i
n
is
ti
c.
I
n
it
i
a
li
z
a

ti
o
n
P
r
o
p
e
r
ti
e
s
t
a
b
.
T
h
e
S
al
e
sf
o
r
c
e
P
ic
k
L
is
t
tr
a
n
sf
o

r
m
at
i
o
n
d
o
e
s
n
o
t
u
s
e
i
n
it
ia
li
z
at
i
o
n
p
r
o
p
e
rt
ie
s.
T
h
e
P

o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
r
et
ri
e
v
e
s
i
n
it
ia
li
z
at

i
o
n
i
n
f
o
r
m
at
i
o
n
fr
o
m
a
v
e
n
d
o
rd
e
fi
n
e
d
m
et
a
d
at
a
e
x
te

n
si
o
n
.
M
e
t
a
d
a
t
a
E
x
t
e
n
si
o
n
s
t
a
b
.
C
r
e
at
e
a
n
o
n
r

e
u
s
a
b
le
m
et
a
d
at
a
e
x
te
n
si
o
n
t
o
e
x
te
n
d
t
h
e
m
et
a
d
at
a
o
f
t

h
e
tr
a
n
sf
o
r
m
at
i
o
n
tr
a
n
sf
o
r
m
at
i
o
n
.
C
o
n
fi
g
u
r
e
t
h
e
e
x

te
n
si
o
n
n
a
m
e,
d
at
at
y
p
e,
p
r
e
ci
si
o
n
,
a
n
d
v
al
u
e.
Y
o
u
c
a
n
al
s

o
p
r
o
m
o
te
a
m
et
a
d
at
a
e
x
te
n
si
o
n
t
o
a
r
e
u
s
a
b
le
e
x
te
n
si
o
n

if
y
o
u
w
a
n
t
t
o
m
a
k
e
t
h
e
e
x
te
n
si
o
n
a
v
ai
la
b
le
t
o
al
l
tr
a
n
sf

o
r
m
at
i
o
n
tr
a
n
sf
o
r
m
at
i
o
n
s.
P
o
r
t
A
tt
ri
b
u
t
e
D
e
fi
n
it
i
o

n
s
t
a
b
.
T
h
e
P
o
rt
A
tt
ri
b
u
te
D
e
fi
n
it
i
o
n
s
ta
b
d
is
p
la
y
s
t
h
e

p
o
rt
at
tr
i
b
u
te
s
d
e
fi
n
e
d
f
o
r
a
S
al
e
sf
o
r
c
e
P
ic
k
L
is
t
tr
a
n
sf

o
r
m
at
i
o
n
.
T
h
e
S
f
o
r
c
e
D
at
a
T
y
p
e
a
n
d
S
f
o
r
c
e
N
a
m
e
a

r
e
t
h
e
o
n
l
y
p
o
rt
at
tr
i
b
u
te
s.

Salesforce PickList Ports


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

PickList_Input port. To enable the PowerCenter 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
PowerCenter 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 PowerCenter 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.

Rules and Guidelines for the Salesforce PickList


Transformation
Use the following guidelines to configure the Salesforce PickList transformation:

T
h
e
d
e
f
a
u
lt
le
n
g
t
h
f
o
r
p
ic
k
li
st
p
o
rt
s
is
5
1
2
c

h
a
r
a
ct
e
rs
.
T
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
tr
u

n
c
at
e
s
v
al
u
e
s
t
h
at
a
r
e
l
o
n
g
e
r
t
h
a
n
5
1
2
c
h
a
r
a
ct
e
rs
.

T
o
p
r
e
v
e
n
t
tr
u
n
c
at
i
o
n
,
i
n
c
r
e
a
s
e
t
h
e
p
o
rt
le
n
g
t
h

.
Y
o
u
m
u
st
c
o
n
n
e
ct
at
le
a
st
o
n
e
p
o
rt
fr
o
m
t
h
e
s
o
u
r
c
e
t

o
t
h
e
S
al
e
sf
o
r
c
e
P
ic
k
L
is
t
tr
a
n
sf
o
r
m
at
i
o
n
.
T
h
e
S
al
e
sf

o
r
c
e
P
ic
k
L
is
t
tr
a
n
sf
o
r
m
at
i
o
n
d
o
e
s
n
o
t
r
et
ri
e
v
e
r
e
st
ri

ct
e
d
p
ic
k
li
st
v
al
u
e
s
fr
o
m
S
al
e
sf
o
r
c
e
b
e
c
a
u
s
e
t
h
e
S
al
e

sf
o
r
c
e
A
P
I
d
o
e
s
n
o
t
e
x
p
o
s
e
t
h
e
m
.
T
h
e
S
al
e
sf
o
r
c
e
P
ic
k

L
is
t
tr
a
n
sf
o
r
m
at
i
o
n
d
o
e
s
n
o
t
r
et
ri
e
v
e
v
al
u
e
s
fr
o
m
m
u
lt
is
el
e
ct
p
ic

k
li
st
s.

Creating a Salesforce PickList Transformation


To create a Salesforce PickList transformation:

1In
.th
e
Tr
an
sf
or
m
ati
on
D
ev
el
op
er
or
M
ap
pi
ng
D
es
ig
ne
r,
cli
ck
Tr
an
sf

or
m
ati
on
>
Cr
ea
te.
T
he
Cr
ea
te
Tr
an
sf
or
m
ati
on
di
al
og
bo
x
ap
pe
ar
s.
2Se
.le
ct
Sa
le
sf
or

ce
Pi
ck
Li
st
as
th
e
tra
ns
fo
r
m
ati
on
ty
pe
,
an
d
en
ter
a
na
m
e.
3Cl
.ic
k
Cr
ea
te.
4In
.th
e
I

m
po
rt
Ta
bl
es
fr
o
m
Sa
le
sf
or
ce
di
al
og
bo
x,
en
ter
th
e
fo
llo
wi
ng
in
fo
r
m
ati
on
:

Import Attribute
User Name
Password
Service URL

5Cl
.ic
k
C
on
ne
ct.
T
he
D
es
ig
ne
r
di
sp
la
ys
a
lis
t
of
ob
je
ct
s
av

ail
ab
le
to
th
e
Sa
le
sf
or
ce
us
er.
6Se
.le
ct
th
e
ob
je
ct
yo
u
w
an
t
to
im
po
rt,
an
d
cli
ck
O
K.

7In
.th
e
In
cl
ud
e
Sa
le
sf
or
ce
O
bj
ec
t
R
el
ati
on
sh
ip
s
di
al
og
bo
x,
se
le
ct
th
e
rel
ati
on
sh
ip

s
to
in
cl
ud
e,
an
d
cli
ck
O
K.
If
th
er
e
ar
e
no
co
nf
lic
ts,
th
e
D
es
ig
ne
r
cr
ea
te
sa
Sa
le
sf
or
ce
Pi
ck
Li
st

tra
ns
fo
r
m
ati
on
ba
se
d
on
th
e
se
le
ct
ed
ob
je
ct
an
d
rel
at
ed
ob
je
ct
s.
If
th
er
e
ar
e
co
nf
lic
ts,
re
so
lv
e
th
e
co

nf
lic
ts.
8In
.th
e
Cr
ea
te
Tr
an
sf
or
m
ati
on
di
al
og
bo
x,
cli
ck
D
on
e.

Salesforce Sessions and Workflows Overview


After you create mappings, you can create a session and use the session in a workflow to
extract, transform, and load data. 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. You can also define properties in a session to determine how the PowerCenter
Integration Service reads data from a Salesforce source or writes data to a Salesforce target.
To configure the session, complete the following tasks:

o
n
fi
g
u
r
e
a
n
a
p
p
li
c
at
i
o
n
c
o
n
n
e
ct
i
o
n
f
o
r
S
al
e
sf
o
r
c
e

s
o
u
r
c
e
s
a
n
d
ta
r
g
et
s
i
n
t
h
e
W
o
r
k
fl
o
w
M
a
n
a
g
e
r.
Y
o
u
c

o
n
fi
g
u
r
e
a
p
p
li
c
at
i
o
n
c
o
n
n
e
ct
i
o
n
s
t
o
r
e
a
d
fr
o
m
o
r

w
ri
te
t
o
S
al
e
sf
o
r
c
e.
C
o
n
fi
g
u
r
e
t
h
e
s
e
s
si
o
n
p
r
o
p
e
rt
ie

s
f
o
r
t
h
e
S
al
e
sf
o
r
c
e
s
o
u
r
c
e.
C
o
n
fi
g
u
r
e
t
h
e
s
e
s
si
o

n
p
r
o
p
e
rt
ie
s
f
o
r
t
h
e
S
al
e
sf
o
r
c
e
ta
r
g
et
.
O
p
ti
o
n
al
ly
,
c

o
n
fi
g
u
r
e
t
h
e
s
e
s
si
o
n
f
o
r
o
p
ti
m
al
p
e
rf
o
r
m
a
n
c
e.

Salesforce Connections

Before the PowerCenter Integration Service can connect to Salesforce, you must configure a
Salesforce application connection in the Workflow Manager. When you configure a Salesforce
application connection, you specify connection attributes the PowerCenter Integration Service
uses to connect to Salesforce. A connection object stores the Salesforce user ID, password, and
end point URL information for the run-time connection.
The PowerCenter 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 login, see the Salesforce administrator
for your organization.
Note: You cannot use a connection variable for an application connection.

Configuring a Salesforce Connection


To configure a Salesforce application connection:

In
1
.th

e
W
or
kf
lo
w
M
an
ag
er,
co
nn
ec
t
to
a
Po

w
er
C
en
ter
re
po
sit
or
y.
Cl
2
.ic

k
C
on
ne
cti
on
s
>
A
pp
lic
ati
on
.
T
he
A
pp
lic
ati
on
C
on
ne
cti
on
Br

o
w
se
r
di
al
og
bo
x
ap
pe
ar
s.
Fr
3
.o

m
Se
le
ct
Ty
pe
,
se
le
ct
Sa
le
sf
or
ce
C
on
ne
cti
on
.

Cl
4
.ic

N
e
w.
In
5
.th

e
C
on
ne
cti
on
O
bj
ec
t
D
efi
nit
io
n
di
al
og
bo
x,
en
ter
a
na
m
e
fo
r
th
e
ap
pli
ca
tio
n

co
nn
ec
tio
n.
E
6

.nt

er
th
e
Sa
le
sf
or
ce
us
er
na
m
e
fo
r
th
e
ap
pli
ca
tio
n
co
nn
ec
tio
n.
T
he
Po
w
er

C
en
ter
In
te
gr
ati
on
Se
rv
ic
e
us
es
thi
s
us
er
na
m
e
to
lo
g
in
to
Sa
le
sf
or
ce
.
E
7

.nt

er
th
e
pa
ss
w

or
d
fo
r
th
e
Sa
le
sf
or
ce
us
er
na
m
e.
E
8

.nt

er
th
e
Sa
le
sf
or
ce
se
rv
ic
e
U
R
L.
In
a
te
st
or
de

ve
lo
p
m
en
t
en
vi
ro
n
m
en
t,
yo
u
mi
gh
t
w
an
t
to
ac
ce
ss
th
e
Sa
le
sf
or
ce
Sa
nd
bo
x
te
sti
ng
en

vi
ro
n
m
en
t.
Fo
r
m
or
e
in
fo
r
m
ati
on
ab
ou
t
th
e
Sa
le
sf
or
ce
Sa
nd
bo
x,
se
e
th
e
Sa
le
sf
or
ce

do
cu
m
en
tat
io
n.
Cl
9
.ic

k
O
K.
T
he
ne
w
ap
pli
ca
tio
n
co
nn
ec
tio
n
ap
pe
ar
s
in
th
e
A
pp
lic
ati
on
O

bj
ec
t
Br
o
w
se
r.

Configuring a Session with a Salesforce Source


You can configure the session properties for a Salesforce source on the Mapping tab. Define the
properties for each source instance in the session.
The following table describes the session properties you can configure for a Salesforce source:

Property Name
SOQL Filter Condition
CDC Time Limit
Flush Interval
CDC Start Timestamp
CDC End Timestamp
Row Limit
Use queryAll
Use SystemModstamp for CDC

Filtering Source Data


At session run time, the PowerCenter 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, the PowerCenter Integration Service modifies and
overrides the WHERE clause in the SOQL query.
To filter records from a Salesforce source, enter a filter condition for the SOQL Filter Condition
session property. For example, enter the following filter condition to read records from the
Salesforce Account object that were created before October 30, 2007:

CreatedDate < '2007-10-30'


Enter a filter condition based on 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.
The session also fails if you enable CDC and one of the following conditions are true:

Y
o
u
e
n
te
r
a
L
I
M
I
T
cl
a
u
s
e
i
n
t
h
e
fi

lt
e
r
c
o
n
d
it
i
o
n
.
Y
o
u
e
n
te
r
a
n
A
N
D
o
r
O
R
o
p
e
r
at
o
r
i
n
t
h
e

fi
lt
e
r
c
o
n
d
it
i
o
n
,
b
u
t
y
o
u
d
o
n
o
t
e
n
cl
o
s
e
t
h
e
A
N
D
o
r
O
R

st
at
e
m
e
n
t
i
n
p
a
r
e
n
t
h
e
s
e
s.
E
n
cl
o
s
e
t
h
e
A
N
D
o
r
O
R
st
at
e
m

e
n
t
i
n
p
a
r
e
n
t
h
e
s
e
s
a
s
s
h
o
w
n
i
n
t
h
e
f
o
ll
o
w
i
n
g
e
x
a
m

p
le
:
(
N
a
m
e
=
"
J
a
s
o
n
"
O
R
N
a
m
e
=
"
T
h
o
m
p
s
o
n
"
)

Capturing Deleted and Archived Salesforce Records


The PowerCenter Integration Service can capture active, deleted, and archived records from a
Salesforce source object. By default, mappings do not capture deleted and archived records. To
capture deleted and archived records, configure the Use queryAll session property.

Capturing Changed Data


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

C
a
p
t
u
r
e
c
h
a
n
g
e
d
d
a
t
a
c
o
n
ti
n
u
o
u
sl

y.
C
o
n
fi
g
u
r
e
a
s
e
s
si
o
n
t
o
c
a
p
t
u
r
e
c
h
a
n
g
e
d
d
at
a
t
o
p
r
o

c
e
s
s
d
at
a
i
n
r
e
al
ti
m
e.
C
a
p
t
u
r
e
c
h
a
n
g
e
d
d
a
t
a
f
o
r
a
s
p

e
ci
fi
c
ti
m
e
p
e
ri
o
d
.
C
o
n
fi
g
u
r
e
a
s
e
s
si
o
n
t
o
c
a
p
t
u
r
e
c
h
a

n
g
e
d
d
at
a
d
u
ri
n
g
a
p
a
rt
ic
u
la
r
ti
m
e
p
e
ri
o
d
w
h
e
n
t
h
e
d
at
a
c
h

a
n
g
e
s.
By default, change data capture is disabled. To enable a particular method, specify the required
attributes in the session properties. Configure the attributes for one CDC method. If you
configure properties for both methods, you may encounter unexpected results.
Also, you can configure the LastModifiedDate or SystemModstamp field as the timestamp that
determines when a Salesforce record was last modified.

Related Topics:

Using the SystemModstamp or LastModifiedDate Timestamp for Change Data Capture

Processing a Continuous CDC Session


When the PowerCenter 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 PowerCenter Integration Service reads all source data, the CDC time limit and flush interval
begin.
After the flush interval ends, the PowerCenter Integration Service completes the following tasks
to capture changed data for a continuous CDC session:

R
1

.ea

ds
all
re
co
rd
s
cr
ea
te
d
si
nc
e
th
e

ini
tia
l
re
ad
an
d
pa
ss
es
th
e
m
to
th
e
ne
xt
tra
ns
fo
r
m
ati
on
as
ro
w
s
fla
gg
ed
fo
r
in
se
rt.
R
2

.ea

ds

all
re
co
rd
s
up
da
te
d
si
nc
e
th
e
ini
tia
l
re
ad
an
d
pa
ss
es
th
e
m
to
th
e
ne
xt
tra
ns
fo
r
m
ati
on
as

ro
w
s
fla
gg
ed
fo
r
up
da
te.
R
3

.ea

ds
all
re
co
rd
s
de
let
ed
si
nc
e
th
e
ini
tia
l
re
ad
an
d
pa
ss
es
th
e
m

to
th
e
ne
xt
tra
ns
fo
r
m
ati
on
as
ro
w
s
fla
gg
ed
fo
r
de
let
e.
After the PowerCenter Integration Service finishes reading all changed data, the flush interval
starts again. The PowerCenter Integration Service stops reading from Salesforce when the CDC
time limit ends.
When you configure the session to capture changed data and use source-based commits, the
PowerCenter 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 source-based commit interval to 1,000 rows. After the PowerCenter Integration Service reads
all the source data, the flush interval begins. The PowerCenter 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 PowerCenter Integration Service stops reading from
Salesforce after 4,000 seconds.
If you configure the session to use target-based commits, the PowerCenter 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.

Configuring a Continuous CDC Session


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

F
o
r
e
a
c
h
C
D
C
s
e
s
si
o
n
,
c
o
m
p
le
te
t
h
e
c
o
n
fi
g
u
r
at
i
o

n
st
e
p
s
f
o
r
r
e
al
ti
m
e
s
e
s
si
o
n
s.
S
et
t
h
e
ti
m
e
li
m
it
a
n
d
fl
u
s
h

i
n
te
r
v
al
f
o
r
c
h
a
n
g
e
d
at
a
c
a
p
t
u
r
e.

Processing a Time-Period Based CDC Session


When the PowerCenter 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 PowerCenter Integration Service completes the following steps to capture changed data for a
time-period based CDC session:

R
1

.ea

ds
all
re
co
rd

s
cr
ea
te
d
be
tw
ee
n
th
e
C
D
C
st
art
ti
m
e
an
d
en
d
ti
m
e,
an
d
pa
ss
es
th
e
m
to
th
e
ne
xt
tra

ns
fo
r
m
ati
on
as
ro
w
s
fla
gg
ed
fo
r
in
se
rt.
R
2

.ea

ds
all
re
co
rd
s
up
da
te
d
be
tw
ee
n
th
e
C
D
C
st

art
ti
m
e
an
d
en
d
ti
m
e,
an
d
pa
ss
es
th
e
m
to
th
e
ne
xt
tra
ns
fo
r
m
ati
on
as
ro
w
s
fla
gg
ed
fo
r

up
da
te.
R
3

.ea

ds
all
re
co
rd
s
de
let
ed
be
tw
ee
n
th
e
C
D
C
st
art
ti
m
e
an
d
en
d
ti
m
e,
an
d
pa
ss
es

th
e
m
to
th
e
ne
xt
tra
ns
fo
r
m
ati
on
as
ro
w
s
fla
gg
ed
fo
r
de
let
e.

Configuring a Time-Period Based CDC Session


To enable change data capture for a specific time period, define the start and end time for the
time period in the session properties.

Rules and Guidelines for Processing a Time-Period Based CDC Session


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

T
h
e
P

o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
v
al
i
d
at
e
s
t
h
e
f
o
r
m
at
s

o
f
t
h
e
st
a
rt
a
n
d
e
n
d
ti
m
e
s
w
h
e
n
y
o
u
r
u
n
t
h
e
s
e
s
si
o
n
.
If
ei

t
h
e
r
ti
m
e
st
a
m
p
f
o
r
m
at
is
w
r
o
n
g
,
t
h
e
s
e
s
si
o
n
f
ai
ls
.
T
h
e
v

al
u
e
s
f
o
r
t
h
e
st
a
rt
a
n
d
e
n
d
ti
m
e
s
m
u
st
b
e
i
n
t
h
e
p
a
st
.
T
h
e

st
a
rt
ti
m
e
m
u
st
p
r
e
d
at
e
t
h
e
e
n
d
ti
m
e.
Y
o
u
c
a
n
n
o
t
r
u
n
t
h
e
s

e
s
si
o
n
c
o
n
ti
n
u
o
u
sl
y.
W
h
e
n
y
o
u
c
o
n
fi
g
u
r
e
t
h
e
s
e
s
si
o
n
t

o
c
a
p
t
u
r
e
c
h
a
n
g
e
d
d
at
a
a
n
d
t
o
u
s
e
s
o
u
r
c
e
b
a
s
e
d
c
o

m
m
it
s,
t
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
c
o
m
m
it
s
d
at

a
t
o
t
h
e
ta
r
g
et
b
a
s
e
d
o
n
t
h
e
s
o
u
r
c
e
b
a
s
e
d
c
o
m
m
it
i
n
te

r
v
al
.
If
y
o
u
c
o
n
fi
g
u
r
e
t
h
e
s
e
s
si
o
n
t
o
u
s
e
ta
r
g
et
b
a
s
e
d

c
o
m
m
it
s,
t
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r
v
ic
e
r
u
n
s
t
h

e
s
e
s
si
o
n
b
a
s
e
d
o
n
s
o
u
r
c
e
b
a
s
e
d
c
o
m
m
it
s.

Using the SystemModstamp or LastModifiedDate Timestamp for


Change Data Capture
When you run a session that extracts data from a Salesforce source, the PowerCenter Integration
Service determines new and updated records based on the Use SystemModstamp for CDC
session property. You configure this session property to indicate whether to use the
SystemModstamp or LastModifiedDate attribute to determine when a Salesforce record was last
modified.

Salesforce updates the LastModifiedDate attribute of a Salesforce record when you update the
record. Salesforce updates the SystemModstamp attribute of a Salesforce record when you
update the record or a record of a related object.
Salesforce indexes the SystemModstamp attribute, not the LastModifiedDate attribute. To
improve session performance, use the SystemModstamp attribute.

Related Topics:

Capturing Changed Data

Configuring a Session with a Salesforce Target


You can configure the session properties for a Salesforce target on the Mapping tab. Define the
properties for each target instance in the session.
The following table describes the session properties that you can configure for a Salesforce
target:

Property Name

Description

Treat Insert as Upsert Select to enable the PowerCenter Integration Service to upsert any
records flagged as insert. By default, the PowerCenter Integration
Service treats all records as insert.
Treat Update as
Upsert

Select to enable the PowerCenter Integration Service to upsert any


records flagged as update. Select this property if you use the Update
Strategy transformation in the mapping or the Treat Source Rows As
session property to flag records as update.

Max Batch Size

Enter the maximum number of records the PowerCenter Integration


Service can write to a Salesforce target in one batch. Default is 200
records.
Not used in Bulk API sessions.

Set Fields to NULL

Select to replace values in the target with null values from the source.
By default, the PowerCenter Integration Service does not replace values
in a record with null values during an update or upsert operation. It

Property Name

Description
retains the existing values.

Use SFDC Error File

Select to enable the PowerCenter Integration Service to generate error


logs. By default, the PowerCenter Integration Service does not generate
error logs.
To generate an error log for a Bulk API session, select the Monitor Bulk
Job Until All Batches Processed session property as well.

Use SFDC Success


File

Select to enable the PowerCenter Integration Service to generate


success logs. By default, the PowerCenter Integration Service does not
generate success logs.
To generate a success log for a Bulk API session, select the Monitor
Bulk Job Until All Batches Processed session property as well.

SFDC Success File


Directory

Specify the directory where the PowerCenter Integration Service stores


the success logs. By default, the PowerCenter Integration Service stores
the success logs in the $PMTargetFileDir directory. The PowerCenter
Integration Service stores the error logs in the $PMBadFileDir
directory.

Use Idlookup Field


for Upserts

Select to use the Salesforce idLookup field to identify target records


that need to be upserted. If you do not select this property, you must use
the external ID for the upsert operation. If you do not select this
property and do not provide the external ID, the session fails.

Use this
ExternalId/IdLooku
p field for Updates

Enter the exact name of the external ID or idLookup field to


use for updates.

Use SFDC Bulk API

Select to use the Salesforce Bulk API to load batch files


containing large amounts of data to Salesforce targets. By
default, the PowerCenter Integration Service uses the

By default, the PowerCenter Integration Service uses the first external


ID or idLookup field in the target. Use this property when you want to
use a different field for updates.

Property Name

Description
standard Salesforce API.

Monitor Bulk Job


Until All Batches
Processed

Bulk API sessions only. Select to monitor a Bulk API session.


When you select this property, the PowerCenter Integration
Service logs the status of each batch in the session log. If you
do not select this property, the PowerCenter Integration
Service does not generate complete session statistics for the
session log.

Select this property along with the Use SFDC Success File or Use
SFDC Error File session properties to generate success or error logs for
the session.
Override Parallel
Concurrency with
Serial

Bulk API sessions only. Select to have the Salesforce service


write batches to targets serially. By default, the Salesforce
service writes batches in parallel.

Disable Bulk
Success and Error
File Creation

Bulk API sessions only. Select to disable the creation of Bulk


API success and error logs. Overrides the Use SFDC Error File
and Use SFDC Success File session properties.

Enable Field
Truncation
Attribute

Allows Salesforce to truncate target data that is larger than


the target field. When you select this property, Salesforce
truncates overflow data and writes the row to the Salesforce
target. By default, the PowerCenter Integration Service writes
overflow data to the session error file.

Set Prefix for


Success and Error
Files

Adds a prefix to the name of the success and error log files.

When you add a prefix, the success log file uses the following naming
convention: <prefix>_<session name><timestamp>success.csv.
When you add a prefix, the error log file uses the following naming
convention: <prefix>_<session name><timestamp>error.csv.

Configuring the Upsert Target Operation


The Salesforce upsert operation creates a new record or updates an existing record in a
Salesforce object. You must provide one of the following types of fields to upsert records to a
Salesforce object:

E
x
t
e
r
n
a
l
I
D
fi
el
d
.
Y
o
u
c
a
n
u
s
e
a
c
u
st
o
m
S
al
e
sf
o
r
c
e
fi
el

d
t
o
u
n
i
q
u
el
y
i
d
e
n
ti
f
y
e
a
c
h
r
e
c
o
r
d
i
n
a
S
al
e
sf
o
r
c
e
o
b

je
ct
.
Y
o
u
c
a
n
c
r
e
at
e
a
c
u
st
o
m
e
x
te
r
n
al
I
D
fi
el
d
f
o
r
e
a
c
h
o

b
je
ct
i
n
S
al
e
sf
o
r
c
e.
Y
o
u
c
a
n
v
ie
w
t
h
e
p
r
o
p
e
rt
ie
s
o
f
a
S
al
e
sf

o
r
c
e
ta
r
g
et
d
e
fi
n
it
i
o
n
i
n
t
h
e
P
o
w
e
r
C
e
n
te
r
D
e
si
g
n
e
r
t
o

s
e
e
if
t
h
e
o
b
je
ct
i
n
cl
u
d
e
s
a
n
e
x
te
r
n
al
I
D
fi
el
d
.
i
d
L
o
o
k
u
p

fi
el
d
.
Y
o
u
c
a
n
u
s
e
a
S
al
e
sf
o
r
c
e
i
d
L
o
o
k
u
p
fi
el
d
t
o
i
d
e
n
ti

f
y
e
a
c
h
r
e
c
o
r
d
i
n
a
S
al
e
sf
o
r
c
e
o
b
je
ct
.
S
al
e
sf
o
r
c
e
c
r
e
at

e
s
i
d
L
o
o
k
u
p
fi
el
d
s
f
o
r
e
a
c
h
st
a
n
d
a
r
d
S
al
e
sf
o
r
c
e
o
b
je
ct

.
F
o
r
e
x
a
m
p
le
,
t
h
e
E
m
ai
l
fi
el
d
is
a
n
i
d
L
o
o
k
u
p
fi
el
d
f
o
r
t
h

e
C
o
n
ta
ct
o
b
je
ct
.
C
u
st
o
m
S
al
e
sf
o
r
c
e
o
b
je
ct
s
d
o
n
o
t
c
o
n
ta
i

n
a
n
i
d
L
o
o
k
u
p
fi
el
d
.
F
o
r
m
o
r
e
i
n
f
o
r
m
at
i
o
n
a
b
o
u
t
i
d
L

o
o
k
u
p
fi
el
d
s,
s
e
e
t
h
e
S
al
e
sf
o
r
c
e
d
o
c
u
m
e
n
ta
ti
o
n
.
A Salesforce target object may have multiple external ID or Idlookup fields. By default, the
PowerCenter Integration Service uses the first external ID or Idlookup field it encounters.
However, you can specify the external ID or Idlookup field to use for the upsert operation in the
session properties.
To configure the upsert operation for a session that writes to a Salesforce target:

M
1

.ap

th
e
ex
ter
na
l
ID
or
id
L
oo
ku
p
fie
ld
fr
o
m
th
e
so
ur
ce
to
th
e
tar
ge
t
in
th
e
m
ap
pi
ng
.
If

yo
u
ar
e
us
in
g
an
ex
ter
na
l
ID
,
m
ap
th
e
ex
ter
na
l
ID
to
th
e
ex
ter
na
l
ID
fie
ld
in
th
e
Sa
le
sf
or

ce
tar
ge
t
ob
je
ct.
If
yo
u
ar
e
us
in
g
an
id
L
oo
ku
p
fie
ld,
m
ap
th
e
fie
ld
to
th
e
ap
pr
op
ria
te
tar
ge
t

fie
ld.
Fo
r
ex
a
m
pl
e,
m
ap
th
e
e
m
ail
so
ur
ce
fie
ld
to
th
e
E
m
ail
fie
ld
in
th
e
Sa
le
sf
or
ce
C
on
ta

ct
ob
je
ct
tar
ge
t.
C
2

.on

fi
gu
re
th
e
Tr
ea
t
In
se
rt
as
U
ps
ert
or
Tr
ea
t
U
pd
at
e
as
U
ps
ert
se
ssi
on
pr

op
ert
ie
s
to
co
nf
ig
ur
e
a
Sa
le
sf
or
ce
se
ssi
on
to
up
se
rt
re
co
rd
s.
To
3
.us

e
th
e
id
L
oo
ku
p
fie
ld
in

st
ea
d
of
an
ex
ter
na
l
ID
fie
ld,
en
ab
le
th
e
U
se
Id
L
oo
ku
p
Fi
el
d
fo
r
U
ps
ert
s
se
ssi
on
pr
op
ert
y.

B
y
de
fa
ult
,
th
e
Po
w
er
C
en
ter
In
te
gr
ati
on
Se
rv
ic
e
us
es
th
e
ex
ter
na
l
ID
fo
r
up
se
rts
.
Y
ou

ca
n
co
nf
ig
ur
e
th
e
se
ssi
on
to
ov
er
ri
de
th
e
ex
ter
na
l
ID
,
an
d
us
e
th
e
id
L
oo
ku
p
in
st
ea
d.

To
4
.sp

ec
if
y
w
hi
ch
ex
ter
na
l
ID
or
Id
lo
ok
up
fie
ld
to
us
e,
en
ter
th
e
ex
ter
na
l
ID
or
Id
lo
ok
up
fie
ld
na

m
e
in
th
e
U
se
thi
s
E
xt
er
na
lI
d/
Id
lo
ok
up
Fi
el
d
fo
r
U
ps
ert
s
se
ssi
on
pr
op
ert
y.
N
ot
e:
If

yo
u
d
o
n
ot
e
nt
er
th
e
n
a
m
e
of
th
e
ex
te
rn
al
ID
or
Idl
o
ok
u
p
fi
el
d,
th
e
Po
w
er
C

e
nt
er
In
te
gr
at
io
n
S
er
vi
ce
se
le
ct
s
th
e
fir
st
ex
te
rn
al
ID
or
Idl
o
ok
u
p
fi
el
d
it
e
nc

o
u
nt
er
s.
If
yo
u
sp
ec
ify
a
fi
el
d
th
at
is
n
ot
a
n
ex
te
rn
al
ID
or
Idl
o
ok
u
p
fi
el
d,
or
yo

u
m
is
sp
ell
th
e
fi
el
d
n
a
m
e,
th
e
se
ss
io
n
fa
ils
.

Configuring the Maximum Batch Size


The PowerCenter 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
PowerCenter Integration Service can write to a Salesforce target in a batch. 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.

Related Topics:

Tuning the DTM Buffer Size

Handling Null Values in Update and Upsert Operations


By default, the PowerCenter Integration Service does not replace existing values in a Salesforce
record with null values from the source 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.
You cannot set the value of an external ID field in a Salesforce target to null. The session fails if
you enable the Set Fields to NULL session property and the session tries to replace an existing
value for an external ID field with a null value.

Logging PowerExchange for Salesforce Session Details


The PowerCenter Integration Service can generate record-level logs for each session that writes
to a Salesforce target. The PowerCenter Integration Service can generate the following types of
logs:

S
u
c
c
e
s
s
l
o
g
.
T
h
e
s
u
c
c
e
s
s
l
o
g
c
o

n
ta
i
n
s
a
n
e
n
tr
y
f
o
r
e
a
c
h
r
e
c
o
r
d
t
h
at
s
u
c
c
e
s
sf
u
ll
y
l
o
a

d
s
i
n
t
o
t
h
e
S
al
e
sf
o
r
c
e
ta
r
g
et
.
E
a
c
h
e
n
tr
y
c
o
n
ta
i
n
s
t
h
e

v
al
u
e
s
l
o
a
d
e
d
f
o
r
al
l
fi
el
d
s
o
f
t
h
e
r
e
c
o
r
d
,
i
n
cl
u
d
i
n
g

t
h
e
S
al
e
sf
o
r
c
e
I
D
.
U
s
e
t
h
is
fi
le
u
n
d
e
rs
ta
n
d
w
h
at
d
at
a
is
l
o
a

d
e
d
i
n
t
o
t
h
e
S
al
e
sf
o
r
c
e
ta
r
g
et
.
Y
o
u
c
a
n
u
s
e
t
h
e
s
u
c
c
e

s
s
l
o
g
a
s
a
n
a
u
d
it
tr
ai
l
f
o
r
al
l
o
p
e
r
at
i
o
n
s
p
e
rf
o
r
m
e
d
.

E
r
r
o
r
l
o
g
.
T
h
e
e
rr
o
r
l
o
g
c
o
n
ta
i
n
s
a
n
e
n
tr
y
f
o
r
e
a
c
h
d

at
a
e
rr
o
r.
E
a
c
h
l
o
g
e
n
tr
y
c
o
n
ta
i
n
s
t
h
e
v
al
u
e
s
f
o
r
al
l
fi
el
d

s
o
f
t
h
e
r
e
c
o
r
d
a
n
d
t
h
e
e
rr
o
r
m
e
s
s
a
g
e.
T
h
e
e
rr
o
r
l
o
g
d

is
p
la
y
s
e
rr
o
r
m
e
s
s
a
g
e
s
fr
o
m
S
al
e
sf
o
r
c
e
a
n
d
P
o
w
e
r
C
e
n

te
r.
U
s
e
t
h
is
fi
le
t
o
u
n
d
e
rs
ta
n
d
w
h
y
r
e
c
o
r
d
s
d
i
d
n
o
t
l
o
a
d

i
n
t
o
t
h
e
S
al
e
sf
o
r
c
e
ta
r
g
et
.
The PowerCenter Integration Service inserts quotes around commas and quotes included in the
data.
Note: The PowerExchange for Salesforce success and error logs are different from the
PowerCenter session logs. The PowerExchange for Salesforce success and error logs contain
record-level details that are specific to sessions with Salesforce targets. PowerCenter session
logs contain information about the tasks performed by the PowerCenter Integration Service,
general session errors, and load summary and transformation statistics for the session.
The PowerCenter Integration Service uses the following naming conventions for the success and
error log files:

Type of Log File

Naming Convention

Success log file

<session name><timestamp>success.csv

Error log file

<session name><timestamp>error.csv

To configure the PowerCenter Integration Service to generate success and error logs for a
session that writes to Salesforce target, configure the Use SFDC Error File, Use SFDC Success
File, and SFDC Success File Directory session properties.
You can add a prefix for the success or error log files for a session. When you configure a prefix,
the PowerCenter Integration Service adds the prefix to the log file names as follows:

Type of Log File

Naming Convention with Prefix

Success log file

<prefix>_<session name><timestamp>success.csv

Error log file

<prefix>_<session name><timestamp>error.csv

To add a prefix to the success or error log, use the Set Prefix for Success and Error Files session
property.

Sample Success Log


The following table shows an excerpt of a success log:

ID
0017000000NYre4AAD
The Status field indicates whether PowerCenter Integration Service created, updated, or deleted
the record.

Sample Error Log


The following table shows an excerpt of an error log:

NAME

ACCOU

Company1

76544

Company2

76545

Company3

76546

Override an External ID with an idLookup for Upserts


The PowerCenter Integration Service can use the external ID or idLookup fields when performing
an upsert operation on a Salesforce target. The PowerCenter Integration Service uses one of
these IDs to identify records in the Salesforce target to upsert. By default, the PowerCenter
Integration Service uses the external ID for upserts. You can configure the session to override
the external ID, and use the idLookup instead.

Configuring a Bulk API Session


The PowerCenter Integration Service can write data to Salesforce targets using the Salesforce
Bulk API. Use the Bulk API to write large amounts of data to Salesforce while generating a
minimal number of API calls.
With the Bulk API, each batch of data can contain up to 10,000 rows or one million characters of
data in CSV format. When the PowerCenter Integration Service creates a batch, it adds any
required characters to properly format the data, such as adding quotation marks around text.
You can configure a Bulk API session to load batches at the same time or serially. You can also
monitor the progress of batches in the session log, and create success and error logs for rowlevel information.
To configure a session to use the Salesforce Bulk API, select the Use SFDC Bulk API session
property. When you select this property, the PowerCenter Integration Service does not use the
Max Batch Size session property.

Monitoring a Bulk API Session


You can configure a Salesforce Bulk API session for monitoring by the PowerCenter Integration
Service. Configure a Bulk API session for monitoring when you want to review detailed session
statistics and when you want to generate a success or error log for the session.
When the PowerCenter Integration Service monitors a Bulk API session, it requests the status of
each batch from the Salesforce service. The PowerCenter Integration Service repeats the request
every 10 seconds until all batches complete, and writes the response from the Salesforce service
in the session log. The PowerCenter Integration Service also generates a success log or error log
if requested.
By default, the PowerCenter Integration Service does not monitor Bulk API sessions. Without
monitoring, the session log contains information about batch creation, but does not contain
details about batch processing or complete session statistics. In addition, the PowerCenter
Integration Service does not generate success or error logs for the session.
Note: The PowerCenter Integration Service performs additional API calls when monitoring a Bulk
API session. To reduce the number of API calls the PowerCenter Integration Service makes, do
not monitor the session. For more information about batch processing, use the batch IDs in the
session log to access Salesforce statistics.

To configure a session for monitoring, select the Monitor Bulk Job Until All Batches Processed
session property.
To see how many records are successfully loaded for each batch, set the Override Tracing session
property to a value other than None.

Configuring a Bulk API Session Load Type


The Salesforce service can perform a parallel or serial load for a Bulk API session. By default, it
performs a parallel load.
In a parallel load, the Salesforce service writes batches to session targets at the same time. It
processes each batch as soon as possible. In a serial load, the Salesforce service writes batches
to targets in the order it receives them. It processes the entire contents of each batch before
proceeding to the next batch.
Use a parallel load to increase performance when you are not concerned about the target load
order. Use a serial load when you want to preserve the target load order, such as during an
upsert load.
Configure the Bulk API load type in the session properties. To configure the session for a serial
load, select the Override Parallel Concurrency with Serial session property.

Bulk API Success and Error Files


When the PowerCenter Integration Service monitors a Salesforce Bulk API session, it can
generate Bulk API success and error logs. Success and error logs are CSV files that contain rowlevel details provided by the Salesforce service.
When the Salesforce service completes all batch processing for a Bulk API session, the
PowerCenter Integration Service requests success and error information. The PowerCenter
Integration Service uses this information to generate success and error logs.
The following table describes the location and naming convention for the Bulk API success and
error log files:

Log Type

Location

Naming Convention

Bulk API success log

$PMTargetFileDir

Batch_<BatchId>_success.csv

Bulk API error log

$PMBadFileDir

Batch_<BatchId>_error.csv

To generate a success log, select the Use SFDC Success File session property. To generate an
error log, select the Use SFDC Error File session property. To ensure the PowerCenter Integration
Service generates logs, select the Monitor Bulk Job Until All Batches Processed session property
to enable monitoring.

You can add a prefix for the Bulk API success or error log files for a session. When you configure
a prefix, the PowerCenter Integration Service adds the prefix to the log file names as follows:

Log Type

Location

Naming Convention with Prefix

Bulk API success log

$PMTargetFileDir

<Prefix>_Batch_<BatchId>_success.csv

Bulk API error log

$PMBadFileDir

<Prefix>_Batch_<BatchId>_error.csv

To add a prefix to the success or error log, use the Set Prefix for Success and Error Files session
property.

Sample Bulk API Success Log


The Bulk API success log contains the following columns:

Colum
n
Name
ID

Description

Salesforce ID.

Success Indicates the row was successfully written to the target. For all rows in
the Bulk API success log, default is True.
Created Indicates whether the row inserted or updated in the target:
T
r
u
e
.
T
h
e
r
o
w
w
a
s
i
n

Colum
n
Name

Description

s
e
rt
e
d
.
F
a
ls
e
.
T
h
e
r
o
w
w
a
s
u
p
d
a
t
e
d
.
Error

Error message associated with the row. No errors should appear in the
Bulk API success log.

The following table shows an excerpt of a Bulk API success log:

ID
001T000000HsvMdIAJ

Success
TRUE

Created
FALSE

Error
-

ID

Success

Created

Error

001T000000HsvMeIAJ

TRUE

TRUE

001T000000HsvMfIAJ

TRUE

FALSE

For more information about the Bulk API success log, see the Salesforce documentation.

Sample Bulk API Error Log


The Bulk API error log contains the following columns:

Column
Name

Description

ID

Salesforce ID. This field might not be populated.

Success

Indicates the row was successfully written to the target. For all rows in
the Bulk API error log, default is False.

Created

Not relevant for error rows.

Error

Error message associated with the row.

In addition to these columns, the Bulk API error log includes the entire source row. You can use
the error message to correct the error in the source row.
The following table shows an excerpt of a Bulk API error log:

I Suc
D ces
s

Cre
ate
d

Error

ID

Na
me

FALS FALS MALFORMED_ID:Account ID: id value of


E
E
incorrect type:
''&quot;7000
"'"'000&quot;:Id --

"7000"
"000"

MD
M
Wat
er
Utili
ty

FALS FALS MALFORMED_ID:Account ID: id value of


E
E
incorrect type: QHP1N
''''
:Id --

QHP1N
''

RAA
Elec
tric
&

I Suc
D ces
s

Cre
ate
d

Error

ID

Na
me

Gas
For more information about the Bulk API error log, see the Salesforce documentation.

Configuring a Session for Optimal Performance


You can increase the performance of PowerExchange for Salesforce by editing the mapping or
session. Configure the following options to increase the session performance:

D
T
M
b
u
ff
e
r
si
z
e.
Y
o
u
c
a
n
i
n
c
r
e
a
s
e
o

r
d
e
c
r
e
a
s
e
t
h
e
v
al
u
e
o
f
D
T
M
B
u
ff
e
r
S
iz
e
t
o
s
p
e
ci
f
y
t
h

e
a
m
o
u
n
t
o
f
m
e
m
o
r
y
t
h
e
P
o
w
e
r
C
e
n
te
r
I
n
te
g
r
at
i
o
n
S
e
r

v
ic
e
u
s
e
s
a
s
D
T
M
b
u
ff
e
r
m
e
m
o
r
y.
P
r
e
ci
si
o
n
o
f
st
ri
n
g
fi
el
d

s.
M
o
d
if
y
t
h
e
p
r
e
ci
si
o
n
o
f
fi
el
d
s
t
h
at
m
a
p
t
o
t
h
e
st
ri
n
g
tr
a
n

sf
o
r
m
at
i
o
n
d
at
at
y
p
e.
For more information about these parameters see the PowerCenter Performance Tuning Guide.

Tuning the DTM Buffer Size


The DTM Buffer Size determines the size of the buffer blocks that the PowerCenter Integration
Service uses to move data from sources to targets. When a target definition receives a buffer
block, the PowerCenter 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
PowerCenter Integration Service sends one batch to the Salesforce target containing 200
records. If a buffer block contains 500 records, the PowerCenter 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.

Modifying the Precision of String Fields


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

Potrebbero piacerti anche