CIRelatedList - グローバル

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

    このスクリプトインクルードの各インスタンスには、特定の CI に関連する単一のリストの詳細が含まれています。このリストの詳細とリストの内容が含まれています。

    任意のサーバーサイドディスカバリースクリプトで使用します。

    CIRelatedList - addRec(オブジェクトレコード)

    指定されたレコードを関連リストに追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    レコード オブジェクト オブジェクト内の各メンバーは、関連付けられたテーブルの列名です。たとえば、cmdb_serial_numberテーブルを参照する場合、この値には次のようなものが含まれる可能性があります。

    {"serial_number_type":"bios","serial_number":"1BC5E4z89246","valid":"true"}

    表 : 2. 返される内容
    タイプ 説明
    なし

    この例では、CI 関連リストにレコードを追加する方法を示します。

    var ciDataObj = new CIData(); // Instantiate a new CIData class object
    
    // sys_id of the CI to which the related list is attached.
    var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci','0c43b0f5c6112275019abd2bb3dcd78f','true');
    
    // Create an object and add the serial numbers
    var sr = {"serial_number_type":"bios","serial_number":"1BC5E4z89246","valid":"true"};
    rl.addRec(sr); // Add the related list. Sets the given records to the related list.
    ciDataObj.addRelatedList(rl); // Adding the related list to the cidata
    gs.info(JSON.stringify(rl, null, 4)); // Display the added related list

    出力:

    {
      "GlideRecordUtil": {},
      "ignoreFields": {
        "sys_created_by": true,
        "sys_updated_by": true,
        "sys_mod_count": true
      },
      "records": [
        {
          "serial_number_type": "bios",
          "serial_number": "1BC5E4z89246",
          "valid": "true"
        }
      ],
      "m2m_records": [],
      "table_name": "cmdb_serial_number",
      "field_name": "cmdb_ci",
      "cmdb_ci": "0c43b0f5c6112275019abd2bb3dcd78f",
      "debug_flag": "true",
      "isM2M": false,
      "target_table_name": null,
      "target_ref_field_name": null
    }

    CIRelatedList - addRecs(アレイレコード)

    指定されたレコードを関連リストに設定します。

    表 : 3. パラメーター
    名前 タイプ 説明
    レコード オブジェクトのアレイ 各オブジェクトは、関連するテーブルのレコードを表します。オブジェクト内の各メンバーは、そのテーブルの列名です。たとえば、cmdb_serial_numberテーブルを参照する場合、この値には次のようなものが含まれる可能性があります。

    [{"serial_number_type":"bios","serial_number":"1BC5E4z89246","valid":"true"},{"serial_number_type":"baseboard","serial_number":"w4z89246","valid":"true"}]

    表 : 4. 返される内容
    タイプ 説明
    なし

    この例では、CI 関連リストに複数のレコードを追加する方法を示します。

    var ciDataObj = new CIData(); // Instantiate a new CIData class object
    
    // sys_id of the CI to which the related list is attached.
    var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci','0c43b0f5c6112275019abd2bb3dcd78f','true');
    
    // Create an object and add the serial numbers
    var sr = [{"serial_number_type":"bios","serial_number":"1BC5E4z89246","valid":"true"},{"serial_number_type":"baseboard","serial_number":"w4z89246","valid":"true"}];
    
    rl.addRecs(sr); // Add the related list. Sets the given records to the related list.
    
    ciDataObj.addRelatedList(rl); // Adding the related list to the cidata
    gs.info(JSON.stringify(rl, null, 4)); // Display the added related list

    出力:

    {
      "GlideRecordUtil": {},
      "ignoreFields": {
        "sys_created_by": true,
        "sys_updated_by": true,
        "sys_mod_count": true
      },
      "records": [
        {
          "serial_number_type": "bios",
          "serial_number": "1BC5E4z89246",
          "valid": "true"
        },
        {
          "serial_number_type": "baseboard",
          "serial_number": "w4z89246",
          "valid": "true"
        }
      ],
      "m2m_records": [],
      "table_name": "cmdb_serial_number",
      "field_name": "cmdb_ci",
      "cmdb_ci": "0c43b0f5c6112275019abd2bb3dcd78f",
      "debug_flag": "true",
      "isM2M": false,
      "target_table_name": null,
      "target_ref_field_name": null
    }

    CIRelatedList - appendXMLChildFld(String parent, String name, String datum)

    XML の子をフィールドに追加します。

    表 : 5. パラメーター
    名前 タイプ 説明
    parent 文字列 親要素
    name 文字列 要素名
    データム 文字列 追加するデータ
    表 : 6. 返される内容
    タイプ 説明
    なし

    CIRelatedList - appendXMLChildRecord(文字列の親, 文字列名, 文字列レコード)

    XML の子をレコードに追加します。

    表 : 7. パラメーター
    名前 タイプ 説明
    parent 文字列 親要素
    name 文字列 要素名
    レコード 文字列 レコード
    表 : 8. 返される内容
    タイプ 説明
    なし

    CIRelatedList - checkSysCollection()

    これが SysCollection テーブルであるかどうかを確認します。該当する場合は、ターゲットテーブル名と参照フィールド名を設定します。

    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    CIRelatedList 指定されたリストの CIRelatedList のインスタンス。

    CIRelatedList - checkSysM2M()

    これがシステム多対多テーブルかどうかを確認します。該当する場合は、ターゲットテーブル名と参照フィールド名を設定します。

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    ブーリアン システム多対多テーブルの場合は true。それ以外の場合は false です。

    CIRelatedList - CIRelatedList(文字列テーブル、文字列 refField、文字列 cmdb_ci、文字列 debugFlag)

    CIRelatedList クラスのインスタンスを作成します。引数なしで、空のインスタンスをビルドするだけです。

    表 : 13. パラメーター
    名前 タイプ 説明
    table 文字列 関連リストを含むテーブル。多対多の場合は、多対多テーブルです。
    refField 文字列 この関連リストのテーブルの参照フィールド。
    cmdb_ci 文字列 このリストが関連する CI のsys_id。
    debugFlag 文字列 true の場合、デバッグログが有効になります。

    CIRelatedList - fromXML(文字列要素)

    指定された XML 要素からこのインスタンスを初期化します。

    表 : 14. パラメーター
    名前 タイプ 説明
    要素 文字列 XML 要素
    表 : 15. 返される内容
    タイプ 説明
    なし

    CIRelatedList - populate()

    このインスタンスの this.records フィールドに入力します。

    表 : 16. パラメーター
    名前 タイプ 説明
    なし
    表 : 17. 返される内容
    タイプ 説明
    なし

    CIRelatedList - toString(アレイの結果)

    このインスタンスの文字列表現を作成し、各行を指定された結果配列の最後にプッシュします。

    このメソッドは CIData.toString() から呼び出され、関連リスト行を 2 スペースインデントすることを前提としています。

    表 : 18. パラメーター
    名前 タイプ 説明
    result アレイ 変換する結果
    表 : 19. 返される内容
    タイプ 説明
    なし

    CIRelatedList - toXML(文字列ドキュメント, 文字列要素)

    指定されたドキュメントと <rl> 要素で、このインスタンスを XML にシリアル化します。

    表 : 20. パラメーター
    名前 タイプ 説明
    ドキュメント 文字列 ドキュメント
    要素 文字列 rl 要素
    表 : 21. 返される内容
    タイプ 説明
    なし

    CIRelatedList - remove()

    すべての関連リストアイテムを削除します。

    表 : 22. パラメーター
    名前 タイプ 説明
    なし
    表 : 23. 返される内容
    タイプ 説明
    なし

    このコード例では、名前が = *JEMPLOYEE-IBM の CI アイテムにマッピングされた関連レコードを削除します。この例は、非 M2M テーブル用です。

    //Get a configuration item record which has a related list. Example:  CI items with the name = *JEMPLOYEE-IBM.
    var ciRecord = new GlideRecord("cmdb_ci_computer");
    ciRecord.addQuery("name", "*JEMPLOYEE-IBM");
    ciRecord.query();
    if (ciRecord.next()) {
    
        var relRecordTable = 'cmdb_ci_network_adapter'; // The table containing the related list (if many-to-many, the many-to-many table)
        var relRecordField = 'cmdb_ci'; // The reference field in the table for this related list
        var cmdb_ciHasRelRecord = ciRecord.sys_id; // The sys_id of the CI this list is related to.
        var debugFlag = 'true'; // True if debug logging is enabled.
    
        // Get the related record List
        var CIRelatedList = new CIRelatedList(relRecordTable, relRecordField, cmdb_ciHasRelRecord, debugFlag);
        CIRelatedList.remove(); // Delete all related records
    }

    CIRelatedList - xmlToRecord(String records, String element)

    関連リストを XML からレコード形式に変換します。

    表 : 24. パラメーター
    名前 タイプ 説明
    レコード 文字列 作成するレコード
    要素 文字列 XML 要素
    表 : 25. 返される内容
    タイプ 説明
    なし