如何在 Salesforce 中更新插入到多个外部 ID?



我在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。诀窍是你可以用正确的分享规则来实现它。对只看到英国数据的用户进行的更新将工作并只更新英国客户。就像我说的,这是一个技术问题,"你认为你很聪明,但你只是让管理的工作变得更棘手"。区域。

最新更新