---
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


---

# 拡張ポイントを使用してアプリケーション機能を拡張する

# 拡張ポイントを使用してアプリケーション機能を拡張する {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：8分

拡張ポイントを使用して、元のアプリケーションコードを変更せずにアプリケーションの機能を拡張します。選択した Now Platform アプリケーションで使用可能な既存の拡張ポイントを使用できます。また、自分のインスタンスでカスタムアプリケーションを開発する場合は、拡張ポイントを追加できます。

## 拡張ポイントの使用 {#extension-points__section_blc_wft_pdb}

拡張ポイントを使用することで、アプリケーションコードのコアコンポーネントを実際に変更することなくカスタマイズを統合できます。拡張ポイントを使用すると、カスタムコードをアプリケーションコードに直接埋め込む場合にアップグレード後に頻繁に発生する、カスタムコードのやり取りの破損を防ぐことができます。

アプリケーションコードに埋め込まれた拡張ポイントは、データをカスタムコードに渡すアウトポイントとして、そして返される結果を処理するインポイントとして機能します。アプリケーションを作成するときに、返されるデータまたはオブジェクトは、拡張ポイントに対して定義した要件に準拠している必要があります。  
注:  
すぐに利用可能な設定済みの CSM クエリルールの一部は、ビジネスルール内の定数でも使用されるため、変更または無効化できません。

## 拡張ポイントのタイプ {#extension-points__section_zm3_dvf_kgb}

次のタイプのアーティファクトを使用するカスタムコードを処理する拡張ポイントを作成できます。

