一括処理ジョブの実行
一括処理クラスは、トリガ、クラス、または開発者コンソールから呼び出すことができます。指定したスケジュールで一括処理ジョブを実行する必要が生じる場合もあります。ここでは、すぐに結果が得られるように、一括処理クラスを開発者コンソールから送信する方法���説明します。さらに、スケジューラクラスも作成して一括処理クラスをスケジュールできるようにします。
まず、品目名が関連付けられていない商品レコードをいくつか組織に作成します。以前にテストで作成したレコードは保持されていないため、新しいレコードを作成して一括処理ジョブで処理するレコードを用意します。
-
[Logs (ログ)] タブをクリックし、[Execute (実行)] ウィンドウで次のコードを実行します。
-
[Execute (実行)] をクリックします。
これにより 250 件の商品品目が作成されるため、一括処理クラスを最初の 200 レコードに対して 1 回、残りの 50 レコードに対して 1 回、合わせて 2 回実行することになります。
-
では、開発者コンソールから Database.executeBatch をコールして一括処理クラスを送信しましょう。[Execute (実行)] ウィンドウから次のコードを実行します。ジョブが完了するとメールで通知されます。メールが到着するまで数分かかる場合があります。メールには、2 つのバッチが実行されたことが記載されています。
-
一括処理ジョブ実行の状況を表示するには、[設定] から [クイック検索] ボックスに「Apex ジョブ」と入力し、[Apex ジョブ] を選択します。ジョブは終了しているため、状況は「Completed」と表示され、2 つのバッチが処理されたことを確認できます。
- 一括処理ジョブをプログラムでスケジュールするには、Schedulable インターフェースを実装するクラスを作成し、そのクラスの execute メソッドから一括処理クラスを呼び出します。まず [設定] から、[クイック検索] ボックスに「Apex」と入力し、[Apex クラス] を選択してから、[新規] をクリックします。
-
コードエディタボックスに、次のクラス定義を追加します。
- 「ジョブのスケジュールとスケジュール済みジョブの監視」と同様の手順に従い、MyScheduler クラスをスケジュールします。