• Michael Stclair
  • NEWBIE
  • 0 Points
  • Member since 2023

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 3
    Replies

I'm forced to change the password for Connector User on both sides of Marketing Cloud and Sales Cloud. Will this have any impact on what is currently running and set up?
  • January 11, 2023
  • Like
  • 0
Hi there,
I have been trying to send some case and related case records from apex batch class from SF to SF connectors with code.
But here i am stuck init as it is unable to execute.
Which means its not getting inside the start and execute method of batch class. Please let me understand where i am wrong.
Below is the code for same :
public class SFConnectionFromABCToDEFOrg implements Database.Batchable<sObject> {
    public Date dateFrom = date.newInstance(2023,01,10 0,0,0);
    public Id connectionId;
    public String query;
    public SFConnectionFromABCToDEFOrg(Date dateRange) {        
        dateFrom = dateRange;
        system.debug('inside const '+dateRange);
        connectionId = [Select Id, ConnectionStatus, ConnectionName From PartnerNetworkConnection Where ConnectionName = 'MyConnectionOrg' AND ConnectionStatus = 'Accepted'].Id;
    }
    
    public Database.QueryLocator start(Database.BatchableContext BC){
        system.debug('inside start ');
        query = 'SELECT Id, (SELECT Id FROM Attachments), (SELECT Id FROM CaseComments), (SELECT Id FROM Events), (SELECT Id FROM Tasks) FROM CASE WHERE createdDate>=:'+dateFrom;
        system.debug('inside start '+query);
      	return Database.getQueryLocator(query);
   }

   public void execute(Database.BatchableContext BC, List<Case> caseRecords){
       system.debug('inside exec '+caseRecords);
       List <PartnerNetworkRecordConnection> prncList = new List<PartnerNetworkRecordConnection>();
       for(Case cs : caseRecords){
           prncList.add(new PartnerNetworkRecordConnection(
               ConnectionId = connectionId,
               LocalRecordId = cs.Id,
               SendClosedTasks = true,
               SendOpenTasks = true,
               SendEmails = true));
           
           if(!cs.Attachments.isEmpty()){
               for(Attachment att : cs.Attachments){
                   prncList.add(new PartnerNetworkRecordConnection(
                       ConnectionId = connectionId,
                       LocalRecordId = att.Id,
                       SendClosedTasks = true,
                       SendOpenTasks = true,
                       SendEmails = true));
               }
           }
		
       
           if(!cs.CaseComments.isEmpty()){
               for(CaseComment cc : cs.CaseComments){
                   prncList.add(new PartnerNetworkRecordConnection(
                       ConnectionId = connectionId,
                       LocalRecordId = cc.Id,
                       SendClosedTasks = true,
                       SendOpenTasks = true,
                       SendEmails = true));
               }
           }
           
           if(!cs.Events.isEmpty()){
               for(Event evt : cs.Events){
                   prncList.add(new PartnerNetworkRecordConnection(
                       ConnectionId = connectionId,
                       LocalRecordId = evt.Id,
                       SendClosedTasks = true,
                       SendOpenTasks = true,
                       SendEmails = true));
               }
           }
           
           if(!cs.Tasks.isEmpty()){
               for(Task tsk : cs.Tasks){
                   prncList.add(new PartnerNetworkRecordConnection(
                       ConnectionId = connectionId,
                       LocalRecordId = tsk.Id,
                       SendClosedTasks = true,
                       SendOpenTasks = true,
                       SendEmails = true));
               }
           }
       }
       
       if(!prncList.isEmpty()){

            try{
                system.debug('prncList : '+prncList);
                // upsert prncList;
            }
            catch(System.Dmlexception dmlExceptionInstance){
                System.debug('Record Share Error:' + dmlExceptionInstance.getMessage());
            }
        }
   }

   public void finish(Database.BatchableContext BC){
       
   }
}