Apex Database.Batchableで一括処理バッチを実行する

環境
Salesforce

説明
Database.Batchable は、start(), execute(), finish() という3つのメソッドを持っています。
start()
処理したいデータをクエリして返すようにします。

execute()
start() でクエリしてきたデータに対しての処理を記述します。
execute() の処理はクエリしたデータを数件ごとに分割して実行されます。

finish()
全てのデータに対して処理が終わったあと実行される処理を記述します。

使用例
1.バッチのサンプルコード

public class TestBatch implements Database.Batchable<sObject> {
    /* Iterable<sObject> を利用する場合 */
    public Iterable<sObject> start(Database.BatchableContext bc) {
        List<Account> accList = [SELECT ID FROM Account];
        return accList;
    } 

    public void execute(Database.BatchableContext bc, List<P> records){
        // レコードに対する処理コード
    }
    public void finish(Database.BatchableContext bc){
        // バッチ終了時の処理コード
    }
}

2.バッチの実行方法
TestBatch batch = new TestBatch();
// 100件ごとに実行
Database.executeBatch(batch, 100);

Apex

Posted by arkgame