Триггер для обновления имени учетной записи контакта из записи пользователя (имя учетной записи) - сообщества
В Salesforce Communities я хочу, чтобы клиенты самостоятельно регистрировались в сообществах, чтобы самостоятельно зарегистрировать имя учетной записи по умолчанию (Testaaccount), поэтому мое требование состоит в том, чтобы пользователь создал свою учетную запись сообщества со всеми деталями и ввел имя учетной записи. тоже; На странице сведений о пользователе имя учетной записи будет сохранено в виде текста. Я хочу, чтобы это имя учетной записи было заменено на заданное по умолчанию имя учетной записи (Testaccount); Я написал триггер для контакта, и это работает только тогда, когда я пытаюсь отредактировать и сохранить запись, но я хочу, чтобы учетная запись по умолчанию заменялась на записи контакта, когда любой клиент сам регистрируется;
Открытый класс ContactTriggerHandler {
public static void updateContactAccount(List<Contact> newList) {
system.debug('Entered after insert handler******');
Map<String,String> emailByAcctNameMap = new Map<String,String>();
Map<String,string> acctNameByIdMap = new Map<String,string>();
List<User> updateContactList = new List<User>();
Set<String> acctNameSet = new set<String>();
Set<String> emailSet = new set<String>();
for(Contact u : newList) {
emailSet.add(u.email);
}
for(User usr : [SELECT Id,Account_Name__c,Email FROM User WHERE Email IN: emailSet]) {
emailByAcctNameMap.put(usr.Email,usr.Account_Name__c);
}
for(Account acc : [SELECT Id,Name FROM Account WHERE Name IN: emailByAcctNameMap.values()]) {
acctNameByIdMap.put(acc.Name,acc.Id);
}
for(contact c : newList) {
if(emailByAcctNameMap.containsKey(c.Email)) {
c.AccountId = acctNameByIdMap.get(emailByAcctNameMap.get(c.Email));
}
}
}
}
-----
-----
trigger ContactTrigger on Contact (before insert,before update)
{
if(trigger.isBefore) {
if(trigger.isInsert) {
system.debug('Entered after insert ******');
ContactTriggerHandler.updateContactAccount(trigger.new);
}
if(trigger.isUpdate) {
/*** ---- Before Update Events ----- ***/``
system.debug('Entered after insert ******');
ContactTriggerHandler.updateContactAccount(trigger.new);
}
}
}