スクリプト拡張ポイント
:   JavaScript 関数とオブジェクトクラスが格納されるサーバー側スクリプトインクルードの拡張ポイント。スクリプトインクルードについてと、アプリケーションとカスタムコードでスクリプト拡張ポイントを実装する方法の詳細については、以下を参照してください。  
    * [スクリプトインクルード](https://servicenow-prod.fluidtopics.net/drJ3LduSBiw2VQbIxOjicQ#c_ScriptIncludes "スクリプトインクルードは、サーバー上で実行される JavaScript の格納に使用されます。")
    * [スクリプト拡張ポイントの作成と追加](https://servicenow-prod.fluidtopics.net/zRH1O6tiYE1MpPV9HHnQUw "アプリケーションを開発する場合は、スクリプト拡張ポイントを作成し、それをアプリケーションコードのスクリプトインクルードに追加します。スクリプト拡張ポイントを使用して、データまたはオブジェクトを登録済みのカスタムスクリプトインクルードに送信でき、返された結果を処理する特定の場所を指定します。")
    * [拡張ポイントを使用してアプリケーション機能を拡張する](https://servicenow-prod.fluidtopics.net/3tYjfUPEr40jR3jBpM3xrQ "拡張ポイントを使用して、元のアプリケーションコードを変更せずにアプリケーションの機能を拡張します。選択した Now Platform アプリケーションで使用可能な既存の拡張ポイントを使用できます。また、自分のインスタンスでカスタムアプリケーションを開発する場合は、拡張ポイントを追加できます。")
    {#extension-points__ul_vr2_kyc_cgb}

UI 拡張ポイント

:   HTML 拡張などのサーバー側 UI マクロで使用される拡張ポイント。 UI マクロは、ユーザーインターフェイスに追加できる個別のスクリプト化されたコンポーネントです。これらを使用すると、ページを直接変更する必要なく、カスタムコンテンツを UI ページに追加できます。たとえば、UI マクロを使用して、KB 記事が表示される標準の ナレッジベース ビュー (kb_view) の UI ページにヘッダーとフッターを追加できます。

    UI マクロについてと、アプリケーションとカスタムコードで UI 拡張ポイントを実装する方法の詳細については、以下を参照してください。

    * [UI マクロ](https://servicenow-prod.fluidtopics.net/SDbTtd8ZzXr9cfP3Pv3NlQ#c_UIMacros "UI マクロは、アドミニストレーターがユーザーインターフェイスに追加できる個別のスクリプト化されたコンポーネントです。")
    * [UI 拡張ポイントの作成と追加](https://servicenow-prod.fluidtopics.net/mmkLxnxRpI7~goh8E85P5Q#impl-ui-ext-pts-base-code "アプリケーションを開発する場合は、UI 拡張ポイントを作成して、基本アプリケーションコード内のサーバー側 HTML 拡張などの UI マクロまたは UI ページに追加します。")
    * [拡張ポイントを使用してアプリケーション機能を拡張する](https://servicenow-prod.fluidtopics.net/3tYjfUPEr40jR3jBpM3xrQ "拡張ポイントを使用して、元のアプリケーションコードを変更せずにアプリケーションの機能を拡張します。選択した Now Platform アプリケーションで使用可能な既存の拡張ポイントを使用できます。また、自分のインスタンスでカスタムアプリケーションを開発する場合は、拡張ポイントを追加できます。")
    {#extension-points__ul_csp_ncd_cgb}

クライアント拡張ポイント

:   クライアント側 UI スクリプトで使用される拡張ポイント。通常はフォームの変更に使用されます。 UI スクリプトを使用すると、クライアント側 JavaScript を再利用可能な形式にパッケージ化できます。これは、スクリプトインクルードにサーバー側 JavaScript を格納する方法と似ています。UI スクリプトを作成し、それらをクライアントスクリプト、他のクライアント側スクリプトオブジェクト、および HTML コードから実行できます。

    UI スクリプトについてと、アプリケーションとカスタムコードでクライアント拡張ポイントを実装する方法の詳細については、以下を参照してください。

    * [UI スクリプト](https://servicenow-prod.fluidtopics.net/P9oONVMj1ONe5BCc2dFz4w#c_UIScripts "UI スクリプトを使用すると、クライアント側の JavaScript を再利用可能な形式にパッケージ化できます。これは、スクリプトインクルードがサーバー側の JavaScript を格納する方法と似ています。アドミニストレーターは、UI スクリプトを作成し、それらをクライアントスクリプト、他のクライアント側のスクリプトオブジェクト、および HTML コードから実行できます。")
    * [クライアント拡張ポイントの作成と追加](https://servicenow-prod.fluidtopics.net/VzmaHJfW~cdFK6SXNj27vQ "クライアント拡張ポイントを作成し、それを基本アプリケーションコードのクライアント側 UI スクリプトに追加します。")
    * [拡張ポイントを使用してアプリケーション機能を拡張する](https://servicenow-prod.fluidtopics.net/3tYjfUPEr40jR3jBpM3xrQ "拡張ポイントを使用して、元のアプリケーションコードを変更せずにアプリケーションの機能を拡張します。選択した Now Platform アプリケーションで使用可能な既存の拡張ポイントを使用できます。また、自分のインスタンスでカスタムアプリケーションを開発する場合は、拡張ポイントを追加できます。")
    {#extension-points__ul_yvg_rcd_cgb}

拡張ポイントを使用してカスタマイズを処理すると、カスタムデータまたは機能をアプリケーションに統合するための定義済みの構造が作成されます。カスタムサーバー側スクリプトインクルード、HTML 拡張などの UI マクロ、クライアント側 UI スクリプトは、すべてアプリケーションコードの外部にあり、指定された拡張ポイントでのみやり取りします。

## アプリケーションコード {#extension-points__section_a2j_wgy_xgb}

アプリケーションコードという用語は、以下を指します。

標準アプリケーションコード
:   Now Platform を構成する標準、つまり基本アプリケーションコード。  
    事前定義済みの拡張ポイントは、カスタマーサービス管理 (CSM) や フィールドサービス管理 (FSM) などの特定のアプリケーションにすでに埋め込まれています。事前定義済みの拡張ポイントを含む Now Platform アプリケーションの詳細については、以下を参照してください。{#extension-points__table_qqv_xzh_zgb__entry__2}

    | アプリケーション | 拡張ポイントのトピック |
    |-|-|
    | コーチング | [Coaching のトラブルシューティング](https://www.servicenow.com/docs/access?context=coaching-troubleshooting&version=xanadu&pubname=xanadu-it-service-management&ft:locale=en-US) |
    | 継続的改善管理 | [他のアプリケーションとの改善](https://www.servicenow.com/docs/access?context=cim-integration&version=xanadu&pubname=xanadu-it-service-management&ft:locale=en-US) |
    | カスタマーサービス管理 (CSM) | [Customer Service Management の拡張ポイント](https://www.servicenow.com/docs/access?context=extension-points-customer-service&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US) |
    | カスタマーサービス管理 (CSM) | [カスタムユーザーロールの作成](https://www.servicenow.com/docs/access?context=creating-custom-csm-user-roles&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US) |
    | カスタマーサービス管理 (CSM) | [変更管理との CSM 統合](https://www.servicenow.com/docs/access?context=csm-integration-sm-change&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US) |
    | カスタマーサービス管理 (CSM) | [インシデント管理との CSM 統合](https://www.servicenow.com/docs/access?context=csm-integration-sm-incident&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US) |
    | カスタマーサービス管理 (CSM) | [問題管理との CSM 統合](https://www.servicenow.com/docs/access?context=csm-integration-sm-problem&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US) |
    | カスタマーサービス管理 (CSM) | [要求管理との CSM 統合](https://www.servicenow.com/docs/access?context=csm-integration-sm-request&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US) |
    | フィールドサービス管理 (FSM) | [フィールドサービス管理 (FSM) の拡張ポイント](https://www.servicenow.com/docs/access?context=extension-points-field-service&version=xanadu&pubname=xanadu-field-service-management&ft:locale=en-US) |
    | ナレッジ管理 | [ナレッジ管理での拡張ポイントの使用](https://www.servicenow.com/docs/access?context=extension-points-km-plugins&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) |
    | オーケストレーション | [クライアントソフトウェアディストリビューション拡張ネットワーク](https://www.servicenow.com/docs/access?context=c_CSDExtensionFramework&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) [クライアントソフトウェアディストリビューションと一緒にインストールされるもの](https://www.servicenow.com/docs/access?context=r_IWClientSWDist&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) |
    | パスワードリセット | [Password Reset スクリプトインクルード](https://www.servicenow.com/docs/access?context=c_InstalledPasswordResetScripts&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) |
    [ ]

    {#extension-points__table_qqv_xzh_zgb}

自社用に内部開発されたカスタムアプリケーション
:   アプリケーションの機能を変更または拡張するために使用されるカスタムアーティファクトの登録を処理するための拡張ポイントを追加できます。開発者は、カスタムコードを作成する場合に、特定のカスタムアーティファクトを特定の拡張ポイントに登録またはペアリングします。拡張ポイントを追加すると、ベースコードを変更することなく将来のカスタマイズを統合できます。

## アプリケーションコード内での拡張ポイントの作成 {#extension-points__section_mf1_3pg_sdb}

自社用に作成した社内開発のアプリケーションを、必要に応じて適切にカスタマイズ、結合、およびアップグレードできるようにする必要があります。拡張ポイントを使用すると、コアコンポーネントを編集せずにアプリケーションの機能とユーザーインターフェイスを変更できます。拡張ポイントを使用すると、機能拡張のための高度に定義された構造も作成されます。  
拡張ポイントを作成するときは、その使用をそれが定義されているアプリケーションスコープに制限したり、拡張ポイントをすべてのスコープでグローバルに実行できることを指定することができます。アプリケーションスコープが制限されている場合、拡張ポイントに対して登録されたカスタマイズは、指定されたアプリケーションスコープでのみ実行できます。拡張ポイントを含むアプリケーションを設計および構築する前に、次のことを実行する必要があります。

* カスタムのスクリプトインクルード、UI マクロ、または UI スクリプトに対応するために、アプリケーションコードのどこに拡張ポイントを配置するかを指定します。
* 決定する 拡張ポイントのコンテンツと構造。この定義では、カスタマイズの構成方法、アプリケーションコードとのやり取りの方法、および拡張ポイントでカスタマイズによって返されるデータを処理する方法について説明します。
{#extension-points__ul_mz5_1hj_vdb}  
拡張ポイントを作成してアプリケーションコードに埋め込むには、次のタスクを実行します。

1. 拡張ポイントを作成し、そのカスタムインターフェイスを定義します。これはスクリプトによる拡張ポイントの例です。

2. データまたはオブジェクトをカスタマイズに送信でき、データが返されるアプリケーションコード内の特定の場所を指定します。
3. [GlideScriptedExtensionPoint - スコープ指定](https://servicenow-prod.fluidtopics.net/cpEIupnzpG0~h7cikUiynQ#GlideScriptedExtPtScopedAPI "GlideScriptedExtensionPoint API は、指定された拡張ポイントに関連付けられた拡張インスタンスを返すメソッドを提供します。") メソッドを呼び出すアーティファクト (スクリプトインクルード、UI マクロ、UI スクリプトなど) を作成します。このメソッドは、登録されたカスタムアーティファクトがアプリケーションコードで実行される拡張ポイントを識別します。

{#extension-points__ol_ffm_c2g_pfb}

## デバッグとロギングの有効化 {#extension-points__section_h5t_gty_xgb}

拡張ポイントを作成するときは、デバッグとロギングも有効にする必要があります。デバッグとロギングは、拡張ポイントを持つカスタムアーティファクトの使用に関連する問題を特定して修正するのに役立ちます。デバッガーを有効にすると、スクリプトインクルード、UI マクロ、または UI スクリプトにブレークポイントを設定できます。ログを確認して、次の詳細を確認できます。

* 拡張ポイントがアクティブな拡張インスタンスを検出した日時 (検出された拡張インスタンスの総数と各拡張インスタンスが検出された時間を含む)。
* 拡張ポイントが拡張インスタンスを実行した日時 (実行されたカスタムアーティファクトの総数と各実行時間を含む）。実行に失敗した総数と各拡張インスタンスが失敗した時刻も含まれます。

{#extension-points__ul_wj3_vmr_rdb}  
注:  
デバッグを有効にする方法とその機能の詳細については、以下を参照してください。

* [スクリプトデバッガおよびセッションログ](https://servicenow-prod.fluidtopics.net/nsSSbUr4AV26KEQiEHzRmw "スクリプトデバッガを使用すると、script_debugger ロールを持つユーザーはサーバー側の JavaScript をデバッグできます。log_debugger ロールを持つユーザーは、 セッションログ を使用して必要なログを表示およびダウンロードできます。")
* [アプリケーションのデバッグ](https://servicenow-prod.fluidtopics.net/0glgcawTQI7o_o_pLpf65A#c_DebuggingApplications "アプリケーション開発者は、設定レコードに関するデバッグメッセージを表示して、問題のトラブルシューティングに役立てることができます。デバッグスコープモジュールは、サーバーサイドスクリプトを実行するカスタムアプリケーション間のシステム切り替えに関する情報を提供します。")
* [デバッグログへの書き込み](https://servicenow-prod.fluidtopics.net/~XFBB~VIgHEnsbqYqqfq4Q#c_WritingToTheDebugLog "クライアントサイドの JavaScript または UI ポリシーでデバッグログに書き込むには、グローバル関数 jslog() を呼び出します。")
{#extension-points__ul_rzj_psy_xgb}

## 拡張ポイントに対してカスタムアーティファクトを登録する {#extension-points__section_up3_thj_vdb}

アプリケーションをカスタマイズするときは、サーバー側スクリプトインクルード、UI マクロ、クライアント側 UI スクリプトなどのカスタムアーティファクトを使用して基本機能を拡張します。カスタムアーティファクトを設計および構築するには、次のタスクを実行します。  
1. 作成している特定のタイプのカスタムアーティファクトに適した、使用可能な拡張ポイントのリストを確認します。
   * これらのリストには、作成した拡張ポイントと、Now Platform 機能に埋め込まれた事前定義済みの拡張ポイントが含まれます。
   * 各リストには、カスタムアーティファクトを呼び出すアプリケーションコードの拡張ポイントと、返されるデータまたはオブジェクトに関する情報が含まれます。
   {#extension-points__ul_wsn_hxf_kgb}
2. 拡張ポイントを選択します。
3. カスタムアーティファクトの構成方法を決定します。構造は拡張ポイントの説明に基づいている必要があります。説明には、カスタムコードでアーティファクトを使用するための要件と、基本アプリケーションコード内のアーティファクトが配置される場所が含まれます。
4. 選択した拡張ポイントに対して登録するときにカスタムアーティファクトとコードを作成します。登録では、カスタムアーティファクト内の実装に拡張ポイント定義をリンクする拡張インスタンスレコードを作成します。
{#extension-points__ol_xxk_nfg_pfb}

## 登録済みのカスタムアーティファクトの処理方法 {#extension-points__section_gnb_nqy_rdb}

アプリケーションコードが実行され、拡張ポイントを含む埋め込み API コールが見つかると、アプリケーションコードは次の処理を実行します。

1. API コールで拡張ポイントを使用して、どのカスタムアーティファクトが登録されているかを判断します。
2. 適切なデータまたはオブジェクトを登録済みのカスタムアーティファクトに送信します。
3. 各カスタムアーティファクトから返された出力を収集します。
4. 返された結果を処理して基本アプリケーションに組み込みます。
{#extension-points__ol_i1m_5vl_rdb}
* **[サーバー側スクリプトでのスクリプト拡張ポイントの使用](https://servicenow-prod.fluidtopics.net/oJeRzD1_dWtwv13gck9Wpg)**   
  JavaScript 関数とオブジェクトクラスが格納されるサーバー側スクリプトインクルードで拡張ポイントを使用します。拡張ポイントを使用することで、アプリケーションコードのコアコンポーネントを実際に変更することなくカスタマイズを統合できます。
* **[サーバー側 UI マクロの UI 拡張ポイントの使用](https://servicenow-prod.fluidtopics.net/PbsoNpkafV~yHoiN7B2Oyg)**   
  HTML 拡張などのサーバー側 UI マクロの UI 拡張ポイントを使用して、ページを直接変更しなくても UI ページにカスタムコンテンツを追加できます。UI 拡張ポイントを使用することで、アプリケーションコードのコアコンポーネントを実際に変更することなくカスタマイズを統合できます。
* **[クライアント側 UI スクリプトのクライアント拡張ポイントの使用](https://servicenow-prod.fluidtopics.net/iWyRMVVmHhSL~OrfjoPQ3A)**   
  クライアント側 UI スクリプトでクライアント拡張ポイントを使用してフォームを変更します。そのため、フォームを直接変更する必要はありません。クライアント拡張ポイントを使用することで、アプリケーションコードのコアコンポーネントを実際に変更することなくカスタマイズを統合できます。

