Andarilho do Histórico - Com Escopo, Global
A API Histórico do Walker usa as tabelas de auditoria/histórico para gerar uma versão histórica de um registro existente.
Ele oferece suporte à capacidade de retornar um gliderecord para uma contagem de atualização anterior (gliderecord percorrido) com o GlideElements apropriado preenchido. Depois que o registro de glide percorrido é recuperado, a API fornece a capacidade de avançar e retroceder os números de atualização navegando por suas atualizações históricas.
sn_hw. O plug-in do Histórico ( com.glide.history_walker ) que está habilitado por padrão é necessário para acessar a API do Histórico do Walker.- Usando o conjunto de históricos: uma entrada de conjunto de históricos é criada (se não estiver disponível ou não for atualizada) a partir dos dados na tabela Auditoria do sistema [sys_audit] para o registro que você percorrerá. A tabela Conjunto de históricos contém registros (Linhas de histórico) com as mudanças reais nos valores de campo que ocorreram. Os métodos da API HistóricoWalker recuperam os dados do histórico das linhas de histórico geradas, em vez de consultar a tabela sys_audit.
- Usando a tabela de auditoria do sistema: neste caso, a API do Histórico de atividades extrai dados consultando diretamente a tabela sys_audit.
Por padrão, ele preenche os dados para oferecer suporte aos métodos changes(), changesFrom()e changesTo() no registro orientado, bem como fornece segurança no nível de registro e campo. Além disso, ele pode permitir que os campos de diário e as variáveis também sejam preenchidos no registro de glide orientado ao percorrer as atualizações.
Esta API permite que você:
- Aplique os dados de histórico/auditoria apropriados para obter um gliderecord existente para o estado em que estava em uma contagem de atualização específica.
- Instrua a API do Histórico para usar a tabela sys_audit em vez das tabelas sys_history_set/sys_history_line para recuperar seus dados.
- Desative o controle de acesso no nível de linha.
- Desative o controle de acesso no nível de campo.
- Desative a recuperação e o processamento de dados de "mudanças".
- Habilitar campos de diário.
- Habilite variáveis.
HistóricoWalker - HistóricoWalker(cadeia de caracteres "tableName", cadeia de caracteres "sysId")
Busca o registro do banco de dados com base nos parâmetros, usando os Conjuntos de históricos para recuperar os dados históricos.
| Nome | Tipo | Descrição |
|---|---|---|
| tableName | Cadeia de caracteres | Nome da tabela que contém o registro a ser recuperado. |
| sydId | Cadeia de caracteres | sys_id do registro a ser recuperado. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
if (hw.walkTo(3)) {
var oldPriority = hw.getWalkedRecord().priority;
gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
} else
gs.info('Incident does not have update number 3');
Saída:
Incident priority in update number 3 was 4
HistóricoWalker - HistóricoWalker(cadeia de caracteres "tableName", cadeia de caracteres "sysId", booliano useAudit)
Busca o registro do banco de dados com base nos parâmetros, usando os conjuntos de históricos ou os dados de auditoria para recuperar os dados históricos, dependendo do terceiro parâmetro.
| Nome | Tipo | Descrição |
|---|---|---|
| tableName | Cadeia de caracteres | Nome da tabela que contém o registro a ser recuperado. |
| sydId | Cadeia de caracteres | sys_id do registro a ser recuperado. |
| usarAuditoria | Booliano |
|
Exemplo
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue(), true);
if (hw.walkTo(3)) {
var oldPriority = hw.getWalkedRecord().priority;
gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
} else
gs.info('Incident does not have update number 3');
Saída:
Incident priority in update number 3 was 4
Andarilho do histórico - getUpdateNumber()
Obtém o número de atualização do registro de glide percorrido atual.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| int | Número da atualização atual ou -1 se o registro não for encontrado |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.walkTo(3);
gs.info('Update number: ' + hw.getUpdateNumber());
Saída:
Update number: 3
Andarilho do histórico - getWalkedRecord()
Obtém o registro preenchido com os dados de histórico/auditoria depois de ir para um número de atualização.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| GlideRecord | O GlideRecord percorrido. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.walkTo(0);
var walkedRecord = hw.getWalkedRecord();
gs.info('Priority in update number 0: ' + walkedRecord.priority);
hw.walkTo(1);
walkedRecord = hw.getWalkedRecord();
gs.info('Short description in update number 1: ' + walkedRecord.short_description);
Saída:
Priority in update number 0: 4
Short description in update number 1: My monitor has stopped working
Andarilho do histórico - getWalpedRecordCopy()
Retorna uma cópia do registro preenchido com os dados de histórico/auditoria após ir para um número de atualização.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| GlideRecord | Uma cópia do GlideRecord percorrido. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var walkedRecord = [];
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.walkTo(0);
walkedRecord[0] = hw.getWalkedRecordCopy();
hw.walkTo(1);
walkedRecord[1] = hw.getWalkedRecordCopy();
gs.info('Priority in update number 0: ' + walkedRecord[0].priority);
gs.info('Short description in update number 1: ' + walkedRecord[1].short_description);
Saída:
Priority in update number 0: 4
Short description in update number 1: My monitor has stopped working
Andarilho do histórico - isFieldLevelSecurity()
Especifica se o acesso de leitura no nível de registro é aplicado ao registro ao recuperar do banco de dados.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se a segurança no nível de campo estiver habilitada, caso contrário, retorna falso. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
gs.info('Field level security is active: ' + hw.isFieldLevelSecurity());
Saída:
Field level security is active: true
Andarilho do histórico - isRecordLevelSecurity()
Especifica se o acesso de leitura no nível de registro é aplicado ao registro ao recuperar do banco de dados.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se a segurança em nível de registro estiver habilitada, caso contrário, retorna falso. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
gs.info('Record level security is active: ' + hw.isRecordLevelSecurity());
Saída:
Record level security is active: true
Andarilho do histórico - isWithChanges()
Especifica se algum dos métodos que percorrem o registro de uma atualização para outra oferece suporte aos dados de "mudanças" de cada elemento.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se o suporte a mudanças estiver habilitado, caso contrário, retorna falso. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
gs.info('Changes is active: ' + hw.isWithChanges());
Saída:
Changes is active: true
Andarilho do histórico - isWithJournalFields()
Especifica se os campos de tipo de registro são preenchidos a partir dos valores históricos.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se os campos de diário estiverem preenchidos, caso contrário, retorna falso. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
gs.info('Populating journal fields is active: ' + hw. isWithJournalFields());
Saída:
Populating journal fields is active: false
Andarilho do Histórico - isWithVariables()
Especifica se os valores são definidos para variáveis registradas no histórico.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se incluir valores para variáveis, caso contrário, retorna falso. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
gs.info('Populating variables is active: ' + hw. isWithVariables());
Saída:
Populating variables is active: false
HistóricoWalker - setFieldLevelSecurity(Booliano fieldLevelSecurity)
Define o acesso de leitura no nível de campo em cada elemento antes de definir o valor histórico desse elemento no GlideRecord. Se a segurança em nível de campo estiver habilitada, ela impedirá que a API preencha os campos do registro percorrido aos quais o usuário da API não tem acesso.
| Nome | Tipo | Descrição |
|---|---|---|
| fieldLevelSecurity | Booliano | Se definido como verdadeiro, a segurança no nível de campo será habilitada. O valor padrão é verdadeiro. |
| Tipo | Descrição |
|---|---|
| vazio |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.setFieldLevelSecurity(false);
hw.walkTo(0);
HistóricoWalker - setRecordLevelSecurity(booliano recordLevelSecurity)
Define o acesso de leitura no nível de registro ao recuperar do banco de dados. A segurança em nível de registro impede que a API recupere o registro percorrido se o usuário da API não tiver acesso ao GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| recordLevelSecurity | Booliano | Se definido como verdadeiro, a segurança de acesso de leitura no nível de registro será habilitada. O valor padrão é verdadeiro. |
| Tipo | Descrição |
|---|---|
| vazio |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.setRecordLevelSecurity(false);
hw.walkTo(0);
Andarilho do Histórico - setWithChanges(booliano comMudanças)
Define o suporte de dados de "mudanças" para cada elemento de um método que percorre o registro de uma atualização para outra.
| Nome | Tipo | Descrição |
|---|---|---|
| comMudanças | Booliano | Sinalizador que indica se os dados de mudanças são compatíveis com cada elemento. Valores válidos:
Padrão: verdadeiro |
| Tipo | Descrição |
|---|---|
| vazio |
Este exemplo de código mostra como chamar este método com suporte a dados de mudanças. Este exemplo deve ser executado no escopo global.
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.walkTo(0);
do {
printChangedFields(hw);
} while (hw.walkForward());
function printChangedFields(hw) {
var walkedGr = hw.getWalkedRecord();
var fields = GlideScriptRecordUtil.get(walkedGr).getChangedFieldNames();
gs.info("Fields changed at update " + hw.getUpdateNumber() + " were:");
for (var j = 0; j < fields.size(); j++)
gs.info(" " + fields.get(j));
gs.info("");
}
Este exemplo de código mostra como chamar este método sem suporte a dados de mudanças. Este exemplo é executado em ambientes com escopo e globais.
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.setWithChanges(false);
hw.walkTo(0);
do {
var oldPriority = hw.getWalkedRecord().priority;
gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
} while (hw.walkForward());
HistóricoWalker - setWithJournalFields(booliano withJournalFields)
Especifica se os campos de tipo de registro são preenchidos a partir dos valores históricos.
| Nome | Tipo | Descrição |
|---|---|---|
| withJournalFields | Booliano | Se definido como verdadeiro, inclua campos de tipo de registro. O valor padrão é falso. |
| Tipo | Descrição |
|---|---|
| vazio |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.setWithJournalFields(true);
if (hw.walkTo(0)) {
var workNotes = hw.getWalkedRecord().work_notes;
gs.info('Work Notes in update number ' + hw.getUpdateNumber() + ' was ' + workNotes);
}
Andarilho do Histórico - setWithVariables(booliano comVariáveis)
Especifica se as variáveis são preenchidas a partir dos valores históricos.
| Nome | Tipo | Descrição |
|---|---|---|
| comVariáveis | Booliano | Se definido como verdadeiro, os valores serão preenchidos para as variáveis. O valor padrão é falso. |
| Tipo | Descrição |
|---|---|
| vazio |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.setWithVariables(true);
hw.walkTo(0);
if (hw.walkTo(0)) {
var varUrgency = hw.getWalkedRecord().variables.urgency;
gs.info('Variable Urgency in update number ' + hw.getUpdateNumber() + ' was ' + varUrgency);
}
Andarilho do histórico - walkBackward()
Aplica os dados de histórico/auditoria apropriados para obter um GlideRecord percorrido para o estado quando ele era um número de atualização retroativo. Se a contagem de atualizações anteriores estiver ausente nos dados de histórico/auditoria, ela retornará à contagem de atualizações anteriores disponíveis.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se for possível ir até o número de atualização especificado. Else, retorna falso, por exemplo, se já caminhou para o número de atualização 0. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.walkTo(incGr.sys_mod_count);
do {
var oldPriority = hw.getWalkedRecord().priority;
gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
} while (hw.walkBackward())
Saída:
Incident priority in update number 5 was 2
Incident priority in update number 4 was 4
Incident priority in update number 3 was 4
Incident priority in update number 2 was 4
Incident priority in update number 1 was 4
Incident priority in update number 0 was 4
Andarilho do Histórico - walkForward()
Aplica os dados de histórico/auditoria apropriados para obter um GlideRecord percorrido para o estado quando ele estava um número de atualização à frente. Se a próxima contagem de atualizações estiver ausente nos dados de histórico/auditoria, ele seguirá para a próxima contagem de atualizações disponível.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se for possível ir até o número de atualização especificado. Senão, retorna falso, por exemplo, se já caminhou para a contagem de atualizações do GlideRecord. |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
hw.walkTo(0);
do {
var oldPriority = hw.getWalkedRecord().priority;
gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
} while (hw.walkForward())
Saída:
Incident priority in update number 0 was 4
Incident priority in update number 1 was 4
Incident priority in update number 2 was 4
Incident priority in update number 3 was 4
Incident priority in update number 4 was 4
Incident priority in update number 5 was 2
Andarilho do Histórico - walkTo(int updateCount)
Aplica os dados de histórico/auditoria apropriados para obter um GlideRecord para o estado em que estava em uma contagem de atualização específica. Use getWalkedRecord() ou getWalnedRecordCopy() depois de ir para um número de atualização para recuperar o GlideRecord "percorrido".
| Nome | Tipo | Descrição |
|---|---|---|
| updateCount | Inteiro | O número de atualização para o qual ir. |
| Tipo | Descrição |
|---|---|
| Booliano | verdadeiro se for possível ir até o número de atualização especificado; caso contrário, falso, por exemplo, se a atualização solicitada for maior do que a contagem de atualizações do GlideRecord ou se não houver dados de histórico/auditoria do número de atualização solicitado |
Exemplo:
var incGr = new GlideRecord('incident');
incGr.get('number', 'INC0000015');
var hw = new sn_hw.HistoryWalker(incGr.getTableName(), incGr.getUniqueValue());
if (hw.walkTo(3)) {
var oldPriority = hw.getWalkedRecord().priority;
gs.info('Incident priority in update number ' + hw.getUpdateNumber() + ' was ' + oldPriority);
} else
gs.info('Incident does not have update number 3');
Saída:
Incident priority in update number 3 was 4