Depurando regras de negócio
A depuração de regras de negócio pode ser obtida com recursos disponíveis no ServiceNow produto.
1. Ferramentas
O primeiro passo no processo é identificar ferramentas que o ajudarão a descobrir o que está errado.
| Ferramenta de depuração | Descrição |
|---|---|
| Dicionário do sistema | Navegar até . O dicionário fornece uma lista de todas as tabelas em sua instância e pode ser inestimável ao tentar localizar informações. |
| Log do Sistema | Navegar até . Você pode colocar declarações de alerta em sua regra de negócios que podem gravar informações no log. |
| Depurar regra de negócio (Detalhes) | Navegar até . Este módulo de depuração exibe as regras de negócio de resultados. Use este módulo para ver se as condições estão sendo atendidas e os valores estão sendo definidos conforme o esperado. |
| Mensagens de alerta | Existem várias funções do sistema que permitem imprimir mensagens na página, no campo ou no arquivo de log. Consulte Alertas de script, informações e mensagens de erro. |
| Exemplos de regras de negócio | Às vezes, você pode encontrar o que está procurando em scripts que outras pessoas escreveram, incluindo mensagens de erro de regra de negócio ou criando uma consulta OR. |
| Informações do GlideRecord | Esta é a sintaxe básica usada para consultar o banco de dados para obter informações. Consulte Consultando tabelas no script. GlideRecord também inclui suporte à agregação. |
2. Variáveis
A próxima etapa é obter algumas informações sobre o comportamento da sua regra de negócios. Para cada ação, exceto uma inserção, é mais do que provável que você use uma consulta para obter seu(s) registro(s).
var rec = new GlideRecord('incident');
rec.addQuery('active',true);
rec.query();
while (rec.next()) {
gs.print(rec.number + ' exists');
}
Para verificar se sua consulta está realmente retornando registros, você pode usar gs.addInfoMessage para exibir informações na parte superior da tela.
var rec = new GlideRecord('incident');
rec.addQuery('active',true);
rec.query();
gs.addInfoMessage("This is rec.next: " + rec.next());
while (rec.next()) {
gs.print(rec.number + ' exists');
}
Se sua consulta não retornar registros, você verá o seguinte:
This is rec.next: false
Use esta técnica para verificar se cada variável em sua regra de negócios contém valores esperados.
3. Localização de informações
A última etapa é garantir que você saiba onde encontrar as informações que sua regra está procurando.
Em ServiceNow uma tabela pode estender outra tabela. Ao pesquisar informações, pode ser necessário consultar a tabela primária para o sys_id da tabela estendida para encontrar o que você procura.
Um bom exemplo é a tabela sc_task, que estende a tabela de tarefas. O script abaixo consulta a tabela estendida (sc_task) para o sys_id atual e, em seguida, consulta a tabela primária (tarefa) para registros com o sys_id correspondente e imprime o campo Anotações de trabalho.
var kids = new GlideRecord('sc_task');
kids.query();
gs.addInfoMessage("This is requested item number: " + current.number);
gs.print("This is the requested item number: " + current.number);
while (kids.next()) {
var parents = new GlideRecord('task');
parents.addQuery('sys_id', '=', kids.sys_id);
parents.query();
while(parents.next()) {
gs.addInfoMessage("This is task number: " + parents.number);
gs.print("This is task number: " + parents.number);
gs.addInfoMessage("These are the work notes: " + parents.work_notes);
gs.print("These are the work notes: " + parents.work_notes);
}
}