---
sourceDocument: 호주 판매 고객 관계 관리
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/order-management

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 판매 고객 관계 관리

ft:clusterId :

    - omgmt

bundleId :

    - omgmt

workflow :

    - Customer and Industry


---

# 상태 관리 열기

# 상태 관리 열기 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 6분

오픈 상태 모델은 구성 상태 모델 API의 프로그래밍 방식 프레임워크로, 의 레거시 제품 구성기판매 고객 관계 관리에 나타나는 제품 옵션의 변형을 프로그래밍할 수 있습니다. API 프레임워크는 레거시 제품 구성기 사용자 인터페이스의 노드가 표시되는 방식을 제어하기 위한 특정 상태 및 도우미 API 메서드를 제공합니다.  
개발자는 [오픈 상태 관리의 확장점을](https://servicenow-prod.fluidtopics.net/84M121P_9dejFmfCiELvgQ "의 상태 관리 열기확장점을 사용하여 제품 구성기에 표시되는 옵션을 제어합니다.") 사용하여 로드 시 또는 제품 선택이 변경될 때 발생하는 이벤트를 기반으로 구성기 노드에서 보기 전용 또는 편집 가능한 상태를 설정할 수 있습니다. 노드 상태 변경과 함께 정보 메시지를 선택적으로 스크립팅할 수도 있습니다. 이러한 메시지는 제품 구성기 사용자 인터페이스에 상황에 따라 표시됩니다. 모든 노드에서 상태를 읽고 설정하는 데 다양한 도우미 API 메서드를 사용할 수 있으므로 광범위한 JSON 스크립팅이 필요하지 않습니다.  
주:  
권리를 확인하여 이러한 기능에 액세스할 수 있는지 확인합니다.

## 구성 상태 관리 사용 사례 {#som-open-state-management-model__section_h1s_ljy_cbc}

다음 표에서는 레거시 제품 구성기에 표시되는 제품 옵션을 제어할 수 있는 다양한 방법을 보여줍니다.{#som-open-state-management-model__table_wgs_34y_cbc__entry__2}

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

{#som-open-state-management-model__table_wgs_34y_cbc}

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

## 노드 상태 {#som-open-state-management-model__section_sfl_ng2_hbc}

레거시 제품 구성기의 노드에는 제품 관계 그룹, 하위 제품 및 특성 옵션이 표시됩니다. 노드의 상태는 다음과 같습니다.

표시 - 예(노드를 표시로 설정) 또는 아니요(노드를 보이지 않게 설정)
:   레거시 제품 구성기에서 에이전트에게 표시되거나 표시되지 않는 구성입니다. 에이전트가 선택한 다른 항목과 호환되지 않는 경우 옵션이 표시되지 않을 수 있습니다. 예를 들어, 특정 자동차 휠 크기의 경우 호환되지 않는 타이어 옵션이 표시되지 않습니다.

편집 가능 - 예(노드를 표시하고 선택 가능하게 만드기) 또는 아니요(노드를 표시하되 선택 불가능하게 만드기)
:   레거시 제품 구성기에서 에이전트가 편집할 수 있거나 편집할 수 없는 구성입니다. 에이전트는 제품에 필요한 제약 조건을 유지하면서 제품의 특정 측면을 개인화할 수 있습니다. 예를 들어 특정 자동차 모델의 경우 호환되는 외부 색상만 편집할 수 있습니다.

수량 - 표시(예/아니요), 편집 가능(예/아니요)
:   제품의 수량을 설정하고, 수량과 관련된 규칙을 적용하고, 적절한 노드의 수량과 관련된 정보 및 오류 메시지를 표시하는 구성입니다.

선택됨 - 예(노드 선택 표시) 또는 아니요(노드 선택이 보이지 않게 설정)
:   컨텍스트에 따라 선택할 구성 옵션을 표시하는 구성입니다.

값 - 표시(예/아니요), 편집 가능(예/아니요)
: 특성에 대한 값을 설정하고, 특성과 관련된 규칙을 적용하고, 적절한 노드와 관련된 정보 또는 오류 메시지를 표시하는 구성입니다.  
주:  
에이전트는 노드 수준에서 메시지를 설정하여 상태 변경에 대한 근거를 제공하도록 선택할 수 있습니다.

## 이벤트 {#som-open-state-management-model__section_j3h_2fk_2cc}

구성 상태 모델 API 프레임워크를 사용하여 노드 상태를 관리합니다. 구성 상태 모델의 이벤트 프레임워크에서 다음 두 이벤트를 사용하여 이러한 상태를 활성화합니다.

* 로드 시 - 각 노드의 상태(가시성, 편집 가능성)는 처음에 예(예)로 설정됩니다. 로드 시 열림 상태가 호출됩니다.
* 변경 시 - 이 함수는 레거시 제품 구성기 사용자 인터페이스에서 노드 값이 변경될 때마다 호출됩니다. 그러나 레거시 제품 구성기에서 수량 변경이 발생할 때는 이 상태가 호출되지 않습니다. 이러한 상태는 로드 시, 선택 중 또는 인스턴스가 트랜잭션에 다시 동기화되기 직전의 방법 중 하나로 프로그래밍 방식으로 설정할 수 있습니다
{#som-open-state-management-model__ul_lqy_ffk_2cc}

## 도우미 API 메서드 {#som-open-state-management-model__section_bp2_1pd_hbc}

다음 도우미 API 메서드를 사용하여 모든 노드의 상태를 읽고 설정할 수 있습니다.

상태 적용
:   구성 모델의 상태를 읽고 변경하기 위해 Getter 및 Setter 메서드를 사용하여 제품 관계 그룹, 제품 특성 및 제품 특성 옵션에 대해 표시 및 편집 가능한 상태를 설정합니다.

게터 메서드
:   구성 노드의 상태와 함께 노드 경로를 가져옵니다.

    * getAllNodes(): 노드 경로(코드 참조)와 모든 상태가 있는 상대 경로가 포함된 JSON을 반환합니다.
    * getNode(nodePath): 지정된 노드 경로에 대한 노드의 javascript 객체(있는 경우)를 반환합니다.
    * getNodeDetails(nodePath: 지정된 노드 경로가 있는 경우 해당 경로의 모든 상태를 반환합니다.
    {#som-open-state-management-model__ul_edy_31c_2bc}

설정기 메서드
:
    * 제품 관계 그룹, 제품 특성 및 제품 특성 옵션에 대해 표시 및 편집 가능한 상태를 설정합니다.
      * 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");

      {#som-open-state-management-model__ul_uqz_ttc_2cc}
    * 제안 및 사양의 수량을 설정합니다. nodePath는 제품을 결정하고 값은 설정할 수량입니다.
      * setQuantity(값);
      * 구현 예:

            var newHandler = configInstance.getNode(nodePath);
            newHandler.setQuantity(value, "This is a sample message for setQuantity");

      {#som-open-state-management-model__ul_drv_15c_2cc}
    * 구성 옵션을 설정하여 선택 중인 항목을 확인합니다.
      * setChecked(값); 예/아니오
      * 구현 예:

            var nodePath = "QUADPLAYHO1/OPTIONALPRODUCTS/CONNECTEDC2/CONNECTEDC1/VIN"
            var newHandler = configInstance.getNode(nodePath);
            var newHandler.setChecked(true, "This is a sample message for setChecked")

      {#som-open-state-management-model__ul_q5b_2jf_2cc}
    * 입력 유형이 한 줄의 텍스트인 특성 노드의 값을 설정합니다.
      * setValue( 값);
      * 구현 예:

            var nodePath =
            "QUADPLAYHO1/OPTIONALPRODUCTS/CONNECTEDC2/CONNECTEDC1/VIN"
            var newHandler = configInstance.getNode(nodePath);
            newHandler.setValue("9TKN332", "This is a sample message for
            setValue");

      {#som-open-state-management-model__ul_p2l_r3k_2cc}
    {#som-open-state-management-model__ul_mk4_4tc_2cc}

Getter 컨텍스트 변수 메서드
:   레거시 사용자 인터페이스 내에서 컨텍스트 변수를 검색합니다 제품 구성기 .

    * getHeaderContextVariables(): 모든 헤더 컨텍스트 변수의 목록을 반환합니다.
    * getHeaderContextVariableValue(contextVariable): 헤더에 있는 특정 컨텍스트 변수의 값과 표시 값을 반환합니다.
    * getLineContextVariables(): 모든 라인 컨텍스트 변수의 목록을 반환합니다.
    * getLineContextVariableValue(nodePath, contextVariable): 라인에 있는 특정 컨텍스트 변수의 값을 반환합니다.
    {#som-open-state-management-model__ul_i2p_qbc_2bc}

