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


---

# アラーム管理オープン API 開発者ガイド

# アラーム管理オープン API 開発者ガイド {#ariaid-title1}

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

アラーム管理オープン API を使用して、イベント \[em_event\] テーブルのデータを作成および更新します。

この開発者ガイドでは、[アラーム管理オープン API](https://servicenow-prod.fluidtopics.net/yE0cvVlNZCZDogaZbhu_TQ#alarm-open-api "アラーム管理オープン API は、イベント [em_event] およびアラート [em_alert] テーブルからデータを作成、更新、および取得するためのエンドポイントを提供します。") を拡張してさまざまなカスタマイズを行う方法について説明します。

## アラーム管理オープン API の拡張 {#ariaid-title2}

アラーム管理オープン API は、スクリプトインクルードを編集することによって拡張できます。  
これらのスクリプトインクルードは、変更の結果を理解した上でのみ編集する必要があります。

* `TMFAlarmAPIConstants`：定数と必要なパラメーター情報が含まれています。
* `TMFAlarmAPIUtil`：API 要求を処理する関数が含まれています。
* `AlarmAPIProcessorOOB`：TMFAlarmAPIUtil 内の関数をサポートするヘルパー関数が含まれています。
* `AlarmAPIProcessor`：空のスクリプトインクルードファイル。このファイルを使用して、AlarmAPIProcessorOOB から上書きする関数を定義します。
{#extend-alarm-mgmt-api__ul_yyb_qjh_yqb}

アラーム管理オープン API を拡張して、次のカスタマイズを行います。

### 必要なパラメーター {#extend-alarm-mgmt-api__section_a22_fkt_prb}

アラーム管理 API は、JSON スキーマを使用して必要なパラメーター情報を保持します。この JSON スキーマは、TMFAlarmAPIConstants スクリプトインクルードで定義されています。これらのスキーマを使用して、要求ペイロードが有効かどうかを検証します。これらのスキーマはスクリプトインクルード内で直接参照されず、AlarmAPIProcessorOOB スクリプトインクルード内の次のメソッドによって返されます。

* getCreateEventSchema：イベントを作成するための検証スキーマを返します。
* getClearEventSchema：イベントアラームをクリアするための検証スキーマを返します。
* getPatchEventSchema：イベントをパッチ適用するための検証スキーマを返します。
{#extend-alarm-mgmt-api__ul_zyb_qjh_yqb}  
既存のスキーマを上書きするには、AlarmAPIProcessor スクリプトインクルードで新しいスキーマを定義し、AlarmAPIProcessorOOB スクリプトインクルードのメソッドを上書きします。

    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
    	// Define getCreateEventSchema here to override OOTB method in AlarmAPIProcessorOOB
    	getCreateEventSchema: function() {
    		return JSON.parse(AlarmAPIProcessor.CUSTOMIZED_SCHEMA);
    	},
        type: 'AlarmAPIProcessor'
    });

    // Define a new schema
    AlarmAPIProcessor.CUSTOMIZED_SCHEMA = "{\"title\":\"CreateAlarm\",\"type\":\"object\",
    \"properties\":{\"externalAlarmId\":{\"type\":\"string\"},\"alarmType\":{\"type\":\"string\"},
    \"perceivedSeverity\":{\"type\":\"string\"},\"probableCause\":{\"type\":\"string\"},
    \"alarmedObject\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},
    \"href\":{\"type\":\"string\"}},\"required\":[\"id\"]},\"sourceSystemId\":{\"type\":\"string\"}},
    \"required\":[\"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",
    \"alarmedObject\",\"sourceSystemId\"]}";

### 要求本文の検証 {#extend-alarm-mgmt-api__section_ikk_tkt_prb}

要求本文で追加の検証を実行するには、AlarmAPIProcessorOOB スクリプトインクルードの次の関数 をオーバーライドします。これらの関数は指定された関数によって TMFAlarmAPIUtil スクリプトインクルードで呼び出されます。

* `verifyCreateEventPayload()`：`processCreateEvent()`によって呼び出されます。
* `verifyClearEventPayload()`：`processClearEvent()`によって呼び出されます。
* `verifyPatchEventPayload()`：`processPatchEvent()`によって呼び出されます。

{#extend-alarm-mgmt-api__ul_azb_qjh_yqb} これらの関数はすべて、defalut によって true を返します。ヘルパー関数が false を返すと、API 操作が停止します。
カスタム検証を適用するには、AlarmAPIProcessor 内の同じ名前の関数名とパラメーターで、AlarmAPIProcessorOOB ヘルパー関数を上書きします。新しい AlarmAPIProcessor 関数が TMFAlarmAPIUtil によって呼び出され、デフォルトの AlarmAPIProcessorOOB ヘルパー関数を置き換えます。  
この例では、カスタムの AlarmAPIProcessor スクリプトインクルード内の関数が AlarmAPIProcessorOOB のデフォルト関数を上書きして、name 属性の検証を実行します。

    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
        verifyCreateEventPayload: function(eventPayload, apiResponseProcessor){
            // Returning false terminates the POST request
            // Make sure to assign error message and reason
            if (eventPayload.type != "unique") {
                apiResponseProcessor.setMessage("Failed");
                apiResponseProcessor.setReason("No reason needed");
                return false;
            }
        },
    	
        type: 'AlarmAPIProcessor'
    });

