You need to sign in to do that
Don't have an account?
Prakhyat sapra
can anyone help me to resolve the error in apex.Expression must be a list type: Map<Id,List<String>>????
global void execute(Database.BatchableContext BC, list<case> caseList){
set<Id> getIDs = new Set<Id>();
Map<Id,Id> caseWithCasePlanIdMap = new Map<Id,Id>();
Map<Id, List<String>> casePlanWithGoalsMap = new Map<Id, List<String>>();
for(Case cse : caseList){
if(cse.Case_Plans__r != null && cse.Case_Plans__r.size() >0){
caseWithCasePlanIdMap.put(cse.id, cse.Case_Plans__r[0].Id);
}
}
system.debug('caseWithCasePlanIdMap'+caseWithCasePlanIdMap);
Map<Id, case> caseMap = new Map<Id, case>(caseList);
System.debug('caseMap'+caseMap);
for(caseman__Goal__c goal : [SELECT Id,Name, caseman__CasePlan__c, caseman__Status__c FROM caseman__Goal__c
where caseman__CasePlan__c IN: caseWithCasePlanIdMap.values() AND caseman__Status__c !='Completed']){ // 'a0SM000000EBStkMAH' ]){
System.debug('caseWithCasePlanIdMap.values()'+caseWithCasePlanIdMap.values());
System.debug('goal'+goal);
if(!casePlanWithGoalsMap.containskey(goal.caseman__CasePlan__c)){
casePlanWithGoalsMap.put(goal.caseman__CasePlan__c, new List<String>());
}
casePlanWithGoalsMap.get(goal.caseman__CasePlan__c).add(goal.Name);
casePlanWithGoalsMap.get(goal.caseman__CasePlan__c).add(goal.caseman__Status__c);
}
System.debug('casePlanWithGoalsMap'+casePlanWithGoalsMap);
CaseSevenDayFollowUpEmailBatch.afterSevenDaysEmail(caseList,casePlanWithGoalsMap);
global static void afterSevenDaysEmail(List<case> CaseList, Map<Id, List<String>> casePlanData){
System.debug('casePlanData'+casePlanData);
// for(case cas : CaseList){
// for(caseman__CasePlan__c c : cas.Case_Plans__r){
// for(caseman__Goal__c go :c.caseman__Goals__r){
// List<caseman__CasePlan__c> casePlanList =[Select id, Name, caseman__Status__c From caseman__CasePlan__c WHERE caseman__Status__c!= 'Completed'];
Integer casePlanLength= casePlanData.size();
System.debug('casePlanLength'+casePlanLength);
// }
//}
// }
if(casePlanData.size() > 0){ //casePlanLength
system.debug('casePlanData.size()'+casePlanData.size());
// Set<Id> casePlanId = new Set<Id>();
Set<id> goalIdSet = new Set<Id>();
for(case ca :CaseList){
for(caseman__CasePlan__c casePlan1 : ca.Case_Plans__r){
System.debug('caseman__Goals__r'+casePlan1.caseman__Goals__r);
for(caseman__Goal__c goal : casePlan1.caseman__Goals__r){
System.debug('goal - ' + goal);
goalIdSet.add(goal.Id);
}
Map<id,List<caseman__ActionItem__c>> actionItemMap = new Map<id,List<caseman__ActionItem__c>>();
List<caseman__ActionItem__c> actionItemList = [Select Id,Name,caseman__Goal__c,caseman__Status__c
from caseman__ActionItem__c where caseman__Goal__c =: goalIdSet];
System.debug('actionItemList'+actionItemList);
for(caseman__ActionItem__c item : actionItemList){
if(actionItemMap.containsKey(item.caseman__Goal__c))
{
actionItemMap.get(item.caseman__Goal__c).add(item);
}
else
{
actionItemMap.put(item.caseman__Goal__c,new list<caseman__ActionItem__c>{item});
}
}
String casePlanStatus = '';
String caseGoalStatus = '';
if(iterCase.Case_Plans__r.size() > 0) {
casePlanStatus = '<br/>'+iterCase.Case_Plans__r[0].caseman__Status__c+'<br/>';
System.debug('casePlanStatus'+casePlanStatus);
System.debug('casePlanData - ' + casePlanData);
if(casePlanData.size() > 0){
// System.debug('casePlanData - ' + casePlanData.get('caseman__Status__c'));
caseGoalStatus = '<br/>'+casePlanData[1]+'<br/>';
System.debug('caseman__Goal__c.caseman__Status__c'+caseman__Goal__c.caseman__Status__c);
System.debug('caseGoalStatus'+caseGoalStatus);
}
}
}
}
set<Id> getIDs = new Set<Id>();
Map<Id,Id> caseWithCasePlanIdMap = new Map<Id,Id>();
Map<Id, List<String>> casePlanWithGoalsMap = new Map<Id, List<String>>();
for(Case cse : caseList){
if(cse.Case_Plans__r != null && cse.Case_Plans__r.size() >0){
caseWithCasePlanIdMap.put(cse.id, cse.Case_Plans__r[0].Id);
}
}
system.debug('caseWithCasePlanIdMap'+caseWithCasePlanIdMap);
Map<Id, case> caseMap = new Map<Id, case>(caseList);
System.debug('caseMap'+caseMap);
for(caseman__Goal__c goal : [SELECT Id,Name, caseman__CasePlan__c, caseman__Status__c FROM caseman__Goal__c
where caseman__CasePlan__c IN: caseWithCasePlanIdMap.values() AND caseman__Status__c !='Completed']){ // 'a0SM000000EBStkMAH' ]){
System.debug('caseWithCasePlanIdMap.values()'+caseWithCasePlanIdMap.values());
System.debug('goal'+goal);
if(!casePlanWithGoalsMap.containskey(goal.caseman__CasePlan__c)){
casePlanWithGoalsMap.put(goal.caseman__CasePlan__c, new List<String>());
}
casePlanWithGoalsMap.get(goal.caseman__CasePlan__c).add(goal.Name);
casePlanWithGoalsMap.get(goal.caseman__CasePlan__c).add(goal.caseman__Status__c);
}
System.debug('casePlanWithGoalsMap'+casePlanWithGoalsMap);
CaseSevenDayFollowUpEmailBatch.afterSevenDaysEmail(caseList,casePlanWithGoalsMap);
global static void afterSevenDaysEmail(List<case> CaseList, Map<Id, List<String>> casePlanData){
System.debug('casePlanData'+casePlanData);
// for(case cas : CaseList){
// for(caseman__CasePlan__c c : cas.Case_Plans__r){
// for(caseman__Goal__c go :c.caseman__Goals__r){
// List<caseman__CasePlan__c> casePlanList =[Select id, Name, caseman__Status__c From caseman__CasePlan__c WHERE caseman__Status__c!= 'Completed'];
Integer casePlanLength= casePlanData.size();
System.debug('casePlanLength'+casePlanLength);
// }
//}
// }
if(casePlanData.size() > 0){ //casePlanLength
system.debug('casePlanData.size()'+casePlanData.size());
// Set<Id> casePlanId = new Set<Id>();
Set<id> goalIdSet = new Set<Id>();
for(case ca :CaseList){
for(caseman__CasePlan__c casePlan1 : ca.Case_Plans__r){
System.debug('caseman__Goals__r'+casePlan1.caseman__Goals__r);
for(caseman__Goal__c goal : casePlan1.caseman__Goals__r){
System.debug('goal - ' + goal);
goalIdSet.add(goal.Id);
}
Map<id,List<caseman__ActionItem__c>> actionItemMap = new Map<id,List<caseman__ActionItem__c>>();
List<caseman__ActionItem__c> actionItemList = [Select Id,Name,caseman__Goal__c,caseman__Status__c
from caseman__ActionItem__c where caseman__Goal__c =: goalIdSet];
System.debug('actionItemList'+actionItemList);
for(caseman__ActionItem__c item : actionItemList){
if(actionItemMap.containsKey(item.caseman__Goal__c))
{
actionItemMap.get(item.caseman__Goal__c).add(item);
}
else
{
actionItemMap.put(item.caseman__Goal__c,new list<caseman__ActionItem__c>{item});
}
}
String casePlanStatus = '';
String caseGoalStatus = '';
if(iterCase.Case_Plans__r.size() > 0) {
casePlanStatus = '<br/>'+iterCase.Case_Plans__r[0].caseman__Status__c+'<br/>';
System.debug('casePlanStatus'+casePlanStatus);
System.debug('casePlanData - ' + casePlanData);
if(casePlanData.size() > 0){
// System.debug('casePlanData - ' + casePlanData.get('caseman__Status__c'));
caseGoalStatus = '<br/>'+casePlanData[1]+'<br/>';
System.debug('caseman__Goal__c.caseman__Status__c'+caseman__Goal__c.caseman__Status__c);
System.debug('caseGoalStatus'+caseGoalStatus);
}
}
}
}
modify the below line will resolve the issue.
If this helps, Please mark it as best answer.
Thanks!!
Looks like this line is erroneous:
caseWithCasePlanIdMap.put(cse.id, cse.Case_Plans__r[0].Id);
As in the value pair you are adding the instance of the case_Plans object and the map type is expecting a List of String both are not matching.
Change the map value pair data type accordingly. If this helps, Please mark it as best answer.