admin 管理员组

文章数量: 887021

Upsert failed. First exception on row 0; first error: DUPLICATE_VALUE, duplicate value found: External_Id_vod__c duplicates value on record with id: a0NO0000002MTyN: []

在使用upsert的时候经常会遇到这个错误。我遇到两次,第一次的时候就是用update和insert两种方法避开了,这一次实在是没办法了,所以研究了一下。发现,问题纠结的位置就在 upsert后面的id上,以下是官方文档中提供的example.
List<Account> acctList = new List<Account>();
// Fill the accounts list with some accounts

try {
    upsert acctList;
} catch (DmlException e) {
   
}
List<Account> acctList = new List<Account>();
// Fill the accounts list with some accounts

try {
    // Upsert using an external ID field
    upsert acctList myExtIDField__c;
} catch (DmlException e) {
   
}

下面是我自己写的测试代码

List<Account> acctList = new List<Account>();
Account account =null;
for(Integer i =0 ; i< 10;i++){
account = new Account();
account.Name='YUT'+i;
account.Gender_vod__c='F';
account.External_ID_vod__c='y'+i;
    acctList.add(account);
}
 upsert account External_ID_vod__c ;

upsert可以批量更新list(array)或者是单个object。

我遇到的这个问题,就是这个id在系统中的格式,跟我提供的格式不对应,所以一直没办法update。

系统中要求的格式001O000000KpOmJIAV__test12,而我添加的是 001O000000KpOmJIAV__;test12; ,所以问题的纠结的地方就是这个id,一直检查 会成功的。

本文标签: saleforce upsert error