高章伟
2022-02-24 2aa8da8af66aa8ae00f25831aed6bb0364176e7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
global class DeleteOldDataBatch implements Database.Batchable<sObject> {
    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<document> d3List : [select id from document where folderId = '00l10000000f5O1' and CreatedDate <= :pNow3]) {
        //     delete d3List;
        // }
        // // Email画像 を削除
        // for (List<document> d2List : [select id from document where folderId = '00l10000000f5Zd' and CreatedDate <= :pNow2]) {
        //     delete d2List;
        // }
        // // SFDelete__c を削除
        // for (List<SFDelete__c> 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<SObject> sList) {
        delete sList;
    }
 
    global void finish(Database.BatchableContext BC) {
        // 今回はやることないです
    }
}