### 追加の REST 操作 {#extend-alarm-mgmt-api__section_qc3_xkt_prb}

既存の GET、PATCH、および POST 操作以外の操作を作成するには、アラーム管理オープン API の[スクリプト化された REST リソースを追加で作成](https://servicenow-prod.fluidtopics.net/p9L5Hh8xdmuQoy12wNRUgw "Scripted REST API リソースを作成して、HTTP メソッド、処理スクリプトを定義し、親サービスの設定を上書きします。") します。新しいスクリプト化済み REST リソースのロジックは、既存の操作と一致する必要があります。新しい操作の関数は TMFAlarmAPIUtil で定義します。

### フィールドマッピング {#extend-alarm-mgmt-api__section_hyt_ykt_prb}

レコードを作成したり更新したりする際は、アラーム管理オープン API は要求本文パラメーターをイベントレコードのフィールドにマッピングします。レコードを取得する際には、API はレコードのフィールドを応答オブジェクトの属性にマッピングします。  
AlarmAPIProcessorOOB スクリプトインクルードには、PATCH または POST 要求の本文をイベント \[em_event\] テーブルのレコードにマッピングする次の関数が含まれています。

* `mapCreateAlarmObjectToEvent()`
* `mapClearAlarmObjectToEvent()`
* `mapPatchAlarmObjectToEvent()`
{#extend-alarm-mgmt-api__ul_bzb_qjh_yqb}  
また、イベントの GlideRecord を GET、PATCH、または POST 要求の JSON 応答オブジェクトにマッピングする次の関数も含まれています。

* `modifyCreateEventResponse()`
* `modifyClearEventResponse()`
* `modifyPatchEventResponse()`

{#extend-alarm-mgmt-api__ul_nsy_3xh_yqb} フィールドマッピングを使用して、追加のイベント \[em_event\] テーブルフィールドのデータを追加および取得したり、デフォルトのフィールドマッピングを変更したりすることができます。マッピングを操作するには、同じ名前とパラメーターを持つ関数を AlarmAPIProcessor 内に作成して、AlarmAPIProcessorOOB のマッピング関数を上書きします。TMFAlarmAPIUtil が AlarmAPIProcessor 関数を使用して、デフォルトの AlarmAPIProcessorOOB ヘルパー関数を置き換えます。  
次の例では、2 つの AlarmAPIProcessor 関数が AlarmAPIProcessorOOB のデフォルト関数をオーバーライドして、 タイプのフィールドマッピングを変更し重大度フィールドのマッピングを追加します。

    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
        // Function name and parameters must be identical to the function it overrides
        mapCreateAlarmObjectToEvent: function(eventGr, eventObject){
            // Override default mapping for the severity field
            eventGr.severity = "High";
        },

        modifyCreateEventResponse: function(eventGr, eventObject){
            // Override default mapping for the type field
            eventGr.type = "Customized Event"; 
        },
    	
        type: 'AlarmAPIProcessor'
    });


