---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideSchedule - スコープ指定

# GlideSchedule - スコープ指定 {#ariaid-title1}

スコープ付き GlideSchedule API は、スケジュールへの新しいスケジュールセグメントの追加、日付/時刻がスケジュール内にあるかどうかの判断、スケジュールのタイムゾーンの設定など、GlideSchedule オブジェクトに対する操作を実行するためのメソッドを提供します。

## GlideSchedule - GlideSchedule() {#ariaid-title2}

空の GlideSchedule オブジェクトをインスタンス化します。
{#r_ScopedGlideScheduleGlideSchedule__table_ulv_hhr_2r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 1. パラメーター]

{#r_ScopedGlideScheduleGlideSchedule__table_ulv_hhr_2r}

## GlideSchedule - GlideSchedule(文字列 sysID, 文字列 timeZone) {#ariaid-title3}

GlideSchedule オブジェクトをインスタンス化し、スケジュール情報をロードします。タイムゾーンが指定されていない場合は、現在のセッションタイムゾーンが使用されます。
{#r_SGSCH-GlideSchedule_S_S__table_emk_4cg_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysID | 文字列 | スケジュールのSys ID。 |
| timeZone | 文字列 | オプション。使用するタイムゾーン。 デフォルト:現在のセッションのタイムゾーン。 タイムゾーンは、次の形式で指定できます。 * `国/市区町村`。たとえば、 `America/Los_Angeles` などです。 * `国/タイムゾーン`。たとえば、 `米国/太平洋`です。 * `タイムゾーンの略称`。たとえば、 `PST` などです。 {#r_SGSCH-GlideSchedule_S_S__ul_up2_zln_lwb}有効なタイムゾーンの完全なリストについては、ユーザー \[sys_user\] テーブルの \[タイムゾーン \] フィールドを参照してください。タイム ゾーンの詳細については、「 [Time zones](https://www.servicenow.com/docs/access?context=r_TimeZones&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 |
[表 : 2. パラメーター]

{#r_SGSCH-GlideSchedule_S_S__table_emk_4cg_1r}  

    var schedule = new GlideSchedule('090eecae0a0a0b260077e1dfa71da828', 'US/Pacific');

## GlideSchedule - add(GlideDateTime startDate, GlideDuration offSet) {#ariaid-title4}

現在のスケジュールに新しいスケジュールセグメントを追加します。
{#r_SGSCH-Add_GDT_GD__table_kws_rdg_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| startDate | GlideDateTime | 新しいスケジュールセグメントの開始日。 |
| offset | GlideDuration | 新しいスケジュールセグメントの時間オフセット。 |
[表 : 3. パラメーター]

{#r_SGSCH-Add_GDT_GD__table_kws_rdg_1r} {#r_SGSCH-Add_GDT_GD__table_mws_rdg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| GlideDateTime | 新しいスケジュールセグメントで更新されたスケジュール。 |
[表 : 4. 返される内容]

{#r_SGSCH-Add_GDT_GD__table_mws_rdg_1r}  

    var startDate = new GlideDateTime('2014-01-02');
    var days = 2;
    var dur = new GlideDuration(60 * 60 * 24 * 1000 * days);
    var schedule = new GlideSchedule();
    var end = schedule.add(startDate, dur);
    gs.info(end);

出力：

    2014-01-04 00:00:00

## GlideSchedule - duration(GlideDateTime、startDateDate、GlideDateTime、endDate) {#ariaid-title5}

スケジュールのタイムゾーンを使用して (スケジュールのタイムゾーンが指定されていない場合はセッションのタイムゾーンを使用して)、スケジュール内の 2 つの日時値の間の経過時間を判断します。
{#r_SGSCH-Duration_GDT_GDT__table_dlk_j3g_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| startDate | GlideDateTime | 開始日時。 |
| endDate | GlideDateTime | 終了日時。 |
[表 : 5. パラメーター]

{#r_SGSCH-Duration_GDT_GDT__table_dlk_j3g_1r} {#r_SGSCH-Duration_GDT_GDT__table_flk_j3g_1r__entry__2}

| タイプ | 説明 |
|-|-|
| GlideDuration | 開始日時と終了日時の差。 |
[表 : 6. 返される内容]

{#r_SGSCH-Duration_GDT_GDT__table_flk_j3g_1r}  

    var startDate = new GlideDateTime('2014-10-16 02:00:00');
    var endDate = new GlideDateTime('2014-10-18 04:00:00');
    var schedule = new GlideSchedule();
     
    schedule.load('090eecae0a0a0b260077e1dfa71da828'); // loads "8-5 weekdays excluding holidays" schedule
    var duration = schedule.duration(startDate, endDate);
    gs.info(duration.getDurationValue()); // gets the elapsed time in schedule

## GlideSchedule - getName() {#ariaid-title6}

スケジュール名を取得します。
{#r_ScopedGlideScheduleGetName__table_onn_hhr_2r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 7. パラメーター]

{#r_ScopedGlideScheduleGetName__table_onn_hhr_2r} {#r_ScopedGlideScheduleGetName__table_tcd_rwg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 現在のスケジュールの名前。 |
[表 : 8. 返される内容]

{#r_ScopedGlideScheduleGetName__table_tcd_rwg_1r}  

    sys_id ='04e664654a36232701a2247dcd8fc4cf'; // sys_id for "Application" schedule record
    var sched = new GlideSchedule(sys_id);
    gs.info(sched.getName());

## GlideSchedule - isInSchedule (GlideDateTime 時刻) {#ariaid-title7}

指定された日時が現在のスケジュール内にあるかどうかを判断します。
{#r_SGSCH-IsInSchedule_GDT__table_lvd_jkg_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| time | GlideDateTime | チェックする日時値。 |
[表 : 9. パラメーター]

{#r_SGSCH-IsInSchedule_GDT__table_lvd_jkg_1r} {#r_SGSCH-IsInSchedule_GDT__table_nvd_jkg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 指定された日時がスケジュール内にあるかどうかを示すフラグ。 有効な値： * true：日時はスケジュールの範囲内です。 * false：日時はスケジュール外です。 {#r_SGSCH-IsInSchedule_GDT__ul_ujh_rxv_p4b} |
[表 : 10. 返される内容]

{#r_SGSCH-IsInSchedule_GDT__table_nvd_jkg_1r}  

    var glide = new GlideRecord('cmn_schedule');
    glide.addQuery('type', 'blackout');
    glide.query();
    if (glide.next()) {
       var sched = new GlideSchedule(glide.sys_id);
       var date = new GlideDateTime();
       date.setDisplayValue("2007-09-18 12:00:00");
       if (sched.isInSchedule(date)) 
          gs.info("Is in the schedule");
       else
          gs.info("Is NOT in the schedule");
    }

## GlideSchedule - isValid() {#ariaid-title8}

現在のスケジュールが有効かどうかを判定します。スケジュールは、少なくとも 1 つのスケジュールスパンがある場合に有効です。
{#r_ScopedGlideScheduleIsValid__table_th1_plg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | スケジュールが有効であれば true。 |
[表 : 11. 返される内容]

{#r_ScopedGlideScheduleIsValid__table_th1_plg_1r}  

    var glide = new GlideRecord('cmn_schedule');
    glide.addQuery('type', 'blackout');
    glide.query();
    if (glide.next()) {
       var sched = new GlideSchedule(glide.sys_id);
       var date = new GlideDateTime();
       date.setDisplayValue("2007-09-18 12:00:00");
       if (sched.isValid()) 
          gs.info("Is valid");
     
       else
          gs.info("Is not valid");
    }

## GlideSchedule - load(文字列 sysID, 文字列 timeZone, 文字列 excludeSpanID) {#ariaid-title9}

スケジュール情報を含むスケジュールをロードします。
{#r_SGSCH-Load_S_S_S__table_ztn_lxg_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| sysID | 文字列 | スケジュールのSys ID。 |
| timeZone | 文字列 | (オプション) タイムゾーン。タイムゾーンが指定されていないか nil の場合は、スケジュールに対して現在のセッションのタイムゾーンが使用されます。 |
| excludeSpanID | 文字列 | 除外するスパン。 |
[表 : 12. パラメーター]

{#r_SGSCH-Load_S_S_S__table_ztn_lxg_1r} {#r_SGSCH-Load_S_S_S__table_tcd_rwg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 13. 返される内容]

{#r_SGSCH-Load_S_S_S__table_tcd_rwg_1r}  

    var x = new GlideSchedule();
    x.load('08fcd0830a0a0b2600079f56b1adb9ae');

## GlideSchedule - setTimeZone(文字列 timeZone) {#ariaid-title10}

現在のスケジュールのタイムゾーンを設定します。
{#r_SGSCH-SetTimeZone_S__table_sdh_hzg_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| timeZone | 文字列 | 使用するタイムゾーン。 タイムゾーンは、次の形式で指定できます。 * `国/市区町村`。たとえば、 `America/Los_Angeles` などです。 * `国/タイムゾーン`。たとえば、 `米国/太平洋`です。 * `タイムゾーンの略称`。たとえば、 `PST` などです。 {#r_SGSCH-SetTimeZone_S__ul_up2_zln_lwb}有効なタイムゾーンの完全なリストについては、ユーザー \[sys_user\] テーブルの \[タイムゾーン \] フィールドを参照してください。タイム ゾーンの詳細については、「 [Time zones](https://www.servicenow.com/docs/access?context=r_TimeZones&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 |
[表 : 14. パラメーター]

{#r_SGSCH-SetTimeZone_S__table_sdh_hzg_1r} {#r_SGSCH-SetTimeZone_S__table_tcd_rwg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 15. 返される内容]

{#r_SGSCH-SetTimeZone_S__table_tcd_rwg_1r}  
この例では、スケジュールのタイムゾーンを米国/太平洋に設定します。

    var schedule = new GlideSchedule();
    schedule.setTimeZone('US/Pacific');

## GlideSchedule - whenNext(GlideDateTime 時刻, 文字列 timeZone) {#ariaid-title11}

次のスケジュールアイテムの開始時間までの時間 (ミリ秒) を指定します。
この関数は、GlideSchedule オブジェクト (cmn_schedule テーブル) が現在スケジュールウィンドウにない場合に呼び出されることを意図しています。whenNext() 呼び出しは、GlideSchedule オブジェクトがスケジュール内になるまでの期間 (ミリ秒) を返します。GlideSchedule オブジェクトがスケジュール内にあるときに呼び出された場合、この関数は意味のある値を返しません。
{#r_SGSCH-WhenNext_GDT_S__table_i1b_myg_1r__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| time | GlideDateTime | 評価する時間 |
| timeZone | 文字列 | タイムゾーン |
[表 : 16. パラメーター]

{#r_SGSCH-WhenNext_GDT_S__table_i1b_myg_1r} {#r_SGSCH-WhenNext_GDT_S__table_k1b_myg_1r__entry__2}

| タイプ | 説明 |
|-|-|
| 数値 | 次のスケジュールアイテムの開始時刻までのミリ秒数。ない場合は -1 を返します。 |
[表 : 17. 返される内容]

{#r_SGSCH-WhenNext_GDT_S__table_k1b_myg_1r}  

    var startDate = new GlideDateTime('2014-10-25 08:00:00');
    var glideSchedule = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae', 'UTC');
    gs.info(glideSchedule.whenNext(startDate));

出力:

    172800000

    testScript(); 
    function testScript() { 
    var now = new GlideDateTime(); //current date and time
    var sched = new GlideSchedule("<sys_id>"); // Use a cmn_schedule sys_id 
    if (sched.isInSchedule(now)){ 
    gs.info('We are in an active schedule window so whenNext() is not helpful'); 
    } else{  
    gs.info('Not currently in schedule so call whenNext()'); 
    var msUntilNext = sched.whenNext(new GlideDateTime(), 'US/Pacific'); 
    gs.info('Next schedule starts in '+msUntilNext+' milliseconds'); 
    } 
    }
    \\ Output [schedule inactive)]:
    \\ *** Script: Not currently in schedule so call whenNext() 
    \\ *** Script: Next schedule starts in -1 milliseconds

出力：

    [Scheduled for future] *** Script: Not currently in schedule *** Script: Next schedule starts in 332894000 milliseconds


