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


---

# 문제 티켓 Open API 개발자 가이드

# 문제 티켓 Open API 개발자 가이드 {#ariaid-title1}

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

문제 티켓 오픈 API를 사용하여 외부 티켓팅 시스템과 ServiceNow AI Platform. 이 API는 케이스 \[sn_customerservice_case\] 및 인시던트 \[incident\] 테이블에서 데이터를 생성, 업데이트 및 검색합니다.

이 개발자 가이드에서는 다양한 [문제 티켓 오픈 API](https://servicenow-prod.fluidtopics.net/0neI37SOtNf2iNu4su7PTA#trouble-ticket-open-api "Trouble Ticket Open API는 케이스 [sn_customerservice_case], 인시던트 [incident] 및 서비스 문제 케이스 [sn_sprb_mgmt_case] 테이블에서 데이터를 생성, 업데이트 및 검색하는 엔드포인트를 제공합니다.") 커스터마이제이션을 수행하도록 확장하는 방법에 대한 정보를 제공합니다.

## 문제 티켓 오픈 API 확장 {#ariaid-title2}

스크립트 포함을 편집하여 문제 티켓 열기 API 를 확장할 수 있습니다.  
이러한 스크립트 포함은 변경의 결과를 이해한 상태에서만 편집해야 합니다.

* `TMFTroubleTicketAPIConstants`: 상수 및 필수 매개변수 정보를 포함합니다.
* `TMFTroubleTicketAPIUtil`: POST, GET 및 PATCH 요청을 처리하는 함수를 포함합니다.
* `TroubleTicketProcessorOOB:` TMFTroubleTicketAPIUtil의 함수를 지원하는 도우미 함수를 포함합니다.
* `TroubleTicketProcessor`: 비어 있는 스크립트 포함 파일입니다. 이 파일을 사용하여 TroubleTicketProcessorOOB에서 재정의할 함수를 정의합니다.
{#extend-trouble-ticket-api__ul_d5h_lhr_wpb}

Trouble Ticket Open API를 확장하여 다음과 같은 사용자 지정을 수행합니다.

### 필수 매개변수 {#extend-trouble-ticket-api__section_kcp_rw2_2rb}

필요한 요청 본문 매개변수를 변경하려면 TMFTroubleTicketAPIConstants 스크립트 포함을 업데이트합니다. 기본적으로 티켓(POST)을 만들기 위한 요청 본문에는 매개변수 description, severity및 ticketType. 기본적으로 티켓 업데이트 요청 본문(PATCH)에는 필수 매개변수가 없습니다.

* `TMFTroubleTicketAPIConstants.TROUBLE_TICKET_CREATION_SCHEMA`: 티켓을 만드는 데 필요한 요청 본문 매개변수를 설정합니다.
* `TMFTroubleTicketAPIConstants.TROUBLE_TICKET_UPDATE_SCHEMA`: 티켓을 업데이트하는 데 필요한 요청 본문 매개변수를 설정합니다.
{#extend-trouble-ticket-api__ul_nsx_yps_wpb}  
이 예에서 티켓을 만드는 데는 , , severitystatus및 ticketType 매개변수가 description필요합니다.

    // TMFTroubleTicketAPIConstants
    TMFTroubleTicketAPIConstants.TROUBLE_TICKET_CREATION_SCHEMA = {
        "title": "CreateTroubleTicket",
        "type": "object",
        "properties": {
            "description": {
                "type": "string"
            },
            "severity": {
                "type": "string"
            },
            "status": {
                "type": "string"
            },
            "ticketType": {
                "type": "string"
            }
        },
        "required": [
            "description",
            "severity",
            "status",
            "ticketType"
        ]
    };

### 요청 본문 확인 {#extend-trouble-ticket-api__section_byb_ww2_2rb}

요청 본문에 대한 추가 유효성 검사를 수행하려면 TroubleTicketProcessorOOB 함수를 재정의합니다. TroubleTicketProcessorOOB에는 기본적으로 `true` 를 반환하는 다음과 같은 6개의 도우미 함수가 포함되어 있습니다. 이러한 함수는 TMFTroubleTicketAPIUtil에서 호출됩니다.

* `verifyGetRequestForCase()` - `processGetRequestForCase()`에 의해 호출됩니다.
* `verifyPatchRequestForCase()` - `processPatchRequestForCase()`에 의해 호출됩니다.
* `verifyPostRequestForCase()` - `processPostRequestForCase()`에 의해 호출됩니다.
* `verifyGetRequestForIncident()` - `processGetRequestForIncident()`에 의해 호출됩니다.
* `verifyPatchRequestForIncident()` - `processPatchRequestForIncident()`에 의해 호출됩니다.
* `verifyPostRequestForIncident()` - `processPostRequestForIncident()`에 의해 호출됩니다.

{#extend-trouble-ticket-api__ul_khg_llx_wpb}도우미 함수가 `false`를 반환하면 API 작업을 중지합니다. 사용자 지정 유효성 검사를 적용하려면 TroubleTicketProcessor에서 동일한 이름과 매개변수를 가진 함수를 만들어 TroubleTicketProcessorOOB 도우미 함수를 재정의합니다. 이러한 새 TroubleTicketProcessor 함수는 TMFTroubleTicketAPIUtil에서 호출되어 기본 TroubleTicketProcessorOOB 도우미 함수를 대체합니다.  
이 예제에서 TroubleTicketProcessor의 함수는 TroubleTicketProcessorOOB의 기본 함수를 재정의하여 이름 특성에 대한 유효성 검사를 수행합니다.

    // TroubleTicketProcessor
    var TroubleTicketProcessor = Class.create();
    TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides

        verifyPostRequestForCase: function(caseObject, apiResponseProcessor){
            // Returning false terminates the POST request
            // Make sure to assign error message and reason
            if (caseObject.name != "Hello world") {
                apiResponseProcessor.setMessage(TMFTroubleTicketAPIConstants.MESSAGES.CASE_CREATION_FAILURE);
                apiResponseProcessor.setReason("No reason needed");
                return false;
            }
        },

        type: 'TroubleTicketProcessor'
    });

### 추가 REST 운영 {#extend-trouble-ticket-api__section_x2z_zw2_2rb}

기존 GET, PATCH 및 POST 작업 외에 추가 작업을 생성하려면 문제 티켓 오픈 API에 대해 [스크립트된 REST 자원을 추가로 생성합니다](https://servicenow-prod.fluidtopics.net/seqzGDajT8QPRDo62RD7mg "HTTP 메서드와 처리 스크립트를 정의하고 상위 서비스의 설정을 재정의하는 스크립트된 REST API 자원을 만듭니다.") . 새 스크립트된 REST 자원의 논리는 기존 작업과 일치해야 합니다. TMFTroubleTicketAPIUtil에서 새 작업에 대한 함수를 정의합니다.

### 필드 매핑 {#extend-trouble-ticket-api__section_oxc_cx2_2rb}

기록을 만들거나 업데이트할 때 API는 요청 본문 매개변수를 케이스 및 인시던트 기록 필드에 매핑합니다. 기록을 검색할 때 API는 기록 필드를 응답 객체 속성에 매핑합니다.  
TroubleTicketProcessorOOB에는 패치 또는 POST 요청 본문을 케이스 또는 인시던트 GlideRecord에 매핑하는 다음 함수가 포함되어 있습니다.

* `mapPatchRequestToCase()`
* `mapPostRequestToCase()`
* `mapPatchRequestToIncident()`
* `mapPostRequestToIncident()`
{#extend-trouble-ticket-api__ul_krb_r4x_wpb}  
TroubleTicketProcessorOOB에는 케이스 또는 인시던트 GlideRecord를 GET, PATCH 또는 POST 요청에 대한 JSON 응답 객체에 매핑하는 다음 함수가 포함되어 있습니다.

* `createGetResponseForCase()`
* `createPatchResponseForCase()`
* `createPostResponseForCase()`
* `createGetResponseForIncident()`
* `createPatchResponseForIncident()`
* `createPostResponseForIncident()`
{#extend-trouble-ticket-api__ul_qqk_zfz_wpb}

필드 매핑을 사용자 지정하여 케이스 및 인시던트 필드에 대한 데이터를 추가 및 검색하거나 필드의 기본 매핑을 변경합니다. 필드 매핑을 사용자 지정하려면 TroubleTicketProcessor에서 동일한 이름과 매개변수를 가진 함수를 만들어 TroubleTicketProcessorOOB 매핑 함수를 재정의합니다. 이러한 새로운 TroubleTicketProcessor 함수는 TMFTroubleTicketAPIUtil에서 기본 TroubleTicketProcessorOOB 매핑 함수를 대체하는 데 사용됩니다.  
이 예에서 TroubleTicketProcessor의 두 함수는 TroubleTicketProcessorOOB의 기본 함수를 재정의하여 설명 필드 매핑을 변경하고 계약 필드에 대한 매핑을 추가합니다.

    // TroubleTicketProcessor
    var TroubleTicketProcessor = Class.create();
    TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides

        mapPostRequestToCase: function(caseGr, caseObject){
            // Override default mapping for the Description field
            caseGr.description = "All cases will be created with this description";
            // Add new mapping to the Contract field
            caseGr.contract = caseObject.contract;
         },

        createPostResponseForCase: function(caseGr, caseObject){
            // Override default mapping for the description attribute
            caseObject.description = "This will always be the retrieved description";
            // Add new contract attribute to the response object
            caseObject.contract = caseGr.contract;    
        },

        type: 'TroubleTicketProcessor'
    });

### 선택 필드에 대한 매핑 논리 {#extend-trouble-ticket-api__section_kdd_gx2_2rb}

상태, 우선순위 및 contact_type 필드는 각 선택 필드가 레이블과 해당 값으로 구성된 선택 필드입니다. 예를 들어 상태 필드가 신규로 설정된 경우 레이블은 신규 이고 값은 1입니다. 선택 필드 매핑 기능을 재정의하여 선택 레이블과 값 간의 매핑을 변경할 수 있습니다.  
TroubleTicketProcessorOOB에는 다음과 같은 선택 필드 매핑 함수가 포함되어 있습니다.

* `transformCaseSeverity()`
* `transformCaseChannel()`
* `transformCaseStatus()`
* `transformIncidentSeverityToUrgency()`
* `transformIncidentSeverityToImpact()`
* `transformIncidentChannel()`
* `transformIncidentStatus()`
{#extend-trouble-ticket-api__ul_jzp_kfz_wpb}TroubleTicketProcessor에서 동일한 이름과 매개변수를 가진 함수를 만들어 TroubleTicketProcessorOOB 선택 필드 매핑 함수를 재정의합니다. 이러한 새로운 TroubleTicketProcessor 함수는 TMFTroubleTicketAPIUtil에서 기본 TroubleTicketProcessorOOB 선택 필드 매핑 함수를 대체하는 데 사용됩니다.  
이 예제에서 TroubleTicketProcessor의 함수는 TroubleTicketProcessorOOB의 기본 함수를 재정의하여 상태 필드에 대한 선택 매핑을 변경합니다.

    // TroubleTicketProcessor
    var TroubleTicketProcessor = Class.create();
    TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides

        transformCaseStatus: function(status){
            if (status == "Draft")
                return 1;
            else return 10;
        },

        type: 'TroubleTicketProcessor'
    });


