---
sourceDocument: 호주 판매 고객 관계 관리
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/order-management

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 판매 고객 관계 관리

ft:clusterId :

    - omgmt

bundleId :

    - omgmt

workflow :

    - Customer and Industry


---

# 스크립팅: 설정 값을 채우는 방법

# 스크립팅: 설정 값을 채우는 방법 {#ariaid-title1}

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

구성/재구성 시 Blueprint 보강 스크립트를 사용하여 필드 값을 세트에 로드하는 방법에 대한 자세한 예를 봅니다.
이 문서에서는 "구성/재구성 시" Blueprint 보강 스크립트를 사용하여 필드 값을 세트에 로드하는 방법을 설명합니다.

이 예에서는 외부 연결을 사용하여 Salesforce에 SOQL 호출을 하여 모든 계정 연락처의 성을 가져오고 추가 구성을 위해 세트에 미리 로드하는 방법을 보여줍니다.

## 필수 구성요소 {#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__section_mnz_y3h_phc}

이 예제를 완료하려면 다음이 필요합니다.

* 인스턴스에서 CPQ 활성화된 보강
* 인스턴스에서 외부 연결이 활성화되어 있습니다.CPQ
* 작성되어 Blueprint와 연결된 세트
* 세트와 연결된 텍스트 필드
{#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__ul_ftd_ncf_dhc}

## 외부 연결: SOQL 호출 {#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__section_brd_1jh_phc}

관리자 화면의 CPQ 유틸리티 아래에서 외부 연결을 찾습니다.

1. 통합 유형을 Salesforce로 설정합니다.
2. 생성할 SOQL 쿼리를 정의합니다. 이 예에서는 특정 계정과 연결된 모든 연락처를 검색하고 성을 저장합니다.

{#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__ol_ozl_pcf_dhc}

SOQL 쿼리:

    SELECT LastName FROM Contact WHERE AccountId = '{{accId}}'

## 스크립트 구성/재구성 시 {#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__section_ygb_vjh_phc}

블루프린트에서 보강 영역으로 이동하여 "구성/재구성 시" 보강에 스크립트를 추가합니다.

    let setData = []; // initialize the set data as an empty array

    //if initializing, default in setData
    if (cfgRequest.demoset_swc.data == []) {
    	const inp = {"accId":"0015f000006lRKcAAM" }; // Hardcoded accountId, could be mapped in from a field
    	const response = Salesforce.getSetInit_swc(inp); // SELECT LastName FROM Contact WHERE AccountId = '{{accId}}'
    	const contactList = response.body.records;
    	if (contactList.length > 0) {
    		for (var contact of contactList) {
    			let elem = {"textTest_swc":{"value": contact.LastName } }; // set the field value
    			setData.push(elem); // add to the setData array
    		}
    		// after looping through all the contacts/previous set data, add them to the set
    		cfgRequest.demoset_swc.set("data",setData);
    	}
    }

    return cfgRequest;

## 스크립트 검토 과정 {#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__section_e3d_cjh_phc}

1. setData 배열은 빈 배열(1행)으로 초기화됩니다.
2. API 페이로드 또는 이전 구성(3행)의 데이터가 세트에 이미 있는지 확인합니다.
3. Salesforce에 대한 쿼리 입력을 정의합니다(5행). 이 예에서 계정 ID는 하드 코딩되어 있지만 필드에서 전달되거나 견적의 쌍둥이 필드에서 매핑될 수 있습니다. 정의된 외부 연결을 사용하여 Salesforce에 SOQL 쿼리를 수행한 다음, 응답을 저장하고(6행) 기록 배열(7행)을 가져옵니다.
4. 호출이 기록을 반환하면(8행), 기록을 반복하고(9행) "textTest_swc" 필드 값을 연락처 LastName(10행)으로 설정합니다. 마지막으로 setData 배열에 새 set 요소를 추가합니다(11행).
5. 접촉 창구를 반복한 후 구성 요청(14행)의 세트 "demoSet_swc"에 모든 setData를 추가합니다.
6. 마지막으로 업데이트된 구성 요청을 반환합니다(18행).

{#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__ol_epd_wcf_dhc}

이 스크립트를 다시 사용하려면 다음 줄을 변경합니다.

1. 라인 5: 계정 ID(0015f000006lRKcAAM)를 새 값으로 업데이트하거나 견적의 필드를 쌍으로 만듭니다.
2. 6행: Salesforce 연결의 이름을 업데이트합니다.
3. 10번째 줄: 필드 이름(textTest_swc)을 사용 중인 세트의 필드로 업데이트합니다.
4. 16번째 줄: 세트 이름(demoset_swc)을 사용 중인 세트의 이름으로 업데이트합니다.
{#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__ol_blm_zcf_dhc}

## 외부 연결에서 데이터 설정 각 구성 {#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__section_qg5_gjh_phc}

대신 사용자가 이전 구성에서 입력한 모든 내용을 기본 데이터가 덮어쓰도록 하려면 4행에서 `if` 절을 삭제합니다.

집합의 특정 필드만 사용자가 편집한 필드를 덮어쓰도록 하고 구성 간에 다른 필드를 유지하려면 집합 인덱스를 명시적으로 참조해야 합니다.

    cfgRequest.[setName].data[i].set("fieldName",{"value":"fieldValue"});

다음을 바꾸면 향상에서 사용할 수 있습니다.

* `setName`: 세트의 변수 이름
* `fieldName`: 필드의 변수 이름
* `i`: 필드 값을 결정하려는 기존 인덱스
* `fieldValue`: 필드에 대해 설정하려는 값

{#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__ul_xlr_2df_dhc}  
주:  
빈 데이터 배열을 참조하지 않으려면 이 호출이 보강 스크립트에서 설정된 기본 코드 후에 발생해야 합니다. 그렇지 않으면 초기화 시 null 참조 오류가 발생합니다.

또한 데이터에서 참조하는 인덱스가 있는지 확인해야 합니다. 설정된 데이터 배열의 길이에 대한 검사를 포함하는 것은 데이터 배열이 존재하는지 보장하는 좋은 방법입니다. 다음 예시를 참조하십시오.

    if (cfgRequest.setTest.data.length >= 1) {
         cfgRequest.setTest.data[0].set("setTestNumberField",{"value":cardNumber});
         cfgRequest.setTest.data[0].set("setTestSingleSelect picklist",{"value":"set option 1"});
    }

`length` 함수가 "1"을 반환하는 동안 인덱스는 첫 번째 인덱스로 0부터 시작하여 참조되기 때문에 인덱스는 "0"입니다.

## 구성 환경 {#enrichments-on-configure-reconfigure-scripts-how-to-populate-set-values__section_ers_rjh_phc}

[사용 사례: Init 보강을 사용하여 세트 값 채우기](https://www.youtube.com/watch?v=RrhdFJEvT8U)

