사용 사례: 구성 필드 데이터 세트 객체의 표시 이름 및 견적 라인 채우기

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 9분
  • SFDC에서 필드의 표시 이름을 CPQ 채우도록 사용자 지정 객체와 Apex 트리거를 설정하는 방법에 대해 알아봅니다.

    관리 패키지의 CPQ 일부인 SFDC의 구성 필드 데이터 세트 객체 기능은 구성기에서 CPQ 저장할 때마다 구성의 구성 ID, Blueprint에서 사용하는 모든 필드 변수 이름, 해당 필드의 값 및 해당 값의 레이블을 반환하는 것입니다.

    필드 데이터 목록

    그러나 조직에서 다운스트림 프로세스에 필요한 관리 패키지에 의해 생성된 이러한 필드 외부의 CPQ 구성에 대한 몇 가지 추가 필요성이 있을 수 있습니다. 예를 들어 필드의 CPQ 표시 이름을 채우거나 BOM에 쉽게 연결할 수 있도록 연결된 구성 필드 데이터 객체의 견적 라인으로 쉽게 이동할 수 있습니다.

    필드 데이터 목록

    SFDC에서 사용자 지정 객체와 Apex 트리거를 조금만 설정하면 모든 구성이 저장된 후 이러한 필드를 자동으로 채울 수 있습니다.

    필수 구성요소

    아직 설정하지 않은 경우 관리자 설정에서 "Logik Salesforce 객체에 구성 데이터 푸시"를 활성화합니다. 이렇게 하면 SFDC에서 구성 필드 데이터 세트 객체 작성이 시작됩니다.

    관리자 설정

    주:
    이러한 구성 필드 데이터 세트는 견적 자체가 저장되지 않더라도 에서 구성을 저장할 CPQ때마다 이루어집니다. 이로 인해 Salesforce 조직에서 많은 데이터가 생성될 수 있습니다. Blueprint에서 사용하는 모든 필드를 SFDC로 끌어오는 사용 사례가 없는 경우 이 설정을 비활성화하고 BOM 데이터의 확장된 정보 속성을 사용하는 것이 가장 좋습니다.

    표시 이름 채우기

    1. SFDC 설정에서 개체 관리자로 이동합니다.
    2. 다음 속성을 사용하여 "LGK 레이블"이라는 새 사용자 지정 객체를 만듭니다.
      • 기록 이름: Logik 레이블
      • 데이터 유형: 자동 번호 매기기
      • 디스플레이 형식: LGKLB-{0000}
      • 검색 허용: 선택됨
      • 이 사용자 지정 객체를 저장한 후 새 사용자 지정 탭 마법사 시작: 선택됨
      나머지 값은 기본값으로 두고 저장을 클릭합니다.
    3. 새 사용자 지정 객체 탭 페이지에서 탭 스타일 필드를 클릭하고 스타일을 선택합니다.
    4. 다음을 클릭하고 다음을 다시 클릭한 다음 저장을 클릭합니다.
    5. LGK 레이블에서 필드 및 관계를 클릭한 후 신규를 클릭합니다. 다음 속성을 사용하여 새 필드를 생성합니다.
      • 데이터 유형: TextArea
      • 필드 레이블: label
      • 필드 이름: label
      다음을 클릭하고 다음을 다시 클릭한 다음 저장을 클릭합니다.
    6. 신규를 클릭하십시오. 다음 속성을 사용하여 새 필드를 생성합니다.
      • 데이터 유형: TextArea
      • 필드 레이블: variablename
      • 필드 이름: variablename
      다음을 클릭하고 다음을 다시 클릭한 다음 저장을 클릭합니다.

    이 새 LGK 레이블 객체는 SFDC에서 필드 변수 이름 및 필드 레이블 이름을 호스팅하는 위치가 될 것입니다. 레이블은 자동으로 임포트되지 않습니다. 또한 CPQ 관리자의 필드를 변경 및 추가하여 수시로 수동으로 업데이트/임포트해야 합니다. 대량 임포트 방법은 이 가이드의 뒷부분에서 살펴보겠습니다.

    1. 객체 관리자에서 "구성 필드 데이터"를 검색합니다.
    2. 필드 및 관계를 클릭한 다음 신규를 클릭합니다. 다음 속성을 사용하여 새 필드를 생성합니다.
      • 데이터 유형: TextArea
      • 필드 레이블: 표시 이름
      • 필드 이름: Display_Name
      다음을 클릭하고 다음을 다시 클릭한 다음 저장을 클릭합니다.
    3. 트리거를 클릭한 다음 신규를 클릭합니다.
    4. 다음 코드를 Apex 코드 블록에 붙여넣습니다.
      trigger UpdateConfigurationLabels on LGK__ConfigurationFieldData__c (before insert) {
      	// Step 1: Collect FieldKeys from records to be inserted
      	Set<String> fieldKeys = new Set<String>();
      	for(LGK__ConfigurationFieldData__c confData : Trigger.new) {
      		fieldKeys.add(confData.LGK__FieldKey__c);
      	}
      	
      	// Step 2: Query LGK_Label__c based on collected FieldKeys
      	Map<String, LGK_Label__c> labelMap = new Map<String, LGK_Label__c>();
      	for(LGK_Label__c label : [SELECT label__c, variablename__c FROM LGK_Label__c WHERE variablename__c IN :fieldKeys]) {
      		labelMap.put(label.variablename__c, label);
      	}
      	
      	// Step 3: Loop through records to be inserted and update Display_Name__c
      	for(LGK__ConfigurationFieldData__c confData : Trigger.new) {
      		LGK_Label__c matchedLabel = labelMap.get(confData.LGK__FieldKey__c);
      		if(matchedLabel != null) {
      			confData.Display_Name__c = matchedLabel.label__c;
      		} else if(confData.LGK__ValueLabel__c != null) {
      			confData.Display_Name__c = confData.LGK__ValueLabel__c;
      		}
      	}

    프레임워크가 완성되었습니다. 구성 필드 데이터 세트 레이아웃에 새 표시 이름 필드를 추가합니다. 남은 것은 필드 레이블 이름을 LGK 레이블 개체로 가져오는 것입니다. 필드를 사용하는 CPQ 방법에 따라 세 가지 방법으로 이를 수행할 수 있습니다.

    표 1. 필드 레이블 임포트 메서드필드 레이블 이름을 LGK 레이블 객체로 임포트하는 방법

    수동 CPQ 레이블 작성

    1. LGK 레이블 탭에서 새 Logik 레이블 객체 생성
    2. 변수 이름과 정확히 일치하도록 "variablename"을 입력합니다.CPQ
    3. 원하는 레이블이 되도록 "레이블"을 입력합니다.

    장점 :

    • 표시 이름이 필요한 필드 수가 적은 경우에 좋습니다.
    • 필드 레이블 이름을 관리자 및 레이아웃에 CPQ 표시되는 방식과 다르게 사용자 지정할 수 있습니다.

    단점: 많은 수의 필드에 지루한 프로세스가 될 수 있습니다.

    모든 CPQ 필드 익스포트에서 벌크 임포트

    1. 관리자 필드의 탭에서 CPQ익스포트를 클릭합니다.
    2. CSV 파일을 열고 "B" 및 "C" 열을 제외한 모든 데이터를 삭제합니다.
    3. 헤더의 이름을 "label" 및 "variablename"으로 바꾸고 저장합니다.
    4. SFDC에서 LGK 레이블 탭으로 이동하여 임포트를 클릭합니다.
    5. "LGK 레이블" 선택
    6. "새 기록 추가" 선택
    7. 저장된 CSV 파일 선택
    8. 업로드

    장점 :

    • 많은 수의 필드에 적합
    • Blueprint에서 사용되는 전역 필드는 SFDC에서 일관되게 레이블이 지정됩니다.

    단점 :

    • 이 방법으로 필드 레이블 이름, 파트너 필드 및 시스템 필드 설정을 임포트하지 않으므로 표시 이름은 기본적으로 필드 값으로 설정됩니다.
    • 이러한 필드는 수동 레이블 생성 방법을 사용하여 LGK 레이블 개체로 수동으로 추가할 수 있습니다

    Blueprint 레이아웃 익스포트에서 벌크 임포트

    1. 사용하려는 블루프린트에서 CPQ 레이아웃으로 이동하여 익스포트를 클릭합니다
    2. CSV 열기
    3. "필드"별로 열 "A" 필터링
    4. "A", "D" 및 "E" 열을 제외한 모든 데이터 삭제
    5. 열 "D" 및 "E"를 새 CSV에 복사하여 필드의 레이블 이름을 바꿉니다.
    6. SFDC에서 LGK 레이블 탭으로 이동하여 임포트를 클릭합니다.
    7. "LGK 레이블" 선택
    8. "새 기록 추가" 선택
    9. 저장된 CSV 파일 선택
    10. 업로드

    장점 :

    • 많은 수의 필드에 적합
    • 세트 필드, 시스템 필드 및 파트너 필드를 포함한 모든 필드의 레이아웃에 표시 이름을 채웁니다.

    단점 :

    • 레이아웃에 사용되는 필드만 표시 이름을 채웁니다. 블루프린트에만 연결된 필드는 레이블이 null이 되는 구성 필드 데이터 세트 객체를 작성합니다.
    • 여러 Blueprint에서 사용되는 필드는 이러한 방식으로 임포트된 첫 번째 필드 레이블로만 표시 이름 필드를 채웁니다.

    임포트한 것과 다른 표시 이름을 표시하려는 필드가 있는 경우 레이블 객체를 원하는 레이블로 쉽게 편집할 수 있으며 업데이트 후 구성 필드 데이터 세트를 채우기 시작합니다.

    견적 라인 채우기

    1. SFDC 설정에서 개체 관리자로 이동합니다.
    2. "구성 필드 데이터"를 검색합니다.
    3. 필드 및 관계를 클릭한 다음 신규를 클릭합니다. 다음 속성을 사용하여 새 필드를 생성합니다.
      • 데이터 유형: 관계 조회
      • 관련: 견적 라인
      • 필드 레이블: 견적 라인
      • 필드 이름: Quote_Line
      다음을 클릭하고 다음을 다시 클릭한 다음 저장을 클릭합니다.
    4. 객체 관리자에서 "견적 라인"을 검색합니다.
    5. 트리거를 클릭한 다음 신규를 클릭합니다.
    6. 다음 코드를 Apex 코드 블록에 붙여넣습니다.
      trigger PopulateConfigFieldData on SBQQ__QuoteLine__c (after insert, after update) {
      	// Step 1: Collect the Configuration Ids from the new Quote Lines
      	Set<String> configIds = new Set<String>();
      	Map<String, Id> quoteLineMap = new Map<String, Id>(); // Mapping Configuration UUID to Quote Line Id
      
      	for (SBQQ__QuoteLine__c ql : Trigger.new) {
      		if (String.isNotBlank(ql.LGK__ConfigurationId__c)) {
      			configIds.add(ql.LGK__ConfigurationId__c);
      			quoteLineMap.put(ql.LGK__ConfigurationId__c, ql.Id); // Storing Quote Line Id
      		}
      	}
      	
      	if (configIds.isEmpty()) {
      		return;
      	}
      	
      	// Step 2: Query the Configuration Field Data records
      	List<LGK__ConfigurationFieldData__c> confFieldsToUpdate = [SELECT Id,LGK__ConfigurationId__c FROM LGK__ConfigurationFieldData__c WHERE LGK__ConfigurationId__c IN:configIds];
      
      	// Step 3: Update the Field Data records
      	for (LGK__ConfigurationFieldData__c cf : confFieldsToUpdate) {
      		Id quoteLineId = quoteLineMap.get(cf.LGK__ConfigurationId__c);
      		if (quoteLineId != null) {
      			cf.Quote_Line__c = quoteLineId; // Assigning the Quote Line Id
      		}
      	}
      
      	update confFieldsToUpdate;

    이제 견적이 SFDC에 저장될 때마다 상위 구성 가능 제품의 견적 라인이 구성 필드 데이터 세트에 채워집니다. 탭에서 보려면 이 사용자 지정 필드를 구성 필드 데이터 세트 레이아웃에 추가해야 합니다.

    주:
    구성 필드 데이터 세트는 구성기에서 CPQ저장을 클릭한 직후에 생성됩니다. 견적 라인 편집기에 들어가면 견적 라인 필드가 아직 생성 또는 업데이트되지 않았기 때문에 채워지지 않습니다. 편집기에서 저장한 후에만 견적 라인이 필드에 표시됩니다.