GlideRecordUtil - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 4 min. de leitura
  • . GlideRecordUtil Inclusão de script é uma classe de utilitário para trabalhar com GlideRecords.

    Esta inclusão de script está disponível em scripts do lado do servidor. Para casos de uso, consulte Usando inclusões de script de descoberta .

    GlideRecordUtil - getCIGR(cadeia de caracteres sys_id)

    Retorna o objeto GlideRecord para o item de configuração (IC) especificado usando apenas o sys_id do IC.

    Use este método para obter rapidamente um IC específico sem saber sua classe/tabela associada.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    sys_id Cadeia de caracteres Sys_id do IC desejado.
    Tabela 2. Retornos
    Tipo Descrição
    GlideRecord Objeto GlideRecord do IC especificado.

    O exemplo a seguir retorna o objeto GlideRecord para o IC especificado usando apenas o sys_id do IC.

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

    GlideRecordUtil - getFields (GlideRecord gr)

    Retorna uma matriz de todos os campos no GlideRecord especificado.

    Nota:
    Se houver um nome de campo igual ao nome da tabela, o. GetFields() o método não retorna o valor do campo.
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    gr GlideRecord Instância GlideRecord posicionada para um registro válido.
    Tabela 4. Retornos
    Tipo Descrição
    Matriz Nomes de campo para o GlideRecord especificado.
    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);
    Saída: Quebras de linha adicionadas para apresentação.
    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 (tabela de base de cadeia de caracteres, cadeia de caracteres sys_id)

    Retorna uma instância GlideRecord para a tabela fornecida, posicionada para o sys_id fornecido e da classe correta (tabela).

    Este método é útil quando você precisa carregar um GlideRecord de um sys_id, mas você não sabe qual é a tabela real (porque ela pode ser estendida da tabela base). Este método sempre retorna um GlideRecord do tipo correto base_table: O nome da tabela base em que o sys_id especificado está.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Tabela base Cadeia de caracteres O nome da tabela base que contém o sys_id.
    sys_id Cadeia de caracteres O sys_id do registro desejado.
    Tabela 6. Retornos
    Tipo Descrição
    GlideRecord GlideRecord para o sys_id especificado.
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");

    GlideRecordUtil - getTables(cadeia de caracteres tablename)

    Retorna uma lista dos ancestrais de uma tabela especificada.

    Nota:
    A tabela especificada está incluída na lista de seus ancestrais.
    Tabela 7. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres Nome da tabela.
    Tabela 8. Retornos
    Tipo Descrição
    Matriz Lista de ancestrais da tabela especificada.

    O exemplo a seguir mostra os ancestrais da tabela Servidor Linux [cmdb_ci_linux_server].

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

    Saída:

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

    GlideRecordUtil - mergeToGR (Object HashMap, GlideRecord now_GR, Object ignore)

    Define os campos no GlideRecord especificado com os valores de campo contidos no hashmap especificado, a menos que o nome do campo esteja em Ignorar hashmap.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    HashMap Objeto Uma instância de objeto (sendo usada como hashmap), com propriedades nomeadas para campos e contendo o valor dos campos.
    Now_GR GlideRecord A instância GlideRecord para receber os valores de campo.
    ignorar Objeto hashmap opcional de nomes de campo a serem ignorados.
    Tabela 10. Retornos
    Tipo Descrição
    vazio

    Este exemplo atualiza os campos de nome e SO de um registro de computador, mas não atualiza o campo 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(Object HashMap, GlideRecord now_GR, Object ignore)

    Preenche um determinado hashmap de um GlideRecord. Cada campo no GlideRecord se torna uma propriedade no hashmap.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    HashMap Objeto O objeto a ser preenchido com campos e valores de um GlideRecord.
    Now_GR GlideRecord Uma instância do GlideRecord posicionada para um registro válido.
    ignorar Objeto Opcional. Um hashmap de nomes de campo a serem excluídos ao preencher o objeto.

    Para cada par de chave-valor no mapa, a chave é o nome do campo a ser excluído e o valor é verdadeiro .

    {"field_name": true}
    Tabela 12. Retornos
    Tipo Descrição
    vazio

    Este exemplo preenche um objeto com campos e valores de um registro Computador [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));

    Saída:

    {
       "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"
    }