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
KevinRussellKevinRussell 

Initial term of field expression must be a concrete SObject

I'm trying to populate a local map.  I'm getting the error:

 

Compile Error: Initial term of field expression must be a concrete SObject: MAP<Id,npe5__Affiliation__c> at line 33 column 13 

 

What am I doing incorrectly?

 

Thanks,

 

Kevin

        // Store temporary Affiliation records
        map< id, npe5__Affiliation__c > Affiliations = new map< id, npe5__Affiliation__c >();
     
        // Building local list
        for (npe5__Affiliation__c afl : [Select npe5__Contact__c, npe5__Organization__c, Type__c, npe5__Status__c, npe5__Role__c from npe5__Affiliation__c  
            WHERE npe5__Contact__c = :record.npe5__Contact__c AND npe5__Organization__c = :record.npe5__Organization__c ] ){
            Affiliations.npe5__Contact__c = afl.npe5__Contact__c;
            Affiliations.npe5__Organization__c = afl.npe5__Organization__c;
            Affiliations.Type__c = afl.Type__c;
            Affiliations.npe5__Status__c = afl.npe5__Status__c;
            Affiliations.npe5__Role__c = afl.npe5__Role__c;
            // Add Affiliation records
           Affiliations.add(Affiliations);
        }

 

Best Answer chosen by Admin (Salesforce Developers) 
KevinRussellKevinRussell
Oh!!!!

Affiliations.put(afl.id, afl);

All Answers

hitesh90hitesh90

Hi Kevin,

 

There is no method .add in Map

 

you have to use Map.Put method.

 

// Store temporary Affiliation records
map< id, npe5__Affiliation__c > Affiliations = new map< id, npe5__Affiliation__c >();

// Building local list
for (npe5__Affiliation__c afl : [Select npe5__Contact__c, npe5__Organization__c, Type__c, npe5__Status__c, npe5__Role__c from npe5__Affiliation__c  
	WHERE npe5__Contact__c = :record.npe5__Contact__c AND npe5__Organization__c = :record.npe5__Organization__c ] ){		   
   Affiliations.put(afl.id,afl);
}

 

see below link for reference:

Map Methods in Salesforce

 

Important :
Hit Kudos if this provides you with useful information and if this is what you where looking for then please mark it as a solution for other benefits.
 
Thank You,
Hitesh Patel
SFDC Certified Developer & Administrator

KevinRussellKevinRussell

Thanks hitesh90,

 

I changed the code and I'm getting this error:

Invalid foreign key relationship: npe5__Affiliation__c.id at line 33 column 30 

 

Thanks for helping

 

        // Store temporary Affiliation records
        map< id, npe5__Affiliation__c > Affiliations = new map< id, npe5__Affiliation__c >();
     
        // Building local list
        for (npe5__Affiliation__c afl : [Select Id, npe5__Contact__c, npe5__Organization__c, Type__c, npe5__Status__c, npe5__Role__c from npe5__Affiliation__c  
            WHERE npe5__Contact__c = :record.npe5__Contact__c AND npe5__Organization__c = :record.npe5__Organization__c ] ){
            Affiliations.put(afl.id.afl);
        }

 

 

KevinRussellKevinRussell
Oh!!!!

Affiliations.put(afl.id, afl);
This was selected as the best answer
hitesh90hitesh90

Hi Kevin,

 

Replace this line with real code..

Affiliations.put(afl.id.afl);

 

Affiliations.put(afl,id.afl);

 
Thank You,
Hitesh Patel
SFDC Certified Developer & Administrator