I've created a custom object called Close Plan Contact Role (CPCR). My plan is to use a scheduled apex class to periodically move data from Opportunity Contact Role (OppCR) and into CPCR every hour. My code is below. Can someone please help fix what's wrong?
public class addOppCRtoCPCR {
public addOppCRtoCPCR() {
Map<Id,String> OppCRlMap = new Map<Id,String>();
// Query all Close Plan contact roles.
List<Close_Plan_Contact_Role__c> CPCRList = [ SELECT id, Contact__c, IsDeleted__c, IsPrimary__c, Opportunity__c, Role__c
FROM Close_Plan_Contact_Role__c ];
// Query all Opportunity contact roles. Place them in a list
List<OpportunityContactRole> OppCRlist = [ SELECT id, ContactId, IsDeleted, IsPrimary, OpportunityId, Role
FROM OpportunityContactRole ];
/* ADD MISSING RECORDS FROM OppCRlist to CPCRList */
// If OppCRlist is larger than CPCRList, add missing contacts to CPCRList
if(OppCRlist.size() > CPCRList.size()){
for(Integer i = 0; i < OppCRlist.size(); i++ ){
OppCRlMap.put(OppCRlist.id, 'NoValue');
}
// Loop through OppCRlist
for(Close_Plan_Contact_Role__c CPCR : CPCRList){
if(!OppCRlMap.contains(CPCR)){
// Create a new Close_Plan_Contact_Role__c record
<Close_Plan_Contact_Role__c> CPCRrecord = new <Close_Plan_Contact_Role__c>();
// populate Close_Plan_Contact_Role__c fields
CPCRrecord.Contact__c = CPCR.ContactId;
CPCRrecord.IsDeleted__c = CPCR.IsDeleted;
CPCRrecord.IsPrimary__c = CPCR.IsPrimary;
CPCRrecord.Opportunity__c = CPCR.OpportunityId;
CPCRrecord.Role__c = CPCR.Role;
// Add new record to set
CPCRList.add(CPCRrecord);
}
}
insert CPCRList;
}
}
}