Apex Database.Batchableインターフェースを使用する方法

環境
Salesforce

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

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

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

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

public class TestBatch implements Database.Batchable<sObject> {
    /* Database.QueryLocator を利用する場合 */
    public Database.QueryLocator start(Database.BatchableContext bc) {
        // レコードをクエリする
        return Database.getQueryLocator(
            'SELECT ID FROM Account'
        );
    }

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

2.バッチの実行方法
TestBatch batch = new TestBatch();
Database.executeBatch(batch);
インスタンスを作成してから、Database.executeBatch() を呼び出すことで実行します。

Apex

Posted by arkgame