LoginSignup
2
0

More than 3 years have passed since last update.

Apex Specialist Super Badge 復習[Challenge 3]

Last updated at Posted at 2019-09-16

Schedulableインターフェース

指定の時刻に実行したい処理はSchedulableインターフェースを実装したApexクラスに記述することで可能となります。
公式:Apex スケジューラを使用したジョブのスケジュール

CRON式

スケジュール化する際に日時の指定をする際にCRON式を用いて表現します。
公式:Apex スケジューラ下のほうにCRON式の構文が載っています。

ソースコード

Schedulableインターフェースを実装したクラスから前Challengeで作成したメソッドを呼び出すだけです。

コード
global class WarehouseSyncSchedule implements Schedulable{
  // implement scheduled code here
    global void execute(SchedulableContext ctx){
        WarehouseCalloutService.runWarehouseEquipmentSync();
    }
}

スケジュール化の方法は3つあります。
1. Debugの匿名ウィンドウから実行
2. 上記WarehouseSyncScheduleクラスに記述
3. UIを使ってスケジュール

コード
       String sch = '00 00 17 * * ?';//JST 5pm==PST 1am. My org is set in JST
       System.schedule('WarehouseSyncScheduleTest', sch, new WarehouseSyncSchedule());

1,2番では上記コードを実行/記述します。(私は3番を用いたので検証はできていないです)
Google先生によると、米国太平洋標準時(PST)の午前1時は日本標準時(JST)の午後5時に相当するとのことです。
組織の標準時を修正してもチェックは通りますが、私はJST PM5時で通しました。設定変えるの面倒

3番はSetUpのQuick Findにて、Apex classesと入力し、Apex classesをクリックします。
Schedule Apexというボタンをクリックすればスケジュールの作成が可能です。
(Schedulableクラスが表示されない場合、WarehouseSyncScheduleクラスを再度編集して保存すると表示されることがあります)

続き:Apex Specialist Super Badge 復習[Challenge 4]

2
0
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
2
0