スケジュール済みジョブの特殊なケース
一部の特殊なケースでは、ジョブスケジューリングに注意が必要です。
月末のスケジュール
月の長さが異なるため、月末にジョブをスケジュールする場合は注意が必要です。
- イベントを 29 日または 30 日にスケジュールすることはお勧めしません。スケジュール済みジョブはその日数よりも短い月 (2 月など) に実行されるからです。
- イベントが 31 日にスケジュールされている場合は、月が 31 日より短くても、イベントはその月の最終日に実行されます。
たとえば、月の 31 日に実行するようにスケジュールされたイベントは、2 月 28 日、うるう年には 2 月 29 日に実行されます。
平日のスケジュール
スケジュールされたスクリプトの場合は、次のスクリプトを使用して平日にのみ実行します。
(function isWeekday() {
var isWeekday;
var gDate = new GlideDate(); //Uses your Timezone!
var day = gDate.getByFormat('EEEE'); //Gets name of day
switch(day) {
case "Saturday":
case "Sunday":
isWeekday = false;
break;
default:
isWeekday = true;
}
return isWeekday;
})();
スクリプトからのスケジュール済みジョブ
イベントによってトリガーされたスケジュール済みジョブを実行するには、次のスクリプトを使用します。
//Execute a scheduled script job
var rec = new GlideRecord('sysauto_script');
rec.get('name', 'YOUR_JOB_NAME_HERE');
SncTriggerSynchronizer.executeNow(rec);
スクリプトは、次のいずれかのテーブルを使用して実行できます。
- scheduled_import_set (スケジュール済みインポートセット)
- sysauto_script (スケジュール済みスクリプト実行)
- sysauto_template (スケジュールされたテンプレート生成)
- sysauto_report (スケジュール済みレポート)
注:
SncTriggerSynchronizer は、スケジュール済みジョブを将来に実行するメソッドを提供しません。別のインスタンスからインポートされたスケジュール設定済みスクリプトとジョブの実行
スケジュール済みスクリプト実行とスケジュール済みジョブは、Now Platform のデータレコードとして分類されます。つまり、更新セットから除外されます。テーブルが含まれているかどうかを判断するには、 をクリックし、問題のテーブルの 属性 値を表示します。属性 update_sync=true を持つテーブルのみが更新セットに含まれます。
オプションで、XML を介してデータレコードをエクスポートおよびインポートできます。ただし、予期しないデータ変更を防ぐために、更新セットなどの XML ファイルからインポートされたデータレコードのスケジュールのアイテム [sys_trigger] レコードは作成されません。別のインスタンスからインポートされたスケジュール済みジョブまたはスクリプトを実行するには、ターゲットインスタンスの対応するジョブまたはスクリプトレコードを更新します。