我在Salesforce中有一个Account对象,我有一个名为ExternalText的自定义字段。我已将该字段标记为和外部Id和
"Set this field as the unique record identifier from an external system"
Salesforce中有2个帐户将此字段设置为E1值。我想用DataLoader对csv文件进行更新csv文件是这样的
External Description
E1 Description 1
E1 Description 2
但是当我做upsert时,我得到了错误:
ExternalTest: more than one record found for external id field: [<id1>, <id2>]
我本来希望两者的Description字段都被更新为Description 1,然后是Description 2,所以如果我在Salesforce中查看对象,Description字段将显示Description 2我该怎么做?
你不能那样做。Upsert必须找到0条或恰好1条带有外部id的记录。当0时,它会尝试创建,当1时,它会尝试更新,否则-错误。
对于大多数正常用法,您将希望标记为ext id的字段也标记为唯一的。如果这不是唯一的来源-你需要不同的值在你的领域或咬紧牙关,学习SF记录id和做普通的老查询+更新,例如。
有一个边缘情况,为什么ext id不自动标记字段唯一,但如果你依赖的技术,我想说你有更大的问题。想象一下,英国和德国都创建了客户ID 123,他们想把它推送给Salesforce。他们都声称自己是第一个,绝对不会更改自己的唯一ID。诀窍是你可以用正确的分享规则来实现它。对只看到英国数据的用户进行的更新将工作并只更新英国客户。就像我说的,这是一个技术问题,"你认为你很聪明,但你只是让管理的工作变得更棘手"。区域。