You need to sign in to do that
Don't have an account?

How to resolve the issue in map
Hi,
I am stuck in map.
Map-1 contactsAndEnrollmentMap
which contain contactsAndEnrollmentMap.put(mc.hed__Contact__r.id,enRollmentId);
Map --2 programEnrollmentAndProgramCodeMap
which contain
programEnrollmentAndProgramCodeMap.put(pe.id,programCode);
Now I want to create new map which contain programCode(Key ) and hed__Contact__r(Value);
Thanks
I am stuck in map.
Map-1 contactsAndEnrollmentMap
which contain contactsAndEnrollmentMap.put(mc.hed__Contact__r.id,enRollmentId);
Map --2 programEnrollmentAndProgramCodeMap
which contain
programEnrollmentAndProgramCodeMap.put(pe.id,programCode);
Now I want to create new map which contain programCode(Key ) and hed__Contact__r(Value);
Thanks
If possible you provide your object relationship ,or your code snnipet which should have query from these objects .So that some one can help you to built the map .
Thanks ,
Manoj
Map 1
list<hed__Course_Offering__c> moduleOfferingList=new list<hed__Course_Offering__c>();
moduleOfferingList=[select id,hed__Term__r.id,(select id,hed__Contact__r.id,hed__Program_Enrollment__r.id from hed__Course_Enrollment__r) from hed__Course_Offering__c];
for(hed__Course_Offering__c mo:moduleOfferingList){
set<id> contactId=new set<id>();
set<id> enRollmentId=new set<id>();
for(hed__Course_Enrollment__c mc:mo.hed__Course_Enrollment__r){
contactId.add(mc.hed__Contact__r.id);
enRollmentId.add(mc.hed__Program_Enrollment__r.id);
contactsAndEnrollmentMap.put(mc.hed__Contact__r.id,enRollmentId);//enrollment id and contacts
}
system.debug('contactId' +contactId);
system.debug('enRollmentId' +enRollmentId);
}
Map 2
list<hed__Program_Enrollment__c> programEnrollmentList=new list<hed__Program_Enrollment__c>();
programEnrollmentList= [select id,Program__r.Program_Code__c from hed__Program_Enrollment__c ];
map<id,set<string>> programEnrollmentAndProgramCodeMap=new map<id,set<string>>();
if(!programEnrollmentList.isEmpty()){
for(hed__Program_Enrollment__c pe:programEnrollmentList){
set<id> enrollmentIDs=new set<id>();
set<string> programCode=new set<string>();
programCode.add(pe.Program__r.Program_Code__c);
enrollmentIDs.add(pe.id);
programEnrollmentAndProgramCodeMap.put(pe.id,programCode);//enrollment id and Program code
system.debug('Program code' +programCode);
system.debug('enrollmentIDs' +enrollmentIDs);
}
}
Now I am trying to make a new map for Program code as key and contacts as Value
Are you able to save this code ? Hope this map have soem issue .Share me your relationship .
contactsAndEnrollmentMap.put(mc.hed__Contact__r.id,enRollmentId);//enrollment id and contacts
Above code have soem issue .
Thanks ,
Manoj
Hi,
Yes I am able but its working.
Here I am creating Maps :
1--enrollment id and Program code
2--for ContactIds and Program code
3--Program term and Program code
So I need to update the count of contactsIds and update on field.
global class countContactRecordsBatch implements Database.Batchable<sObject> {
global Database.QueryLocator start(Database.BatchableContext bc) {
string query='select id,Census_Date__c from hed__Term__c where Census_Date__c=LAST_N_DAYS:6';
system.debug('query' +query) ;
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext bc, List<hed__Term__c> scope){
system.debug('====scope====');
system.debug('====scope====');
//Map term and Program term
Map<id,list<Program_Session__c>> termProgramtermMap=new Map<id,list<Program_Session__c>>();
list<hed__Term__c> termList=new list<hed__Term__c>();
termList=[select id,name,(select id,name from Program_Sessions__r),(select id from hed__Course_Offerings__r) from hed__Term__c];
for(hed__Term__c tm:termList){
termProgramtermMap.put(tm.id, tm.Program_Sessions__r);
}
system.debug('termProgramtermMap1' +termProgramtermMap);
//Map for getting Contact and Enrollment id from Module offering //
Map<id,set<id>> contactsAndEnrollmentMap=new Map<id,set<id>>();
//contact Id and Program Enrollment id
list<hed__Course_Offering__c> moduleOfferingList=new list<hed__Course_Offering__c>();
moduleOfferingList=[select id,hed__Term__r.id,(select id,hed__Contact__r.id,hed__Program_Enrollment__r.id from hed__Course_Enrollment__r) from hed__Course_Offering__c];
for(hed__Course_Offering__c mo:moduleOfferingList){
set<id> contactId=new set<id>();
set<id> enRollmentId=new set<id>();
for(hed__Course_Enrollment__c mc:mo.hed__Course_Enrollment__r){
contactId.add(mc.hed__Contact__r.id);
enRollmentId.add(mc.hed__Program_Enrollment__r.id);
contactsAndEnrollmentMap.put(mc.hed__Contact__r.id,enRollmentId);//enrollment id and contacts
}
system.debug('contactId' +contactId);
system.debug('enRollmentId' +enRollmentId);
}
system.debug('termModuleofferingModuleConnectionMap' +contactsAndEnrollmentMap);
list<hed__Program_Enrollment__c> programEnrollmentList=new list<hed__Program_Enrollment__c>();
programEnrollmentList= [select id,Program__r.Program_Code__c from hed__Program_Enrollment__c ];
map<id,set<string>> programEnrollmentAndProgramCodeMap=new map<id,set<string>>();
if(!programEnrollmentList.isEmpty()){
for(hed__Program_Enrollment__c pe:programEnrollmentList){
set<id> enrollmentIDs=new set<id>();
set<string> programCode=new set<string>();
programCode.add(pe.Program__r.Program_Code__c);
enrollmentIDs.add(pe.id);
programEnrollmentAndProgramCodeMap.put(pe.id,programCode);//enrollment id and Program code
system.debug('Program code' +programCode);
system.debug('enrollmentIDs' +enrollmentIDs);
}
}
system.debug('programEnrollmentAndProgramCodeMap' +programEnrollmentAndProgramCodeMap);
/* ========*/
map<id,string> contactIdAndProgramCode=new map<id,string>();// for ContactIds and Program code
for(id i:contactsAndEnrollmentMap.keySet()){//contact Ids
for(string proC:programEnrollmentAndProgramCodeMap.get(i)){
contactIdAndProgramCode.put(i,proC);/*ContactIds and Program code */
system.debug('==contactIdAndProgramCode=' +contactIdAndProgramCode);
system.debug('contactIdAndProgramCode' +contactIdAndProgramCode);
}
}
map<string,id> updatedContactIdAndProgramCode=new map<string,id>();
for(id keyValue :contactIdAndProgramCode.keySet()){
updatedContactIdAndProgramCode.put(contactIdAndProgramCode.get(keyValue),keyValue); //Program Code and ContactIds
system.debug('updatedContactIdAndProgramCode' +updatedContactIdAndProgramCode);
}
list<Program_Session__c> programTermListWithProgramCode=new list<Program_Session__c>();
programTermListWithProgramCode= [select id,Program__r.id,Program__r.Program_Code__c from Program_Session__c];
map<id,string> programTermAndprogramCodeMap=new map<id,string>();
for(Program_Session__c ps:programTermListWithProgramCode){
programTermAndprogramCodeMap.put(ps.id,ps.Program__r.Program_Code__c); //Program term and Program code //
}
system.debug('programTermAndprogramCodeMap' +programTermAndprogramCodeMap);
map<string,id> updatedprogramTermAndprogramCodeMap=new map<string,id>();
for(id KeyValue :programTermAndprogramCodeMap.keySet()){
updatedprogramTermAndprogramCodeMap.put(programTermAndprogramCodeMap.get(KeyValue),keyValue);//Program code and Program Term
}
system.debug('updatedprogramTermAndprogramCodeMap' +updatedprogramTermAndprogramCodeMap);
// updatedprogramTermAndprogramCodeMap.put(programTermAndprogramCodeMap.get(KeyValue),keyValue);Program code and Program Term
// updatedContactIdAndProgramCode.put(contactIdAndProgramCode.get(keyValue),keyValue);Program Code and ContactIds
list<Program_Session__c> programTermListUpdated=new list<Program_Session__c>();
for(id termId:termProgramtermMap.keySet()){
for(Program_Session__c pt : termProgramtermMap.get(termId)){
if(!updatedprogramTermAndprogramCodeMap.isEmpty() && !updatedContactIdAndProgramCode.isEmpty()){
for(string s:updatedContactIdAndProgramCode.keySet()){
if(updatedprogramTermAndprogramCodeMap.containsKey(s)){
// pt.New_enrolments_actual__c=updatedContactIdAndProgramCode.values().size();
system.debug('==New_enrolments_actual__c==' +pt.New_enrolments_actual__c);
programTermListUpdated.add(pt);
}
}
}
}
}
if(!programTermListUpdated.isEmpty()){
update programTermListUpdated;
}
system.debug('programTermListUpdated' +programTermListUpdated);
}
global void finish(Database.BatchableContext bc){
// execute any post-processing operations
}
}
On the Basis of program code I have to count number of contactsIds and Update on field.