Thanks Srikanth . I got the solution based on your suggestion.
public list<Opportunity> getOpportunities(){ opptyList = [Select o.StageName, o.Name,o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Product_Specialist__r.Id =: UserInfo.getUserId()];
otmlist=[Select o.UserId,o.OpportunityId, o.Id From OpportunityTeamMember o where o.UserId=:UserInfo.getUserId()];
opptyList2 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name, o.CloseDate,o.of_Days_Open__c, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Id in:oId];
opptyList3 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.Id in:oppSetId];
Thanks Srikanth.Below is my getter in my controller. I still see duplicates in the set.Can you pls help me
public list<Opportunity> getOpportunities(){ opptyList = [Select o.StageName, o.Name, o.Id, o.CloseDate, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Product_Specialist__r.Id =: UserInfo.getUserId()];
otmlist=[Select o.UserId,o.OpportunityId, o.Id From OpportunityTeamMember o where o.UserId=:UserInfo.getUserId()];
for(OpportunityTeamMember ot: otmlist){ oId.add(ot.OpportunityId); } opptyList2 = [Select o.StageName, o.Name, o.Id, o.CloseDate, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Id in:oId];
Thanks Srikanth . I got the solution based on your suggestion.
public list<Opportunity> getOpportunities(){ opptyList = [Select o.StageName, o.Name,o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Product_Specialist__r.Id =: UserInfo.getUserId()];
otmlist=[Select o.UserId,o.OpportunityId, o.Id From OpportunityTeamMember o where o.UserId=:UserInfo.getUserId()];
opptyList2 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name, o.CloseDate,o.of_Days_Open__c, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Id in:oId];
opptyList3 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.Id in:oppSetId];
Thanks Srikanth . I got the solution based on your suggestion.
public list<Opportunity> getOpportunities(){
opptyList = [Select o.StageName, o.Name,o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Product_Specialist__r.Id =: UserInfo.getUserId()];
otmlist=[Select o.UserId,o.OpportunityId, o.Id From OpportunityTeamMember o where o.UserId=:UserInfo.getUserId()];
for(OpportunityTeamMember ot: otmlist){
oId.add(ot.OpportunityId);
}
opptyList2 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name, o.CloseDate,o.of_Days_Open__c, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Id in:oId];
opptylist.addAll(opptyList2);
for(Opportunity o:opptylist){
oppSetId.add(o.Id);
}
opptyList3 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.Id in:oppSetId];
return opptyList3;
}
}
All Answers
Put them in a map
or if you just need IDs, put the iDs in a set
Map<ID, Account> will get you one account per ID
If you must have a list, then loop throught the map and add the records to the list one at a time.
In order to .addAll the map would have to be I believe Map<ID, Account[]> then you could .addAll(mapName.values());
Hi,
Add all the list elements to the Set using allAdd method.
Set will not allow duplciate values.
Thanks,
Srikanth. K
doh, I keep forgetting you can put sObjects in sets....good call.
Thanks Srikanth and Starz26. Inspite of using addall() i am getting the duplicates in the set.Any idea?
Hi,
Set will not allow duplicate values could you please debug and check....
Thanks,
Srikanth. K
Thanks Srikanth.Below is my getter in my controller. I still see duplicates in the set.Can you pls help me
public list<Opportunity> getOpportunities(){
opptyList = [Select o.StageName, o.Name, o.Id, o.CloseDate, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Product_Specialist__r.Id =: UserInfo.getUserId()];
otmlist=[Select o.UserId,o.OpportunityId, o.Id From OpportunityTeamMember o where o.UserId=:UserInfo.getUserId()];
for(OpportunityTeamMember ot: otmlist){
oId.add(ot.OpportunityId);
}
opptyList2 = [Select o.StageName, o.Name, o.Id, o.CloseDate, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Id in:oId];
opptylist.addAll(opptyList2);
oppSet.addAll(opptyList);
system.debug('opp set '+ oppSet);
opptyList3.addAll(oppSet);
return opptyList3;
}
HI,
Set checks duplcaite logic on entire field values that are queried.
add the Opportunity id to the set and re query with Set of ids.
Thanks,
Srikanth. K
Sorry Srikanth.I didn't get you.Could you pls explain me?
Thanks
Srikanth,
Could you pls explain this 'add the Opportunity id to the set and re query with Set of ids.'
Thanks
Hi,
Use the code below.
Thanks Srikanth . I got the solution based on your suggestion.
public list<Opportunity> getOpportunities(){
opptyList = [Select o.StageName, o.Name,o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Product_Specialist__r.Id =: UserInfo.getUserId()];
otmlist=[Select o.UserId,o.OpportunityId, o.Id From OpportunityTeamMember o where o.UserId=:UserInfo.getUserId()];
for(OpportunityTeamMember ot: otmlist){
oId.add(ot.OpportunityId);
}
opptyList2 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name, o.CloseDate,o.of_Days_Open__c, o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.StageName = 'Open' and o.Id in:oId];
opptylist.addAll(opptyList2);
for(Opportunity o:opptylist){
oppSetId.add(o.Id);
}
opptyList3 = [Select o.StageName, o.Name, o.Id,o.ownerId,o.owner.name,o.CloseDate,o.of_Days_Open__c,o.Amount, o.Employee__c,o.Employee__r.Name,o.Employee__r.Id From Opportunity o where o.Id in:oppSetId];
return opptyList3;
}
}