2011-12-19 74 views
3

upsert如何在Salesforce API中工作?upsert与外部id如何工作?

我相信,它会检查它会检查是否有唯一ID的记录。如果它可用,则更新记录,否则创建记录。

这是正确的吗?

我收到以下错误

Upsert failed. First exception on row 1; first error: DUPLICATE_EXTERNAL_ID, Asset Tag: more than one record found for external id field: [a11M0000000CwJqIAK, a11M0000000CwJvIAK]: [Asset_Tag__c] 

我与项目的列表,并且没有重复的Asset_Tag值。

system.debug('LstItem Asset_Tag__c'+LstItem); 
    upsert LstItem Asset_Tag__c; 

从调试日志

LstItem Asset_Tag__c(Item_c__c:{Scanned_By__c=005M0000000IlxyIAC, Asset_Tag__c=12149, Status__c=Active, Scan_Location__c=001M0000008GzJXIA0, Last_Scan_Date__c=2011-12-17 06:08:47}, Item_c__c:{Scanned_By__c=005M0000000IlxyIAC, Asset_Tag__c=23157, Status__c=Active, Scan_Location__c=001M0000008GzJXIA0, Last_Scan_Date__c=2011-12-17 08:26:14}) 

我能做些什么来解决这个问题?

回答

5

的错误信息表明,根据您提供的外部ID值,有两个匹配记录。在这种情况下,系统不知道应该更新哪一个,因此失败。

如果你看一看/ a11M0000000CwJqIAK和/ a11M0000000CwJvIAK,他们将不得不在外部ID字段的值相同。您可能需要考虑为该对象取消重复记录。

+0

谢谢Jeremy ...有2条记录带有相同的资产标签no – Prady 2011-12-19 18:29:26