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


---

# IBQConfigBase API - 범위 지정됨

# IBQConfigBase API - 범위 지정됨 {#ariaid-title1}

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

요청 추적기에서 요청을 추적하려면 판매 고객 관계 관리 확장해야 하는 스크립트 포함입니다. 이 스크립트 포함은 요청을 실행하는 방법을 정의하는 재정의 가능한 메서드를 제공합니다.

IBQConfigBase 스크립트 포함을 인스턴스에서 사용할 수 있으려면 판매 및 서비스 API 코어(com.sn_tmt_core) 플러그인을 활성화해야 합니다. 이 스크립트 포함은 `sn_tmt_core` 네임스페이스에 속하며 관리자 역할이 필요합니다.  
참조:

* [Lead to Cash Core](https://www.servicenow.com/docs/access?context=lead-to-cash&version=australia&pubname=australia-order-management&ft:locale=en-US)
* [Inbound Request](https://www.servicenow.com/docs/access?context=som_request_tracker&version=australia&pubname=australia-order-management&ft:locale=en-US)
{#IBQConfigBaseAPIBoth__ul_o13_lls_1fc}

## IBQConfigBase API 확장 {#IBQConfigBaseAPIBoth__section_pb4_v2w_bfc}

IBQConfigBase API의 오버라이드 가능한 메서드를 사용하여 스크립트 포함을 정의합니다.  
1. 스크립트 포함을 생성합니다. 이름은 <kbd class="ph userinput">IBQConfig</kbd>로 시작해야 합니다(예: IBQConfigQuoteToOrderFlowSNC).
2. IBQConfigBase API를 확장합니다.  
   예:

       IBQConfigQuoteToOrderFlowSNC.prototype = Object.extendsObject(sn_tmt_core.IBQConfigBase, { 
       ...
       });

3. IBQConfigBase API에서 제공하는 필수 메서드를 재정의합니다.  
   예:

       getRunMode: function(inboundQueueParams) {
           return this.quoteUtil.getQuoteSize(inboundQueueParams.source_record_ids, this.threshold);
       },

       generateParentRecord: function(inboundQueueParams, additionalParams, context) {
           var result = "";
           var entityMappingGr = this.getMapingConfigIdFromSysId(inboundQueueParams.requested_flow);
           var sourceToTargetConfigID = entityMappingGr.getValue("mapping_config_id");
           var sourceHeaderId = inboundQueueParams.source_record_ids;
           if (gs.nil(inboundQueueParams.requested_flow))
               throw "sourceToTargetConfigID cannot be null";
           if (gs.nil(inboundQueueParams.source_record_ids))
               throw "source record id cannot be null";
           var util = new sn_l2c_core.PrimitiveUtil();
           if (gs.nil(additionalParams))
               additionalParams = {};
           additionalParams[this.SKIP_LINES_KEY] = "true";
       },

       processInboundQueueRequest: function(inboundQueueGR) {
           gs.info("processRequest inboundQueueGR " + JSON.stringify(inboundQueueGR));
           var result = this.quoteUtil.createOrderFromQuoteUsingMetadata(inboundQueueGR.getValue('source_record_ids'), 'sn_l2c_quote_to_order', null, null, inboundQueueGR.getValue('record_id'));
           return result;
       }

4. 인바운드 요청 구성 \[sn_tmt_core_inbound_queue_config\] 테이블에 새 메타데이터 항목을 생성하여 요청 처리 방법을 정의합니다.
5. 생성된 스크립트 포함을 메타데이터 기록의 configuration_api 필드에 연결하여 요청을 처리하는 동안 정의된 사용자 지정 논리를 사용합니다. 스크립트 포함은 인바운드 요청 구성 메타데이터를 생성하는 동안 configuration_api 필드에서 참조됩니다.
{#IBQConfigBaseAPIBoth__ol_k4y_3k1_bfc}

## 사용 사례: IBQConfigQuoteToOrderFlow {#IBQConfigBaseAPIBoth__section_adb_nk1_bfc}

IBQConfigBase API를 사용하면 인바운드 요청 구성 메타데이터를 사용하여 견적에서 주문을 생성할 수 있습니다. IBQConfigQuoteToOrderFlow는 IBQConfigBase API를 확장하여 만들 수 있는 사용자 지정 스크립트 포함입니다. 재정의 가능한 메서드에 대한 논리는 IBQConfigQuoteToOrderFlow 스크립트 포함에 추가해야 합니다.  
주:  
이 스크립트 포함은 IBQConfigBase API를 확장하며 메서드 예제에 사용됩니다. PrimitiveUtil API 사용에 대한 자세한 내용은 다음을 참조하십시오[LeadtoCashCore - 범위 지정됨](https://servicenow-prod.fluidtopics.net/qwGJDL__fjmWfmHHbFNI9A#LeadToCashCoreAPI "LeadtoCashCore 스크립트 포함은 현금으로 연결 코어 수명주기에서 현금으로 연결 워크플로우를 오케스트레이션하는 메서드를 제공합니다.").

    var IBQConfigQuoteToOrderFlowSNC = Class.create();
    IBQConfigQuoteToOrderFlowSNC.prototype = Object.extendsObject(sn_tmt_core.IBQConfigBase, {

        initialize: function() {
    		this.quoteUtil = new sn_quote_mgmt.OrderIntegration();
            this.SKIP_LINES_KEY = "skipLines";
    		this.threshold = 15;
        },

        getRunMode: function(inboundQueueParams) {
            return this.quoteUtil.getQuoteSize(inboundQueueParams.source_record_ids, this.threshold);
        },


        generateParentRecord: function(inboundQueueParams, additionalParams, context) {
            var result = "";
            var entityMappingGr = this.getMapingConfigIdFromSysId(inboundQueueParams.requested_flow);
            var sourceToTargetConfigID = entityMappingGr.getValue("mapping_config_id");
            var sourceHeaderId = inboundQueueParams.source_record_ids;
            if (gs.nil(inboundQueueParams.requested_flow))
                throw "sourceToTargetConfigID cannot be null";
            if (gs.nil(inboundQueueParams.source_record_ids))
                throw "source record id cannot be null";
            var util = new sn_l2c_core.PrimitiveUtil();
            if (gs.nil(additionalParams))
                additionalParams = {};
            additionalParams[this.SKIP_LINES_KEY] = "true";

            // additional parameters are retrieved using the PrimitiveUtil() utility methods provided by the Lead to Cash Core application
            var service = util.getPrimitivesEPService(sourceToTargetConfigID, context);
            var isEmpty = false;
            if (service) {
                var createInstanceOutput = service.createInstance(sourceHeaderId, null, false, additionalParams);
                if (gs.nil(sourceHeaderId))
                    isEmpty = this.__isEmpty(createInstanceOutput.lineItems);
                else
                    isEmpty = this.__isEmpty(createInstanceOutput);
                if (!isEmpty) {
                    var effectOutput = service.effect(createInstanceOutput, null, additionalParams);
                    if (!this.__isEmpty(effectOutput)) {
                        var commitOutput = service.commitInstance(effectOutput, additionalParams);
                        return commitOutput;
                    }
                }
            }
            return result;
        },

        processInboundQueueRequest: function(inboundQueueGR) {
            gs.info("processRequest inboundQueueGR " + JSON.stringify(inboundQueueGR));
            var result = this.quoteUtil.createOrderFromQuoteUsingMetadata(inboundQueueGR.getValue('source_record_ids'), 'sn_l2c_quote_to_order', null, null, inboundQueueGR.getValue('record_id'));
            return result;
        },

        __isEmpty: function(sourceObj) {
            if (gs.nil(sourceObj))
                return true;
            return Object.keys(sourceObj).length === 0;
        },
        getMapingConfigIdFromSysId(requestedFlow) {
            var gr = new GlideRecord("sn_l2c_core_entity_mapping");
            gr.addQuery("sys_id", requestedFlow);
            gr.query();
            if (gr.next()) {
                gs.info("mapping id received to corresponding requestedFlow");
                return gr;
            }
        },

        type: 'IBQConfigQuoteToOrderFlowSNC'
    });

## IBQConfigBase -- generateParentRecord(객체 ibqParams) {#ariaid-title2}

요청을 처리하기 전에 인바운드 요청 \[sn_tmt_core_inbound_queue_list\] 기록의 record_id에 추가되는 상위 기록을 생성합니다.
처리 전에 상위 기록을 생성하면 비동기 처리에 이상적이며 처리하는 동안 수행할 수 있는 활동을 스크립트 포함에 추가할 수 있습니다. 예를 들어 화면에 메시지를 표시합니다.
{#IBQCB-generateParentRecord_O__id_dpy_1kb_z2c__entry__3}{#IBQCB-generateParentRecord_O__ibqc-account}{#IBQCB-generateParentRecord_O__ibqc-consumer}{#IBQCB-generateParentRecord_O__ibqc-contact}{#IBQCB-generateParentRecord_O__ibqc-payload}{#IBQCB-generateParentRecord_O__ibqc-payload.additionalParams}{#IBQCB-generateParentRecord_O__ibqc-payload.additionalParams.action}{#IBQCB-generateParentRecord_O__ibqc-payload.additionalParams.actionReason}{#IBQCB-generateParentRecord_O__ibqc-payload.additionalParams.endDate}{#IBQCB-generateParentRecord_O__ibqc-payload.additionalParams.skipLines}{#IBQCB-generateParentRecord_O__ibqc-payload.additionalParams.startDate}{#IBQCB-generateParentRecord_O__ibqc-payload.context}{#IBQCB-generateParentRecord_O__ibqc-payload.context.isMultiselect}{#IBQCB-generateParentRecord_O__ibqc-payload.context.sTTCID}{#IBQCB-generateParentRecord_O__ibqc-payload.inputParams}{#IBQCB-generateParentRecord_O__ibqc-payload.source}{#IBQCB-generateParentRecord_O__ibqc-payload.headerId}{#IBQCB-generateParentRecord_O__ibqc-payload.source.lineIds}{#IBQCB-generateParentRecord_O__ibqc-payload.target}{#IBQCB-generateParentRecord_O__ibqc-payload.target.headerId}{#IBQCB-generateParentRecord_O__ibqc-payload.target.lineIds}{#IBQCB-generateParentRecord_O__ibqc-record}{#IBQCB-generateParentRecord_O__ibqc-requested_flow}{#IBQCB-generateParentRecord_O__ibqc-source_records_ids}{#IBQCB-generateParentRecord_O__ibqc-source_table}{#IBQCB-generateParentRecord_O__ibqc-table}

| 이름 | 유형 | 설명 |
|-|-|-|
| ibq매개변수 | 객체 | 생성할 인바운드 요청 기록의 상세 정보를 포함하는 JSON 객체입니다. { "account": "String", "consumer": "String", "contact": "String", "payload": {Object}, "record_id": "String", "requested_flow": "String", "source_record_ids": [Array], "source_table": "String", "table": "String" } |
| 계정 | 문자열 | 옵션입니다. 기록과 연결된 계정에 대한 정보입니다. 테이블: 계정 \[customer_account\] |
| 소비자 | 문자열 | 옵션입니다. 기록과 연결된 소비자에 대한 정보입니다. 테이블: 소비자 \[csm_consumer\] |
| 연락처 | 문자열 | 옵션입니다. 기록과 연결된 접촉 창구에 대한 정보입니다. 테이블: 연락처 \[customer_contact\] |
| 페이로드 | 객체 | 옵션입니다. PrimitiveUtil() API를 사용하여 요청을 처리하는 데 필요한 JSON 객체입니다. 사용 정보는 [LeadToCashCore](https://servicenow-prod.fluidtopics.net/qwGJDL__fjmWfmHHbFNI9A#LeadToCashCoreAPI "LeadtoCashCore 스크립트 포함은 현금으로 연결 코어 수명주기에서 현금으로 연결 워크플로우를 오케스트레이션하는 메서드를 제공합니다.")를 참조하십시오. "payload": { "additionalParams": {Object}, "context": {Object}, "inputParams": {Object} "source": [Array of Objects], "target": [Array of Objects] } |
| 페이로드.additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. "additionalParams": { "action": "String", "actionReason": "String" "endDate": "Date", "skipLines": "Boolean", "startDate": "Date" } |
| payload.additionalParams.action | 문자열 | 옵션입니다. 실행 중인 선언적 작업의 유형을 지정합니다. 자세한 내용은 [Customer Life Cycle Management Workflows](https://www.servicenow.com/docs/access?context=customer-life-cycle-management-workflows&version=australia&pubname=australia-customer-service-management&ft:locale=en-US) 문서를 참조하십시오. 가능한 값: * 분리하다 * 수정 * 이력서 * 매달다 |
| payload.additionalParams.actionReason | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우에 사용되는 속성입니다. 작업의 이유입니다. |
| payload.additionalParams.endDate | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우를 실행하는 데 필요한 종료 날짜입니다. 형식: yyyy-MM-dd HH:mm:ss |
| payload.additionalParams.skipLines | 부울 | 옵션입니다. 지정된 엔터티에 대한 라인 항목을 가져올지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 엔터티에 대한 라인 항목 정보 반환을 건너뜁니다. * false: 엔터티에 대한 라인 항목 정보를 반환합니다. 기본값: false |
| payload.additionalParams.startDate | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우를 실행하기 위한 시작 날짜입니다. 형식: yyyy-MM-dd HH:mm:ss |
| 페이로드.컨텍스트 | 객체 | 옵션입니다. 속성 값을 표시하고 한 번에 둘 이상의 인스턴스를 호출하기 위한 추가 매개변수 옵션입니다. "context": { "isMultiSelect": "Boolean", "sourceToTargetConfigID": "String" } |
| payload.context.isMultiSelect | 부울 | 옵션입니다. 인스턴스를 생성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 쉼표로 구분된 목록에서 여러 라인 항목을 전달할 수 있습니다. * false: 스크립트에 하나의 입력 항목만 전달할 수 있습니다. 기본값: false |
| payload.context.sourceToTargetConfigID | 문자열 | 옵션입니다. 소스-대상 매핑을 위한 매핑 구성 ID입니다. 테이블: 현금으로 연결 엔터티 매핑 \[sn_l2c_core_entity_mapping\] |
| 페이로드.입력매개변수 | 객체 | 옵션입니다. 이 객체는 특정 플로우의 사용을 호출하는 데 필요한 입력 매개변수에 대한 자리 표시자입니다. "inputParams": {} |
| 페이로드.소스 | 배열 | 옵션입니다. 데이터를 검색할 소스 엔터티의 세부 정보를 포함하는 JSON 객체입니다. "source": [ { "headerId": "String", "lineIds": [] } ] |
| payload.source.headerId | 문자열 | 옵션입니다. 데이터를 검색할 소스 엔터티의 헤더 sys_id입니다. * 매개 변수를 제공하지 lineIds 않는 경우 필요합니다. * 헤더 sys_ids 전달하지 않는 경우 null을 전달합니다. |
| 페이로드.소스.라인ID | 배열 | 옵션입니다. 엔터티 데이터를 검색할 엔터티의 소스 라인 항목 sys_id 포함하는 배열입니다. 헤더 ID를 제공하지 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필수입니다. |
| 페이로드.대상 | 배열 | 옵션입니다. 대상 엔터티의 상세 정보를 포함하는 JSON 객체입니다. "target": [ { "headerId": "String", "lineIds": [] } ] |
| 페이로드.대상.헤더ID | 문자열 | 옵션입니다. 데이터를 검색할 대상 엔터티의 헤더 sys_id입니다. 매개 변수를 제공하지 lineIds 않는 경우 필요합니다. 헤더 sys_ids 전달하지 않는 경우 null을 전달합니다. |
| 페이로드.대상.라인ID | 배열 | 옵션입니다. 엔터티 데이터를 검색할 엔터티의 대상 라인 항목 sys_id 포함하는 배열입니다. 헤더 ID를 제공하지 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필요합니다. |
| record_id | 문자열 | 옵션입니다. 대상 기록의 Sys_id(이미 있는 경우) |
| requested_flow | 문자열 | 옵션입니다. 소스-대상 매핑을 위한 매핑 구성 ID입니다. 이 속성은 를 사용하는 [Entity configuration and mapping](https://www.servicenow.com/docs/access?context=entity-configuration-and-mapping&version=australia&pubname=australia-order-management&ft:locale=en-US)플로우에 필요합니다. 테이블: 현금으로 연결 엔터티 매핑 \[sn_l2c_core_entity_mapping\] |
| source_record_ids | 배열 | 소스 기록의 sys_ids 포함하는 배열입니다. |
| source_table | 문자열 | 플로우의 소스 기록이 들어 있는 테이블의 이름입니다. |
| 테이블 | 문자열 | 플로우의 대상 기록이 포함된 테이블의 이름입니다. |
[표 1. 매개변수]

{#IBQCB-generateParentRecord_O__id_dpy_1kb_z2c} {#IBQCB-generateParentRecord_O__table_qw2_3ct_y2c__entry__2}

| 유형 | 설명 |
|-|-|
| JSON 객체 | 생성된 대상 기록의 헤더 ID를 포함하는 JSON 객체입니다. { "headerID": "String", // additional parameters, if any, per flow see payload.inputParams } |
| 헤더 ID | 생성된 대상 기록의 헤더 Sys_id입니다. 이 값은 인바운드 요청 기록을 생성하는 동안 record_id 필드를 채우는 데 사용됩니다. |
[표 2. 반환]

{#IBQCB-generateParentRecord_O__table_qw2_3ct_y2c}  
다음 예제에서는 generateParentRecord() 메서드를 호출하는 방법을 보여 줍니다.  
주:  
IBQConfigQuoteToOrderFlow는 IBQConfigBase API를 확장하여 만들 수 있는 사용자 지정 스크립트 포함입니다. 재정의 가능한 메서드에 대한 논리는 IBQConfigQuoteToOrderFlow 스크립트 포함에 추가해야 합니다.

    var ibqParams = {
      "source_record_ids": "f83e29574df02210f877142d1adc9531",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    }; 

    var service = new sn_quote_mgmt.IBQConfigQuoteToOrderFlow(); 
    var parentRecord = service.generateParentRecord(ibqParams); 

    gs.info("Parent record = "+JSON.stringify(parentRecord));

출력:

    Parent record = {"headerID":"d11bd507dc6c6a10f877720033b5d0b9", ...} 

## IBQConfigBase -- getRunMode(객체 ibqParams) {#ariaid-title3}

플로우를 동기화 또는 비동기 모드에서 실행할지 여부를 결정합니다.
{#IBQCB-getRunMode_O__id_dpy_1kb_z2c__entry__3}{#IBQCB-getRunMode_O__ibqc-account}{#IBQCB-getRunMode_O__ibqc-consumer}{#IBQCB-getRunMode_O__ibqc-contact}{#IBQCB-getRunMode_O__ibqc-payload}{#IBQCB-getRunMode_O__ibqc-payload.additionalParams}{#IBQCB-getRunMode_O__ibqc-payload.additionalParams.action}{#IBQCB-getRunMode_O__ibqc-payload.additionalParams.actionReason}{#IBQCB-getRunMode_O__ibqc-payload.additionalParams.endDate}{#IBQCB-getRunMode_O__ibqc-payload.additionalParams.skipLines}{#IBQCB-getRunMode_O__ibqc-payload.additionalParams.startDate}{#IBQCB-getRunMode_O__ibqc-payload.context}{#IBQCB-getRunMode_O__ibqc-payload.context.isMultiselect}{#IBQCB-getRunMode_O__ibqc-payload.context.sTTCID}{#IBQCB-getRunMode_O__ibqc-payload.inputParams}{#IBQCB-getRunMode_O__ibqc-payload.source}{#IBQCB-getRunMode_O__ibqc-payload.headerId}{#IBQCB-getRunMode_O__ibqc-payload.source.lineIds}{#IBQCB-getRunMode_O__ibqc-payload.target}{#IBQCB-getRunMode_O__ibqc-payload.target.headerId}{#IBQCB-getRunMode_O__ibqc-payload.target.lineIds}{#IBQCB-getRunMode_O__ibqc-record}{#IBQCB-getRunMode_O__ibqc-requested_flow}{#IBQCB-getRunMode_O__ibqc-source_records_ids}{#IBQCB-getRunMode_O__ibqc-source_table}{#IBQCB-getRunMode_O__ibqc-table}

| 이름 | 유형 | 설명 |
|-|-|-|
| ibq매개변수 | 객체 | 생성할 인바운드 요청 기록의 상세 정보를 포함하는 JSON 객체입니다. { "account": "String", "consumer": "String", "contact": "String", "payload": {Object}, "record_id": "String", "requested_flow": "String", "source_record_ids": [Array], "source_table": "String", "table": "String" } |
| 계정 | 문자열 | 옵션입니다. 기록과 연결된 계정에 대한 정보입니다. 테이블: 계정 \[customer_account\] |
| 소비자 | 문자열 | 옵션입니다. 기록과 연결된 소비자에 대한 정보입니다. 테이블: 소비자 \[csm_consumer\] |
| 연락처 | 문자열 | 옵션입니다. 기록과 연결된 접촉 창구에 대한 정보입니다. 테이블: 연락처 \[customer_contact\] |
| 페이로드 | 객체 | 옵션입니다. PrimitiveUtil() API를 사용하여 요청을 처리하는 데 필요한 JSON 객체입니다. 사용 정보는 [LeadToCashCore](https://servicenow-prod.fluidtopics.net/qwGJDL__fjmWfmHHbFNI9A#LeadToCashCoreAPI "LeadtoCashCore 스크립트 포함은 현금으로 연결 코어 수명주기에서 현금으로 연결 워크플로우를 오케스트레이션하는 메서드를 제공합니다.")를 참조하십시오. "payload": { "additionalParams": {Object}, "context": {Object}, "inputParams": {Object} "source": [Array of Objects], "target": [Array of Objects] } |
| 페이로드.additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. "additionalParams": { "action": "String", "actionReason": "String" "endDate": "Date", "skipLines": "Boolean", "startDate": "Date" } |
| payload.additionalParams.action | 문자열 | 옵션입니다. 실행 중인 선언적 작업의 유형을 지정합니다. 자세한 내용은 [Customer Life Cycle Management Workflows](https://www.servicenow.com/docs/access?context=customer-life-cycle-management-workflows&version=australia&pubname=australia-customer-service-management&ft:locale=en-US) 문서를 참조하십시오. 가능한 값: * 분리하다 * 수정 * 이력서 * 매달다 |
| payload.additionalParams.actionReason | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우에 사용되는 속성입니다. 작업의 이유입니다. |
| payload.additionalParams.endDate | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우를 실행하는 데 필요한 종료 날짜입니다. 형식: yyyy-MM-dd HH:mm:ss |
| payload.additionalParams.skipLines | 부울 | 옵션입니다. 지정된 엔터티에 대한 라인 항목을 가져올지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 엔터티에 대한 라인 항목 정보 반환을 건너뜁니다. * false: 엔터티에 대한 라인 항목 정보를 반환합니다. 기본값: false |
| payload.additionalParams.startDate | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우를 실행하기 위한 시작 날짜입니다. 형식: yyyy-MM-dd HH:mm:ss |
| 페이로드.컨텍스트 | 객체 | 옵션입니다. 속성 값을 표시하고 한 번에 둘 이상의 인스턴스를 호출하기 위한 추가 매개변수 옵션입니다. "context": { "isMultiSelect": "Boolean", "sourceToTargetConfigID": "String" } |
| payload.context.isMultiSelect | 부울 | 옵션입니다. 인스턴스를 생성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 쉼표로 구분된 목록에서 여러 라인 항목을 전달할 수 있습니다. * false: 스크립트에 하나의 입력 항목만 전달할 수 있습니다. 기본값: false |
| payload.context.sourceToTargetConfigID | 문자열 | 옵션입니다. 소스-대상 매핑을 위한 매핑 구성 ID입니다. 테이블: 현금으로 연결 엔터티 매핑 \[sn_l2c_core_entity_mapping\] |
| 페이로드.입력매개변수 | 객체 | 옵션입니다. 이 객체는 특정 플로우의 사용을 호출하는 데 필요한 입력 매개변수에 대한 자리 표시자입니다. "inputParams": {} |
| 페이로드.소스 | 배열 | 옵션입니다. 데이터를 검색할 소스 엔터티의 세부 정보를 포함하는 JSON 객체입니다. "source": [ { "headerId": "String", "lineIds": [] } ] |
| payload.source.headerId | 문자열 | 옵션입니다. 데이터를 검색할 소스 엔터티의 헤더 sys_id입니다. * 매개 변수를 제공하지 lineIds 않는 경우 필요합니다. * 헤더 sys_ids 전달하지 않는 경우 null을 전달합니다. |
| 페이로드.소스.라인ID | 배열 | 옵션입니다. 엔터티 데이터를 검색할 엔터티의 소스 라인 항목 sys_id 포함하는 배열입니다. 헤더 ID를 제공하지 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필수입니다. |
| 페이로드.대상 | 배열 | 옵션입니다. 대상 엔터티의 상세 정보를 포함하는 JSON 객체입니다. "target": [ { "headerId": "String", "lineIds": [] } ] |
| 페이로드.대상.헤더ID | 문자열 | 옵션입니다. 데이터를 검색할 대상 엔터티의 헤더 sys_id입니다. 매개 변수를 제공하지 lineIds 않는 경우 필요합니다. 헤더 sys_ids 전달하지 않는 경우 null을 전달합니다. |
| 페이로드.대상.라인ID | 배열 | 옵션입니다. 엔터티 데이터를 검색할 엔터티의 대상 라인 항목 sys_id 포함하는 배열입니다. 헤더 ID를 제공하지 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필요합니다. |
| record_id | 문자열 | 옵션입니다. 대상 기록의 Sys_id(이미 있는 경우) |
| requested_flow | 문자열 | 옵션입니다. 소스-대상 매핑을 위한 매핑 구성 ID입니다. 이 속성은 를 사용하는 [Entity configuration and mapping](https://www.servicenow.com/docs/access?context=entity-configuration-and-mapping&version=australia&pubname=australia-order-management&ft:locale=en-US)플로우에 필요합니다. 테이블: 현금으로 연결 엔터티 매핑 \[sn_l2c_core_entity_mapping\] |
| source_record_ids | 배열 | 소스 기록의 sys_ids 포함하는 배열입니다. |
| source_table | 문자열 | 플로우의 소스 기록이 들어 있는 테이블의 이름입니다. |
| 테이블 | 문자열 | 플로우의 대상 기록이 포함된 테이블의 이름입니다. |
[표 3. 매개변수]

{#IBQCB-getRunMode_O__id_dpy_1kb_z2c} {#IBQCB-getRunMode_O__table_qw2_3ct_y2c__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | 요청을 실행하는 데 사용할 실행 모드에 대한 정보입니다. 가능한 값: * 비동기 * 동기화 {#IBQCB-getRunMode_O__ul_odv_kjb_z2c} |
[표 4. 반환]

{#IBQCB-getRunMode_O__table_qw2_3ct_y2c}  
다음 예제에서는 source_record_ids 속성에서 제공하는 소스 sys_id 사용하여 getRunMode() 메서드를 호출하는 방법을 보여 줍니다. 라인 항목 개수가 10 runMode 보다 크면 `비동기`입니다.  
주:  
IBQConfigQuoteToOrderFlow는 IBQConfigBase API를 확장하여 만들 수 있는 사용자 지정 스크립트 포함입니다. 재정의 가능한 메서드에 대한 논리는 IBQConfigQuoteToOrderFlow 스크립트 포함에 추가해야 합니다.

    var ibqParams = {
      "source_record_ids": "04ba9004f11f3110f8777d7194f166f6",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    };

    var service = new sn_quote_mgmt.IBQConfigQouteToOrderFlow();

    var runMode = service.getRunMode(ibqParams);

    gs.info("RunMode = "+JSON.stringify(runMode));

출력:

    RunMode = "async"

다음 예제에서는 getRunMode() 메서드를 호출하는 방법을 보여 줍니다. source_record_ids에 제공된 소스 sys_id 사용합니다. 여기서는 라인 항목 수가 10 runMode 개 미만이므로 동기화입니다.  
주:  
IBQConfigQuoteToOrderFlow는 IBQConfigBase API를 확장하여 만들 수 있는 사용자 지정 스크립트 포함입니다. 재정의 가능한 메서드에 대한 논리는 IBQConfigQuoteToOrderFlow 스크립트 포함에 추가해야 합니다.

    var ibqParams = {
      "source_record_ids": "0b0f5cc8f11f3110f8777d7194f16610",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    };

    var service = new sn_quote_mgmt.IBQConfigQouteToOrderFlow();

    var runMode = service.getRunMode(ibqParams);

    gs.info("RunMode = "+JSON.stringify(runMode));

출력:

    RunMode = "sync"

## IBQConfigBase -- processInboundQueueRequest(GlideRecord ibqGr) {#ariaid-title4}

인바운드 요청 기록을 처리하기 위한 논리를 정의합니다.
{#IBQCB-processInboundQueueRequest_O__table_pw2_3ct_y2c__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| ibqGr | GlideRecord | 플로우를 트리거한 인바운드 요청 기록에 대한 [GlideRecord](https://servicenow-prod.fluidtopics.net/PdjBDkljzRHVS4qRn2BIdw#c_GlideRecordScopedAPI "범위가 지정된 GlideRecord API는 데이터베이스 작업에 사용됩니다.") 참조입니다. 테이블: 인바운드 요청 \[sn_tmt_core_inbound_queue\] |
[표 5. 매개변수]

{#IBQCB-processInboundQueueRequest_O__table_pw2_3ct_y2c} {#IBQCB-processInboundQueueRequest_O__table_qw2_3ct_y2c__entry__2}

| 유형 | 설명 |
|-|-|
| 객체 | 인바운드 요청 기록의 처리 상세 정보를 포함하는 JSON 객체입니다. { "error": "String", "response": {Object}, "status": "String", "target": "String" } |
| 오류 | 요청을 처리하는 동안 발생한 오류를 나타내는 값입니다. 데이터 유형: 문자열 |
| 응답 | 인바운드 요청 기록 처리의 응답을 포함하는 JSON 객체입니다. 현금으로 연결 코어 PrimitiveUtil API로 생성된 플로우의 경우 [commitInstance()](https://servicenow-prod.fluidtopics.net/qwGJDL__fjmWfmHHbFNI9A#LTCC-commitInstance_O_O "지정된 현금으로 연결 엔터티의 JSON을 인스턴스에 커밋하고, 업데이트된 정보가 포함된 상태 메시지를 반환하고, 결과적으로 현금으로 연결 핵심 엔터티 테이블을 업데이트합니다.") 메서드를 사용하여 이 출력을 제공할 수 있습니다. 데이터 유형: 객체 |
| 상태 | 요청 처리의 상태를 나타내는 값입니다. 가능한 값: * failure -- 작업이 실패했습니다. * partial_success -- JSON 객체를 처리하는 동안 오류가 거의 발생하지 않았습니다. 특정 오류를 해결하려면 로그 \[syslog\] 테이블의 처리 로그를 참조하십시오. * success -- 작업이 성공했습니다. {#IBQCB-processInboundQueueRequest_O__ul_fhl_mvl_1fc} 데이터 유형: 문자열 |
| 대상 | 옵션입니다. UI 승인과 같은 추가 처리에 사용할 대상 기록의 Sys_id입니다. 대상은 플로우 중에 생성되거나 요구 사항에 따라 generateParentRecord() 메서드에 입력 ibqParams 으로 전달될 수 있습니다. 데이터 유형: 문자열 |
[표 6. 반환]

{#IBQCB-processInboundQueueRequest_O__table_qw2_3ct_y2c}  
다음 예제에서는 processInboundQueueRequest() 메서드를 호출하는 방법을 보여 줍니다.  
주:  
이 메서드는 를 사용하여 [Flow Designer](https://www.servicenow.com/docs/access?context=flow-designer&version=australia&pubname=australia-application-development&ft:locale=en-US)플로우 중에 호출됩니다. 다음 예제에서는 현금으로 연결 코어 PrimitiveUtil [commitInstance()](https://servicenow-prod.fluidtopics.net/qwGJDL__fjmWfmHHbFNI9A#LTCC-commitInstance_O_O "지정된 현금으로 연결 엔터티의 JSON을 인스턴스에 커밋하고, 업데이트된 정보가 포함된 상태 메시지를 반환하고, 결과적으로 현금으로 연결 핵심 엔터티 테이블을 업데이트합니다.") 메서드가 출력을 제공하는 데 사용됩니다.

    var gr = new GlideRecord('sn_tmt_core_inbound_queue');
    gr.get('c48ea9974df02210f877142d1adc951a');

    var service = new sn_quote_mgmt.IBQConfigQuoteToOrderFlow();
    var processRequest = service.processInboundQueueRequest(gr);

    gs.info("processRequest = "+JSON.stringify(processRequest));

출력:

    processRequest = {
      "response": {
        "status": "success",
        "error": "",
        "message": "Commit operation successfully processed.",
        "displayMessage": "Commit operation successfully processed.",
        "dataObject": {
          "sys_id": "a6f4568bdce0aa10f877720033b5d069",
          "table": "sn_ind_tmt_orm_order",
          "attributes": {
            "account": {
              "value": "9e2fd2ee11b43110f877366201dea674"
            },
            "quote": {
              "value": "c8841a4bdce0aa10f877720033b5d0f8"
            }
          },
          "_glide_action": "UPDATE",
          "_source_object": {
            "sys_id": "c8841a4bdce0aa10f877720033b5d0f8",
            "table": "sn_quote_mgmt_core_quote"
          },
          "lineItems": [
            {
              "sys_id": "-1",
              "table": "sn_ind_tmt_orm_order_line_item",
              "attributes": {
                "short_description": {
                  "value": "Home Automation Bundle"
                },
                "account": {
                  "value": "9e2fd2ee11b43110f877366201dea674"
                }
              },
              "_glide_action": "INSERT",
              "_source_object": {
                "sys_id": "afc4528bdce0aa10f877720033b5d0d0",
                "table": "sn_quote_mgmt_core_quote_line_item"
              },
              "characteristics": [],
              "lineItems": [
                {
                  "sys_id": "-1",
                  "table": "sn_ind_tmt_orm_order_line_item",
                  "attributes": {
                    "short_description": {
                      "value": "Door Sensor"
                    },
                    "account": {
                      "value": "9e2fd2ee11b43110f877366201dea674"
                    }
                  },
                  "_glide_action": "INSERT",
                  "_source_object": {
                    "sys_id": "77c4528bdce0aa10f877720033b5d0d5",
                    "table": "sn_quote_mgmt_core_quote_line_item"
                  },
                  "characteristics": [],
                  "lineItems": [],
                  "pricingAdjustments": [
                    {
                      "sys_id": "-1",
                      "table": "sn_ind_tmt_orm_pricing_adjustment",
                      "attributes": {
                        "name": {
                          "value": "door sensor bundle discount"
                        }
                      },
                      "_glide_action": "INSERT",
                      "_source_object": {
                        "sys_id": "f3c4928bdce0aa10f877720033b5d02f",
                        "table": "sn_quote_mgmt_core_pricing_adjustment"
                      },
                      "_commitObjectInfo": {
                        "sys_id": "e6955acbdce0aa10f877720033b5d082",
                        "status": "success"
                      }
                    }
                  ],
                  "coveredProducts": [],
                  "attributeAdjustment": [],
                  "_commitObjectInfo": {
                    "sys_id": "26955acbdce0aa10f877720033b5d07d",
                    "status": "success"
                  }
                }
              ],
              "pricingAdjustments": [],
              "coveredProducts": [],
              "attributeAdjustment": [],
              "_commitObjectInfo": {
                "sys_id": "22955acbdce0aa10f877720033b5d078",
                "status": "success"
              }
            }
          ],
          "_commitObjectInfo": {
            "status": "success"
          }
        },
        "headerID": "a6f4568bdce0aa10f877720033b5d069",
        "rootLineIDs": [
          "22955acbdce0aa10f877720033b5d078"
        ]
      },
      "status": "success",
      "error": "",
      "target": "a6f4568bdce0aa10f877720033b5d069"
    }

## IBQConfigBase -- setExecuteAfterRequest(객체 ibqParams) {#ariaid-title5}

`execute_after` 값을 설정하고 현재 인바운드 요청 기록의 `상태를` 보류 중으로 업데이트하여 인바운드 요청 테이블에서 기록이 처리되는 순서를 구성합니다.
setExecuteAfterRequest() 메서드를 재정의하여 다른 매개변수에서 값을 파생 execute_after 시킬 수 있습니다. 기본적으로 이 메서드는 인바운드 요청 \[sn_tmt_core_inbound_queue\] 테이블을 쿼리하여 일치하는 , record_id및 resource 값이 있는 source_record_ids최신 기록을 찾습니다. 그런 다음, 이 메서드는 현재 기록의 `execute_after` 필드를 쿼리된 기록의 sys_id로 업데이트하여 쿼리된 기록 다음에 처리할 현재 기록을 표시합니다. 결과적으로 setExecuteAfterRequest() 는 기록이 처리되는 순서를 설정합니다.
{#IBQCB-setExecuteAfterRequest_O__table_hbf_vqr_tfc__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| ibq매개변수 | 객체 | 설정할 인바운드 요청 기록의 상세 정보를 포함하는 JSON 객체입니다. 이러한 매개변수에는 현재 기록보다 먼저 처리할 기록 sys_id와 인바운드 요청 \[sn_tmt_core_inbound_queue\] 테이블에서 필터링할 워크플로우 이름이 포함됩니다. { "account": "String", "consumer": "String", "contact": "String", "execute_after": "String", "payload": {Object}, "record_id": "String", "requested_flow": "String", "resource": "String", "source_record_ids": [Array], "source_table": "String", "table": "String" } |
| 계정 | 문자열 | 옵션입니다. 기록과 연결된 계정에 대한 정보입니다. 테이블: 계정 \[customer_account\] |
| 소비자 | 문자열 | 옵션입니다. 기록과 연결된 소비자에 대한 정보입니다. 테이블: 소비자 \[csm_consumer\] |
| 연락처 | 문자열 | 옵션입니다. 기록과 연결된 접촉 창구에 대한 정보입니다. 테이블: 연락처 \[customer_contact\] |
| ibqParams.execute_after | 문자열 | 옵션입니다. 현재 요청 이전에 처리할 인바운드 요청의 Sys_id입니다. 테이블: 인바운드 요청 \[sn_tmt_core_inbound_queue\] |
| 페이로드 | 객체 | 옵션입니다. PrimitiveUtil() API를 사용하여 요청을 처리하는 데 필요한 JSON 객체입니다. 사용 정보는 [LeadToCashCore](https://servicenow-prod.fluidtopics.net/qwGJDL__fjmWfmHHbFNI9A#LeadToCashCoreAPI "LeadtoCashCore 스크립트 포함은 현금으로 연결 코어 수명주기에서 현금으로 연결 워크플로우를 오케스트레이션하는 메서드를 제공합니다.")를 참조하십시오. "payload": { "additionalParams": {Object}, "context": {Object}, "inputParams": {Object} "source": [Array of Objects], "target": [Array of Objects] } |
| 페이로드.additionalParams | 객체 | 옵션입니다. 사용할 추가 매개변수입니다. "additionalParams": { "action": "String", "actionReason": "String" "endDate": "Date", "skipLines": "Boolean", "startDate": "Date" } |
| payload.additionalParams.action | 문자열 | 옵션입니다. 실행 중인 선언적 작업의 유형을 지정합니다. 자세한 내용은 [Customer Life Cycle Management Workflows](https://www.servicenow.com/docs/access?context=customer-life-cycle-management-workflows&version=australia&pubname=australia-customer-service-management&ft:locale=en-US) 문서를 참조하십시오. 가능한 값: * 분리하다 * 수정 * 이력서 * 매달다 |
| payload.additionalParams.actionReason | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우에 사용되는 속성입니다. 작업의 이유입니다. |
| payload.additionalParams.endDate | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우를 실행하는 데 필요한 종료 날짜입니다. 형식: yyyy-MM-dd HH:mm:ss |
| payload.additionalParams.skipLines | 부울 | 옵션입니다. 지정된 엔터티에 대한 라인 항목을 가져올지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 엔터티에 대한 라인 항목 정보 반환을 건너뜁니다. * false: 엔터티에 대한 라인 항목 정보를 반환합니다. 기본값: false |
| payload.additionalParams.startDate | 문자열 | 옵션입니다. 선언적 작업을 사용하여 플로우를 실행하기 위한 시작 날짜입니다. 형식: yyyy-MM-dd HH:mm:ss |
| 페이로드.컨텍스트 | 객체 | 옵션입니다. 속성 값을 표시하고 한 번에 둘 이상의 인스턴스를 호출하기 위한 추가 매개변수 옵션입니다. "context": { "isMultiSelect": "Boolean", "sourceToTargetConfigID": "String" } |
| payload.context.isMultiSelect | 부울 | 옵션입니다. 인스턴스를 생성하기 위해 여러 엔터티를 입력으로 전달할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 쉼표로 구분된 목록에서 여러 라인 항목을 전달할 수 있습니다. * false: 스크립트에 하나의 입력 항목만 전달할 수 있습니다. 기본값: false |
| payload.context.sourceToTargetConfigID | 문자열 | 옵션입니다. 소스-대상 매핑을 위한 매핑 구성 ID입니다. 테이블: 현금으로 연결 엔터티 매핑 \[sn_l2c_core_entity_mapping\] |
| 페이로드.입력매개변수 | 객체 | 옵션입니다. 이 객체는 특정 플로우의 사용을 호출하는 데 필요한 입력 매개변수에 대한 자리 표시자입니다. "inputParams": {} |
| 페이로드.소스 | 배열 | 옵션입니다. 데이터를 검색할 소스 엔터티의 세부 정보를 포함하는 JSON 객체입니다. "source": [ { "headerId": "String", "lineIds": [] } ] |
| payload.source.headerId | 문자열 | 옵션입니다. 데이터를 검색할 소스 엔터티의 헤더 sys_id입니다. * 매개 변수를 제공하지 lineIds 않는 경우 필요합니다. * 헤더 sys_ids 전달하지 않는 경우 null을 전달합니다. |
| 페이로드.소스.라인ID | 배열 | 옵션입니다. 엔터티 데이터를 검색할 엔터티의 소스 라인 항목 sys_id 포함하는 배열입니다. 헤더 ID를 제공하지 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필수입니다. |
| 페이로드.대상 | 배열 | 옵션입니다. 대상 엔터티의 상세 정보를 포함하는 JSON 객체입니다. "target": [ { "headerId": "String", "lineIds": [] } ] |
| 페이로드.대상.헤더ID | 문자열 | 옵션입니다. 데이터를 검색할 대상 엔터티의 헤더 sys_id입니다. 매개 변수를 제공하지 lineIds 않는 경우 필요합니다. 헤더 sys_ids 전달하지 않는 경우 null을 전달합니다. |
| 페이로드.대상.라인ID | 배열 | 옵션입니다. 엔터티 데이터를 검색할 엔터티의 대상 라인 항목 sys_id 포함하는 배열입니다. 헤더 ID를 제공하지 않고 엔터티 구조가 판매된 제품과 같은 라인 항목으로 시작하는 경우 필요합니다. |
| record_id | 문자열 | 옵션입니다. 대상 기록의 Sys_id(이미 있는 경우) |
| requested_flow | 문자열 | 옵션입니다. 소스-대상 매핑을 위한 매핑 구성 ID입니다. 이 속성은 를 사용하는 [Entity configuration and mapping](https://www.servicenow.com/docs/access?context=entity-configuration-and-mapping&version=australia&pubname=australia-order-management&ft:locale=en-US)플로우에 필요합니다. 테이블: 현금으로 연결 엔터티 매핑 \[sn_l2c_core_entity_mapping\] |
| ibqParams.자원 | 문자열 | 인바운드 요청 테이블에 기록(예: 견적 또는 주문)을 생성하는 플로우의 이름입니다. 이 값은 기록 처리 순서를 결정하기 위해 동일한 유형의 종속 기록을 찾는 데 사용됩니다. |
| source_record_ids | 배열 | 소스 기록의 sys_ids 포함하는 배열입니다. |
| source_table | 문자열 | 플로우의 소스 기록이 들어 있는 테이블의 이름입니다. |
| 테이블 | 문자열 | 플로우의 대상 기록이 포함된 테이블의 이름입니다. |
[표 7. 매개변수]

{#IBQCB-setExecuteAfterRequest_O__table_hbf_vqr_tfc} {#IBQCB-setExecuteAfterRequest_O__table_ibf_vqr_tfc__entry__2}

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

{#IBQCB-setExecuteAfterRequest_O__table_ibf_vqr_tfc}  
다음 예시에서 스크립트는 인바운드 요청 \[sn_tmt_core_inbound_queue\] 테이블을 쿼리하여 source_record_ids, record_id 및 자원 값이 일치하는 최신 기록을 찾습니다. 그런 다음 스크립트는 setExecuteAfterRequest() 메서드를 호출하여 현재 기록의 execute_after 값을 가져온 기록의 sys_id로 업데이트하고 상태를 보류 중으로 설정합니다. 결과적으로 현재 기록은 execute_after 필드에 지정된 기록 이후에 실행됩니다.

    var ibqParams = { 
      "source_record_ids": "e32e29fd28d26a14f8775b8f954723b8",
      "record_id":"b9be293128166a14f8775b8f9547239f", 
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc", 
      "initiated_by": "admin", 
      "source_table": "sn_quote_mgmt_core_quote", 
      "table": "sn_ind_tmt_orm_order", 
      "payload": {
      "context": {}}, 
      "resource": "quote_to_order" 
     }; 

    new sn_tmt_core.IBQConfigBase().setExecuteAfterRequest(ibqParams);

이 메서드는 출력을 반환하지 않습니다.

