2011-12-19 17 views
3

Salesforce APIでupsertはどのように機能しますか?外部IDでupsertはどのように機能しますか?

一意のIDを持つレコードがあるかどうかをチェックしていると確信しています。それが利用可能である場合には、それはレコードを更新し、さもなければレコードが作成される。

これは間違いありませんか?

私はアイテムのリストを持っており、重複Asset_Tag値がない次のエラーに

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] 

を受け付けております。

デバッグログから
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値に基づいて、2つの一致するレコードがあることを示しています。この場合、システムは更新すべきものを知らないので、失敗します。

/a11M0000000CwJqIAKと/ a11M0000000CwJvIAKを見ると、外部IDフィールドに同じ値が設定されます。このオブジェクトのレコードの重複排除を検討することをお勧めします。

+0

ありがとうございましたJeremy ...同じ資産タグのレコードが2つありませんでした – Prady

関連する問題