You need to sign in to do that
Don't have an account?
KPD
Update trigger
Hello can someone help me on below trigger.
I have a scenario that If account is updating for phone number then all associated contacts phone number should update with same number.
I wrote the trigger as below.It doesnt throw any errors but the phone number doesnt gets updated.
trigger phupdate on account (after update)
{
List<contact> ctlist =new list<contact>();
List<Id> ids = new List<Id>();
for(account ac: trigger.new)
{
ids.add(ac.Id);
}
Map<Id, contact> contactMap = new Map<Id, contact>([Select Id, Phone From contact Where Id In :ids]);
for(account ac: trigger.new)
{
contact c = contactMap.get(ac.Id);
if(c != null)
{
ac.Phone= c.Phone;
ctlist.add(c);
}
}
update ctlist;
}
I have a scenario that If account is updating for phone number then all associated contacts phone number should update with same number.
I wrote the trigger as below.It doesnt throw any errors but the phone number doesnt gets updated.
trigger phupdate on account (after update)
{
List<contact> ctlist =new list<contact>();
List<Id> ids = new List<Id>();
for(account ac: trigger.new)
{
ids.add(ac.Id);
}
Map<Id, contact> contactMap = new Map<Id, contact>([Select Id, Phone From contact Where Id In :ids]);
for(account ac: trigger.new)
{
contact c = contactMap.get(ac.Id);
if(c != null)
{
ac.Phone= c.Phone;
ctlist.add(c);
}
}
update ctlist;
}
The Query you have given is not fetching any records.
Please try below code.
trigger phupdate on account (after update)
{
List<contact> ctlist =new list<contact>();
List<Id> accids = new List<Id>();
for(account ac: trigger.new)
{
accids.add(ac.Id);
}
List<contact> conList = new List<contact>();
conList = [Select Id, Phone From contact Where account.Id In :accids];
for(account ac: trigger.new)
{
for(contact c:conList)
{
c.Phone = ac.phone;
}
}
update conList;
}
for(account ac: trigger.new)
{
for(contact c:conList)
{
if(acc.id == c.AccountID){
c.Phone = ac.phone;
}
}
}
this would solve your problem
Try this trigger
TRIGGER:
trigger phonefiledupdate on Account (after update) {
set<id> newset = new set<id>();
for(account a : trigger.new){
if(a.phone !=trigger.oldmap.get(a.Id).phone){
newset.add(a.id);
}
}
list<contact> cons = new list<contact>();
list<account> acclst = [select id,name,phone,(select id,lastname,phone from contacts)
from account where id IN : newset];
for(account ac : acclst){
for(contact c : ac.contacts){
c.phone = ac.phone;
cons.add(c);
}
}
update cons;
}
I am new to apex coding so trying to learn.