I'm working on a function that does a series of .getSObject()
calls from an Account record to get three fields from one of the related records.
The issue I'm having is one of the fields returns a SObject row was retrieved via SOQL without querying the requested field
error when doing the .get(), but the other two work fine.
This is what each call looks like, with a different field retrieved each time (account is an Account record that gets passed in):
SObject r = account.getSObject('Related1__r');
String test = (String) r.getSObject('Related2__r').get('fieldName__c');
It's not clear from Salesforce documentation what the object returned from .getSObject()
and why it works fine for two fields but fails for the third. I can do a dynamic SOQL query to retrieve the same record that should be returned from the Related2__r
.getSObject()
call and then do a .get()
on the exact same field but when I try to do the code snippet above for that particular field, it fails. It seems as if the .getSObject()
only retrieves a subset of the fields, and in my case it doesn't include the field I need.