You need to sign in to do that
Don't have an account?
suresh dupada
hi folks i want to update child with owner namewhich reflects with parent record owner
this is my trigger here "msport__c "is my child nd "mstudent__c" is my parent
trigger GetOwner on MSport__c (Before insert, Before update)
{
set<id> set1=new set<id>();
map<id,string> map1=new map<id,string>();
list<user> userlist=new list<user>();
if(trigger.isBefore)
{
if(trigger.isinsert || trigger.isUpdate)
{
for(MSport__c sp:trigger.new)
{
set1.add(sp.MStudent__r.ownerid);
}
if(set1.size()>0 && set1!=null)
{
userlist=[select id,name from user where id in: set1];
for(user u:userlist)
{
map1.put(u.id,u.name);
}
if(map1.size()>0 && map1!=null)
{
for(MSport__c s:trigger.new)
{
s.Owner__c=map1.get(s.MStudent__r.ownerid);
}
}
}
}
}
}
trigger GetOwner on MSport__c (Before insert, Before update)
{
set<id> set1=new set<id>();
map<id,string> map1=new map<id,string>();
list<user> userlist=new list<user>();
if(trigger.isBefore)
{
if(trigger.isinsert || trigger.isUpdate)
{
for(MSport__c sp:trigger.new)
{
set1.add(sp.MStudent__r.ownerid);
}
if(set1.size()>0 && set1!=null)
{
userlist=[select id,name from user where id in: set1];
for(user u:userlist)
{
map1.put(u.id,u.name);
}
if(map1.size()>0 && map1!=null)
{
for(MSport__c s:trigger.new)
{
s.Owner__c=map1.get(s.MStudent__r.ownerid);
}
}
}
}
}
}
Try this
trigger GetOwner1 on MSport__c (Before insert, Before update)
{
set<id> set1=new set<id>();
if(trigger.isBefore)
{
if(trigger.isinsert || trigger.isUpdate)
{
for(MSport__c sp:trigger.new)
{
System.debug('hiii print ownerid---'+sp.mstudent__c);
set1.add(sp.mstudent__c);
}
System.debug('hiii print set size---'+set1);
if(set1.size() !=0 && set1 !=null){
map<id,mstudent__c > map_id_Student = new map<id,mstudent__c >([SELECT id,Ownerid
FROM mstudent__c
WHERE id IN:set1]);
for(MSport__c s:trigger.new)
{
s.Owner__c = map_id_Student .get(s.mstudent__c).ownerid;
}
}
}
}
}
All Answers
Below code helps you
Try this
trigger GetOwner1 on MSport__c (Before insert, Before update)
{
set<id> set1=new set<id>();
if(trigger.isBefore)
{
if(trigger.isinsert || trigger.isUpdate)
{
for(MSport__c sp:trigger.new)
{
System.debug('hiii print ownerid---'+sp.mstudent__c);
set1.add(sp.mstudent__c);
}
System.debug('hiii print set size---'+set1);
if(set1.size() !=0 && set1 !=null){
map<id,mstudent__c > map_id_Student = new map<id,mstudent__c >([SELECT id,Ownerid
FROM mstudent__c
WHERE id IN:set1]);
for(MSport__c s:trigger.new)
{
s.Owner__c = map_id_Student .get(s.mstudent__c).ownerid;
}
}
}
}
}
map<id,mstudent__c > map_id_Student = new map<id,mstudent__c >([SELECT id,Ownerid
FROM mstudent__c
WHERE id IN:set1]);
s.Owner__c = map_id_Student .get(s.mstudent__c).ownerid;
Get method returns the value to which the specified key is mapped.
map<id,mstudent__c > map_id_Student = new map<id,mstudent__c >([SELECT id,Ownerid
FROM mstudent__c
WHERE id IN:set1]);
In your code set1 contains lookup field id (mstudent record id). Now map_id_Student will contain mstudent record id as key and mstudent record as value. if you get perticular record id then it will return mstudent record having id and Owner field value.
s.Owner__c = map_id_Student .get(s.mstudent__c).ownerid;
map_id_Student .get(s.mstudent__c) returns a particular record, from that record you need Owner field value so It is written like this record.fieldvalue.
Important :
If this is what you where looking for then please mark it as a solution for others benefits.
Thank You