---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

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) 소요 시간: 10분

HermesEventPublisherOOB 스크립트 포함은 메시지를 게시하는 메서드를 제공합니다.Hermes 메시징 서비스

이 스크립트 포함의 기본 기능을 변경하려면 `HermesEventPublisher` 스크립트 포함에 있는 이 스크립트 포함에 포함된 메서드를 재정의해야 합니다. 이 스크립트 포함의 메서드 재정의에 대한 자세한 내용은 다음 문서를 참조하십시오 [다음을 사용하도록 생산자 이벤트 알림 프레임워크 구성 Hermes 메시징 서비스](https://servicenow-prod.fluidtopics.net/BeU9OvUEexuZfYIdff7FLA "인스턴스에서 사용하는 Hermes 메시징 서비스 경우 Kafka 메시지-버스에 대한 생산자 이벤트 알림 프레임워크를 구성해야 합니다.").

이 스크립트 포함은 `sn_api_notif_mgmt` 네임스페이스에서 실행됩니다.

## HermesEventPublisherOOB - fetchMessageHeaders(객체 메시지) {#ariaid-title2}

전달된 메시지와 연결된 메시지 헤더를 반환합니다.
을 통해 Hermes 메시징 서비스메시지를 게시하기 전에 이 메서드를 호출해야 합니다.

이 메서드의 기본 구현은 <var class="keyword varname">원본</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/BeU9OvUEexuZfYIdff7FLA "인스턴스에서 사용하는 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/SxOldTlEAExjyz5bnQQxQA#ProducerV2ScopedAPI "ProducerV2 API는 인스턴스에서 ServiceNow Kafka 주제로 메시지를 게시하는 메서드를 제공합니다.") API를 사용하는 대신 사용하는 워크플로우 스튜디오 것과 같이 Kafka 게시 메커니즘을 변경하지 않는 한 이 메서드를 재정의할 필요는 거의 없습니다.
{#HEPO-publishEventHermesKafka_O__table_vrf_q2b_vzb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| tmfEvent페이로드 | 객체 | TMF688 호환 이벤트 페이로드입니다. 이 이벤트 페이로드의 형식에 대한 설명은 [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);
    },


