Davide Gammone
Come risolvere l'errore "Duplicate id in list" in Salesforce

Nel linguaggio di programmazione Apex di Salesforce, le Liste possono conservare valori duplicati ma, se contengono sObject IDs duplicati e si prova ad effettuare un update o una delete, si otterrà l'errore: "System.ListException: Duplicate id in list".

E' possibile risolvere tale problema in modo semplice:

  1. Creare una mappa di <id,sobject>
  2. Convertire la lista in mappa così da rimuovere gli IDs duplicati.
  3. Effettuare l'Update o la Delete dei valori contenuti nella mappa.

Esempio:

// pick up any id from your salesforce org, in this sample it is account id. 
Id aid = '0017F000002WkkdQAC';

List<Account> al = new List<Account>();

for(account a : [select id from account where id ='0017F000002WkkdQAC']){
	Account acc = new Account(id = aid);
	al.add(a);
	al.add(acc);
}
//create a map that will hold the values of the list 
Map<id,account> accmap = new Map<id,account>();

//put all the values from the list to map. 
accmap.putall(al);
if(accmap.size()>0){
	update accmap.values();
}

Questo sito utilizza cookie, anche di terze parti, per offrirti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all'uso dei cookie. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, clicca qui.