GlideRecordUtil - 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 11분
  • 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(String baseTable, String sys_id)

    지정된 테이블에 대한 GlideRecord 인스턴스를 반환하고, 지정된 sys_id에 배치되고, 올바른 클래스(테이블)의 인스턴스를 반환합니다.

    이 방법은 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(문자열 테이블 이름)

    지정된 테이블의 상위 항목 목록을 반환합니다.

    주:
    지정한 테이블이 해당 상위 목록에 포함됩니다.
    표 7. 매개변수
    이름 유형 설명
    tableName 문자열 테이블의 이름입니다.
    표 8. 반환
    유형 설명
    배열 지정된 테이블의 조상 목록입니다.

    다음 예는 Linux Server [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, 객체 무시)

    해당 필드 이름이 무시 해시맵에 없는 경우 지정된 해시 맵에 포함된 필드 값을 사용하여 지정된 GlideRecord의 필드를 설정합니다.

    표 9. 매개변수
    이름 유형 설명
    해시맵 객체 필드 이름이 지정되고 필드 값을 포함하는 속성이 있는 Object 인스턴스(해시맵으로 사용됨).
    now_GR GlideRecord 필드 값을 받을 GlideRecord 인스턴스입니다.
    ignore 객체 무시할 필드 이름의 선택적 해시맵입니다.
    표 10. 반환
    유형 설명
    void

    다음 예시에서는 컴퓨터 기록의 이름 및 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, 객체 무시)

    GlideRecord에서 지정된 해시 맵을 채웁니다. GlideRecord의 각 필드는 해시 맵의 속성이 됩니다.

    표 11. 매개변수
    이름 유형 설명
    해시맵 객체 GlideRecord의 필드와 값으로 채울 객체입니다.
    now_GR GlideRecord 유효한 기록에 배치된 GlideRecord 인스턴스
    ignore 객체 옵션입니다. 객체를 채울 때 제외할 필드 이름의 해시맵입니다.

    맵의 각 키-값 쌍에서 키는 제외할 필드의 이름이고 값은 true입니다.

    {"field_name": true}
    표 12. 반환
    유형 설명
    void

    이 예에서는 컴퓨터 [cmdb_ci_computer] 기록의 필드와 값으로 객체를 채웁니다.

    var util = new GlideRecordUtil();
    var objectToPopulate = {};
    var computer = util.getCIGR("2dfd7c8437201000deeabfc8bcbe5d56"); // get CI record from cmdb_ci_computer
    var ignore = {"sys_created_on": true, "sys_updated_by": true};
    util.populateFromGR(objectToPopulate, computer, ignore);
    // Now objectToPopulate contains field/value pairs from the computer GlideRecord
    gs.info(JSON.stringify(objectToPopulate));

    출력:

    {
       "sys_id": "2dfd7c8437201000deeabfc8bcbe5d56",
       "operational_status": "1",
       "os_service_pack": "Service Pack 2",
       "cpu_manufacturer": "7aad6d00c611228400f00e0f80b67d2d",
       "sys_updated_on": "2024-07-27 22:28:37",
       "first_discovered": "2007-03-13 20:55:20",
       "invoice_number": "INV0166221",
       "sys_created_by": "admin",
       "warranty_expiration": "2019-10-07",
       "ram": "1534",
       "cpu_name": "Intel(R) Pentium(R) M processor 1.86GHz",
       "cpu_speed": "798",
       "sys_domain_path": "/",
       "disk_space": "51",
       "cost_center": "d9d0a971c0a80a641c20b13d99a48576",
       "assigned": "2024-03-16 07:00:00",
       "purchase_date": "2018-10-07",
       "last_discovered": "2007-04-12 23:17:45",
       "can_print": "0",
       "sys_class_name": "cmdb_ci_computer",
       "manufacturer": "aa0a6df8c611227601cd2ed45989e0ac",
       "cpu_count": "1",
       "vendor": "aa0a6df8c611227601cd2ed45989e0ac",
       "assigned_to": "47de9c73c61122930033f6521d1bb785",
       "os_version": "5.1.2600",
       "serial_number": "L3BB911",
       "cd_rom": "0",
       "unverified": "0",
       "asset": "8bc1ba8837f3100044e0bfc8bcbe5db9",
       "cpu_core_count": "1",
       "skip_sync": "0",
       "sys_domain": "global",
       "install_date": "2023-10-06 08:00:00",
       "asset_tag": "P1000227",
       "hardware_status": "installed",
       "install_status": "1",
       "name": "*ASSET-IBM",
       "virtual": "0",
       "po_number": "PO27711",
       "sys_class_path": "/!!/!2/!(",
       "company": "a66b1fb03710200044e0bfc8bcbe5d08",
       "department": "221f79b7c6112284005d646b76ab978c",
       "cost": "3665",
       "os": "Windows XP Professional",
       "sys_mod_count": "17",
       "monitor": "0",
       "model_id": "a9a2d0c3c6112276010db16c5ddd3461",
       "cost_cc": "USD",
       "location": "8225b668ac1d55eb679878e192fca315",
       "category": "Do not migrate to asset",
       "fault_count": "0"
    }