You need to sign in to do that
Don't have an account?
Mokshada
I have written trigger for create contact when only account name is update, if I change any field on account it is creating new contact with the same lastname as accountname
I have writen trigger for create contact when accountname is update if I change any field on account it is creating new contact But I want it for account name only. supoose
if I update any field on account it is creating new contact
I want to create contact only if account name is updated.
code:-
trigger AccountContactTrig on Account (after insert,before update) {
If(Trigger.isinsert && Trigger.isafter){
List<Contact> cont = new List <Contact>();
for(Account acc : trigger.new){
Contact c = new Contact();
c.AccountId=acc.id;
c.LastName = acc.name;
cont.add(c);
}
insert cont;
}
if(Trigger.isupdate && Trigger.isbefore){
Set<String> accnames= new Set<String>();
For(Account acc:Trigger.new){
Account oldacc= Trigger.oldmap.get(acc.id);
if(acc.name!= oldacc.Name){
accnames.add(acc.name);
}
}
Map<Id,Account> mapaccounts = new Map<Id,Account>([Select Name,(Select id, Lastname from contacts where Lastname in: accnames) from Account where id in:Trigger.new]);
List<Contact> cont = new List <Contact>();
for(Account ac: Trigger.new){
if(mapaccounts.containsKey(ac.id)){
if(mapaccounts.get(ac.id).Contacts.size()==0){
Contact c = new Contact();
c.AccountId=ac.id;
c.LastName = ac.name;
cont.add(c);
}
}
}
insert cont;
}
}
can anyone help?
Thanks
if I update any field on account it is creating new contact
I want to create contact only if account name is updated.
code:-
trigger AccountContactTrig on Account (after insert,before update) {
If(Trigger.isinsert && Trigger.isafter){
List<Contact> cont = new List <Contact>();
for(Account acc : trigger.new){
Contact c = new Contact();
c.AccountId=acc.id;
c.LastName = acc.name;
cont.add(c);
}
insert cont;
}
if(Trigger.isupdate && Trigger.isbefore){
Set<String> accnames= new Set<String>();
For(Account acc:Trigger.new){
Account oldacc= Trigger.oldmap.get(acc.id);
if(acc.name!= oldacc.Name){
accnames.add(acc.name);
}
}
Map<Id,Account> mapaccounts = new Map<Id,Account>([Select Name,(Select id, Lastname from contacts where Lastname in: accnames) from Account where id in:Trigger.new]);
List<Contact> cont = new List <Contact>();
for(Account ac: Trigger.new){
if(mapaccounts.containsKey(ac.id)){
if(mapaccounts.get(ac.id).Contacts.size()==0){
Contact c = new Contact();
c.AccountId=ac.id;
c.LastName = ac.name;
cont.add(c);
}
}
}
insert cont;
}
}
can anyone help?
Thanks
Shri Raj