You need to sign in to do that
Don't have an account?
Rajashri
i am trying to add Phone and Status field from Campaign Members Object to my VF page.How can i modify my for loop if i want to print Phone and Status field from campaign Members.
Below is my for loop
for(Campaign c :[Select ID,(SELECT Id,CampaignId,Status FROM CampaignMembers where CampaignId =:camp.Id) FROM campaign WHERE id=:camp.Id ]){
for(Lead ld : CampaignMembers) {
if ((ld.ActivityHistories.size() == 0) || ld.ActivityHistories.size() == null) {
lMemberWrappers.add(new MemberWrapper(ld.Phone,ld.CampaignMembers.get(0).Status));
}}}
and SOQL Query is
CampaignMembers= [Select Id, Phone,(Select id, Status From CampaignMembers where CampaignId =:camp.Id ),
(Select Subject, Id,lastModifiedDate From ActivityHistories order by LastModifiedDate DESC LIMIT 1 )
From Lead where Id IN(select LeadId from campaignMember where campaignId =:camp.Id ) ];
How to get the data from Inner Query
i am trying to add Phone and Status field from Campaign Members Object to my VF page.How can i modify my for loop if i want to print Phone and Status field from campaign Members.
Below is my for loop
for(Campaign c :[Select ID,(SELECT Id,CampaignId,Status FROM CampaignMembers where CampaignId =:camp.Id) FROM campaign WHERE id=:camp.Id ]){
for(Lead ld : CampaignMembers) {
if ((ld.ActivityHistories.size() == 0) || ld.ActivityHistories.size() == null) {
lMemberWrappers.add(new MemberWrapper(ld.Phone,ld.CampaignMembers.get(0).Status));
}}}
and SOQL Query is
CampaignMembers= [Select Id, Phone,(Select id, Status From CampaignMembers where CampaignId =:camp.Id ),
(Select Subject, Id,lastModifiedDate From ActivityHistories order by LastModifiedDate DESC LIMIT 1 )
From Lead where Id IN(select LeadId from campaignMember where campaignId =:camp.Id ) ];
I am also getting relation ship error during the fetching lead as in inner query
Try changing the line
for(Lead ld : CampaignMembers)
to
for(Lead ld : c.CampaignMembers)
Regards,
Amritesh
Loop variable must be an SObject or list of CampaignMember
I think your outside query is wrong. You are comparing campaign Id twice. Also, inside for loop you are trying storing Id to Lead. it should be CampaignMember.
ID is special keyword, dont use it to store records.
Try with following query, your problem should be solved. I have tested the query, it is working fine.
for(Campaign c :[Select ID,(SELECT Id,CampaignId,Status FROM CampaignMembers ) FROM campaign WHERE id=:camp.Id ]){
//your campaign code goes here
for(CampaignMember cmber : c.CampaignMembers){
//your campaignMember code goes here
}
}
Loop variable must be an SObject or list of CampaignMember