GlideRecordUtil - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:8分
  • GlideRecordUtil スクリプトインクルードは、GlideRecord を操作するためのユーティリティクラスです。

    このスクリプトインクルードは、サーバー側スクリプトで使用できます。ユースケースについては、「 ディスカバリースクリプトインクルードの使用」を参照してください。

    GlideRecordUtil - getCIGR(文字列 sys_id)

    CI の sys_id のみを使用して、指定された構成アイテム (CI) の GlideRecord オブジェクトを返します。

    このメソッドを使用すると、関連するクラス/テーブルを知らなくても特定の CI をすばやく取得できます。

    表 : 1. パラメーター
    名前 タイプ 説明
    sys_id 文字列 目的の CI の sys_id。
    表 : 2. 返される内容
    タイプ 説明
    GlideRecord 指定された CI の GlideRecord オブジェクト。

    次の例は、CI の sys_id のみを使用して、指定された CI の GlideRecord オブジェクトを返します。

    var now_GR = new GlideRecordUtil().getCIGR("2dfd7c8437201000deeabfc8bcbe5d56");

    GlideRecordUtil - getFields(GlideRecord gr)

    指定された GlideRecord 内のすべてのフィールドのアレイを返します。

    注:
    テーブル名と同じフィールド名がある場合、getFields() メソッドはフィールドの値を返しません。
    表 : 3. パラメーター
    名前 タイプ 説明
    gr GlideRecord 有効なレコードに配置された GlideRecord インスタンス。
    表 : 4. 返される内容
    タイプ 説明
    アレイ 指定された GlideRecord のフィールド名。
    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    now_GR.next();
    
    var gRU = new GlideRecordUtil();
    var fieldList = gRU.getFields(now_GR);
    gs.info(fieldList);
    出力: プレゼンテーション用に追加された改行。
    sys_id,skills,closed_by,assigned_to,contract,category,escalation,state,reassignment_count,location,
    time_worked,order,due_date,number,upon_approval,sys_tags,sla_due,follow_up,reopen_count,notify,business_stc,
    caused_by,rejection_goto,assignment_group,comments_and_work_notes,incident_state,opened_at,parent_incident,
    business_service,wf_activity,calendar_duration,group_list,caller_id,comments,priority,sys_updated_by,
    variables,delivery_task,resolved_at,sys_updated_on,parent,active,opened_by,expected_start,watch_list,
    company,upon_reject,work_notes,sys_created_by,additional_assignee_list,approval_set,cmdb_ci,user_input,
    sys_created_on,close_code,contact_type,resolved_by,rfc,approval_history,activity_due,severity,child_incidents,
    ,subcategory,work_end,closed_at,close_notes,variables,business_duration,knowledge,approval,sys_domain_path,
    sys_mod_count,problem_id,calendar_stc,work_start,sys_domain,correlation_id,sys_class_name,short_description,
    impact,description,correlation_display,urgency,made_sla,delivery_plan,work_notes_list

    GlideRecordUtil - getGR(文字列 baseTable, 文字列 sys_id)

    指定された sys_id に位置付けられた、適切なクラス (テーブル) の特定のテーブルの GlideRecord インスタンスを返します。

    このメソッドは、sys_id から GlideRecord をロードする必要があるものの、実際のテーブルが不明な場合 (ベーステーブルから拡張されている可能性があるため) に便利です。このメソッドは常に、正しいタイプ base_table (指定された sys_id が含まれているベーステーブルの名前) の GlideRecord を返します。

    表 : 5. パラメーター
    名前 タイプ 説明
    ベーステーブル 文字列 sys_id を含むベーステーブルの名前。
    sys_id 文字列 目的のレコードの sys_id。
    表 : 6. 返される内容
    タイプ 説明
    GlideRecord 指定された sys_id の GlideRecord。
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");

    GlideRecordUtil - getTables(文字列 tableName)

    指定されたテーブル名の先祖の Java ArrayList を返します。

    たとえば、cmdb_ci_linux_server を指定すると、cmdb_ci_linux_server、cmdb_ci_server、cmdb_ci_computer、cmdb_ci_hardware、cmdb_ci、および cmdbr が返されます。

    表 : 7. パラメーター
    名前 タイプ 説明
    tableName 文字列 テーブルの名前。
    表 : 8. 返される内容
    タイプ 説明
    ArrayList 指定されたテーブルの先祖のリスト。

    次の例は、cmdb_ci_linux_server テーブルの先祖を示しています。

    var tables = new GlideRecordUtil().getTables("cmdb_ci_linux_server");
    gs.info("Tables returned: " + tables);

    出力:

    Tables returned: [cmdb_ci_linux_server, cmdb_ci_server, cmdb_ci_computer, cmdb_ci_hardware, cmdb_ci, cmdb]
    

    GlideRecordUtil - mergeToGR(オブジェクト hashMap, GlideRecord now_GR, オブジェクト ignore)

    指定された GlideRecord のフィールドを、指定されたハッシュマップに含まれるフィールド値で設定します (そのフィールド名がハッシュマップを無視する場合を除く)。

    表 : 9. パラメーター
    名前 タイプ 説明
    hashMap オブジェクト フィールドに付けられたプロパティ名とフィールド値を含むオブジェクトインスタンス (ハッシュマップとして使用)。
    GlideRecord GR フィールド値を受け取る GlideRecord インスタンス。
    ignore オブジェクト 無視するフィールド名のオプションのハッシュマップ。
    表 : 10. 返される内容
    タイプ 説明
    なし

    この例は、コンピューターレコードの名前と OS フィールドを更新しますが、[sys_created_by] フィールドは更新しません。

    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");   
    var obj = {"name": "xyz", "os": "windows 2000", "sys_created_by", "aleck.lin"};
    var ignore = {"sys_created_by": true};
    new GlideRecordUtil().mergeToGR(obj, now_GR, ignore);
    now_GR.update();

    GlideRecordUtil - populateFromGR(オブジェクト hashMap, GlideRecord now_GR, オブジェクト ignore)

    指定された GlideRecord インスタンスから指定されたハッシュマップを設定します。GlideRecord の各フィールドはハッシュマップのプロパティになります。

    表 : 11. パラメーター
    名前 タイプ 説明
    hashMap オブジェクト ハッシュマップとして使用されているオブジェクト。
    now_GR GlideRecord 有効なレコードに配置された GlideRecord インスタンス。
    ignore オブジェクト 設定しないファイル名のオプションのハッシュマップ。
    表 : 12. 返される内容
    タイプ 説明
    なし
    var objectToPopulate = {};
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");
    var ignore = {"sys_created_on": true, "sys_updated_by": true};
    new GlideRecordUtil().populateFromGR(objectToPopulate, now_GR, ignore);
    // Now the objectToPopulate contains field/value pairs from the computer GlideRecord