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


---

# TopicUtilOOB - 범위 지정됨

# TopicUtilOOB - 범위 지정됨 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 12분

TopicUtilOOB 스크립트 포함에는 주제 \[sn_api_notif_mgmt_topic\] 테이블의 기록을 쿼리하고 조작할 수 있는 함수가 포함되어 있습니다. 이 클래스는 DAO(데이터 액세스 개체) 클래스와 상호 작용하는 서비스 계층에서 작동합니다.

이러한 함수는 주제 양식에서 주제 가져오기 버튼을 선택할 때 호출됩니다. 이 스크립트 포함의 기본 기능을 변경하려면 이 스크립트 포함에 포함된 함수를 `TopicUtil` 스크립트 포함에서 재정의해야 합니다.

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

주제에 대한 자세한 내용은 다음 문서를 참조하십시오 [External event management via Telecommunications API notifications](https://www.servicenow.com/docs/access?context=telecommunications-api-notification&version=australia&pubname=australia-telecom-service-ops&ft:locale=en-US).

## TopicUtilOOB - createTopic(객체 topicObj) {#ariaid-title2}

DAO 삽입을 사용하여 주제 \[sn_api_notif_mgmt_topic\] 테이블에 기록을 작성합니다.
일반적으로 콘텐츠에 대한 다양한 유효성 검사를 수행하는 [validateAndInsertTopic](https://servicenow-prod.fluidtopics.net/eGGNiJqo~YTTn704yBoDmw#TopUtilOOB-validateInsertTopics_A "전달된 주제 기록 페이로드를 확인하고 이 데이터가 포함된 주제 [sn_api_notif_mgmt_topic} 테이블에 기록을 삽입합니다.") 함수 내에서 이 함수를 호출합니다.
{#TopUtilOOB-createTopic_O__table_s5t_gxw_1zb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 주제 객체 | 객체 | 주제 기록에 저장할 필드를 포함하는 객체입니다. 기본 구현의 경우 객체의 형식은 다음과 같습니다. 주제 테이블을 수정하거나 확장하는 경우 이 객체는 해당 구조를 반영해야 합니다. 필수 필드를 포함해야 합니다. "topicObj": { "content_query": "String"; "description": "String"; "header_query": "String"; "namespace": "String"; "topic_id": "String"; "topic_name": "String"; "type": "String"; } |
[표 1. 매개변수]

{#TopUtilOOB-createTopic_O__table_s5t_gxw_1zb} {#TopUtilOOB-createTopic_O__table_t5t_gxw_1zb__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | 생성된 주제 기록의 Sys_id입니다. |
[표 2. 반환]

{#TopUtilOOB-createTopic_O__table_t5t_gxw_1zb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    validateAndInsertTopics: function(topicsResponse) {
      if (!gs.nil(topicsResponse)) {
        var topicsArr = topicsResponse.response;
        for (var i = 0; i < topicsArr.length; i++) {
          var name = topicsArr[i].name;
          var headerQuery = topicsArr[i].headerQuery;
          var contentQuery = topicsArr[i].contentQuery;
          var namespace = topicsArr[i].namespace;
          var id = topicsArr[i].id;
          var description = topicsArr[i].description;
          var topicGr = TopicDAO.getTopicByNameHeaderContentNamespace(name, headerQuery, contentQuery, namespace,'');
          if (topicGr && !topicGr.hasNext()) {
            var topicObj = new sn_tmt_core.BaseObject();
            topicObj.setValue('topic_name', name);
            topicObj.setValue('header_query', headerQuery);
            topicObj.setValue('content_query', contentQuery);
            topicObj.setValue('namespace', namespace);
            topicObj.setValue('description', description);
            topicObj.setValue('topic_id', id);
            topicObj.setValue('type', Constants.TYPE_INGRESS);
            this.createTopic(topicObj);
          }
        }
      }
    }

다음 코드 예제에서는 이 함수를 재정의하는 방법을 보여 줍니다.

    var TopicUtil = Class.create();
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 

      // Define overriding functions here. Pass a topic record object with 
      // values for a single Topic table record.

      createTopic: function(topicObj){ 
        return this.topicDAO.create(topicObj); 
      } 

      type: TopicUtil 

    });

## TopicUtilOOB - getSubFlowName() {#ariaid-title3}

외부 시스템에서 주제를 가져오기 위해 호출할 하위 플로우의 이름을 반환합니다.
일반적으로 이 함수는 [triggerSubflow()](https://servicenow-prod.fluidtopics.net/eGGNiJqo~YTTn704yBoDmw#TopUtilOOB-triggerSubflow "외부 시스템에서 주제 기록을 가져오는 일을 담당하는 하위 플로우를 트리거합니다.") 함수에서 호출됩니다. 이 하위 플로우는 외부 시스템에 연결하고 주제 \[sn_api_notif_mgmt_topic\] 테이블에 삽입해야 하는 주제 기록을 가져오는 작업을 담당합니다.

하위 플로우의 이름은 Constants.GET_TOPICS_SUBFLOW에 정의되어 `있습니다.` 데모 구현의 경우 이 하위 플로우는 `sn_ind_tmf642.event_alarm_notifications_api` 이며 엔드 투 엔드 처리를 보여주는 "모의" 응답(외부 시스템을 호출하지 않음)을 생성합니다.

sn_api_notif_mgmt에서 실행할 하위 플로우의 이름을 재정의하여 자체 하위 플로우의 이름을 포함하도록 이 기능을 변경할 수 있습니다 . 상수 스크립트 포함.
{#TopUtilOOB-getSubFlowName__table_kwz_jhx_1zb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 3. 매개변수]

{#TopUtilOOB-getSubFlowName__table_kwz_jhx_1zb} {#TopUtilOOB-getSubFlowName__table_lwz_jhx_1zb__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | 외부 시스템에서 주제를 가져오는 데 사용할 하위 플로우의 이름입니다. |
[표 4. 반환]

{#TopUtilOOB-getSubFlowName__table_lwz_jhx_1zb}  
다음 코드 예제에서는 이 함수를 재정의하는 방법을 보여 줍니다.

    var TopicUtil= Class.create();  
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 

      // Define overriding function here. In TopicUtilOOB it returns the flow name of a GET outbound API call that mocks the GET call.
      // Override this function to return a flow that returns topics from an external system. 

      getSubflowName: function(){ 
        return <flow_name>; // Return the name here
      } 

      type: TopicUtil 

    });

## TopicUtilOOB - triggerSubflow() {#ariaid-title4}

외부 시스템에서 주제 기록을 가져오는 일을 담당하는 하위 플로우를 트리거합니다.
이 함수는 사용자가 주제 양식에서 주제 가져오기 버튼을 선택할 때 호출됩니다.

트리거되는 하위 플로우의 이름은 Constants.GET_TOPICS_SUBFLOW에 정의되어 `있습니다`. 데모 구현의 경우 이 하위 플로우는 `sn_ind_tmf642.event_alarm_notifications_api` 이며 엔드 투 엔드 처리를 보여주는 "모의" 응답(외부 시스템을 호출하지 않음)을 생성합니다.

sn_api_notif_mgmt에서 실행할 하위 플로우의 이름을 재정의하여 자체 하위 플로우의 이름을 포함하도록 이 기능을 변경해야 합니다 . 상수 스크립트 포함.

하위 플로우 내에서 REST 단계, 연결 별칭 또는 기타 구현을 만들어 외부 네트워크에서 주제를 검색하는 엔드포인트 URL을 제공해야 합니다. 해당 하위 플로우에서 주제가 반환되면 [validateAndInsertTopics](https://servicenow-prod.fluidtopics.net/eGGNiJqo~YTTn704yBoDmw#TopUtilOOB-validateInsertTopics_A "전달된 주제 기록 페이로드를 확인하고 이 데이터가 포함된 주제 [sn_api_notif_mgmt_topic} 테이블에 기록을 삽입합니다.") 함수를 호출하여 전달된 주제 페이로드를 확인하고 주제 테이블에 기록을 삽입/업데이트합니다.
{#TopUtilOOB-triggerSubflow__table_fz1_zfx_1zb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 5. 매개변수]

{#TopUtilOOB-triggerSubflow__table_fz1_zfx_1zb} {#TopUtilOOB-triggerSubflow__table_gz1_zfx_1zb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 6. 반환]

{#TopUtilOOB-triggerSubflow__table_gz1_zfx_1zb}  
다음 코드 예제에서는 이 함수를 재정의하는 방법을 보여 줍니다.

    var TopicUtil = Class.create();
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 

      // Define overriding functions here. Override this function to call your own GET API outbound call subflow.
      triggerSubflow: function(){
        var result =''; // Pass the subflow here 

        try {
          var flowOp = sn_fd.FlowAPI.getRunner().subflow(result).inBackground().withInputs().run();
          if (flowOp) { 
            gs.addInfoMessage(gs.getMessage('Please refresh the list to see new Topics.'));
          } 
        } catch (ex) {
          gs.addInfoMessage(gs.getMessage(ex + ' Please check if the trigger is defined and passed correctly')); 
        }
      } 

      type: TopicUtil 

    });

## TopicUtilOOB - validateAndInsertTopics(배열 topicsResponse) {#ariaid-title5}

전달된 주제 기록 페이로드를 확인하고 이 데이터가 포함된 주제 \[sn_api_notif_mgmt_topic} 테이블에 기록을 삽입합니다.
전달된 주제 페이로드는 외부 시스템에서 주제를 검색하는 데 사용되는 "API 엔드포인트 가져오기"에서 가져옵니다. 이 GET API를 트리거하는 방법에 대한 자세한 내용은 [triggerSubflow()](https://servicenow-prod.fluidtopics.net/eGGNiJqo~YTTn704yBoDmw#TopUtilOOB-triggerSubflow "외부 시스템에서 주제 기록을 가져오는 일을 담당하는 하위 플로우를 트리거합니다.")를 참조하세요.

TopicUtil 스크립트 포함에서 이 함수를 재정의하여 고유한 확인 규칙 및 주제 기록 필드를 포함하도록 이 기능을 변경할 수 있습니다.
{#TopUtilOOB-validateInsertTopics_A__table_d5m_bcx_1zb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 주제응답 | 객체 배열 | 하위 플로우 내의 GET API 엔드포인트를 통해 외부 시스템에서 반환하는 주제 기록 페이로드입니다. 이 페이로드는 주제 \[sn_api_notif_mgmt_topic\] 테이블의 구조와 일치해야 합니다. 배열 내의 각 객체는 별도의 주제입니다. 예를 들어, 데모 구현에서는 다음과 같습니다. "topicResponse": [ { "name": "String"; "header_query": "String"; "content_query": "String"; "namespace": "String"; "id": "String"; "description": "String" }, { "name": "String"; "header_query": "String"; "content_query": "String"; "namespace": "String"; "id": "String"; "description": "String" } ] |
[표 7. 매개변수]

{#TopUtilOOB-validateInsertTopics_A__table_d5m_bcx_1zb} {#TopUtilOOB-validateInsertTopics_A__table_e5m_bcx_1zb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 8. 반환]

{#TopUtilOOB-validateInsertTopics_A__table_e5m_bcx_1zb}  
다음 코드 예제에서는 이 함수를 재정의하는 방법을 보여 줍니다.

    var TopicUtil= Class.create();  
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 

      // Define overriding functions here. Override this function to include custom 
      // validations on topic payload parameters and insert the record into the Topics table. 

      validateInsertTopics: function(topicsResponse){ 

        // Provide validation on the passed payload. 
        this.createTopic(topicObj);
      } 

    type: TopicUtil 

    });

## TopicUtilOOB - verifyTopics(문자열 주제 이름, 문자열 headerQuery, 문자열 contentQuery, 문자열 네임스페이스, 문자열 previousSysId) {#ariaid-title6}

주제 \[sn_api_notif_mgmt_topic\] 테이블의 다른 주제 기록에 중복 주제를 나타내는 복합 키로 지정된 필드 조합이 포함되어 있는지 여부를 결정합니다.
{#TopUtilOOB-verifyTopics_S__table_thz_wdx_1zb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 주제 이름 | 문자열 | 주제의 이름입니다. |
| 헤더쿼리 | 문자열 | 이벤트 헤더 속성의 컨텐츠에 적용할 필터입니다. 이 쿼리는 관련 주제에 대해 수신할 이벤트의 유형을 정의합니다. 이 매개변수를 중첩된 쿼리로 전달할 수 있습니다. 예: `"headerQuery": "eventType=AlarmCreateNotification&domain=Paris",` 자세한 내용은 [TMF688 Event Management API 사용자 안내서](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/)를 참조하십시오. |
| contentQuery | 문자열 | 이벤트 컨텐츠에 적용할 필터입니다. 이 쿼리는 이벤트 심각도 또는 가능한 원인과 같은 정보를 찾는 데 사용되는 심층적인 이벤트 필터입니다. 이 매개변수를 중첩된 쿼리로 전달할 수 있습니다. 예: `"contentQuery": "event.alarm.perceivedSeverity=CRITICAL",` 자세한 내용은 [TMF688 Event Management API 사용자 안내서](https://www.tmforum.org/resources/standard/tmf688-event-management-api-user-guide-v4-0-0/)를 참조하십시오. |
| 네임스페이스 | 문자열 | 관련된 주제가 있는 네임스페이스입니다. 주제는 도메인 내에서 복제할 수 없지만 여러 도메인에 포함할 수 있습니다. |
| 이전 시스템 ID | 문자열 | 옵션입니다. 업데이트할 주제의 Sys_id입니다. 기존 주제를 업데이트할 때만 이 값을 전달합니다. |
[표 9. 매개변수]

{#TopUtilOOB-verifyTopics_S__table_thz_wdx_1zb} {#TopUtilOOB-verifyTopics_S__table_uhz_wdx_1zb__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 주제 테이블의 다른 기록에 지정된 필드 조합이 포함되어 있는지 여부를 나타내는 플래그입니다. 가능한 값: * true: 주제 테이블의 다른 기록에 필드 조합이 포함되어 있습니다. * false: 주제 테이블의 다른 기록에는 필드 조합이 포함되어 있지 않습니다. |
[표 10. 반환]

{#TopUtilOOB-verifyTopics_S__table_uhz_wdx_1zb}  
다음 코드 예제에서는 이 함수를 재정의하는 방법을 보여 줍니다.


    var TopicUtil= Class.create();
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, {

      // Define overriding functions here. Override this function to provide custom validations on 
      // the passed parameters and to verify whether an insert is possible or not. 

      verifyTopics: function(topicname, headerQuery, contentQuery, namespace, previousSysId) { 

        // Write modified code here to get any combination of records present in the current Topic table. 
        // In the current implementation, the function checks if there is a duplicate topic record that contains the
        // passed parameters. 

      },

    type: TopicUtil 

    });


