CIData - グローバル

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

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

    このクラスのインスタンスは CI (その基本レコードと関連リストの両方) を表し、指定されたメソッドでは、基本レコードと関連リストの両方からのロードまたは保存が可能です。

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

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

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

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

    CIData:getRelatedListInstance(文字列テーブル、文字列 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();