Apex 一括処理バッチDatabase.Batchableを使用するサンプル
環境
Salesforce Apex
概要
execute() では、start() でクエリしてきたデータに対しての処理を記述します。
start() では、処理したいデータをクエリして返すようにします。
finish() では、全てのデータに対して処理が終わったあと実行される処理を記述します
使用例
public class SampleBatch implements Database.Batchable<sObject> {
/* Database.QueryLocator を使う場合 */
public Database.QueryLocator start(Database.BatchableContext db) {
// レコードをクエリする
return Database.getQueryLocator(
'SELECT ID FROM Account'
);
}
public void execute(Database.BatchableContext bc, List<P> records){
// レコードに対する処理コード
}
public void finish(Database.BatchableContext bc){
// バッチ終了時の処理コード
}
}
public class SampleBatch implements Database.Batchable<sObject> {
/* Database.QueryLocator を使う場合 */
public Database.QueryLocator start(Database.BatchableContext db) {
// レコードをクエリする
return Database.getQueryLocator(
'SELECT ID FROM Account'
);
}
public void execute(Database.BatchableContext bc, List<P> records){
// レコードに対する処理コード
}
public void finish(Database.BatchableContext bc){
// バッチ終了時の処理コード
}
}
public class SampleBatch implements Database.Batchable<sObject> { /* Database.QueryLocator を使う場合 */ public Database.QueryLocator start(Database.BatchableContext db) { // レコードをクエリする return Database.getQueryLocator( 'SELECT ID FROM Account' ); } public void execute(Database.BatchableContext bc, List<P> records){ // レコードに対する処理コード } public void finish(Database.BatchableContext bc){ // バッチ終了時の処理コード } }