saleforce upsert error

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,一直检查 会成功的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值