global class DeleteOldDataBatch implements Database.Batchable { global final Boolean isTest; String query; /** * コンスタント、パラメータを受け取る */ global DeleteOldDataBatch(Boolean isTest) { // このBatchは毎日動く予定、 this.isTest = isTest; } /** * 想定は毎日削除する対象データは10000件以下、startはいらないですかも * startには、return null して、 executeのロジックは直接 start にかく */ global Database.QueryLocator start(Database.BatchableContext BC){ Datetime pNow3 = System.now(); // 医院分析PDF Datetime pNow2 = System.now(); // Email画像 Datetime pNow = System.now(); // BatchIF_Log__c を削除 if (this.isTest == false) { pNow3 = pNow3.addDays(-6); pNow2 = pNow2.addDays(-31); pNow = pNow.addDays(-366); } // // 医院分析PDF を削除 // for (List d3List : [select id from document where folderId = '00l10000000f5O1' and CreatedDate <= :pNow3]) { // delete d3List; // } // // Email画像 を削除 // for (List d2List : [select id from document where folderId = '00l10000000f5Zd' and CreatedDate <= :pNow2]) { // delete d2List; // } // // SFDelete__c を削除 // for (List dList : [Select Id from SFDelete__c where CreatedDate <= :pNow]) { // delete dList; // } //删除询价拍照数据 if(this.isTest == false){ query = 'select Id from SS_backorder_list__c where Evaluation_date__c < 2019-04-01'; }else{ query = 'select Id from SS_Prospect_detail_product__c where Create_date__c < 2019-05-01'; } // BatchIF_Log__c を削除 return Database.getQueryLocator(query); } /** * SObjectは SFDelete__c と想定 */ global void execute(Database.BatchableContext BC, List sList) { delete sList; } global void finish(Database.BatchableContext BC) { // 今回はやることないです } }