GlideMultiRecurrence - スコープ対象
GlideMultiRecurrence API は、指定されたスケジュール設定済みジョブの実行時間を記述する GlideDateTime オブジェクトを返すメソッドを提供します。
この API は、特定の定期的または定期的なジョブをいつ実行する必要があるか (オカレンスとも呼ばれます) を判断する必要がある場合に使用します。
この API は sn_schdl_ns 名前空間で実行されます。
| トリガー | 説明 |
|---|---|
| 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 |
|
var table_nameGR = new GlideRecord('<table_name>'); // Scheduling table, such as sys_trigger
gr.addQuery('sys_id', '<sys_id>'); // Sys_id of the scheduling record
gr.query();
gr.next(); // Retrieve the scheduling recordGlideMultiRecurrence - getOccurrence()
関連するスケジュールレコード (GlideRecord) で定義されたトリガーに基づいて、指定されたスケジュール設定済みジョブが特定の期間内に実行する必要があるスケジュール設定済み実行時間 (オカレンス) ごとに GlideDateTime オブジェクトを返します。
このメソッドは、スケジューリングオブジェクト内で定義されたトリガーを使用して現在の GlideRecord スケジューリングオブジェクトを分析して、ジョブを実行するタイミングを決定します。
- com.glide.schedule.recurrence.num_occurrences_max:返される最大発生回数。
- com.glide.schedule.recurrence.num_occurrences_default:返されるデフォルトの発生回数。
- effective_startフィールドが有効で、null でも空でもない場合は、出現件数を返す開始日として使用します。それ以外の場合は、現在の日付を使用します。
- effective_end日付フィールドが有効で、null でも空でもない場合は、とeffective_starteffective_end日付フィールドの間の発生件数を返します。
上記の規則の例外:日付が effective_end 未来に遠すぎて、com.glide.schedule.recurrence.num_occurrences_max プロパティで指定された回数を超えて出現回数が返される場合、結果は com.glide.schedule.recurrence.num_occurrences_max で指定された値 (デフォルトは 500) に制限されます。
- 日付フィールドが null または空であるがeffective_endfrequency、フィールドが設定されている場合は、 を使用してfrequency、返される発生回数を決定します。
- 日付フィールドが過去の場合は、過去の日付を返します effective_start 。
- とfrequencyeffective_end日付フィールドの両方が指定されている場合は、最大出現回数が com.glide.schedule.recurrence.num_occurrences_max プロパティで指定された値に制限された日付を使用しますeffective_end。
例:AND effective_end の両方frequencyが指定され、無視されます。 Effective_end 日付が優先され、frequency無視されます。
- frequency: 10
- effective_start: 2022年8月1日
- effective_end: 2022年10月10日
- トリガータイプ:月の日
- 月の特定日: 15
返される GlideDateTime オブジェクトの数 = 2
返された発生件数:2022年8月15日、2022年9月15日。
例:AND effective_end の両方frequencyが指定されています。 日付が優先されてfrequency無視されますが、返される出現回数は com.glide.schedule.recurrence.num_occurrences_max プロパティの値によって制限されます。 Effective_end
- frequency: 20
- effective_start: 2022年8月1日
- effective_end: 2070年10月30日
- トリガータイプ:月の日
- 月の特定日: 15
返される GlideDateTime オブジェクトの数 = 500
| 名前 | タイプ | 説明 |
|---|---|---|
| GRスケジュール | GlideRecord | スケジュールの発生を取得するジョブを含むレコードを指す GlideRecord オブジェクト。 |
| タイプ | 説明 |
|---|---|
| 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