Apex Databaseで一括処理を実行するサンプル
環境
Salesforce Apex
概要
取引先のソースを1から2に設定したいとします。
この場合startメソッドでソース = Aの取引先レコードを取得します。
executeメソッドにはAをBに書き換える処理を記載します。
finishには更新レコード数を取得してメールで通知する処理を記載します。
使用例
Database.Statefulをクラスに定義すると、インスタンスメンバー変数を使用したトランザクション間での
値保持が可能になります。
global class ClassName implements Database.Batchable<sObject> { global Database.QueryLocator start(Database.BatchableContext bc) { // SOQLやクエリロケータでレコードを取得する処理 } global void execute(Database.BatchableContext bc, List<Object> scope){ // startのレコードリストを取得して、それらに実行したい処理 } global void finish(Database.BatchableContext bc){ // ジョブの状況の検知やその結果をメール通知する処理 } }