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() を呼び出すことで実行します。