스크립트
스크립팅이 단순한 규칙을 넘어 어떻게 확장되는지 CPQ 알아보십시오. 즉, 스크립트가 실행되는 위치, 반환되는 내용, 고급 구성 로직을 안전하고 효율적으로 모델링하기 위해 이를 사용하는 방법을 이해합니다.
스크립팅 기능은 구성 논리에 단순한 규칙보다 더 많은 유연성이 필요할 때 향상됩니다 CPQ . 관리자는 스크립트를 사용하여 복잡한 값을 계산하거나, 조건을 평가하거나, 제품 데이터를 동적으로 조작할 수 있습니다. 스크립트는 규칙 조건, 작업 및 초기화, 확인 또는 가격 책정을 위한 Blueprint 보강에서 사용할 수 있습니다.
스크립팅은 선언적 옵션을 보완하지만 대체하지는 않습니다. 먼저 표준 규칙, 선택 목록 확장 및 제품 선택기를 사용합니다. 특수한 시나리오를 위한 스크립팅을 예약합니다.
스크립트를 사용할 수 있는 위치
- 규칙 조건:
true또는false를 반환하여 작업 실행 여부를 결정합니다. - 규칙 작업: 필드 값을 설정하거나, 요소를 숨기거나 표시하거나, 제품 목록을 동적으로 작성합니다.
- Blueprint 보강: "구성 시" 또는 "재구성" 이벤트 중에 데이터를 초기화하거나, 외부 시스템을 호출하거나, 구성을 보강합니다.
예측 가능한 결과를 보장하기 위해 각 스크립트 유형에는 특정 반환 값이 필요합니다.
예상 반환 값
| 스크립트 유형 | 반환 형식 | 예제 |
|---|---|---|
| 고급 조건 | 부울 | 예/아니오 |
| 고급 숨기기 | 문자열 | "field_to_hide" |
| 필드 결정 | 종속 대상 필드 유형 | 번호 → 5; 텍스트 → "빨간색"; 다중 선택 → |
| 포함 및 제외 | 배열 | ["옵션 A", "옵션 B"] |
| 제품 작업 | ProductList 객체 | 제품 목록.추가({id:"123", 수량:2}) |
| 보강 | 업데이트된 구성 객체 | cfgRequest 반환; |
구성 객체
스크립트는 다음 구성 객체와 상호 작용합니다.
cfg: 규칙에서 사용되는 현재 필드 값의 읽기 전용 스냅샷입니다.cfgRequest: 보강에서 사용할 수 있는 쓰기 가능 객체입니다..set("value", x)을사용하여 필드를 수정합니다.ProductList: BOM(자재 명세서)에서 항목을 추가하거나 수정하는 데 사용됩니다.
점 또는 대괄호 표기법(cfgRequest.fieldName 또는 cfgRequest["fieldName"])을 사용하여 속성을 참조할 수 있습니다.
외부 데이터로 작업
외부 데이터를 사용하여 구성을 동적으로 개선합니다.
- 관리 테이블:
lookup()으로 데이터를 쿼리하여 결과를 필드 또는 제품에 매핑합니다. - 외부 연결: 승인된 호출(예: Salesforce에 대한 SOQL 쿼리)을 만들어 보강의 세트 또는 필드 값을 채웁니다.
이러한 기술은 하드 코딩된 로직을 줄이고 데이터 관리를 중앙 집중화합니다.
디버깅 및 테스트
스크립팅 인터페이스에는 다음과 같은 기본 제공 도구가 포함되어 있습니다.
- 코드 제안: 함수, 변수 및 필드에 대한 자동 완성.
- 도움말 패널: 지원되는 모든 함수와 매개변수가 예제와 함께 나열됩니다.
- 디버거: JSON 입력을 수락하고 출력 및
console.log()결과를 표시합니다. 공통 테스트 입력을 재사용할 수 있도록 설명으로 저장합니다.
일반 가이드라인
- 가능하면 선언적 규칙을 선호합니다.
- 스크립트를 간결하게 유지하고 단일 작업에 집중합니다.
- 항상 예상 데이터 유형을 반환합니다.
- 명확한 변수 이름과 설명을 사용하십시오.
- 중첩되거나 긴 조건부 논리를 피하고 대신 테이블이나 외부 연결을 사용하십시오.