CIData - グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:13分
  • CIData スクリプトインクルードは、JavaScript で構成アイテム (CI) データ構造を操作するためのメソッドを提供するユーティリティクラスです。

    このスクリプトインクルードには、 ディスカバリー (com.snc.discovery.core) プラグインが必要です。これは、任意のサーバーサイド ディスカバリー スクリプトで使用できます。

    このクラスのインスタンスは、CI (基本レコードと関連リストの両方) を表し、提供されたメソッドは、基本レコードと関連リストの両方からの読み込みまたはこれらを格納することを許可します。

    このクラスは、プロパティ名と値のペアのマップとして機能する単純なクラスのコンテナとして機能します。このクラスには、このような3種類のマップが含まれています。
    • ベースCIテーブルエントリを表す単一のマップ(cmdb_ci_linux_serverとそのスーパークラスなど)。このマップは、 CIData - getData() メソッドを使用して取得できます。
    • 関連するリストのインスタンスを表すマップのアレイ。各アレイは単一の関連リストとその関連リストの単一の行を表すそのようなアレイの各要素を表します。これらの配列は、 CIData - getRelatedList(Stringテーブル、String refField) メソッドを使用して取得できます。
    • 多対多表のインスタンスを表すマップのアレイ。各アレイは単一の多対多表を表し、そのようなアレイの各要素はその多対多表の単一行を表します。これらの配列は、 CIData - getM2MTable(文字列 table, 文字列 refField) メソッドを使用して取得できます。

    CIData - CIData(文字列 debugFlag)

    CIData クラスのインスタンスを作成します。

    表 : 1. パラメーター
    名前 タイプ 説明
    debugFlag 文字列 デバッグログを有効にするかどうかを示すフラグです。
    有効な値:
    • 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. パラメーター
    名前 タイプ 説明
    relatedList アレイ 追加する関連リストです。
    表 : 3. 返される内容
    タイプ 説明
    なし

    この例は、関連リストを作成して 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(String sensor、String tableName、String refField、String keyName)

    指定された関連リストを、指定されたセンサーの関連リストに変換します。

    表 : 4. パラメーター
    名前 タイプ 説明
    センサー 文字列 センサー
    tableName 文字列 テーブル名
    refField 文字列 参照フィールド
    keyName 文字列 キー名
    表 : 5. 返される内容
    タイプ 説明
    なし

    CIData - fromXML(文字列 xml)

    指定された XML 文字列から現在の CIData インスタンスを初期化します。

    表 : 6. パラメーター
    名前 タイプ 説明
    xml 文字列 XML 文字列です。
    表 : 7. 返される内容
    タイプ 説明
    なし

    次の例は、検出中に収集された 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(文字列 table, 文字列 refField)

    指定された多対多リスト内のデータマップのアレイを (この CI に) 返します。

    表 : 10. パラメーター
    名前 タイプ 説明
    table 文字列 関連リストを含むテーブルの名前。多対多リストの場合、これはターゲット テーブルではなく、多対多テーブルの名前になります。
    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(Stringテーブル、String refField)

    指定された関連リスト(この CI への)のデータのマップのアレイを取得します。

    このアレイは特定の順番ではありません。多対多リストの場合、これは多対多テーブルではなく、ターゲット テーブルのインスタンスのアレイになります。例えば、 'cmdb_software_instance'と 'installed_on'(多対多テーブルと CI を参照するフィールド)を指定すると、このメソッドは cmdb_ci_spkg(ターゲット テーブル)インスタンスを表すマップのアレイを返します。

    表 : 12. パラメーター
    名前 タイプ 説明
    table 文字列 関連リストを含むテーブルの名前。多対多リストの場合、これはターゲット テーブルではなく、多対多テーブルの名前になります。
    refField 文字列 このCIを参照する関連リスト内のフィールドの名前。多対多リストの場合、ターゲット テーブルではなく、他タイ他テーブルの参照フィールドの名前になります。
    表 : 13. 返される内容
    タイプ 説明
    アレイ 指定された関連リスト内のデータのマップのアレイ

    CIData getRelatedListInstance(String table、String refField)

    指定されたリストの CIRelatedList のインスタンスを返します。

    表 : 14. パラメーター
    名前 タイプ 説明
    table 文字列 関連リストを含むテーブルの名前。多対多リストの場合、これはターゲット テーブルではなく、多対多テーブルの名前になります。
    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. 返される内容
    タイプ 説明
    なし
    var cdta = CIData('false');
    cdta.init();

    CIData - loadFromCI(文字列 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();