You need to sign in to do that
Don't have an account?
uat_live1.3903047664538198E12
Get the ID of a Lookup Field when Using SObject List
Hi All,
I Use The Below Code to Give a Lookup
List<SObject> InstanceType = New List<SObject>();
for(Sobject temp:InstanceType){
ViewPIP__c ViewPIPInstance = New ViewPIP__c();
String EvntId = String.ValueOf(temp.get('SitEduTest__Event_Id__r.ID'));
ViewPIPInstance.ForEvent__c = EvntId;
Where SitEduTest__Event_Id__c is Lookup in the Object(SitEduTest__Internal_Exam__c) in the SObject List. I get
"System.SObjectException: Invalid field SitEduTest__Event_Id__r.ID for SitEduTest__Internal_Exam__c"
Could Some One Please Guide me in this
Greatly appreciate your Help.
Regards,
Christwin
Where
I Use The Below Code to Give a Lookup
List<SObject> InstanceType = New List<SObject>();
for(Sobject temp:InstanceType){
ViewPIP__c ViewPIPInstance = New ViewPIP__c();
String EvntId = String.ValueOf(temp.get('SitEduTest__Event_Id__r.ID'));
ViewPIPInstance.ForEvent__c = EvntId;
Where SitEduTest__Event_Id__c is Lookup in the Object(SitEduTest__Internal_Exam__c) in the SObject List. I get
"System.SObjectException: Invalid field SitEduTest__Event_Id__r.ID for SitEduTest__Internal_Exam__c"
Could Some One Please Guide me in this
Greatly appreciate your Help.
Regards,
Christwin
Where
It will be something like this:
List<SObject> InstanceType = New List<SObject>();
Sobject SitEduTestEvent;
for(Sobject temp:InstanceType){
SitEduTestEvent=new Sobject();
ViewPIP__c ViewPIPInstance = New ViewPIP__c();
//String EvntId = String.ValueOf(temp.get('SitEduTest__Event_Id__r.ID'));
SitEduTestEvent=temp.getSObject('SitEduTest__Event_Id__c'); // Use getSobject method to retreive the parent info
//Access rest of the fields from SitEduTestEvent instance.
ViewPIPInstance.ForEvent__c = SitEduTestEvent.get('id');
For reference, take a look at below links:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_dynamic_dml.htm - Last section in it
http://www.salesforce.com/us/developer/docs/dbcom_apex230/Content/apex_methods_system_sobject.htm
Hope it helps:
Thanks,
Balaji
All Answers
It will be something like this:
List<SObject> InstanceType = New List<SObject>();
Sobject SitEduTestEvent;
for(Sobject temp:InstanceType){
SitEduTestEvent=new Sobject();
ViewPIP__c ViewPIPInstance = New ViewPIP__c();
//String EvntId = String.ValueOf(temp.get('SitEduTest__Event_Id__r.ID'));
SitEduTestEvent=temp.getSObject('SitEduTest__Event_Id__c'); // Use getSobject method to retreive the parent info
//Access rest of the fields from SitEduTestEvent instance.
ViewPIPInstance.ForEvent__c = SitEduTestEvent.get('id');
For reference, take a look at below links:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_dynamic_dml.htm - Last section in it
http://www.salesforce.com/us/developer/docs/dbcom_apex230/Content/apex_methods_system_sobject.htm
Hope it helps:
Thanks,
Balaji
I only made the following changes.
When I gave
SitEduTestEvent=new Sobject(); I Got "Constructor not defined: [SObject].<Constructor>() "
I gave Like
Sobject SitEduTestEvent = temp.getSObject('SitEduTest__Event_Id__c'); I Got Invalid RelationShip SitEduTest__Event_Id__c .
So I gave the Following and it worked
Sobject SitEduTestEvent = temp.getSObject('SitEduTest__Event_Id__r');
ViewPIPInstance.ForEvent__c = String.valueof(SitEduTestEvent.get('id'));
Is it code fine to Use.
Could you please also let us know the Difference Between an Object and an Sobject .I read SObject is a General Object but could not understand the Declaration used for Object Like
Object Test = ;
Thank You Again,
Regards,
Christwin