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


---

# EventProcessorUtilOOB: スコープ指定

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

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

EventProcessorUtilOOB スクリプトインクルードは、構成されたメッセージブローカーでイベントを作成して公開するためのメソッドを提供します。

このスクリプトインクルードのデフォルト機能を変更する場合は、 `EventProcessorUtil` スクリプトインクルードでこれらのメソッドを上書きする必要があります。このスクリプトインクルードを変更するには、admin ロールが必要です。

このスクリプトインクルードは、 `sn_api_notif_mgmt` 名前空間で実行されます。

## EventProcessorUtilOOB - constructandPublishEvent(オブジェクト inboundEventPayloadRecord, 文字列 eventId) {#ariaid-title2}

渡された情報に基づいて TMF688 準拠のペイロードを構築し、構成された公開プラットフォームにイベントを公開します。
デフォルトの公開プラットフォームは、sn_api_notif_mgmt.publisher_message_bus_config システムプロパティで定義されます。  
注:  
このメソッドは、キュー管理のコアユーティリティメソッドです。基礎となる通知フレームワークを再設計する予定がない限り、このメソッドを上書きする必要はありません。
{#EPUO-contructPubEvent_O_S__table_dtq_kv3_tzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| inboundEventPayloadRecord | オブジェクト | イベントに関連付けられた情報。このペイロードの形式は、イベントタイプによって異なります。基本実装では、これは JSON 形式の関連イベントの Glide レコードデータです。 |
| eventId | 文字列 | GUID など、公開するイベントの一意の ID。 |
[表 : 1. パラメーター]

{#EPUO-contructPubEvent_O_S__table_dtq_kv3_tzb} {#EPUO-contructPubEvent_O_S__table_etq_kv3_tzb__entry__2}

| タイプ | 説明 |
|-|-|
| tmfEventPayload | イベント用に作成された TMF688 準拠のイベントペイロード。このイベント・ペイロードのデフォルト・フォーマットの説明については、「 [TMF688 Event Management API User Guide (TMF688 イベント管理 API ユーザー・ガイド](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/))」を参照してください。 |
[表 : 2. 返される内容]

{#EPUO-contructPubEvent_O_S__table_etq_kv3_tzb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    processIndividualEventRecord: function(inboundQueueGr, node_id) {
      var isError = false;
      var errorMessage;
      try {
        new EventProcessorUtil().constructandPublishEvent(JSON.parse(inboundQueueGr.getValue('payload')), inboundQueueGr.getValue('record_id'));
      } catch (ex) {
        this._logger.logErr("Event processing failed " + ex);
        isError = true;
        errorMessage = JSON.stringify(ex);
      }

      // Update the inbound queue record based on processing
      var inboundQueueObj = new sn_tmt_core.BaseObject();
      if (isError == true) {
        inboundQueueObj.setValue('state', sn_tmt_core.Constants.INBOUND_QUEUE_STATE.ERROR);
        inboundQueueObj.setValue('error_message', errorMessage);
      } else {
        inboundQueueObj.setValue('state', sn_tmt_core.Constants.INBOUND_QUEUE_STATE.COMPLETED);
      }
        var inboundQueue = new sn_tmt_core.InboundQueue(inboundQueueGr, false);
        inboundQueue.updateInboundQueueRecord(inboundQueueObj);
    },

## EventProcessorUtilOOB - fetchEventHandlerAndCreateTMFEvent(Object eventSnapshot, String eventType, String eventId) {#ariaid-title3}

イベントタイプに基づいてペイロードジェネレーターを呼び出し、渡された生のイベントオブジェクトを TMF 準拠のイベントオブジェクトに変換します。
実装で次のいずれかが実行される場合は、このメソッドを上書きする必要があります。

* 既存のイベント処理を変更します。
* 新しいイベントタイプを追加します。イベントタイプとそれに関連付けられたペイロードジェネレーターを追加する必要があります。
* プロデューサーイベント通知フレームワークに新しいオブジェクトを追加します。

また、 TroubleTicketNotificationUtil スクリプトインクルード内のメソッドを上書きして、返された TMF 準拠のペイロードに属性を追加したり、ペイロードのデフォルトの処理を変更したりする必要がある場合もあります。

詳細については、「[プロデューサーイベント通知フレームワークを使用したトラブルチケット通知の設定](https://servicenow-prod.fluidtopics.net/i0NBM4L7VPPBxtd~0XH6mA "トラブルチケット通知の基本実装には、システムの機能を示す一連のトラブルチケットイベントが含まれています。")」を参照してください。
{#EPUO-FetEvHandCreatTMFEv_O_S_S__table_bq5_4nz_5zb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| イベントスナップショット | オブジェクト | TMF 準拠のオブジェクトに変換する生データ。 このオブジェクトは、受信キュー \[sn_tmt_core_inbound_queue\] テーブルのペイロードフィールドから取得できます。受信キューレコードは、インシデント \[incident\] テーブルに関連付けられているトラブルチケット属性変更イベントなどのビジネスルールによって作成されます。 イベントスナップショットの形式は、最初にイベントを受信キューにプッシュしたビジネスルールによって定義されます。 |
| eventType | 文字列 | イベントタイプ。この値は、 eventSnapshot ペイロードで渡されるイベントデータのタイプを指定します。渡されたペイロードは、このイベントタイプに基づいて処理されます。イベントタイプは、関連付けられたテーブルの関連付けられたビジネスルールによって受信キューレコードにスタンプされます。各イベントタイプには、独自のイベントペイロード構造があります。例： { "eventId":"dc2003c2c3bb3550054e20bdc0013136", "@type":"Troubleticket", "eventType":"TroubleTicketCreateEvent", "event":{ "troubleTicket":{ "short_description":"Test payload", "severity":3, "ticketType":"incident" } } } トラブルチケットイベントタイプのデフォルト値は、sn_api_notif_mgmtの EVENT_TYPES パラメーターで定義されます 。定数 スクリプトインクルード。 |
| eventId | 文字列 | 変換するイベントの一意の識別子。 |
[表 : 3. パラメーター]

{#EPUO-FetEvHandCreatTMFEv_O_S_S__table_bq5_4nz_5zb} {#EPUO-FetEvHandCreatTMFEv_O_S_S__table_cq5_4nz_5zb__entry__2}

| タイプ | 説明 |
|-|-|
| tmfEventPayload | TMF 準拠形式のイベントペイロード。渡された eventSnapshot オブジェクトから TMF 準拠のペイロードへの変換プロセスを確認するには、 TroubleTicketNotificationUtilOOB スクリプトインクルードのコードを確認します。 |
[表 : 4. 返される内容]

{#EPUO-FetEvHandCreatTMFEv_O_S_S__table_cq5_4nz_5zb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    constructandPublishEvent: function(inboundEventPayloadRecord, eventId) {
      if (gs.nil(inboundEventPayloadRecord)) return;
      var tmfEventPayload = this.fetchEventHandlerAndCreateTMFEvent(inboundEventPayloadRecord.eventSnapshot, inboundEventPayloadRecord.eventType, eventId);

      this._logger.debug("Event payload generated for the event id " + eventId + " is " + JSON.stringify(tmfEventPayload));

      if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.OPEN_MESSAGE_BUS) {
        // Publish event in custom message bus
          this.publishEventToOpenMessageBus(tmfEventPayload);

      } else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.HERMES) {
        // Publish event in hermes kafka
        try {
          this.publishMessageToHermesKafka(tmfEventPayload);
        } catch (ex) {
          this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      } else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.BOTH_MESSAGE_BUS_CONFIGURATIONS) {
        // Publish event in both custom message bus and hermes kafka
        this.publishEventToOpenMessageBus(tmfEventPayload);
        try {
          this.publishMessageToHermesKafka(tmfEventPayload);
        } catch (ex) {
          this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      }
      return tmfEventPayload;
    },

次のコード例は、渡されたイベントペイロードを eventType パラメーターに基づいて変換する方法を決定するために、このメソッドで使用される switch case ステートメントを示しています。実装に他のイベントタイプを追加する場合は、このメソッドを上書きし、新しいイベントタイプの処理を含める必要があります。

    fetchEventHandlerAndCreateTMFEvent: function(eventSnapshot, eventType, eventId) {
    var eventPayload;
    switch (eventType) {
      case Constants.EVENT_TYPES.TROUBLE_TICKET_STATUS_CHANGE:
        eventPayload = new sn_ind_tsm_sdwan.TroubleTicketNotificationUtil().generateTroubleTicketStatusChangePayload(eventSnapshot, eventType, eventId);
        break;

      // New event type in trouble ticket
      case 'troubleTicketPriorityChange'
        eventPayload = new sn_ind_tsm_sdwan.TroubleTicketNotificationUtil().generateTroubleTicketAttributeChangePayload(eventSnapshot, eventType, eventId);
        break;

      // New event type of object other than trouble ticket
      case 'domainOrderStatusChange'
        eventPayload = new sn_ind_tmt_orm().domainOrderNotification().generatedomainOrderStatusChangePayoad(eventSnapshot, eventType, eventId);
        break;

      default:
        this._logger.debug("Event with id " + eventId + " could not find the matching payload generator");
        eventPayload = null;
      }
    return eventPayload;
    },

## EventProcessorUtilOOB - publishMessageToHermesKafka(オブジェクト tmfEventPayload) {#ariaid-title4}

HermesEventPublisher クラスをインスタンス化し、渡されたイベントペイロードを Hermes Kafka メッセージブローカーに公開します。
{#EPUO-pubMessageHermesKafka_O__table_olz_v2y_tzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| tmfEventPayload | オブジェクト | イベント用に作成された TMF688 準拠のイベントペイロード。このイベント・ペイロードのデフォルト・フォーマットの説明については、「 [TMF688 Event Management API User Guide (TMF688 イベント管理 API ユーザー・ガイド](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/))」を参照してください。 |
[表 : 5. パラメーター]

{#EPUO-pubMessageHermesKafka_O__table_olz_v2y_tzb} {#EPUO-pubMessageHermesKafka_O__table_plz_v2y_tzb__entry__2}

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

{#EPUO-pubMessageHermesKafka_O__table_plz_v2y_tzb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    constructandPublishEvent: function(inboundEventPayloadRecord, eventId) {
      if (gs.nil(inboundEventPayloadRecord)) return;
      var tmfEventPayload = this.fetchEventHandlerAndCreateTMFEvent(inboundEventPayloadRecord.eventSnapshot, inboundEventPayloadRecord.eventType, eventId);

      this._logger.debug("Event payload generated for the event id " + eventId + " is " + JSON.stringify(tmfEventPayload));

      if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.OPEN_MESSAGE_BUS) {
        // Publish event in open message bus
        this.publishEventToOpenMessageBus(tmfEventPayload);

      } else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.HERMES) {
        // Publish event in Hermes Kafka
        try {
          this.publishMessageToHermesKafka(tmfEventPayload);
        } catch (ex) {
            this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      } else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.BOTH_MESSAGE_BUS_CONFIGURATIONS) {
        // Publish event in both custom message bus and Hermes Kafka
        this.publishEventToOpenMessageBus(tmfEventPayload);
        try {
          this.publishMessageToHermesKafka(tmfEventPayload);
        } catch (ex) {
          this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      }
      return tmfEventPayload;
    },


