Esercizio per spostare certi Account in Contact
Questo codice è solo un test.
public with sharing class MoveAccountToContact {
public MoveAccountToContact() {
static final String ACCOUNT_ID = '0010Y00000HRUrbQAH'
// Creo una lista di nuovi contatti da popolare
List<Contact> NuoviContatti = new List<Contact>();
// Selezionare tutti gli Account il cui nome è una email
List<Account> OldAccount = [SELECT id,Name
FROM Account
WHERE name like:('%@%')];
// per oggi dato recuperato creo un oggetto Contact
// ogni oggetto contact va inserito alla lista dei nuovi contatti
for(Account OldAccountItem:OldAccount){
Contact NuovoContatto = new Contact();
NuovoContatto.AccountId = ACCOUNT_ID;
NuovoContatto.FirstName = getFirstNameFromEmail(OldAccountItem.Name);
NuovoContatto.LastName = getLastNameFromEmail(OldAccountItem.Name);
NuovoContatto.Email = OldAccountItem.Name;
NuoviContatti.add(NuovoContatto);
}
try{
// Inserisco i nuovi contatti
if(NuoviContatti.size() > 0){
insert NuoviContatti;
}else{
System.debug('Lista nuovi contatti vuota');
}
}catch(DmlException e){
System.debug('Si è verificato un errore nella creazione dei nuovi contatti: ');
System.debug(e);
}
try{
// cancello i vecchi account
if(NuoviContatti.size() > 0){
delete OldAccount;
}else{
System.debug('Lista vecchi account vuota');
}
}catch(DmlException e){
System.debug('Si è verificato un errore nella cancellazione dei vecchi account: ');
System.debug(e);
}
}
public static String getNameFromEmail(String email){
String name = '';
String leftPart = email.substringBefore('@');
String[] leftPartSplitted = leftPart.split('\\.');
if(leftPartSplitted.size() == 2){
String firstName = leftPartSplitted[0];
String lastName = leftPartSplitted[1];
name = firstName + ' ' + lastName;
}else{
name = leftPartSplitted[0];
}
return name;
}
public static String getFirstNameFromEmail(String email){
String firstName = '';
String leftPart = email.substringBefore('@');
String[] leftPartSplitted = leftPart.split('\\.');
if(leftPartSplitted.size() == 2){
firstName = leftPartSplitted[0];
}else{
firstName = leftPartSplitted[0];
}
return firstName;
}
public static String getLastNameFromEmail(String email){
String lastname = '';
String leftPart = email.substringBefore('@');
String[] leftPartSplitted = leftPart.split('\\.');
if(leftPartSplitted.size() == 2){
lastName = leftPartSplitted[1];
}else{
lastname = leftPartSplitted[0];
}
return lastname;
}
}