Service Order Open API 개발자 가이드

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기8분
  • Service Order Open API를 사용하여 서비스 주문 정보를 생성, 업데이트 및 검색합니다.

    이 개발자 가이드에서는 다양한 사용자 지정을 위해 확장 서비스 주문 개방형 API 하는 방법에 대한 정보를 제공합니다.

    Service Order Open API 확장

    스크립트 포함을 편집하여 Service Order Open API 를 확장할 수 있습니다.

    이러한 스크립트 포함은 변경의 결과를 이해해야만 편집해야 합니다.
    • TMFServiceOrderAPIUtil: POST 요청을 처리하는 함수를 포함합니다.
    • TMFServiceOrderGetAPIUtil: GET 요청을 처리하는 함수를 포함합니다.
    • ServiceOrderExtensionOOB: TMFServiceOrderAPIUtil 및 TMFServiceOrderGetAPIUtil의 함수를 지원하는 도우미 함수를 포함합니다.
    • ServiceOrderProcessor: 빈 스크립트 포함 파일입니다. 이 파일을 사용하여 ServiceOrderExtensionOOB에서 재정의할 함수를 정의합니다.

    Service Order Open API를 확장하여 다음과 같이 사용자 지정합니다.

    필수 매개변수

    서비스 주문을 생성하는 데 필요하거나 필요하지 않은 요청 본문 매개변수를 변경하려면 ServiceOrderExtensionOOB 스크립트 포함에 포함된 getServiceOrderSchema() 함수를 재정의합니다.

    getServiceOrderSchema() 함수는 TMFOrderAPIConstants 스크립트 포함에서 스키마를 읽습니다. TMFOrderAPIConstants 는 보호되며 편집할 수 없으므로 스키마를 업데이트할 수 없습니다. 대신 다른 파일에서 새 스키마를 읽어야 합니다. getServiceOrderSchema()를 재정의하여 새 스키마를 읽을 수 있습니다. getServiceOrderSchema()를 재정의하려면 ServiceOrderProcessor 스크립트 포함에 같은 이름의 함수를 작성합니다. ServiceOrderProcessor의 새 함수는 ServiceOrderExtensionOOB의 기본 getServiceOrderSchema() 함수를 대체하기 위해 TMFServiceOrderAPIUtil에 의해 호출됩니다.

    이 예제에서 getServiceOrderSchema() 는 새 상수 파일에 정의된 사용자 정의 스키마를 반환합니다.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
       // Define overriding functions here
       // Function name and parameters must be identical to the function it overrides
    
       getServiceOrderSchema: function() {
          //Define your own custom schema in a new constant file
          return JSON.parse(Constants.SCHEMA.CREATE_SERVICE_ORDER);
       },
    
       type: 'ServiceOrderProcessor'
    });

    요청 본문 확인

    요청 본문에 대한 추가 유효성 검사를 수행하려면 ServiceOrderExtensionOOB 함수를 재정의합니다. ServiceOrderExtensionOOB 에는 기본적으로 true 를 반환하는 다음과 같은 네 가지 도우미 함수가 포함되어 있습니다.
    • validatePostRequest() - TMFServiceOrderAPIUtilprocessPostOrder()에 의해 호출됩니다.
    • validateServiceObj() - TMFServiceOrderAPIUtilprocessPostOrder()에 의해 호출됩니다.
    • validateRelatedPartyObj() - TMFServiceOrderAPIUtilprocessPostOrder()에 의해 호출됩니다.
    • validateGetRequest() - TMFServiceOrderGetAPIUtil에서 processGetOrder()에 의해 호출됩니다.
    도우미 함수가 false를 반환하면 API 작업을 중지합니다. 사용자 지정 유효성 검사를 적용하려면 ServiceOrderProcessor에서 동일한 이름과 매개 변수를 가진 함수를 만들어 ServiceOrderExtensionOOB 도우미 함수를 재정의합니다. 이러한 새 ServiceOrderProcessor 함수는 TMFServiceOrderAPIUtil 및 TMFServiceOrderGetAPIUtil에 의해 호출되어 기본 ServiceOrderExtensionOOB 도우미 함수를 대체합니다.
    이 예제에서 ServiceOrderProcessor 의 함수는 ServiceOrderExtensionOOB 의 기본 함수를 재정의하여 특성에 대한 serviceOrderItem 유효성 검사를 수행합니다.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        validatePostRequest: function(orderObject, details) {
            // Returning false terminates the POST request
            // Make sure to push error message in details array in case of error
            if (gs.nil(orderObject.serviceOrderItem)) {
                details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
                return false;
            }
            return true;
        },
    
        type: 'ServiceOrderProcessor'
    });

    추가 REST 작업

    기존 GET 및 POST 작업 외에 추가 작업을 만들려면 Service Order Open API에 대한 스크립트된 REST 리소스를 추가로 만듭니다. 새로 스크립팅된 REST 자원의 논리는 기존 운영과 일치해야 합니다. 새 Script Include에서 새 작업에 대한 함수를 정의합니다.

    필드 매핑

    기록을 만들 때 API는 요청 본문 매개변수를 기록 필드에 매핑합니다. 기록을 검색할 때 API는 기록 필드를 응답 객체 속성에 매핑합니다.

    ServiceOrderExtensionOOB 에는 POST 요청 본문을 GlideRecord에 매핑하는 다음 함수가 포함되어 있습니다.
    • transformOrderGr()을 호출합니다.
    • transformOrdLineItemGr()
    • transformCustLineItmContact()
    • transformOrderItemChar()
    ServiceOrderExtensionOOB 에는 GET 또는 POST 요청에 대한 응답 객체에 GlideRecord를 매핑하는 다음 함수가 포함되어 있습니다.
    • transformPostOrderResponse()
    • transformGetOrderResponse()
    • transformServiceObj()
    • transformRelatedPartyCustomerLineItem()
    • transformOrderItemRelationship()
    • transformGetOrdLineItmResponse()
    • transformServiceCharacteristics()
    • transformServiceSpecification()

    필드 매핑을 사용자 지정하여 추가 필드에 대한 데이터를 추가 및 검색하거나 필드에 대한 기본 매핑을 변경합니다. 필드 매핑을 사용자 지정하려면 ServiceOrderProcessor에서 동일한 이름과 매개변수를 가진 함수를 만들어 ServiceOrderExtensionOOB 매핑 함수를 재정의합니다. 이러한 새 ServiceOrderProcessor 함수는 TMFServiceOrderAPIUtil 및 TMFServiceOrderGetAPIUtil에서 기본 ServiceOrderExtensionOOB 매핑 함수를 대체하는 데 사용됩니다.

    이 예제에서 ServiceOrderProcessor의 두 함수는 ServiceOrderExtensionOOB의 기본 함수를 재정의하여 및 sys_id 필드에 대한 매핑을 external_id 만듭니다.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        transformOrderGr: function(requestObject, orderGr) {
            orderGr.external_id = requestObject.externalId;
            return orderGr;
        },
    
        transformPostOrderResponse: function(orderObject, orderGr) {
            orderObject.id = orderGr.getValue('sys_id');
            return orderObject;
        },
    
        type: 'ServiceOrderProcessor'
    });