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);