スケジュール済みジョブの特殊なケース

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:3分
  • 一部の特殊なケースでは、ジョブスケジューリングに注意が必要です。

    月末のスケジュール

    月の長さが異なるため、月末にジョブをスケジュールする場合は注意が必要です。

    • イベントを 29 日または 30 日にスケジュールすることはお勧めしません。スケジュール済みジョブはその日数よりも短い月 (2 月など) に実行されるからです。
    • イベントが 31 日にスケジュールされている場合は、月が 31 日より短くても、イベントはその月の最終日に実行されます。

    たとえば、月の 31 日に実行するようにスケジュールされたイベントは、2 月 28 日、うるう年には 2 月 29 日に実行されます。

    平日のスケジュール

    スケジュールされたスクリプトの場合は、次のスクリプトを使用して平日にのみ実行します。

    警告:
    スケジュール済みレポートメールの条件付きスクリプトは、サンドボックスで実行されます。したがって、関数定義は許可されません。一部の API 呼び出しとキーワードも許可されません。
    
    var isWeekday;
    var today = new Date();
    var dayOfWeek = today.getDay(); // Get day of the week(0 = Sunday, 1 = Monday, ... , 6 = Saturday)
    switch (dayOfWeek) {
    case 0: // Sunday
    case 6: // Saturday
    isWeekday = false;
    break;
    default:
    isWeekday = true;
    }
    answer=isWeekday;

    スケジュール済みレポートの条件付きスクリプトがより複雑で、Glide クラスを使用する必要がある場合は、回避策として次の手順を使用してください。

    1. スケジュール済みジョブを作成し、スケジュール済みジョブ内のスケジュール済みレポートのすべての条件付きロジックを完了します。
    2. すべての条件付きロジックが満たされている場合は、スケジュール済みジョブ内で次のスクリプトを使用してスケジュール済みレポートをトリガーできます。
      var schRpGr = new GlideRecord("sysauto_report");
      schRpGr.get("<sys_id of the scheduled report>");
      gs.executeNow(schRpGr);

    スクリプトからのスケジュール済みジョブ

    イベントによってトリガーされたスケジュール済みジョブを実行するには、次のスクリプトを使用します。

    //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 は、スケジュール済みジョブを将来に実行するメソッドを提供しません。

    別のインスタンスからインポートされたスケジュール設定済みスクリプトとジョブの実行

    スケジュール済みスクリプト実行とスケジュール済みジョブは、ServiceNow AI Platform のデータレコードとして分類されます。つまり、更新セットから除外されます。テーブルが含まれているかどうかを判断するには、次に移動します: すべて > システム定義 > ディクショナリ をクリックし、問題のテーブルの 属性 値を表示します。属性 update_sync=true を持つテーブルのみが更新セットに含まれます。

    オプションで、XML を介してデータレコードをエクスポートおよびインポートできます。ただし、予期しないデータ変更を防ぐために、更新セットなどの XML ファイルからインポートされたデータレコードのスケジュールのアイテム [sys_trigger] レコードは作成されません。別のインスタンスからインポートされたスケジュール済みジョブまたはスクリプトを実行するには、ターゲットインスタンスの対応するジョブまたはスクリプトレコードを更新します。