개방형 상태 관리

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 6분
  • 오픈 상태 모델은 구성 상태 모델 API의 프로그래밍 방식 프레임워크로, 에 판매 및 주문 관리표시되는 제품 구성기 제품 옵션의 변형을 프로그래밍할 수 있습니다. API 프레임워크는 사용자 인터페이스의 제품 구성기 노드 표시 방법을 제어하기 위한 특정 상태 및 도우미 API 메서드를 제공합니다.

    개발자는 개방형 상태 관리에 대한 확장점을 사용하여 로드 시 또는 제품 선택이 변경될 때 발생하는 이벤트를 기반으로 모든 구성기 노드에서 보기 전용 또는 편집 가능 상태를 설정할 수 있습니다. 노드의 상태 변경과 함께 정보 메시지를 선택적으로 스크립팅할 수도 있습니다. 이러한 메시지는 제품 구성자 사용자 인터페이스에 상황에 맞게 표시됩니다. 모든 노드에서 상태를 읽고 설정하는 데 다양한 도우미 API 메서드를 사용할 수 있으므로 광범위한 JSON 스크립팅이 필요하지 않습니다.
    주:
    권리를 확인하여 이러한 기능에 액세스할 수 있는지 확인합니다.

    구성 상태 관리 사용 사례

    다음 표에서는 에 제품 구성기표시되는 제품 옵션을 제어할 수 있는 다양한 방법을 보여 줍니다.
    표 1. 구성 상태 모델 사용 사례 예시
    제품 구성기 사용 사례 예제
    고객에 대한 특정 옵션 숨기기 주 안전 규정으로 인해 캘리포니아에 거주하는 고객에게는 제품 속성 선택이 표시되지 않습니다.
    고객에 대한 특정 기본 옵션 설정 업그레이드의 경우 프리미엄 플랜이 있는 기존 고객에게는 얼티밋 플랜만 표시됩니다.
    다른 속성 옵션을 기반으로 특정 옵션만 선택할 수 있도록 허용 노트북과 같은 특정 제품의 경우 모든 크기의 13인치, 15인치 및 17인치를 표시하지만 터치스크린 기능만 필요한 경우 15인치 및 17인치 노트북만 표시합니다.
    제품에 대한 수량 설정 허용 일부 제품은 기본 수량 값이 다를 수 있습니다. 값이 해당 제품에 허용되는 최소 수량 및 최대 수량의 범위 내에 있는 한 에이전트가 수량을 구성할 수 있도록 허용합니다.
    특정 특성 선택만 허용 특정 제품 선택에는 특정 특성 값을 선택해야 합니다. 예를 들어, Ultimate Internet 요금제를 선택할 때 선택할 수 있는 연결 속도는 5G입니다.

    구성 상태 모델 API 프레임워크를 사용하여 의 옵션 제품 구성기 표시를 관리할 수 있습니다.

    노드 상태

    제품 구성기의 노드에는 제품 관계 그룹, 하위 제품 및 특성 옵션이 표시됩니다. 노드의 상태는 다음과 같습니다.
    표시 - 예(노드 표시) 또는 아니요(노드를 숨김)
    제품 구성기에서 에이전트에게 표시되거나 표시되지 않는 구성입니다. 에이전트가 선택한 다른 항목과 호환되지 않는 경우 옵션이 표시되지 않을 수 있습니다. 예를 들어, 특정 자동차 휠 크기의 경우 호환되지 않는 타이어 옵션이 표시되지 않습니다.
    편집 가능 - 예(노드를 표시하고 선택 가능하게 설정) 또는 아니요(노드를 표시하지만 선택 불가능하게 설정)
    제품 구성기에서 에이전트가 편집할 수 있거나 편집할 수 없는 구성입니다. 에이전트는 제품에 필요한 제약 조건을 유지하면서 제품의 특정 측면을 개인화할 수 있습니다. 예를 들어, 특정 자동차 모델의 경우 호환되는 외부 색상만 편집할 수 있습니다.
    수량 - 표시(예/아니요), 편집 가능(예/아니오)
    제품의 수량을 설정하고, 수량과 관련된 규칙을 적용하고, 적절한 노드에 수량과 관련된 정보 및 오류 메시지를 표시하는 구성입니다.
    확인됨 - 예(노드 선택 표시) 또는 아니요(노드 선택을 보이지 않게 설정)
    컨텍스트에 따라 선택하기 위한 구성 옵션을 보여주는 구성입니다.
    값 - 표시(예/아니요), 편집 가능(예/아니요)
    특성에 대한 값을 설정하고, 특성과 관련된 규칙을 적용하고, 적절한 노드와 관련된 정보 또는 오류 메시지를 표시하는 구성입니다.
    주:
    에이전트는 상태 변경에 대한 근거를 제공하기 위해 노드 수준에서 메시지를 설정하도록 선택할 수 있습니다.

    이벤트

    구성 상태 모델 API 프레임워크를 사용하여 노드 상태를 관리합니다. 구성 상태 모델의 이벤트 프레임워크에서 다음 두 이벤트를 사용하여 이러한 상태를 활성화합니다.
    • 로드 시 - 각 노드의 상태(가시성, 편집 가능성)는 처음에 예(예)로 설정됩니다. 열린 상태는 로드 시 호출됩니다.
    • On Change 변경 시 - 유저 인터페이스에서 제품 구성기 노드 값이 변경될 때마다 호출되는 함수입니다. 그러나 이 상태는 에서 수량 변경이 발생할 제품 구성기때 호출되지 않습니다. 이러한 상태는 로드 시, 선택 중 또는 인스턴스가 트랜잭션으로 다시 동기화되기 직전의 방법 중 하나로 프로그래밍 방식으로 설정할 수 있습니다

    도우미 API 메서드

    다음 도우미 API 메서드를 사용하여 모든 노드에서 상태를 읽고 설정할 수 있습니다.
    상태 적용
    Getter 및 Setter 메서드를 사용하여 제품 관계 그룹, 제품 특성 및 제품 특성 옵션에 대해 표시 및 편집 가능한 상태를 설정하여 구성 모델의 상태를 읽고 변경합니다.
    Getter 메서드
    모든 구성 노드의 상태와 함께 노드 경로를 가져옵니다.
    • getAllNodes(): 노드 경로(코드 참조)와 모든 상태가 포함된 해당 상대 경로가 포함된 JSON을 반환합니다.
    • getNode(nodePath): 지정된 노드 경로에 대한 노드의 javascript 객체가 있는 경우 반환합니다.
    • getNodeDetails(nodePath: 지정된 노드 경로가 있는 경우 모든 상태를 반환합니다.
    Setter 메서드
    • 제품 관계 그룹, 제품 특성 및 제품 특성 옵션에 대해 표시 및 편집 가능한 상태를 설정합니다.
      • setVisible: 모든 수준에서 참/거짓
      • setVisible(참/거짓)
      • setEditable: 모든 수준에서 참/거짓
      • setEditable(True)
      • 구현 예:
        var newHandler = configInstance.getNode(nodePath);
        newHandler.setVisible(true, “This is a sample message for setVisible”);
        newHandler.setEditable(false, “This is a sample message for setEditable”);
    • 오퍼 수량 및 사양을 설정합니다. nodePath는 제품을 결정하고 값은 설정할 수량입니다.
      • setQuantity(값);
      • 구현 예:
        var newHandler = configInstance.getNode(nodePath);
        newHandler.setQuantity(value, “This is a sample message for setQuantity”);
    • 구성 옵션을 설정하여 선택된 항목을 확인합니다.
      • setChecked (값); 예/아니오
      • 구현 예:
        var nodePath = “QUADPLAYHO1/OPTIONALPRODUCTS/CONNECTEDC2/CONNECTEDC1/VIN”
        var newHandler = configInstance.getNode(nodePath);
        var newHandler.setChecked(true, “This is a sample message for setChecked”)
        
    • 입력 유형이 한 줄의 텍스트인 특성 노드의 값을 설정합니다.
      • setValue (값);
      • 구현 예:
        var nodePath =
        “QUADPLAYHO1/OPTIONALPRODUCTS/CONNECTEDC2/CONNECTEDC1/VIN”
        var newHandler = configInstance.getNode(nodePath);
        newHandler.setValue(“9TKN332”, “This is a sample message for
        setValue”);
    getter 컨텍스트 변수 메서드
    사용자 인터페이스 내에서 제품 구성기 컨텍스트 변수를 검색합니다.
    • getHeaderContextVariables(): 모든 헤더 컨텍스트 변수의 목록을 반환합니다.
    • getHeaderContextVariableValue(contextVariable): 헤더에 있는 특정 컨텍스트 변수의 값과 표시 값을 반환합니다.
    • getLineContextVariables(): 모든 라인 컨텍스트 변수의 목록을 반환합니다.
    • getLineContextVariableValue(nodePath, contextVariable): 라인의 특정 컨텍스트 변수 값을 반환합니다.