1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Salesforce]バッチスケジュールに追加

Posted at

スケジュールに追加

追加方法は2つある

設定->開発->Apexクラスを選択。
画面内のApexをスケジュールをクリック。

apex_schedule01.jpg

この中で毎月や毎日、などを選択できる。
終了日も設定出来るので、ずっと動作するさせるものに関しては長めに設定しておく。

apex_schedule02.jpg

コードで実行
設定画面から追加での最大のデメリットは実行時間が毎時0分のみ、と、分の指定ができないところ。
これをさせようと思うとコードからジョブに追加してやる必要がある。

以下が追加させるコード

System.schedule('ジョブ名','0 0 * * * ?', new Schedule_sample());
第二引数に指定しているものは、クーロン式、というもので、ここで時間指定をしている。
これは、左から、秒、分、時、日、月、曜日、年となっている。
(年は省略化)

例)

‘0 0 13 * * ?’:毎日13時に実行
‘0 0 10 ? * MON-FRI’:月~金の10時に実行
‘0 0 * * * ?’:毎時0分に実行
‘0 30 * * * ?’:毎時30分に実行
秒のみの指定は怖くて試してません。

この実行式を開発者コンソールの匿名実行から実行することでジョブに追加させられる。

apex_schedule03.jpg

コードを書いて、実行ボタンをクリック。

apex_schedule04.jpg

テスト
テストコードはスケジューラに対して実行する。

Schedule_sample_Test.apxc

@isTest
public class Schedule_sample_Test {
public static String CRON_EXP = '0 0 0 15 3 ? 2022';

static testmethod void test() {
//データ準備

  Test.startTest();
  String jobId = System.schedule('ScheduleApexClassTest', CRON_EXP, new Batch_sample());
  Test.stopTest();
  
  //バッチ後のデータ確認

}
}

指定するクーロン式はなんでもよくて、Test.stopTest();の後にすぐにスケジュールが実行される。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?