ProductInstance - 범위가 지정됨, 전역

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기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 com.snc.install_base(Install Base Management) 플러그인이 필요합니다.

    ProductInstance – generatePID(문자열 클래스 이름, 문자열 modelCategorySysId, 객체 jsonKeyValues)

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

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

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

    PID는 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 정의된 다음 항목을 기반으로 생성됩니다.
    • PID 구성(읽기 전용)
    • 각 구성에 할당된 순서
    Product Instance feature in Hardware Asset Management 또한 참조하십시오.
    표 1. 매개변수
    이름 유형 설명
    클래스 이름 문자열 작성할 PID의 테이블 이름입니다.
    modelCategorySysId 님 문자열 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오.
    json키값 객체 제품 인스턴스 식별자 구성 [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 com.snc.install_base(Install Base Management) 플러그인이 필요합니다.

    데이터 유형: 문자열

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

    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"
      ]
    }

    제품 인스턴스 – getPIDConfig(문자열 클래스 이름, 문자열 modelCategorySysId)

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

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

    표 3. 매개변수
    이름 유형 설명
    클래스 이름 문자열 작성할 PID의 테이블 이름입니다.
    modelCategorySysId 님 문자열 모델 범주 [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 지정된 모델 범주와 연결된 각 구성의 목록입니다.
    
    "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 com.snc.install_base(Install Base Management) 플러그인에 포함되어 있습니다.

    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(문자열 modelCategorySysId)

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

    다음 조건이 모두 충족되면 모델 범주는 제품 인스턴스로 간주됩니다.
    • 모델 범주의 is_model_category 플래그 값이 true입니다.
    • 모델 범주에는 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 정의된 유효한 구성이 있습니다.

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

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

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

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

    출력:

    true