CIData - 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 12분
  • CIData 스크립트 포함은 JavaScript에서 CI(구성 항목) 데이터 구조로 작업하기 위한 메서드를 제공하는 유틸리티 클래스입니다.

    이 스크립트 포함에는 디스커버리 (com.snc.discovery.core) 플러그인이 필요합니다. 모든 서버 측 디스커버리 스크립트에서 사용할 수 있습니다.

    이 클래스의 인스턴스는 CI(기본 기록과 관련 목록 모두)를 나타내며, 제공된 메서드를 사용하면 기본 기록과 관련 목록을 모두 로드하거나 저장할 수 있습니다.

    이 클래스는 속성 이름/값 쌍의 맵 역할을 하는 간단한 클래스의 컨테이너 역할을 합니다. 이 클래스에는 세 가지 종류의 맵이 포함되어 있습니다.
    • 기본 CI 테이블 항목(예: 하나의 행 cmdb_ci_linux_server과 해당 수퍼 클래스)을 나타내는 단일 맵입니다. 메서드를 사용하여 CIData - getData() 이 맵을 검색할 수 있습니다.
    • 관련 목록의 인스턴스를 나타내는 맵의 배열로, 각 배열은 단일 관련 목록을 나타내고 이러한 배열의 각 요소는 해당 관련 목록의 단일 행을 나타냅니다. 이러한 배열은 CIData - getRelatedList(문자열 테이블, 문자열 refField) 메서드를 사용하여 검색할 수 있습니다.
    • 다대다 테이블의 인스턴스를 나타내는 맵 배열로, 각 배열은 단일 다대다 테이블을 나타내고 이러한 배열의 각 요소는 해당 다대다 테이블의 단일 행을 나타냅니다. 이러한 배열은 CIData - getM2MTable(문자열 테이블, 문자열 refField) 메서드를 사용하여 검색할 수 있습니다.

    CIData - CIData(String debugFlag)

    CIData 클래스의 인스턴스를 작성합니다.

    표 1. 매개변수
    이름 유형 설명
    debug플래그 문자열 디버그 로깅을 사용할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • True: 디버그 로깅이 활성화되었습니다.
    • False: 디버그 로깅을 사용할 수 없습니다.

    이 예시에서는 관련 목록을 생성하고 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)

    지정된 관련 목록을 이 인스턴스에 추가합니다.

    표 2. 매개변수
    이름 유형 설명
    관련 목록 배열 추가할 관련 목록입니다.
    표 3. 반환
    유형 설명
    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(문자열 센서, 문자열 테이블 이름, 문자열 참조 필드, 문자열 키 이름)

    지정된 관련 목록을 지정된 센서의 관련 목록으로 변환합니다.

    표 4. 매개변수
    이름 유형 설명
    센서 문자열 센서
    tableName 문자열 테이블 이름
    refField 문자열 참조 필드
    keyName 문자열 키 이름
    표 5. 반환
    유형 설명
    void

    CIData - fromXML(String xml)

    지정된 XML 문자열에서 현재 CIData 인스턴스를 초기화합니다.

    표 6. 매개변수
    이름 유형 설명
    xml 문자열 XML 문자열입니다.
    표 7. 반환
    유형 설명
    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 기록에서 데이터 맵을 가져옵니다.

    표 8. 매개변수
    이름 유형 설명
    없음
    표 9. 반환
    유형 설명
    객체 데이터 맵

    CIData - getM2MTable(문자열 테이블, 문자열 refField)

    이 CI에 대해 지정된 다대다 목록에서 데이터 맵의 배열을 반환합니다.

    표 10. 매개변수
    이름 유형 설명
    테이블 문자열 관련 목록이 포함된 테이블의 이름입니다. 다대다 목록의 경우 대상 테이블이 아니라 다대다 테이블의 이름입니다.
    refField 문자열 이 CI를 참조하는 관련 목록의 필드 이름입니다. 다대다 목록의 경우 대상 테이블이 아닌 다대다 테이블에 있는 참조 필드의 이름입니다.
    표 11. 반환
    유형 설명
    배열 지정된 다대다 목록의 데이터 맵 목록입니다. 목록은 특별한 순서가 아닙니다.

    이 목록이 다대다 목록이 아니면 빈 배열을 반환합니다.

    이 예에서는 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(대상 테이블) 인스턴스를 나타내는 맵 배열을 반환합니다.

    표 12. 매개변수
    이름 유형 설명
    테이블 문자열 관련 목록이 포함된 테이블의 이름입니다. 다대다 목록의 경우 대상 테이블이 아니라 다대다 테이블의 이름입니다.
    refField 문자열 이 CI를 참조하는 관련 목록의 필드 이름입니다. 다대다 목록의 경우 대상 테이블이 아닌 다대다 테이블에 있는 참조 필드의 이름입니다.
    표 13. 반환
    유형 설명
    배열 지정된 관련 목록의 데이터 맵 배열입니다.

    CIData - getRelatedListInstance(문자열 테이블, 문자열 refField)

    지정된 목록에 대한 CIRelatedList 인스턴스를 반환합니다.

    표 14. 매개변수
    이름 유형 설명
    테이블 문자열 관련 목록이 포함된 테이블의 이름입니다. 다대다 목록의 경우 대상 테이블이 아니라 다대다 테이블의 이름입니다.
    refField 문자열 이 CI를 참조하는 관련 목록의 필드 이름입니다. 다대다 목록의 경우 대상 테이블이 아닌 다대다 테이블에 있는 참조 필드의 이름입니다.
    표 15. 반환
    유형 설명
    객체 지정된 목록에 대한 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를 로드할 준비를 위해 이 인스턴스를 초기화합니다.

    표 16. 매개변수
    이름 유형 설명
    없음
    표 17. 반환
    유형 설명
    void
    var cdta = CIData('false');
    cdta.init();

    CIData - loadFromCI(String cmdb_ci)

    지정된 sys_id에서 현재 데이터를 로드합니다.

    표 18. 매개변수
    이름 유형 설명
    cmdb_ci 문자열 CI의 sys_id
    표 19. 반환
    유형 설명
    객체 지정된 CI의 현재 데이터입니다.
    var cdta = CIData('false');
    cdta.init();
    cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');

    CIData - toString()

    이 CIData 인스턴스의 이름을 문자열로 변환합니다.

    표 20. 매개변수
    이름 유형 설명
    없음
    표 21. 반환
    유형 설명
    문자열 인스턴스의 이름

    이 예시에서는 현재 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 문자열을 반환합니다.

    표 22. 매개변수
    이름 유형 설명
    없음
    표 23. 반환
    유형 설명
    문자열 이 인스턴스의 직렬화된 버전과 모든 관련 목록을 포함하는 XML 문자열입니다.
    var cdta = CIData();
    cdta.toXML();