You need to sign in to do that
Don't have an account?
Surya.236
Hi, How to convert the following nested for loop to map?,
How to convert the folloeing nested for loop using map.
as it a id, list . how to assign values.
public class SLAandAgeOverSLA {
public void calculatetime(List<Case> caseids,Map<id,case> casemap){
List<CaseMilestone> milestonelist = [select caseId,id,isCompleted,MilestoneTypeId,StartDate,TargetDate,BusinessHoursId,MilestoneType.name,CompletionDate from
CaseMilestone where(MilestoneType.name='First Response' or MilestoneType.name='Technical Resolution')
AND isCompleted=true AND caseid IN:caseids];
map<string,List<CaseMilestone>> milestonemap = new map<string,List<CaseMilestone>>();
for(CaseMilestone ml: milestonelist ){
if(milestonemap.get(ml.caseId)==null){
List<CaseMilestone> mtList=new List<CaseMilestone>();
mtList.add(ml);
milestonemap.put(ml.CaseId,mtList);
}else if(milestonemap.get(ml.caseId)!=null){
List<CaseMilestone> mtList=milestonemap.get(ml.caseId);
mtList.add(ml);
}
}
for(Case c: caseids){
if(c.Request_for_Closure_Date__c!=null && milestonemap.containskey(c.id) ){
for(CaseMilestone ml:milestonemap.get(c.id)){
if(ml.MilestoneType.name=='First Response'){
c.Test_Ignore__c = ml.CompletionDate;
}
else if(ml.MilestoneType.name=='Technical Resolution'){
c.Test_Ignore_2__c = ml.CompletionDate;
}
}
}
}
}
}
as it a id, list . how to assign values.
public class SLAandAgeOverSLA {
public void calculatetime(List<Case> caseids,Map<id,case> casemap){
List<CaseMilestone> milestonelist = [select caseId,id,isCompleted,MilestoneTypeId,StartDate,TargetDate,BusinessHoursId,MilestoneType.name,CompletionDate from
CaseMilestone where(MilestoneType.name='First Response' or MilestoneType.name='Technical Resolution')
AND isCompleted=true AND caseid IN:caseids];
map<string,List<CaseMilestone>> milestonemap = new map<string,List<CaseMilestone>>();
for(CaseMilestone ml: milestonelist ){
if(milestonemap.get(ml.caseId)==null){
List<CaseMilestone> mtList=new List<CaseMilestone>();
mtList.add(ml);
milestonemap.put(ml.CaseId,mtList);
}else if(milestonemap.get(ml.caseId)!=null){
List<CaseMilestone> mtList=milestonemap.get(ml.caseId);
mtList.add(ml);
}
}
for(Case c: caseids){
if(c.Request_for_Closure_Date__c!=null && milestonemap.containskey(c.id) ){
for(CaseMilestone ml:milestonemap.get(c.id)){
if(ml.MilestoneType.name=='First Response'){
c.Test_Ignore__c = ml.CompletionDate;
}
else if(ml.MilestoneType.name=='Technical Resolution'){
c.Test_Ignore_2__c = ml.CompletionDate;
}
}
}
}
}
}
PFB the code.
public class SLAandAgeOverSLA {
public void calculatetime(List<Case> caseids,Map<id,case> casemap){
List<CaseMilestone> milestonelist = [select caseId,id,isCompleted,MilestoneTypeId,StartDate,TargetDate,BusinessHoursId,MilestoneType.name,CompletionDate from
CaseMilestone where(MilestoneType.name='First Response' or MilestoneType.name='Technical Resolution')
AND isCompleted=true AND caseid IN:caseids];
map<string,List<CaseMilestone>> milestonemap = new map<string,List<CaseMilestone>>();
for(CaseMilestone ml: milestonelist ){
if(milestonemap.get(ml.caseId)==null){
List<CaseMilestone> mtList=new List<CaseMilestone>();
mtList.add(ml);
milestonemap.put(ml.CaseId,mtList);
}else if(milestonemap.get(ml.caseId)!=null){
List<CaseMilestone> mtList=milestonemap.get(ml.caseId);
mtList.add(ml);
}
}
for(Case c: caseids){
if(c.Request_for_Closure_Date__c!=null && milestonemap.containskey(c.id) ){
//for(CaseMilestone ml:milestonemap.get(c.id)){
CaseMilestone ml;
if(milestonemap!=null && milestonemap.size()>0 && milestonemap).containsKey(c.Id){
m1 = milestonemap.get(c.id);
if(ml.MilestoneType.name=='First Response'){
c.Test_Ignore__c = ml.CompletionDate;
}
else if(ml.MilestoneType.name=='Technical Resolution'){
c.Test_Ignore_2__c = ml.CompletionDate;
}
}
//}
}
}
}
}