ProductInstance - 범위가 지정됨, 전역
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 구성(읽기 전용)
- 각 구성에 할당된 순서
| 이름 | 유형 | 설명 |
|---|---|---|
| 클래스 이름 | 문자열 | 작성할 PID의 테이블 이름입니다. |
| modelCategorySysId 님 | 문자열 | 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오. |
| json키값 | 객체 | 제품 인스턴스 식별자 구성 [product_instance_identifier_configuration] 테이블에 구성된 PID 매개변수의 JSON 키-값 쌍입니다. 키 값 쌍에는 해당 값이 있는 속성 이름이 포함됩니다. 이러한 값은 PID에 대해 정의된 구성 속성에 따라 달라집니다. |
| 유형 | 설명 |
|---|---|
| 객체 | PID 생성에 사용되는 정보입니다. 객체는 다음 조건에서 빈 product_instance_id 속성 값을 사용하여 반환됩니다.
|
| <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의 해시 값을 설정하여 다음 테이블 중 하나의 객체에서 공통 값을 동기화할 수 있습니다.
데이터 유형: 문자열 |
다음 예시에서는 의료 자산 [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 구성을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 클래스 이름 | 문자열 | 작성할 PID의 테이블 이름입니다. |
| modelCategorySysId 님 | 문자열 | 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오. |
| 유형 | 설명 |
|---|---|
| 객체 | 지정된 클래스 이름 및 모델 범주와 연결된 PID 구성을 포함하는 JSON 객체입니다. |
| <Object>.model_category_sysId | 모델 범주 [cmdb_model_category] 테이블의 제품 범주 sys_id입니다. 이 값은 모델 범주 계층 구조가 PID를 생성하는 데 사용된 경우 입력 값과 다를 수 있습니다. 데이터 유형: 문자열 |
| <Object>.configs | 지정된 모델 범주와 연결된 각 구성의 목록입니다.데이터 유형: 배열 |
| <Object>.configs.configuration_order | 제품 인스턴스 식별자 매개변수 [product_instance_identifier_parameters] 테이블에 정의된 구성의 순서를 반환합니다. 데이터 유형: 숫자 |
| <Object>.configs.parameters | 구성 및 순서와 연결된 모든 매개변수 목록입니다.데이터 형식: 객체 배열 |
| <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() 메서드를 호출하기 전에 비즈니스 규칙에서 사용할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| modelCategorySysId 님 | 문자열 | 모델 범주 [cmdb_model_category] 테이블의 모델 범주 sys_id입니다. 자세한 내용은 Model categories 문서를 참조하십시오. |
| 유형 | 설명 |
|---|---|
| 부울 | 제공된 모델 범주가 제품 인스턴스인지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
다음 예제에서는 제공된 모델 범주가 제품 인스턴스인지 여부를 확인하는 방법을 보여 줍니다.
var isProductInstance = sn_cmdb.ProductInstance.isProductInstance('4b8aa89a77710110dd5fca22fe5a9984');
gs.info(isProductInstance);
출력:
true