logo

NJP

Desvendando o Histórico no ServiceNow: GlideRecord, sys_history_set, sys_history_line e sys_audit

New article articles in ServiceNow Community · Feb 26, 2025 · article

No universo do ServiceNow, rastrear as mudanças e atividades em registros é crucial para auditoria, depuração e entendimento do fluxo de trabalho. É aí que entram em cena as tabelas sys\_history\_set, sys\_history\_line e sys\_audit, juntamente com o poder do GlideRecord.

**GlideRecord: A Porta de Entrada para o Histórico**

O GlideRecord é a ferramenta essencial para interagir com as tabelas do ServiceNow através de scripts. Com ele, podemos consultar, inserir, atualizar e deletar registros em qualquer tabela, incluindo as de histórico.

**sys\_history\_set: O Agrupador de Mudanças**

A tabela sys\_history\_set funciona como um contêiner, agrupando todas as mudanças realizadas em um registro em um determinado momento. Cada registro nesta tabela representa um conjunto de mudanças.

**sys\_history\_line: O Detalhamento das Mudanças**

A tabela sys\_history\_line detalha as mudanças individuais dentro de um conjunto. Cada registro nesta tabela representa uma mudança específica em um campo do registro.

**sys\_audit: O Registro Completo de Auditoria**

A tabela sys\_audit é o registro completo de auditoria do ServiceNow. Ela armazena todas as mudanças realizadas em registros auditados, incluindo informações como o usuário que realizou a mudança, a data e hora da mudança, e os valores antigo e novo do campo alterado.

**Como usar essas tabelas em scripts?**

var grHistorySet = new GlideRecord('sys\_history\_set'); grHistorySet.addQuery('id', 'SYS\_ID\_DO\_REGISTRO'); // Substitua pelo sys\_id do registro grHistorySet.query(); while (grHistorySet.next()) { // Acessar os registros sys\_history\_line relacionados var grHistoryLine = new GlideRecord('sys\_history\_line'); grHistoryLine.addQuery('set', grHistorySet.sys\_id); grHistoryLine.query(); while (grHistoryLine.next()) { // Acessar os detalhes da mudança gs.log('Campo: ' + grHistoryLine.element + ', Valor antigo: ' + grHistoryLine.oldvalue + ', Valor novo: ' + grHistoryLine.newvalue); } }

**Acessando o Registro de Auditoria com GlideRecord:**

var grAudit = new GlideRecord('sys\_audit'); grAudit.addQuery('documentkey', 'SYS\_ID\_DO\_REGISTRO'); // Substitua pelo sys\_id do registro grAudit.query(); while (grAudit.next()) { // Acessar os detalhes da auditoria gs.log('Campo: ' + grAudit.fieldname + ', Valor antigo: ' + grAudit.oldvalue + ', Valor novo: ' + grAudit.newvalue + ', Usuário: ' + grAudit.sys\_created\_by); }

**Sample**

varTarget = ""; var grRecord = new GlideRecord("task"); grRecord.addQuery("sys\_id", "1cf6094d1b99201070f10f60f54bcb2f"); grRecord.query(); if (grRecord.next()) { varTarget = grRecord.getValue("sys\_id"); gs.log("number = " + grRecord.number.getDisplayValue()); } var LineID = ""; var grSet = new GlideRecord("sys\_history\_set"); grSet.addQuery("id", varTarget); grSet.query(); if (grSet.next()) { gs.log("ID = " + grSet.id.getDisplayValue()); LineID = grSet.getValue("sys\_id"); } var grLine =new GlideRecord("sys\_history\_line"); grLine.addQuery("set", LineID); grLine.query(); if (grLine.next()) { gs.log("Line ID = " + grLine.set.getDisplayValue()); } var grAudit = new GlideRecord("sys\_audit"); grAudit.addQuery("documentkey", varTarget); grAudit.query(); if (grAudit.next()) { gs.log("audit = " + grAudit.sys\_id.getDisplayValue()) }

**Considerações Importantes:**

* **Desempenho:** Consultar grandes volumes de dados de histórico pode impactar o desempenho da plataforma. Utilize filtros e queries eficientes.
* **Permissões:** Verifique as permissões dos usuários que executam os scripts para garantir que eles tenham acesso às tabelas de histórico.
* **Boas práticas:** Utilize as APIs e funções do ServiceNow para acessar e manipular os dados de histórico, evitando consultas diretas ao banco de dados sempre que possível.

As tabelas sys\_history\_set, sys\_history\_line e sys\_audit, combinadas com o poder do GlideRecord, oferecem um conjunto de ferramentas robusto para rastrear e analisar as mudanças em registros no ServiceNow. Dominar essas ferramentas é essencial para administradores, desenvolvedores e auditores que desejam ter um controle completo sobre o histórico da plataforma.

[Listando meus Artigos/ publicados](http://%20https//link.medium.com/GDGXCn6ILQb)

View original source

https://www.servicenow.com/community/brazil-snug/desvendando-o-hist%C3%B3rico-no-servicenow-gliderecord-sys-history/ta-p/3189775