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


---

# HermesEventPublisherOOB: スコープ指定

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

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

HermesEventPublisherOOB スクリプトインクルードは、メッセージをHermes メッセージングサービスに公開するメソッドを提供します。

このスクリプトインクルードのデフォルト機能を変更する場合は、 `HermesEventPublisher` スクリプトインクルードでこのスクリプトインクルードに含まれるメソッドを上書きする必要があります。このスクリプトインクルードのメソッドの上書きの詳細については、「 [を使用するようにプロデューサーイベント通知フレームワークを構成する Hermes メッセージングサービス](https://servicenow-prod.fluidtopics.net/gDV4hF~k9tHnvam3CiR01A "インスタンスで Hermes メッセージングサービス を使用している場合は、Kafka メッセージバスのプロデューサーイベント通知フレームワークを構成する必要があります。")」を参照してください。

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

## HermesEventPublisherOOB:fetchMessageHeaders(オブジェクトメッセージ) {#ariaid-title2}

渡されたメッセージに関連付けられたメッセージヘッダーを返します。
Hermes メッセージングサービス を介してメッセージを公開する前に、このメソッドを呼び出す必要があります。

このメソッドのデフォルト実装では、 <var class="keyword varname">origin</var> ヘッダー値のみが `TMT_SERVICENOW` に設定されます。ビジネス要件に基づいてこのメソッドで他のヘッダー属性を返す必要がある場合は、 HermesEventPublisher スクリプトインクルードでこのメソッドを上書きし、追加のヘッダー属性を指定する必要があります。
{#HEPO-fetchMessageHeaders_O__table_uwm_zd1_vzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| メッセージ | オブジェクト | Hermes Kafka メッセージブローカーに公開する TMF イベント。このメッセージの形式の詳細については、「 [TMF688 Event Management API ユーザーガイド v4.0.0](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/)」を参照してください。 |
[表 : 1. パラメーター]

{#HEPO-fetchMessageHeaders_O__table_uwm_zd1_vzb} {#HEPO-fetchMessageHeaders_O__table_vwm_zd1_vzb__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | 渡されたメッセージに使用する Kafka ヘッダー。 例： { origin: 'TMT_SERVICENOW' } |
[表 : 2. 返される内容]

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

    publishMessageThroughProducerV2API: function(message) {
      if (gs.nil(message)) return;
      var comptableTopicSysIds = this.fetchTopicsForMessage(message);
      if (gs.nil(comptableTopicSysIds)) return;

      for (var i = 0; i < comptableTopicSysIds.length; i++) {
        var partitionKey = this.fetchPartionKey(message);
        var headers = this.fetchMessageHeaders(message)
        try {
          var producer = new sn_ih_kafka.ProducerV2();
          producer.send(comptableTopicSysIds[i], partitionKey, JSON.stringify(message), false, headers);
        } catch (ex) {
          this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      }
    },

## HermesEventPublisherOOB:fetchPartionKey(オブジェクトメッセージ) {#ariaid-title3}

渡されたメッセージに関連付けられたパーティションキーを返します。
Hermes メッセージングサービス を介してメッセージを公開する前に、このメソッドを呼び出す必要があります。

このメソッドのデフォルト実装では、自動生成された一意の ID がパーティションキーとして返されます。このタイプの実装により、メッセージがトピックのすべてのパーティションで均等に公開されます。パーティションの処理を変更する場合は、 HermesEventPublisher スクリプトインクルードでこのメソッドを上書きする必要があります。別の可能な実装は、メッセージイベントタイプまたはその他の属性に基づいて一意のパーティションキーを返して、同じイベントタイプまたは属性のメッセージの順序付けを保証することです。
{#HEPO-fetchPartionKey_O__table_uwm_zd1_vzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| メッセージ | オブジェクト | Hermes Kafka メッセージブローカーを使用して公開するメッセージ。このメッセージの形式の詳細については、「 [TMF688 Event Management API ユーザーガイド v4.0.0](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/)」を参照してください。 |
[表 : 3. パラメーター]

{#HEPO-fetchPartionKey_O__table_uwm_zd1_vzb} {#HEPO-fetchPartionKey_O__table_vwm_zd1_vzb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 渡されたメッセージに使用する Kafka パーティションキー。 例:6B29FC40-CA47-1067-B31D-00DD010662DA |
[表 : 4. 返される内容]

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

    publishMessageThroughProducerV2API: function(message) {
      if (gs.nil(message)) return;
      var comptableTopicSysIds = this.fetchTopicsForMessage(message);
      if (gs.nil(comptableTopicSysIds)) return;

      for (var i = 0; i < comptableTopicSysIds.length; i++) {
        var partitionKey = this.fetchPartionKey(message);
        var headers = this.fetchMessageHeaders(message)
        try {
          var producer = new sn_ih_kafka.ProducerV2();
          producer.send(comptableTopicSysIds[i], partitionKey, JSON.stringify(message), false, headers);
        } catch (ex) {
          this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      }
    },

次のコード例は、このメソッドをオーバーライドして、指定されたメッセージに使用するパーティションキーを決定する独自のロジックを含める方法を示しています。

    // Existing implementation for fetching a partition key which is an auto-generated unique ID.
    fetchPartionKey: function(message) { 
      // Implement it for custom partition key 
      // Random message key ensures better distribution of messages across partitions. 
      // Same message key ensures that messages always goes to the same partition. This ensures a strict sequencing
      //  of messages at the Kafka consumer group level. 
      return gs.generateGUID(); 
    }, 

    // Implementation where the partition key is determined based on the event type.
    fetchPartionKey: function(message) {
      var eventType = message.eventType;
      var partionKey = fetchPartionKeyForMessage(eventType);
      return partionKey;
    },

## HermesEventPublisherOOB:fetchTopicsForMessage(オブジェクトメッセージ) {#ariaid-title4}

渡されたメッセージに関連付けられているすべての Kafka トピックを返します。
このメソッドは基本実装には実装されておらず、静的なsys_idのみを返します。HermesEventPublisher スクリプトインクルードでこのメソッドを上書きし、渡されたメッセージを送信する Kafka トピックを決定するロジックを指定する必要があります。

このメソッドを実装する方法の詳細については、「 [を使用するようにプロデューサーイベント通知フレームワークを構成する Hermes メッセージングサービス](https://servicenow-prod.fluidtopics.net/gDV4hF~k9tHnvam3CiR01A "インスタンスで Hermes メッセージングサービス を使用している場合は、Kafka メッセージバスのプロデューサーイベント通知フレームワークを構成する必要があります。")」を参照してください。
{#HEPO-fetchTopicsForMessage_O__table_uwm_zd1_vzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| メッセージ | オブジェクト | Hermes Kafka メッセージブローカーに公開する TMF メッセージ。このメッセージの形式の詳細については、「 [TMF688 Event Management API ユーザーガイド v4.0.0](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/)」を参照してください。 |
[表 : 5. パラメーター]

{#HEPO-fetchTopicsForMessage_O__table_uwm_zd1_vzb} {#HEPO-fetchTopicsForMessage_O__table_vwm_zd1_vzb__entry__2}

| タイプ | 説明 |
|-|-|
| アレイ | メッセージの送信先となる Kafka トピックのsys_idsのリスト。 例： [ "9d385017c611228701d22104cc95c371", "8438201ec613628421e13105d396d421" ] テーブル:Kafka トピック \[cmdb_ci_appl_kafka_topic\] |
[表 : 6. 返される内容]

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

    publishMessageThroughProducerV2API: function(message) {
      if (gs.nil(message)) return;
      var comptableTopicSysIds = this.fetchTopicsForMessage(message);
      if (gs.nil(comptableTopicSysIds)) return;

      for (var i = 0; i < comptableTopicSysIds.length; i++) {
        var partitionKey = this.fetchPartionKey(message);
        var headers = this.fetchMessageHeaders(message)
        try {
          var producer = new sn_ih_kafka.ProducerV2();
          producer.send(comptableTopicSysIds[i], partitionKey, JSON.stringify(message), false, headers);
        } catch (ex) {
          this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
        }
      }
    },

次のコード例は、このメソッドをオーバーライドして、渡されたメッセージごとに同じトピックレコードsys_idを返す方法を示しています。

    // Return the same topic for all messages if your 
     // implementation only supports one kind of topic

    fetchTopicsForMessage: function(message) { 
    // Return the same sys_id for all passed messages which
    // implies that all of the messages are published to the same topic.
    return ['91564fc087f8351063151f473cbb35f8'];
    },

次のコード例は、このメソッドをオーバーライドして、メッセージ内のイベントタイプに基づいてメッセージを送信するトピックを特定する方法を示しています。

    // Fetch the topic based on the message content. 
    // This could be based on the message domain type or the message event type.

    fetchTopicsForMessage: function(message) { 
    // Implement to return topic based on a message content
    // Implementor may decide a topic based on 'eventType' or any other attribute.

    var eventType = message.eventType;

    var topicSysIdsArr = this.fetchTopicBasedOnEventType(eventType);
    return topicSysIdsArr

    },

## HermesEventPublisherOOB:publishEventToHermesKafka(オブジェクト:tmfEventPayload) {#ariaid-title5}

Hermes メッセージングサービスを使用して、合格した TMF688 準拠のペイロードを公開します。
これは、他のメソッドを呼び出してイベントを発行する親メソッドです。[ProducerV2](https://servicenow-prod.fluidtopics.net/MBZxOp37IEUSe~Bzki47Ig#ProducerV2ScopedAPI "ProducerV2 API は、ServiceNow インスタンスから Kafka トピックにメッセージを公開するメソッドを提供します。") API を使用する代わりに ワークフロースタジオ を使用するなど、Kafka 公開メカニズムを変更しない限り、このメソッドを上書きする必要はほとんどありません。
{#HEPO-publishEventHermesKafka_O__table_vrf_q2b_vzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| tmfEventPayload | オブジェクト | TMF688 準拠のイベントペイロード。このイベントペイロードの形式については、 [『TMF688 Event Management API User Guide (TMF688 Event Management API ユーザーガイド](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/))』を参照してください。 |
[表 : 7. パラメーター]

{#HEPO-publishEventHermesKafka_O__table_vrf_q2b_vzb} {#HEPO-publishEventHermesKafka_O__table_wrf_q2b_vzb__entry__2}

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

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

    publishMessageToHermesKafka: function(tmfEventPayload) {
      new HermesEventPublisher().publishEventToHermesKafka(tmfEventPayload);
    },


