2011-12-19 36 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