I need to write batch class for inserting records to one standard object(case) to custome object. also if any record get updated, then it should also get updated in custom object also. i wrote below code for insert operation but don't know what nto do for update operation.
global class Batch_Tableau implements Database.Batchable <Sobject>,Database.Stateful {
List<Case> Clist = new List<Case>();
global Database.QueryLocator start(Database.BatchableContext BC){
// String query = 'Select ACS_Defect_Payslip_Counts__c,ContactEmail,Country__c,Course__c,CycleTimeTotal__c,CreatedDate,ContactFax,Contributor__c,ContactMobile,ActualCycleTimeHours__c,Contact_Work_Country__c,Contact_Work_Title__c,Contact_Work_City__c,Contact_via_Email__c,Contact_SBG__c,Contact_Region__c,Contact_Preferred_Name__c,Contact_EID__c,Contact_Email_Check__c,Contact_Center_Case__c,Completed_Checklist_Items__c,Checklist_Updated__c,ClosedDate,Class_Start_Date__c,Cloned__c,Closed_Within__c,Closed_Case_in_GMT__c, Acutal_Target_Time__c,Adela__c, Area_Text__c, AskHR_Status__c, AssignmentTimeHours__c,Checklist_Progress__c, Audit__c, Audit_Due_Date_Time__c, Audit_Due_In_days__c, Audit_Fail__c, Audit_Priority__c, Audit_Type__c, Auditor__c, Auditor_Assigned_On__c, Cancelled__c, Case_Age__c, Case_Close_Month__c, Case_Contact_Country__c, Case_Due_by_Day__c, Case_Due_by_Time__c, Case_Open_Month__c, Case_Reason__c, Case_Status__c, Case_Target__c, Case_Update_Alert__c, CaseAge__c, CaseNumber, CET_met__c,Checklist_generated__c,Date_Audited__c,Date_Committed__c,Date_Committed_Change_Reason__c from case where createddate = system.today() AND (RecordType.Name not like \'%Finance%\' OR RecordType.Name not like \'%Decom%\')';
String query = 'Select id,ACS_Defect_Payslip_Counts__c,ContactEmail,Country__c,Course__c,CycleTimeTotal__c,CreatedDate,ContactFax,Contributor__c,ContactMobile,ActualCycleTimeHours__c,Contact_Work_Country__c,Contact_Work_Title__c,Contact_Work_City__c,Contact_via_Email__c,Contact_SBG__c,Contact_Region__c,Contact_Preferred_Name__c,Contact_EID__c,Contact_Email_Check__c,Contact_Center_Case__c,Completed_Checklist_Items__c,Checklist_Updated__c,ClosedDate,Class_Start_Date__c,Cloned__c,Closed_Within__c,Closed_Case_in_GMT__c, Acutal_Target_Time__c,Adela__c, Area_Text__c, AskHR_Status__c, AssignmentTimeHours__c,Checklist_Progress__c, Audit__c, Audit_Due_Date_Time__c, Audit_Due_In_days__c, Audit_Fail__c, Audit_Priority__c, Audit_Type__c, Auditor__c, Auditor_Assigned_On__c, Cancelled__c, Case_Age__c, Case_Close_Month__c, Case_Contact_Country__c, Case_Due_by_Day__c, Case_Due_by_Time__c, Case_Open_Month__c, Case_Reason__c, Case_Status__c, Case_Target__c, Case_Update_Alert__c, CaseAge__c, CaseNumber, CET_met__c,Checklist_generated__c,Date_Audited__c,Date_Committed__c,Date_Committed_Change_Reason__c from case where createddate = system.today() AND (RecordType.Name not like \'%Finance%\' OR RecordType.Name not like \'%Decom%\')';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Case> batch){
List<Tablue__c> Tablist = new List<Tablue__c>();
List<Tablue__c> query_tablue=new List<Tablue__c>();// change name
Map<id,Tablue__c> case_id_to_tablue= new Map<id,Tablue__c>();
//query List of tablue.
query_tablue=[Select id,case__c from Tablue__c where case__c in : batch];
For(Case c:batch)
{
Tablue__c tab= new Tablue__c();
//Tablist.add(tab.ACS_Defect_Payslip_Counts__c = c.ACS_Defect_Payslip_Counts__c);
tab.Actual_Cycle_Time_Hours__c = c.ActualCycleTimeHours__c;
tab.Actual_Target_Time__c = c.Acutal_Target_Time__c;
tab.Adela__c = c.Adela__c;
tab.Area_Text__c = c.Area_Text__c;
tab.AskHR_Status__c = c.AskHR_Status__c;
tab.Assignment_time_hours__c = c.AssignmentTimeHours__c;
tab.Audit__c = c.Audit__c;
tab.Audit_Due_Date_Time__c = c.Audit_Due_Date_Time__c;
tab.Audit_Due_In_days__c = c.Audit_Due_In_days__c;
tab.Audit_Fail__c = c.Audit_Fail__c;
tab.Audit_Priority__c = c.Audit_Priority__c;
tab.Audit_Type__c = c.Audit_Type__c;
tab.Auditor__c = c.Auditor__c;
tab.Auditor_Assigned_On__c = c.Auditor_Assigned_On__c;
tab.Cancelled__c = c.Cancelled__c;
tab.Case_Age__c = c.Case_Age__c;
tab.Case_Close_Month__c = c.Case_Close_Month__c;
tab.Case_Contact_Country__c = c.Case_Contact_Country__c;
tab.Case_Due_by_Day__c = c.Case_Due_by_Day__c;
tab.Case_Due_by_Time__c = c.Case_Due_by_Time__c;
tab.Case_Open_Month__c = c.Case_Open_Month__c;
tab.Case_Reason__c = c.Case_Reason__c;
tab.Case_Status__c = c.Case_Status__c;
tab.Case_Target__c = c.Case_Target__c;
tab.Case_Update_Alert__c = c.Case_Update_Alert__c;
tab.CaseAge__c = c.CaseAge__c;
tab.Case_number__c = c.CaseNumber;
tab.CET_met__c = c.CET_met__c;
tab.Checklist_generated__c = c.Checklist_generated__c;
tab.Checklist_Progress__c = c.Checklist_Progress__c;
tab.Checklist_Updated__c =c.Checklist_Updated__c;
tab.Class_Start_Date__c = c.Class_Start_Date__c;
tab.Cloned__c =c.Cloned__c;
tab.Closed_Date_in_GMT__c =c.Closed_Case_in_GMT__c;
tab.Closed_Within__c = c.Closed_Within__c;
tab.ClosedDate__c = c.ClosedDate;
tab.Completed_Checklist_Items__c = c.Completed_Checklist_Items__c;
tab.Contact_Center_Case__c = c.Contact_Center_Case__c;
tab.Contact_EID__c = c.Contact_EID__c;
tab.Contact_Email_Check__c = c.Contact_Email_Check__c;
tab.Contact_Preferred_Name__c = c.Contact_Preferred_Name__c;
tab.Contact_Region__c =c.Contact_Region__c;
tab.Contact_SBG__c = c.Contact_SBG__c;
tab.Contact_via_Email__c = c.Contact_via_Email__c;
tab.Contact_Work_City__c =c.Contact_Work_City__c;
tab.Contact_Work_Country__c = c.Contact_Work_Country__c;
tab.Contact_Work_Title__c = c.Contact_Work_Title__c;
tab.Contact_Email__c = c.ContactEmail;
tab.Contact_Fax__c = c.ContactFax;
tab.Contact_Mobile__c = c.ContactMobile;
tab.Contributor__c =c.Contributor__c;
tab.Country__c =c.Country__c;
tab.Course__c =c.Course__c;
tab.CreatedDate__c = c.CreatedDate;
tab.CycleTimeTotal__c = c.CycleTimeTotal__c;
tab.Date_Audited__c=c.Date_Audited__c;// added by me
tab.Date_Committed__c=c.Date_Committed__c;
tab.Date_Committed_Change_Reason__c=c.Date_Committed_Change_Reason__c;
tab.Date_Committed_Change_Reason_Picklist__c=c.Date_Committed_Change_Reason_Picklist__c;
tab.Date_Committed_Change_To__c=c.Date_Committed_Change_To__c;
tab.Date_Committed_Date__c=c.Date_Committed_Date__c;
tab.Date_Committed_Past_Due__c=c.Date_Committed_Past_Due__c;
tab.Date_of_Meeting__c=c.Date_of_Meeting__c;
tab.Days_Past_Target__c=c.Days_Past_Target__c;
tab.Days_Remaining__c=c.Days_Remaining__c;
tab.Days_Remaining_Formula__c=c.Days_Remaining_Formula__c;
tab.Days_Remaining_NonVendorCases__c=c.Days_Remaining_NonVendorCases__c;
tab.Default_Entitlement__c=c.Default_Entitlement__c;
tab.Defect_File_Feed_Date__c=c.Defect_File_Feed_Date__c;
tab.Delayed_Payslips_Overall__c=c.Delayed_Payslips_Overall__c;
tab.Description__c=c.Description;
tab.Due_Date__c=c.Due_Date__c;
tab.Effective_Date__c=c.Effective_Date__c;
tab.Effective_Date_of_Transaction__c=c.Effective_Date_of_Transaction__c;
tab.Email_BCC_Address__c=c.Email_BCC_Address__c;
tab.Email_Sent_Date__c=c.Email_Sent_Date__c;
tab.Email_sent_Date_Time__c=c.Email_sent_Date_Time__c;
tab.Email_Status__c=c.Email_Status__c;
tab.Email_Subject__c=c.Email_Subject__c;
tab.Email_To_Address__c=c.Email_To_Address__c;
tab.Email_to_Case__c=c.Email_to_Case__c;
tab.Employee__c=c.Employee__c;
tab.Employee_EID__c=c.Employee_EID__c;
tab.Employee_Email__c=c.Employee_Email__c;
tab.Expected_Net_Working_Days__c=c.Expected_Net_Working_Days__c;
tab.Fail_Reason__c=c.Fail_Reason__c;
tab.FlowParent__c=c.FlowParent__c;
tab.FRCS_Contact_Country__c=c.FRCS_Contact_Country__c;
tab.Frequency__c=c.Frequency__c;
tab.From_Address__c=c.From_Address__c;
tab.From_Email_Address__c=c.From_Email_Address__c;
tab.Function__c=c.Function__c;
tab.Function_BDD__c=c.Function_BDD__c;
tab.Function_MTS__c=c.Function_MTS__c;
Tablist.add(tab);
}
insert Tablist;
}
global void finish(Database.BatchableContext BC){
}