Depurando regras de negócio

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • 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.

    Tabela 1. Ferramentas de depuração
    Ferramenta de depuração Descrição
    Dicionário do sistema Navegar até Definição do Sistema > Dicionário. 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é Logs do sistema > Log do Sistema. 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é Diagnóstico do sistema > Depuração de sessão > Depurar regra de negócio (Detalhes). 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.

    Dica:
    Se necessário, divida seu script em partes individuais e verifique se cada parte funciona separada do todo e, em seguida, coloque-os novamente juntos um passo de cada vez.

    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);
      }
     
     }