CIData - 전역
CIData 스크립트 포함은 JavaScript에서 CI(구성 항목) 데이터 구조로 작업하기 위한 메서드를 제공하는 유틸리티 클래스입니다.
이 스크립트 포함에는 (com.snc.discovery.core) 플러그인이 필요합니다 검색 . 모든 서버 측 검색 스크립트에서 사용할 수 있습니다.
이 클래스의 인스턴스는 CI(기본 기록과 관련 목록 모두)를 나타내며, 제공된 메서드를 사용하면 기본 기록과 관련 목록 모두에서 로드하거나 저장할 수 있습니다.
- 기본 CI 테이블 항목을 나타내는 단일 맵(예: 1행 cmdb_ci_linux_server 및 해당 수퍼 클래스). 메서드를 사용하여 이 맵을 CIData - getData() 검색할 수 있습니다.
- 관련 목록의 인스턴스를 나타내는 맵의 배열로, 각 배열은 단일 관련 목록을 나타내고 이러한 배열의 각 요소는 관련 목록의 단일 행을 나타냅니다. 이러한 배열은 메서드로 CIData - getRelatedList(문자열 테이블, 문자열 refField) 검색할 수 있습니다.
- 다대다 테이블의 인스턴스를 나타내는 맵의 배열로, 각 배열은 단일 다대다 테이블을 나타내고 이러한 배열의 각 요소는 다대다 테이블의 단일 행을 나타냅니다. 이러한 배열은 메서드로 CIData - getM2MTable(문자열 테이블, 문자열 refField) 검색할 수 있습니다.
CIData - CIData(문자열 debugFlag)
CIData 클래스의 인스턴스를 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 디버그 플래그 | 문자열 | 디버그 로깅을 사용할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
이 예제에서는 관련 목록을 만들어 CIData 개체에 추가합니다.
var ciDataObj = new CIData();
var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci');
var sr = {};
sr['serial_number_type'] = "bios";
sr['serial_number'] = "1BC5E4z89246";
sr['valid'] = "true";
rl.addRec(sr);
ciDataObj.addRelatedList(rl);
CIData - addRelatedList(배열 relatedList)
지정된 관련 목록을 이 인스턴스에 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 관련 목록 | 배열 | 추가할 관련 목록입니다. |
| 유형 | 설명 |
|---|---|
| void |
이 예제에서는 관련 목록을 만들어 CIData 개체에 추가합니다.
var ciDataObj = new CIData();
var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci');
var sr = {};
sr['serial_number_type'] = "bios";
sr['serial_number'] = "1BC5E4z89246";
sr['valid'] = "true";
rl.addRec(sr);
ciDataObj.addRelatedList(rl);
CIData - convertRelatedList(문자열 센서, 문자열 tableName, 문자열 refField, 문자열 keyName)
지정된 센서의 관련 목록을 지정된 관련 목록으로 변환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 센서 | 문자열 | 센서 |
| tableName | 문자열 | 테이블 이름 |
| refField | 문자열 | 참조 필드 |
| keyName | 문자열 | 키 이름 |
| 유형 | 설명 |
|---|---|
| void |
CIData - fromXML(문자열 xml)
지정된 XML 문자열에서 현재 CIData 인스턴스를 초기화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| xml | 문자열 | XML 문자열입니다. |
| 유형 | 설명 |
|---|---|
| void |
다음 예는 검색 중에 수집된 테스트 XML 형식의 CI 데이터를 가져오는 방법을 보여줍니다.
var xmlCIData = '<CIData><data><fld name="cpu_name">Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz</fld><fld name="host_name">ip-172-31-19-95</fld><fld name="kernel_release">3.10.0-1160.45.1.el7.x86_64</fld><fld name="os">Linux CentOS</fld></data></CIData>';
var ciData = new CIData();
ciData.fromXML(xmlCIData);
gs.log(ciData);
출력:
CIData instance:
cpu_name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
host_name: ip-172-31-19-95
kernel_release: 3.10.0-1160.45.1.el7.x86_64
os: Linux CentOS
[object Object]
CIData - getData()
기본 CI 기록의 데이터 맵을 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 | 데이터 맵 |
CIData - getM2MTable(문자열 테이블, 문자열 refField)
지정된 다대다 목록의 데이터 맵 배열을 이 CI에 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 문자열 | 관련 목록이 포함된 테이블의 이름입니다. 다대다 목록의 경우 대상 테이블이 아니라 다대다 테이블의 이름입니다. |
| refField | 문자열 | 이 CI를 참조하는 관련 목록의 필드 이름입니다. 다대다 목록의 경우 대상 테이블이 아닌 다대다 테이블의 참조 필드 이름입니다. |
| 유형 | 설명 |
|---|---|
| 배열 | 지정된 다대다 목록의 데이터 맵 목록입니다. 목록은 특정 순서로 되어 있지 않습니다. 다대다 목록이 아닌 경우 빈 배열을 반환합니다. |
이 예에서는 cmdb_software_instance 테이블의 installed_on 필드에 대해 다대다 관계를 가져오는 방법을 보여줍니다.
function () {
//Instantiate a new CIData class object
var cdta = new CIData();
//Load the current data from a CI record.
cdta.loadFromCI('b4fd7c8437201000deeabfc8bcbe5dc1');
// Returns an Array of Objects (records) of a given M2M related list
var records = cdta.getM2MTable('cmdb_software_instance', 'installed_on');
gs.info(JSON.stringify(records, null, 4));
})();
출력:
[
{
"sys_id": "208983661b3330106cdf0f26624bcb4b",
"software": "46c1ec3ca9fe198100beafe77332be9a",
"sys_updated_on": "2021-11-16 18:32:35",
"sys_created_on": "2021-11-16 18:32:35",
"name": "3D Groove Playback Engine-*ANNIE-IBM",
"installed_on": "b4fd7c8437201000deeabfc8bcbe5dc1"
},
{
"sys_id": "288983661b3330106cdf0f26624bcb4a",
"software": "0c43bc5fc61122750182c13269a7a3ef",
"sys_updated_on": "2021-11-16 18:32:35",
"sys_created_on": "2021-11-16 18:32:35",
"name": ".NET SDK 2003-*ANNIE-IBM",
"installed_on": "b4fd7c8437201000deeabfc8bcbe5dc1"
}
]
CIData - getRelatedList(문자열 테이블, 문자열 refField)
지정된 관련 목록의 데이터 맵 배열을 이 CI에 가져옵니다.
배열은 특정 순서가 아닙니다. 다대다 목록의 경우 다대다 테이블이 아니라 대상 테이블의 인스턴스 배열이 됩니다. 예를 들어, 'cmdb_software_instance' 및 'installed_on'(다대다 테이블 및 CI를 참조하는 필드)가 주어지면 이 메서드는 cmdb_ci_spkg(대상 테이블) 인스턴스를 나타내는 맵 배열을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 문자열 | 관련 목록이 포함된 테이블의 이름입니다. 다대다 목록의 경우 대상 테이블이 아니라 다대다 테이블의 이름입니다. |
| refField | 문자열 | 이 CI를 참조하는 관련 목록의 필드 이름입니다. 다대다 목록의 경우 대상 테이블이 아닌 다대다 테이블의 참조 필드 이름입니다. |
| 유형 | 설명 |
|---|---|
| 배열 | 지정된 관련 목록의 데이터 맵 배열입니다. |
CIData - getRelatedListInstance(문자열 테이블, 문자열 refField)
지정된 목록에 대한 CIRelatedList의 인스턴스를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 문자열 | 관련 목록이 포함된 테이블의 이름입니다. 다대다 목록의 경우 대상 테이블이 아니라 다대다 테이블의 이름입니다. |
| refField | 문자열 | 이 CI를 참조하는 관련 목록의 필드 이름입니다. 다대다 목록의 경우 대상 테이블이 아닌 다대다 테이블의 참조 필드 이름입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 지정된 목록에 대한 CIRelatedList 의 인스턴스입니다. |
다음 코드 예제에서는 getRelatedListInstance() 메서드를 사용하여 제거할 관련 목록 관계를 찾습니다.
removeAllRelatedList: function(ci_id) {
var cdta = new CIData('false');
cdta.init();
cdta.loadFromCI(ci_id); // Get a Computer CI Instance
var cirelatedlist = cdta.getRelatedListInstance('cmdb_rel_ci', 'parent'); // Get the CIRelatedList instance holding all relationships of the above CI.
cirelatedlist.remove(); // Remove all the CI Relationships
}
CIData - init()
새 CI 로드를 준비하기 위해 이 인스턴스를 초기화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| void |
var cdta = CIData('false');
cdta.init();
CIData - loadFromCI(문자열 cmdb_ci)
지정된 sys_id에서 현재 데이터를 로드합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| cmdb_ci | 문자열 | CI의 sys_id |
| 유형 | 설명 |
|---|---|
| 객체 | 지정된 CI의 현재 데이터입니다. |
var cdta = CIData('false');
cdta.init();
cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');
CIData - toString()
이 CIData 인스턴스의 이름을 문자열로 변환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 인스턴스 이름 |
이 예제에서는 현재 CI에서 CIData를 로드하고 이 새 CIData 인스턴스를 문자열 형식으로 변환합니다.
var cidata = new CIData(); // Instantiate a new CIData class object
cidata.loadFromCI('0c43b0f5c6112275019abd2bb3dcd78f'); // Load the current data from a CI record. Use sys_id or ci name.
cidata.toString(); // Convert the name of this CIData instance to a string.
gs.info(cidata); // Display name value pairs of the current CI
출력:
CIData instance:
sys_id: 0c43b0f5c6112275019abd2bb3dcd78f
operational_status: 1
os_service_pack: Service Pack 1
cpu_manufacturer: 0c43b088c6112275011a4bd46a4e6cc4
sys_updated_on: 2022-01-11 07:44:05
discovery_source: Other Automated
ram: 503
cpu_speed: 1993
sys_domain_path: /
disk_space: 37.26
cost_center: d9d07bddc0a80a647cf932056ed24652
assigned: 2020-08-31 08:00:00
cd_speed: -1
can_print: 0
sys_class_name: cmdb_ci_computer
manufacturer: add7b97737e3100044e0bfc8bcbe5d96
cpu_count: 1
vendor: adb3d8ce37413000158bbfc8bcbe5d15
assigned_to: 5137153cc611227c000bbd1bd8cd2007
os_version: 5.1.2600
cd_rom: 0
unverified: 0
asset: aac1ba8837f3100044e0bfc8bcbe5d3b
skip_sync: 0
sys_created_on: 2005-05-24 01:14:19
sys_domain: global
cpu_type: GenuineIntel
install_date: 2020-05-19 07:00:00
asset_tag: P1000143
install_status: 1
name: ANDREWDWXP
subcategory: Computer
virtual: 0
sys_class_path: /!!/!2/!(
company: 31bea3d53790200044e0bfc8bcbe5dec
department: 221f3db5c6112284009f4becd3039cc9
cost: 1299.99
os: Windows XP Professional
attestation_status: Not Yet Reviewed
monitor: 0
ip_address: 195.11.1.1
cost_cc: USD
location: db9a923c0a0a0a6501068d6eaec25ee0
category: Hardware
fault_count: 0
[object Object]
CIData - toXML()
이 인스턴스의 직렬화된 버전(관련 목록 포함)을 포함하는 XML 문자열을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 이 인스턴스의 직렬화된 버전과 모든 관련 목록을 포함하는 XML 문자열입니다. |
var cdta = CIData();
cdta.toXML();