---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# スクリプトインクルード

# スクリプトインクルード {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：17分

スクリプトインクルードは、サーバー上で実行される JavaScript の格納に使用されます。

スクリプトインクルードを作成して、サーバースクリプトで使用できるように JavaScript の関数およびクラスを格納します。各スクリプトインクルードは、オブジェクトクラスまたは関数のいずれかを定義します。

スクリプトインクルードは要求時にのみロードされるため、グローバルビジネスルールの代わりにスクリプトインクルードを使用することを検討してください。詳細については、「[Glide AJAX 対応スクリプトインクルードのプライバシー設定](https://servicenow-prod.fluidtopics.net/dfrwqTdcFyPlg3xiDNt1SQ#c_ChangePrivacyAll "Glide AJAX 対応スクリプトインクルードのプライバシー設定によって、Glide AJAX 対応スクリプトインクルードにアクセスできるユーザーが決まります。")」と「[ディスカバリースクリプトインクルード](https://servicenow-prod.fluidtopics.net/dfrwqTdcFyPlg3xiDNt1SQ#c_UsingDiscoveryScriptIncludes "ディスカバリー スクリプトインクルードは、ディスカバリー タスクを実行するために使用できる JavaScript クラスを定義します。")」を参照してください。

スクリプトのその他の例については、「[有用なスクリプト](https://servicenow-prod.fluidtopics.net/_iuCUs3wWg0OB5Z8r2KOeg "コアシステムに含まれていない有用な機能を提供する、サーバーサイドおよびクライアントサイドのスクリプト。")」を参照してください。

## スクリプトインクルードフォーム {#ariaid-title2}

スクリプトインクルードには、名前、説明、およびスクリプトがあります。また、それらがアクティブかどうか、およびクライアントスクリプトから呼び出すことができるかどうかも指定します。スクリプトインクルードフォームを使用して、既存のスクリプトインクルードを表示するか、新しいスクリプトインクルードを作成します。
スクリプトインクルードにアクセスするには、 すべてシステム定義スクリプトインクルード.  
{#t_ScriptIncludeForm__table_ntx_fcg_tq__entry__2}

| フィールド | 説明 |
|-|-|
| 名前 | スクリプトインクルードの名前。クラスを定義する場合、これはクラスの名前、プロトタイプ、およびタイプと一致する必要があります。クラスレス (オンデマンド) スクリプトインクルードを使用する場合、名前は関数名と一致する必要があります。 |
| API 名 | スクリプトインクルードの内部名。スコープの範囲外のアプリケーションからスクリプトインクルードを呼び出すために使用されます。 |
| Glide AJAX が有効 (またはクライアント呼び出し可能) | スクリプトインクルードは、クライアントスクリプト、リスト/レポートフィルター、参照修飾子、または URL の一部として指定されている場合に使用できます。Glide AJAX 対応スクリプトインクルードは `GlideAjax` から呼び出され、ユーザーがスクリプトインクルードに関連付けられた ACL を満たす必要があります。選択すると、\[アクセス制御\] 関連リンクが使用可能になります。詳細については、「[Glide AJAX 対応スクリプトインクルードのプライバシー設定](https://servicenow-prod.fluidtopics.net/dfrwqTdcFyPlg3xiDNt1SQ#c_ChangePrivacyAll "Glide AJAX 対応スクリプトインクルードのプライバシー設定によって、Glide AJAX 対応スクリプトインクルードにアクセスできるユーザーが決まります。")」を参照してください。 |
| モバイルコール可能 | スクリプトインクルードは、モバイルデバイスから呼び出されたクライアントスクリプトに使用できます。 |
| サンドボックス有効化 | スクリプトインクルードは、クエリ条件など、スクリプトサンドボックスから呼び出されたスクリプトで使用できます。 重要: スクリプトインクルードは、必要な場合にのみスクリプトサンドボックスで使用できるようにする必要があります。 スクリプトサンドボックスの詳細については、「 」を参照してください。 |
| アプリケーション | このスクリプトインクルードが存在するアプリケーション。 |
| アクセス可能 | このスクリプトインクルードにアクセスできるアプリケーションを設定します。 すべてのアプリケーションスコープ :   任意のアプリケーションスコープからアクセスできます。 このアプリケーションスコープのみ :   現在のアプリケーションスコープからのみアクセスできます。 {#t_ScriptIncludeForm__AccessibleFrom} |
| アクティブ | 選択すると、スクリプトインクルードが有効になります。アクティブなフィールドの選択を解除して、スクリプトインクルードを無効にします。 |
| 説明 | スクリプトインクルードに関する説明的なコンテンツを提供します。 |
| スクリプト | 他のスクリプトから呼び出されたときに実行するサーバーサイドスクリプトを定義します。 スクリプトは、単一の JavaScript クラスまたはグローバル関数を定義する必要があります。クラス名または関数名は \[名前\] フィールドと一致する必要があります。 |
| パッケージ | このスクリプトインクルードを含むパッケージ。 |
| 作成者 | このスクリプトインクルードを作成したユーザー。 |
| 更新者 | このスクリプトインクルードを最後に更新したユーザー。 |
| 保護ポリシー | スクリプトインクルードの保護レベルを設定します。 なし :   このダウンロードまたはインストールされたスクリプトインクルードの読み取りと編集をすべてのユーザーに許可します。 読み取り専用 :   このダウンロードまたはインストールされたスクリプトインクルードからの値の読み取りをすべてのユーザーに許可します。スクリプトインクルードをダウンロードまたはインストールするインスタンスのスクリプト値は、どのユーザーも変更できません。 保護 :   アプリケーション開発者に知的財産権保護を提供します。スクリプトインクルードをダウンロードした顧客は、スクリプトフィールドの内容を表示できません。スクリプトは、権限のないユーザーがプレーンテキストで表示することを防ぐために、メモリ内で暗号化されます。 |
| フォームビューの関連リスト： ||
| バージョン | スクリプトインクルードのすべてのバージョンを表示します。バージョンを比較したり以前のバージョンに戻したりするには、このリストを使用します。「[バージョン](https://www.servicenow.com/docs/access?context=c_Versions&version=australia&pubname=australia-application-development&ft:locale=en-US)」を参照してください。 |
| アクセス制御 | \[ Glide AJAX 有効化 (Glide AJAX enabled )\] が選択されている場合に利用可能になり、標準スクリプトインクルードでは非表示になります。パブリックアクセスが許可されていない場合に、スクリプトインクルードを不正使用から保護するために使用します。 |
[表 : 1. スクリプトインクルードフォーム]

{#t_ScriptIncludeForm__table_ntx_fcg_tq}

## スクリプトインクルードの使用 {#ariaid-title3}

スクリプトインクルードは \[システム定義\] または \[システム UI\] の下にあります。既存のスクリプトインクルードをスクリプトから呼び出すことも、新しいスクリプトインクルードを作成することもできます。
まったく新しいスクリプトインクルードを作成するときには、既存のいずれかのスクリプトインクルードの形式に従うこともできます。この例では、スクリプトインクルードの名前は NewInclude であり、`myFunction` と呼ばれる 1 つの関数があります。スクリプトインクルードの名前が、クラスの名前、プロトタイプ、およびタイプと一致することが重要です。新しいスクリプトインクルードを作成して名前を付けると、クラスとプロトタイプが適切に設定されたコードスニペットが提供されます。  

    var NewInclude =Class.create();
     
    NewInclude.prototype={
      initialize :function(){},
     
      myFunction :function(){<Put function code here>},
     
      type :'NewInclude'};

次のように `myFunction` 行を使用できます。  

    var foo =new NewInclude();
    foo.myFunction();

## Glide AJAX 対応スクリプト インクルード {#ariaid-title4}

Glide AJAX 対応スクリプトインクルードは、クライアントスクリプト、リスト/レポートフィルター、参照修飾子、または URL の一部として指定された場合に、スクリプトインクルードを使用できるようにします。

### 始める前に

必要なロール：admin

### 手順

1. 移動先 システム定義スクリプトインクルード.
2. \[新規\] を選択するか、表示または編集する既存のスクリプトインクルードを選択します。  
   スクリプトインクルードの記述の詳細については、「[スクリプトインクルードの使用](https://servicenow-prod.fluidtopics.net/dfrwqTdcFyPlg3xiDNt1SQ#c_UseScriptIncludes "スクリプトインクルードは [システム定義] または [システム UI] の下にあります。既存のスクリプトインクルードをスクリプトから呼び出すことも、新しいスクリプトインクルードを作成することもできます。")」を参照してください。
3. フォームに記入し、\[ Glide AJAX 対応\] オプションを選択します。  
   ユーザーロールを選択するためのロールセレクターがポップアップし、アクセス制御エントリが自動的に作成されます。ユーザーロールを選択し、\[OK\] をクリックします。  
   注:  
   ロールセレクターウィンドウを無効にするには、glide.script.ccsi.enable_acl_create_ux を false に設定します。

   ロールベースのアクセス制御を持つスクリプトインクルードレコードが作成されます。\[ Glide AJAX enabled \] チェックボックスをオンにすると、アクセス制御関連リンクが利用可能になります。
{#client-callable-script-includes__steps_m4d_llb_rtb}

### Glide AJAX 対応スクリプトインクルードのプライバシー設定 {#ariaid-title5}

Glide AJAX 対応スクリプトインクルードのプライバシー設定によって、Glide AJAX 対応スクリプトインクルードにアクセスできるユーザーが決まります。

#### プライベートプライバシー設定 {#c_ChangePrivacyAll__section_x1t_fx3_ktb}

プライベートプライバシー設定は、公開ページにアクセスするゲストが Glide AJAX 対応スクリプトインクルードにアクセスできないことを意味します。非公開スクリプトは、ログインしていないユーザーは実行できません。

#### 公開プライバシー設定 {#c_ChangePrivacyAll__section_cm3_3x3_ktb}

公開プライバシー設定は、適切な HTTP 要求を作成するログインしていないユーザーが、クライアントスクリプトを実行できることを意味します。クライアントスクリプトが機密情報を提供する場合、これによりセキュリティ上の問題が発生する可能性があります。  
次のスクリプトインクルードは、デフォルトでは公開のままです。これは、[UI ページを公開または非公開にする](https://www.servicenow.com/docs/access?context=t_MakeAPagePublic&version=australia&pubname=australia-platform-security&ft:locale=en-US)が、次のスクリプトインクルードにアクセスする必要があるためです。

* GlideSystemAjax
* SysMessageAjax
* KnowledgeMessagingAjax
* KnowledgeAjax
* PasswordResetAjax
{#c_ChangePrivacyAll__ul_qbw_12g_tq}

#### すべての Glide AJAX 対応スクリプトインクルードにプライバシーを設定する {#c_ChangePrivacyAll__section_ikm_xk4_jtb}

すべての Glide AJAX 対応スクリプトインクルードのプライバシー設定を変更します。

すべての Glide AJAX 対応スクリプトインクルードをさらに制御するために、アドミニストレーターは glide.script.ccsi.ispublic プロパティを追加できます。このプロパティは、Glide AJAX 対応スクリプトインクルードをすべて公開または非公開にすることで、その可視化を変更します。プロパティを以下のとおり構成します。  
{#c_ChangePrivacyAll__table_ndm_xfg_tq__entry__2}

| タイトル | プロパティ |
|-|-|
| 名前 | glide.script.ccsi.ispublic |
| タイプ | true \| false |
| 値 | false |
[表 : 2. プロパティの構成]

{#c_ChangePrivacyAll__table_ndm_xfg_tq}  
注:  
このプロパティの詳細については、「インスタンスセキュリティ強化設定」の「[Require authentication by default for client-callable script includes](https://www.servicenow.com/docs/access?context=sc-privacy-on-client-callable-script-includes&version=australia&pubname=australia-platform-security&ft:locale=en-US)」を参照してください。

#### 単一の Glide AJAX 対応スクリプトインクルードのプライバシー変更 {#ariaid-title6}

isPublic() 関数を追加して、単一の Glide AJAX 対応スクリプトインクルードのプライバシー設定を変更します。

isPublic() 設定は glide.script.ccsi.ispublic プロパティよりも優先されます。たとえば、プロパティが false に設定されていて、すべての Glide AJAX が有効なスクリプトインクルードを非公開にし、スクリプトで isPublic() が true に設定されている場合、スクリプトは公開されます。

単一の Glide AJAX 対応スクリプトインクルードのプライバシーを変更するには、次のメソッドをスクリプトインクルードに追加します。  

    isPublic:function(){return[true/false];},

NewInclude クライアントスクリプトを非公開にします。

    var NewInclude =Class.create();
     
    NewInclude.prototype={
       initialize:function(){},
     
       myFunction:function(){//Put function code here},
       isPublic:function(){return false;},
     
       type:'NewInclude'};

#### Glide AJAX 対応スクリプトインクルードのセキュリティ {#ariaid-title7}

Glide AJAX 対応スクリプトインクルード不正使用を防止します。顧客アプリケーションで作成されたすべてのレコードについて、セキュリティリスクの軽減に役立つ推奨事項が表示されます。

Glide AJAX 対応スクリプトインクルードを作成すると、次のセキュリティ推奨事項がまだ構成されていない場合は、それらが表示されます。

* スクリプトインクルードにパブリックアクセス権がある場合を除き、アクセス制御を追加または定義します。
* スクリプトがデータベースにクエリを実行する場合は、GlideRecord API の代わりに GlideRecordSecure を使用してセキュリティを強化します。  
  注:  
  セキュリティ推奨メッセージを無効にするには、sys_properties テーブルでプロパティ glide.script.ccsi.customer_scoped.security_msgs_enabled を false に設定します。デフォルト値は true になっています。

{#security-ccsi__ul_ohx_k1j_ktb}

セキュリティコンプライアンスの詳細については、「[インスタンスセキュリティ強化設定](https://www.servicenow.com/docs/access?context=security-hardening-settings&version=australia&pubname=australia-platform-security&ft:locale=en-US)」を参照してください。

## ディスカバリースクリプトインクルード {#ariaid-title8}

ディスカバリー スクリプトインクルードは、ディスカバリー タスクを実行するために使用できる JavaScript クラスを定義します。  
注:  
discovery_admin ロールを持つユーザーは、スクリプトインクルードを書き込むことができます。サーバー側およびクライアント側のスクリプティングのベストプラクティスに従って、セキュリティ上の問題を防止します。詳細については、ナレッジ記事「[KB0550828](https://support.servicenow.com/kb_view.do?sysparm_article=KB0550828)」を参照してください。

### GlideRecordUtil を使用した GlideRecord の操作

GlideRecordUtil は、ディスカバリー 実行時に、GlideRecord 操作に役立つメソッドを提供するユーティリティクラスです。使用可能なメソッドの説明については、「[GlideRecordUtil](https://servicenow-prod.fluidtopics.net/AvnakjZ8U032fUhfo8EHWw#c_GlideRecordUtilAPI "GlideRecordUtil スクリプトインクルードは、GlideRecord を操作するためのユーティリティクラスです。")」を参照してください。

### GlideRecord インスタンスの取得

指定された構成アイテムの、正しいクラスとテーブルの GlideRecord インスタンスを取得するには、getCIGR(sys_id) メソッドを使用します。たとえば次のコードは、CI の GlideRecord を取得します。その sys_id は 2dfd7c8437201000deeabfc8bcbe5d56 です。

    var now_GR = new GlideRecordUtil().getCIGR("2dfd7c8437201000deeabfc8bcbe5d56");

クラスタイプが未知の場合に階層テーブルを取得するには、getGR(base_table, sys_id) メソッドを使用します。たとえば、コンピュータークラス CI の GlideRecord を取得するには、コンピュータークラス、Windows サーバー、または Linux サーバークラスを区別することが必要になる場合があります。このメソッドを使用すると、GlideRecord が正しいクラスを持っていることが保証されます。異なるクラスには異なる属性があります。このユースケースでは、Windows サーバーは Linux サーバーとは異なる属性を持ちます。次の例は、正しいクラスの GlideRecord をその属性とともに取得する方法を示しています。

    var now_GR = new GlideRecordUtil().getGR( "cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");

### GlideRecord のすべてのフィールドの取得

getFields(now_GR) メソッドは、指定された GlideRecord に存在するすべてのフィールドまたは属性の JavaScript オブジェクト (ハッシュマップなど) を返します。

    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");
    var fields = new GlideRecordUtil().getFields(now_GR);
    gs.log(fields.join(" ")); // List all the fields that are in a computer CI

### GlideRecord オブジェクトフィールドの入力

populateFromGR(hashmap, gr,ignore) メソッドを使用すると、GlideRecord オブジェクトを取得して、そのフィールドと値を JavaScript オブジェクトに入力できます。3 番目の引数 (<var class="keyword varname">ignore</var>) は、特定のフィールドを除外できるようにするオプションの JavaScript オブジェクトです。たとえば、GlideRecord の sys_created_by または sys_updated_by フィールドを気にする必要がない場合があります。

    var objectToPopulate = { }; 
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56"); 
    var ignore = {"sys_created_on": true, "sys_updated_by": true}; 
    new GlideRecordUtil().populateFromGR(objectToPopulate, now_GR, ignore); 
    // Now the objectToPopulate contains field/value pairs from the computer GlideRecord

mergeToGR(hashmap, gr,ignore) メソッドを使用すると、GlideRecord にフィールド/値のペアのオブジェクトを入力できます。ignore 引数は、指定されたフィールドの更新を停止します。次のコード例では、コンピューターレコードの name フィールドと os フィールドが更新されますが、sys_created_by フィールドは更新されません。

    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56"); 
    var obj = {"name": "xyz", "os": "windows 2000", "sys_created_by", "aleck.lin"};
    var ignore = {"sys_created_by": true}; 
    new GlideRecordUtil().mergeToGR(obj, gr, ignore);
    gr.update();

### テーブル階層の取得

getTables(table) メソッドは、次の例に示すように、テーブル階層のリストを返します。

    var tables = new GlideRecordUtil().getTables("cmdb_ci_linux_server");
    gs.log(tables.join(",")); 
    // The result would be "cmdb_ci, cmdb_ci_computer, cmdb_ci_server, cmdb_ci_linux_server".

### DiscoveryException と AutomationException の使用 {#ariaid-title9}

ディスカバリー センサーとセンサー関連のスクリプトを記述するときに、 DiscoveryException または AutomationException を使用して、ディスカバリー から例外が発生したことを示すことができます。  
DiscoveryException スクリプトインクルードは AutomationException を拡張し、それは GenericException クラスを拡張します。次の例では、DiscoveryException を使用して例外をスローします。

    function foo() { 
      if(//condition matches) throw new DiscoveryException("The message", "The cause"); }

最初の引数は例外のメッセージを受け取り、2 番目の引数 (オプション) は例外の原因を受け取ります。次の例に示すように、例外を捕捉してログに記録することもできます。

    try {
      foo(); 
    } 
    catch(e) { 
       if(e instanceof DiscoveryException)
         gs.log("A DiscoveryException occurred. It is " + e. getMessage() + " caused by " + e.getCause()); }

上記の例は、AutomationException にも適用されます。DiscoveryException は通常、特にディスカバリーに例外処理を提供するために使用され、AutomationException はオーケストレーションと ディスカバリー の両方に適用される例外処理に使用されます。

