GlideMultiRecurrence - スコープ対象

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:7分
  • GlideMultiRecurrence API は、指定されたスケジュール済みジョブの実行時間を記述する GlideDateTime オブジェクトを返すメソッドを提供します。

    特定の定期的または繰り返しのジョブ (発生) をいつ実行する必要があるかを判断する必要がある場合は、この API を使用します。

    この API は sn_schdl_ns 名前空間で実行されます。

    この API を使用するには、関連するスケジュールテーブルに次のフィールド (トリガー) が 1 つ以上含まれている必要があります。
    トリガー 説明
    effective_end ジョブのスケジュールされた終了日時。
    effective_start ジョブの開始日時をスケジュールします。
    周期 返される発生回数。
    run_dayofmonth ジョブを実行する日付。有効な値:1 〜 31
    run_dayofweek ジョブを実行する曜日。有効な値:1 (日曜日) - 7 (土曜日)
    run_month ジョブを実行する年の月。有効な値:1 〜 12
    run_time ジョブを実行する GMT 時刻。
    run_weekinmonth ジョブを実行する月の週。有効な値:1 〜 6
    time_zone スケジュール済みジョブのタイムゾーン。
    trigger_type
    • 0:1 回実行
    • 1:繰り返し
    • 2:オンデマンド
    • 3:曜日
    • 4:月の日
    • 5:月の週
    • 6:年の日付と月
    • 7:月および年の曜日
    • 8:指定した時刻に実行
    • 9:システム起動時に実行
    • 10:間隔
    • 11:日次
    この API を使用する場合は、API が動作するスケジュールテーブルの GlideRecord オブジェクトを最初に作成する必要があります。次に、発生レコードを取得するスケジュールレコードを取得します。たとえば、次のようになります。
    var table_nameGR = new GlideRecord('<table_name>'); // Scheduling table, such as sys_trigger
    table_nameGR.addQuery('sys_id', '<sys_id>'); // Sys_id of the scheduling record
    table_nameGR.query();
    table_nameGR.next();  // Retrieve the scheduling record

    GlideMultiRecurrence - getOccurrences()

    関連付けられたスケジュールレコード (GlideRecord) で定義されたトリガーに基づいて、指定されたスケジュール済みジョブが特定の期間内に実行する必要がある、スケジュールされた実行時間 (発生) ごとに GlideDateTime オブジェクトを返します。

    このメソッドは、スケジューリングオブジェクト内で定義されたトリガーを使用して、現在の GlideRecord スケジューリングオブジェクトを分析し、ジョブを実行するタイミングを決定します。

    返される結果を制御するプロパティ:
    • com.glide.schedule.recurrence.num_occurrences_max:返されるオカレンスの最大数。
    • com.glide.schedule.recurrence.num_occurrences_default:返されるデフォルトの発生回数。
    このメソッドは、次のルールを適用して、定義された期間に返されるオカレンスと関連するトリガーを決定します。
    • [ effective_start ] フィールドが有効で、null または空でない場合は、それをオカレンスの返還を開始する日付として使用します。それ以外の場合は、現在の日付を使用します。
    • effective_end日付フィールドが有効で、null または空でない場合は、effective_start日付フィールドとeffective_end日付フィールドの間の発生件数を返します。

      上記のルールの例外: effective_end 日が未来になりすぎて、com.glide.schedule.recurrence.num_occurrences_max プロパティで指定された回数を超える出現回数が返される場合、結果は com.glide.schedule.recurrence.num_occurrences_max で指定された値 (デフォルトは 500) に制限されます。

    • effective_end日付フィールドが null または空で、frequencyフィールドが設定されている場合は、frequency を使用して返される発生回数を決定します。
    • [ effective_start 日付] フィールドが過去の日付の場合は、過去の日付を返します。
    • [ frequency ] フィールドと [ effective_end 日付] フィールドの両方が指定されている場合は、com.glide.schedule.recurrence.num_occurrences_max プロパティで指定された値に制限された最大発生回数で effective_end 日付を使用します。
    上記のいずれのルールにも当てはまらない場合、メソッドはシステムプロパティのデフォルト設定に基づいて出現を返します。
    注:
    MAX_Drift はこの API ではサポートされていません。

    例: frequencyeffective_end の両方が指定されています。 Effective_end 日付が優先され、 frequency は無視されます。

    • frequency: 10
    • effective_start:2022年8月1日
    • effective_end:2022年10月10日
    • トリガータイプ:月の日
    • 実行日:15

    返される GlideDateTime オブジェクトの数 = 2。

    発生件数が返されました:2022年8月15日、2022年9月15日。

    例: frequencyeffective_end の両方が指定されています。 Effective_end 日付が優先され、 frequency は無視されますが、返される出現回数は com.glide.schedule.recurrence.num_occurrences_max プロパティの値によって制限されます。

    • frequency: 20
    • effective_start:2022年8月1日
    • effective_end:2070年10月30日
    • トリガータイプ:月の日
    • 実行日:15

    返される GlideDateTime オブジェクトの数 = 500。

    表 : 1. パラメーター
    名前 タイプ 説明
    grSchedule GlideRecord スケジュールの発生を取得するジョブを含むレコードを指す GlideRecord オブジェクト。
    表 : 2. 戻り値
    タイプ 説明
    GlideDateTime オブジェクトのアレイ スケジュールジョブを実行する時刻ごとの GlideDateTime オブジェクト。

    次の例は、指定されたジョブスケジュールレコードの特定の期間のすべてのスケジュール済み実行日時の GlideDateTime オブジェクトを取得する方法を示しています。選択したジョブは、1 時間ごとに実行されるようにスケジュールされています。

    var sys_id = 'a9e30c7dc61122760116894de7bcc7bd'; // Sys_id of the job schedule record
    var table = 'sys_trigger'; // Table that contains the job schedule record
    
    var grSchedule = new GlideRecord(table);
    if
     (grSchedule.get(sys_id)) {
      var multiRecurrence = new sn_schdl_ns.GlideMultiRecurrence();
      var dates = multiRecurrence.getOccurrences(grSchedule); // Display the list of occurrences
      for(var i=0; i<dates.length; i++) {
        gs.info('occurrence = ' + dates[i]);
      }
    }

    出力:

    occurrence = 2022-11-21 16:23:23
    occurrence = 2022-11-21 17:23:23
    occurrence = 2022-11-21 18:23:23
    occurrence = 2022-11-21 19:23:23
    occurrence = 2022-11-21 20:23:23
    occurrence = 2022-11-21 21:23:23
    occurrence = 2022-11-21 22:23:23
    occurrence = 2022-11-21 23:23:23
    occurrence = 2022-11-22 00:23:23
    occurrence = 2022-11-22 01:23:23