오픈 상태 관리

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

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

    구성 상태 관리 사용 사례

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

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

    노드 상태

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

    이벤트

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

    도우미 API 메서드

    다음 도우미 API 메서드를 사용하여 모든 노드에서 상태를 읽고 설정할 수 있습니다.
    상태 적용
    구성 모델의 상태를 읽고 변경하기 위해 Getter 및 Setter 메서드를 사용하여 제품 관계 그룹, 제품 특성 및 제품 특성 옵션에 대한 표시 및 편집 가능한 상태를 설정합니다.
    Getter 메서드
    구성 노드의 상태와 함께 노드 경로를 가져옵니다.
    • getAllNodes(): 노드 경로(코드 참조)와 모든 상태가 포함된 해당 상대 경로가 포함된 JSON을 반환합니다.
    • getNode(nodePath): 지정된 노드 경로에 대한 노드의 javascript 객체를 반환합니다(있는 경우).
    • getNodeDetails(nodePath: 지정된 노드 경로에 대한 모든 상태를 반환합니다(있는 경우).
    설정기 메서드
    • 제품 관계 그룹, 제품 특성 및 제품 특성 옵션에 대해 표시 및 편집 가능한 상태를 설정합니다.
      • setVisible: 모든 수준에서 True/False
      • setVisible(참/거짓)
      • setEditable: 모든 수준에서 True/False
      • 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): 라인에 있는 특정 컨텍스트 변수의 값을 반환합니다.