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){
        // ジョブの状況の検知やその結果をメール通知する処理
    }    
}

 

IT

Posted by arkgame