사용 사례: 구성 필드 데이터 세트 객체의 표시 이름 및 견적 라인 채우기
SFDC에서 필드의 표시 이름을 CPQ 채우도록 사용자 지정 객체와 Apex 트리거를 설정하는 방법에 대해 알아봅니다.
관리 패키지의 CPQ 일부인 SFDC의 구성 필드 데이터 세트 객체 기능은 구성기에서 CPQ 저장할 때마다 구성의 구성 ID, Blueprint에서 사용하는 모든 필드 변수 이름, 해당 필드의 값 및 해당 값의 레이블을 반환하는 것입니다.
그러나 조직에서 다운스트림 프로세스에 필요한 관리 패키지에 의해 생성된 이러한 필드 외부의 CPQ 구성에 대한 몇 가지 추가 필요성이 있을 수 있습니다. 예를 들어 필드의 CPQ 표시 이름을 채우거나 BOM에 쉽게 연결할 수 있도록 연결된 구성 필드 데이터 객체의 견적 라인으로 쉽게 이동할 수 있습니다.
SFDC에서 사용자 지정 객체와 Apex 트리거를 조금만 설정하면 모든 구성이 저장된 후 이러한 필드를 자동으로 채울 수 있습니다.
필수 구성요소
아직 설정하지 않은 경우 관리자 설정에서 "Logik Salesforce 객체에 구성 데이터 푸시"를 활성화합니다. 이렇게 하면 SFDC에서 구성 필드 데이터 세트 객체 작성이 시작됩니다.
표시 이름 채우기
- SFDC 설정에서 개체 관리자로 이동합니다.
- 다음 속성을 사용하여 "LGK 레이블"이라는 새 사용자 지정 객체를 만듭니다.
- 기록 이름: Logik 레이블
- 데이터 유형: 자동 번호 매기기
- 디스플레이 형식: LGKLB-{0000}
- 검색 허용: 선택됨
- 이 사용자 지정 객체를 저장한 후 새 사용자 지정 탭 마법사 시작: 선택됨
- 새 사용자 지정 객체 탭 페이지에서 탭 스타일 필드를 클릭하고 스타일을 선택합니다.
- 다음을 클릭하고 다음을 다시 클릭한 다음 저장을 클릭합니다.
- LGK 레이블에서 필드 및 관계를 클릭한 후 신규를 클릭합니다. 다음 속성을 사용하여 새 필드를 생성합니다.
- 데이터 유형: TextArea
- 필드 레이블: label
- 필드 이름: label
- 신규를 클릭하십시오. 다음 속성을 사용하여 새 필드를 생성합니다.
- 데이터 유형: TextArea
- 필드 레이블: variablename
- 필드 이름: variablename
이 새 LGK 레이블 객체는 SFDC에서 필드 변수 이름 및 필드 레이블 이름을 호스팅하는 위치가 될 것입니다. 레이블은 자동으로 임포트되지 않습니다. 또한 CPQ 관리자의 필드를 변경 및 추가하여 수시로 수동으로 업데이트/임포트해야 합니다. 대량 임포트 방법은 이 가이드의 뒷부분에서 살펴보겠습니다.
- 객체 관리자에서 "구성 필드 데이터"를 검색합니다.
- 필드 및 관계를 클릭한 다음 신규를 클릭합니다. 다음 속성을 사용하여 새 필드를 생성합니다.
- 데이터 유형: TextArea
- 필드 레이블: 표시 이름
- 필드 이름: Display_Name
- 트리거를 클릭한 다음 신규를 클릭합니다.
- 다음 코드를 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 방법에 따라 세 가지 방법으로 이를 수행할 수 있습니다.
|
수동 CPQ 레이블 작성
|
장점 :
단점: 많은 수의 필드에 지루한 프로세스가 될 수 있습니다. |
|
모든 CPQ 필드 익스포트에서 벌크 임포트
|
장점 :
단점 :
|
|
Blueprint 레이아웃 익스포트에서 벌크 임포트
|
장점 :
단점 :
|
임포트한 것과 다른 표시 이름을 표시하려는 필드가 있는 경우 레이블 객체를 원하는 레이블로 쉽게 편집할 수 있으며 업데이트 후 구성 필드 데이터 세트를 채우기 시작합니다.
견적 라인 채우기
- SFDC 설정에서 개체 관리자로 이동합니다.
- "구성 필드 데이터"를 검색합니다.
- 필드 및 관계를 클릭한 다음 신규를 클릭합니다. 다음 속성을 사용하여 새 필드를 생성합니다.
- 데이터 유형: 관계 조회
- 관련: 견적 라인
- 필드 레이블: 견적 라인
- 필드 이름: Quote_Line
- 객체 관리자에서 "견적 라인"을 검색합니다.
- 트리거를 클릭한 다음 신규를 클릭합니다.
- 다음 코드를 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에 저장될 때마다 상위 구성 가능 제품의 견적 라인이 구성 필드 데이터 세트에 채워집니다. 탭에서 보려면 이 사용자 지정 필드를 구성 필드 데이터 세트 레이아웃에 추가해야 합니다.