ProductInstance - 범위 지정, 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 10분
  • ProductInstance API는 제품 인스턴스 식별자(PID)를 생성하고, PID 구성 데이터를 검색하고, 모델 범주가 제품 인스턴스인지 확인하는 메서드를 제공합니다.

    이 API는 sn_cmdb 네임스페이스에서 실행되며 category_manager 또는 snc_internal 역할이 필요합니다. 모델 범주 [cmdb_model_category] 테이블에 대한 접근 제어 목록(ACL)이 있는 사용자에게도 접근 권한이 부여됩니다. 테이블 [sys_db_object] 테이블에서 ACL을 볼 수 있습니다.

    PID는 제품 인스턴스의 고유 식별자이며 자산, CI(구성 항목) 및 IBI(설치 기반 항목)를 연결하여 공통 제품 표현 간에 업데이트를 동기화합니다. 제품 인스턴스는 특정 모델 범주의 자산과 연결됩니다.

    설치 기반 항목에 접근하려면 Customer Service Install Base Management(com.snc.install_base) 플러그인이 필요합니다.

    ProductInstance – generatePID(String className, String modelCategorySysId, Object jsonKeyValues)

    제품 인스턴스의 해시된 값을 작성하고 반환합니다.

    이 메서드는 호출 응용 프로그램의 성능에 영향을 주지 않고 여러 번 호출할 수 있습니다. 이 메서드는 데이터베이스의 데이터를 수정하지 않으며 PID를 계산하는 데 필요한 데이터를 캐시합니다.

    제품 인스턴스 식별자(PID)는 제품 인스턴스의 고유 식별자이며 자산, CI 및 IBI(설치 기반 항목)를 연결합니다.

    PID는 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 정의된 다음 항목을 기반으로 생성됩니다.
    • PID 구성(읽기 전용)
    • 각 구성에 할당된 순서
    Product Instance feature in Hardware Asset Management 또한 참조하십시오.
    표 1. 매개변수
    이름 유형 설명
    className 문자열 생성할 PID의 테이블 이름입니다.
    모델 범주 SysId 문자열 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오.
    jsonKeyValues 객체 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 구성된 PID 매개변수의 JSON 키-값 쌍입니다.

    키 값 쌍에는 해당 값이 있는 속성 이름이 포함됩니다. 이러한 값은 PID에 대해 정의된 구성 속성에 따라 달라집니다.

    표 2. 반환
    유형 설명
    객체 PID를 생성하는 데 사용되는 정보입니다.
    객체는 다음 조건에서 빈 product_instance_id 속성 값으로 반환됩니다.
    • PID에 필요한 PID 구성 속성이 없습니다. PID 구성은 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 있습니다.
    • 지정된 클래스에 연결된 제품 인스턴스가 없습니다.
    {
      "model_category_sysId": "String",
      "parameters": [Array],
      "product_instance_id": "String"
    }
    <Object>.model_category_sysId 모델 범주 [cmdb_model_category] 테이블의 제품 범주 sys_id입니다.

    모델 범주 계층 구조를 사용하여 PID를 생성한 경우 이 값은 입력 값과 다를 수 있습니다.

    데이터 유형: 문자열

    <Object>.매개 변수 PID를 생성하는 데 사용되며 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 정의된 매개변수 목록입니다.

    데이터 유형: 문자열 배열

    <Object>.product_instance_id 자산, CI 또는 설치 기반 항목의 product_instance_id 필드에 있는 PID입니다.
    PID의 해시된 값을 이 속성에 설정하여 다음 테이블 중 하나 객체의 공통 값을 동기화할 수 있습니다.
    • 자산 [alm_asset]
    • 구성 항목 [cmdb_ci]
    • 설치 기반 항목 [sn_install_base_item]
    설치 기반 항목에는 Customer Service Install Base Management(com.snc.install_base) 플러그인이 필요합니다.

    데이터 유형: 문자열

    다음 예에서는 의료 자산 [sn_ent_medical_asset] 테이블에서 자산에 대한 PID를 생성하는 방법을 보여줍니다. 이 테이블은 Customer Service Install Base Management(com.snc.install_base) 플러그인에 포함되어 있습니다.

    var output = sn_cmdb.ProductInstance.generatePID('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984', { "serial_number" : "SN1001"});
    gs.info(JSON.stringify(output,null,'\t'));

    출력:

    {
      "model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
      "product_instance_id": "tw8QgznsS4cP3b4U0+rSbnbIWxirYpeVSquk3g81K/8=",
      "parameters": [
        "serial_number"
      ]
    }

    ProductInstance – getPIDConfig(String className, String modelCategorySysId)

    계층 구조 및 클래스 이름을 기반으로 모델 범주와 연결된 PID 구성을 가져옵니다.

    이 메서드는 모델 범주에 대한 모든 계층 구조를 스캔하고 처음 발견된 모델 범주에 대한 PID 구성을 반환합니다.

    표 3. 매개변수
    이름 유형 설명
    className 문자열 생성할 PID의 테이블 이름입니다.
    모델 범주 SysId 문자열 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오.
    표 4. 반환
    유형 설명
    객체 지정된 클래스 이름 및 모델 범주와 연결된 PID 구성을 포함하는 JSON 객체입니다.
    {
      "model_category_sysId": "String",
      "configs": [Array]
    }
    <Object>.model_category_sysId 모델 범주 [cmdb_model_category] 테이블의 제품 범주 sys_id입니다.

    모델 범주 계층 구조를 사용하여 PID를 생성한 경우 이 값은 입력 값과 다를 수 있습니다.

    데이터 유형: 문자열

    <Object>.구성 지정된 모델 범주와 연결된 각 구성의 목록입니다.
    
    "configs": [
     {
      "configuration_order": Number,
      "parameters": [Array]
     }
    ]

    데이터 유형: 배열

    <Object>.configs.configuration_order 제품 인스턴스 식별자 매개변수 [product_instance_identifier_parameters] 테이블에 정의된 구성 순서를 반환합니다.

    데이터 유형: 숫자

    <Object>.configs.parameters 구성 및 순서와 연결된 모든 매개변수의 목록입니다.
    "parameters": [
      {
       "parameter_class_attribute_name": "String",
       "parameter_class_name": "String",
       "parameter_name": "String",
       "parameter_order": Number
      }
    ]

    데이터 유형: 객체 배열

    <Object>.configs.parameters.parameter_class_attribute_name parameter_class_name 속성과 연결된 매개변수 이름입니다. 이 문자열은 해당 클래스에 해당하는 열의 이름을 나타냅니다.

    데이터 유형: 문자열

    <Object>.configs.parameters.parameter_class_name 제품 인스턴스 식별자 매개변수 [product_instance_identifier_parameters] 테이블에 정의된 매개변수와 연결된 클래스 이름입니다.

    데이터 유형: 문자열

    <Object>.configs.parameters.parameter_name 제품 인스턴스 식별자 매개변수 [product_instance_identifier_parameters] 테이블에 정의된 매개변수 이름입니다.

    데이터 유형: 문자열

    <Object>.configs.parameters.parameter_order 제품 인스턴스 식별자 매개변수 [product_instance_identifier_parameters] 테이블에 정의된 매개변수의 순서입니다.

    데이터 유형: 숫자

    다음 예제에서는 의료 자산 [sn_ent_medical_asset] 테이블에 명명된 모델 범주에 대한 구성 상세 정보를 검색하는 방법을 보여줍니다. 이 테이블은 Customer Service Install Base Management(com.snc.install_base) 플러그인에 포함되어 있습니다.

    var config = sn_cmdb.ProductInstance.getPIDConfig('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984');
    gs.info(JSON.stringify(config,null,'\t'));

    출력:

    {
      "model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
      "configs": [
        {
          "parameters": [
            {
              "parameter_class_attribute_name": "serial_number",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "serial_number",
              "parameter_order": 1
            }
          ],
          "configuration_order": 100
        },
        {
          "parameters": [
            {
              "parameter_class_attribute_name": "parent",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "parent_asset",
              "parameter_order": 1
            },
            {
              "parameter_class_attribute_name": "model_component_id",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "model_component_id",
              "parameter_order": 2
            }
          ],
          "configuration_order": 200
        }
      ]
    }

    ProductInstance – isProductInstance(String, modelCategorySysId)

    지정된 모델 범주가 제품 인스턴스인지 확인합니다.

    다음 조건이 모두 충족되면 모델 범주는 제품 인스턴스에 해당합니다.
    • 모델 범주의 is_model_category 플래그 값은 true입니다.
    • 모델 범주에는 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 올바른 구성이 정의되어 있습니다.

    이 메서드는 generatePID() 메서드를 호출하기 전에 비즈니스 규칙에서 사용할 수 있습니다.

    표 5. 매개변수
    이름 유형 설명
    모델 범주 SysId 문자열 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오.
    표 6. 반환
    유형 설명
    부울 제공된 모델 범주가 제품 인스턴스인지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 제공된 모델 범주가 제품 인스턴스입니다.
    • false: 제공된 모델 범주가 제품 인스턴스가 아닙니다.

    다음 예제에서는 제공된 모델 범주가 제품 인스턴스인지 여부를 확인하는 방법을 보여줍니다.

    var isProductInstance =  sn_cmdb.ProductInstance.isProductInstance('4b8aa89a77710110dd5fca22fe5a9984');
    gs.info(isProductInstance);

    출력:

    true