You need to sign in to do that
Don't have an account?
Sreenath Reddy
im updating child to parent fields using trigger.but am getting this error Error Error: Compile Error: Initial term of field expression must be a concrete SObject: List<College__c> at line 15 column 5
trigger Practise2 on Student__c (after insert,After update)
{
Set<id> ids=new set<id>();
for(Student__c stud1:trigger.new)
{
ids.add(stud1.id);
}
list<Student__c> stud2=[select id,name,Status_from_Parent__c,College__r.id,College__r.Status__c from Student__c where id in:ids];
list<College__c> lst=new list<College__c>();
for (Student__c std3:stud2)
{
for(list<College__C> clg:std3.College__r)
{
clg.Status__c=std3.Status_from_Parent__c;
lst.add(clg);
}
}
update lst;
}
{
Set<id> ids=new set<id>();
for(Student__c stud1:trigger.new)
{
ids.add(stud1.id);
}
list<Student__c> stud2=[select id,name,Status_from_Parent__c,College__r.id,College__r.Status__c from Student__c where id in:ids];
list<College__c> lst=new list<College__c>();
for (Student__c std3:stud2)
{
for(list<College__C> clg:std3.College__r)
{
clg.Status__c=std3.Status_from_Parent__c;
lst.add(clg);
}
}
update lst;
}
Please change your code as below and try.
trigger Practise2 on Student__c (after insert,After update)
{
Set<id> ids=new set<id>();
list<College__c> lst=new list<College__c>();
for(Student__c stud1:trigger.new) {
ids.add(stud1.id);
}
list<Student__c> stud2=[select id,name,Status_from_Parent__c,College__r.id,College__r.Status__c from Student__c where id in:ids];
for (Student__c std3:stud2){
for(College__c clg:std3.College__r){
clg.Status__c=std3.Status_from_Parent__c;
lst.add(clg);
}
}
update lst;
}
Please use the Below code,
trigger Practise2 on Student__c (after insert,After update)
{
set<id> ParentIDs = new set<ID>();
map<id,College__c> sa = new map<id,College__c>();
list<Student__c> lst = new list<Student__c>();
for(Student__c s:trigger.new)
{
ParentIDs.add(s.College__c); // Collecting Parent record ID's
}
lst = [select id,Name,Status_from_Parent__c,College__r.id,College__r.Status__c from College__c where id in:ParentIDs];
for(College__c su:lst)
{
sa.put(s.College__c,College__c);
}
for(Student__c saa:trigger.new)
{
sa.get(saa.College__c).Status__c = saa.Status_from_Parent__c;
}
if(sa !=null && sa.size() >0)
{
try
{
database.SaveResult[] s = database.update(sa.values());
}
catch(exception Ex)
{
system.debug('You can catch the failed records here '+Ex.getmessage()); // to catch if we have any errors
}
}
}