function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Sreenath ReddySreenath 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;
  
  }
Amit Chaudhary 8Amit Chaudhary 8
Please try below code.
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,( select id ,Status__c from Colleges__r ) from Student__c where id in :ids]; 
// Please add child relationship name Colleges__r according to your org
	list<College__c> lst=new list<College__c>();

	for (Student__c std3 : stud2)
	{
		List<College__C> lsitColl = std3.Colleges__r;
	    for( College__C clg : lsitColl )
	    {
			clg.Status__c=std3.Status_from_Parent__c;
			lst.add(clg);
	    }
  
	}
	
	if(lst.size() > 0 )
	{
		update lst;
	}
}


 
gayatri sfdcgayatri sfdc
Hi Sreenath,

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;  
  }
Sai Kalyan SanisettySai Kalyan Sanisetty
Hi ,

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 
        }
    }
}
JethaJetha
Your code looks wrong to me............