Regras de negócios de depuração

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • As regras de negócios de depuração podem ser obtidas com os recursos disponíveis no produto ServiceNow.

    1. Ferramentas

    A primeira etapa no processo é identificar as ferramentas que ajudarão você a descobrir o que há de 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ócios dos 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 Alerta de script, informações e mensagens de erro.
    Exemplos de regra 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ócios ou criando uma consulta OR.
    Informações do GlideRecord Esta é a sintaxe básica usada para consultar o banco de dados em busca de informações. Consulte Consulta de tabelas no script. O GlideRecord também inclui suporte de agregação.

    2. Variáveis

    A próxima etapa é obter informações sobre o comportamento da sua regra de negócio. Para cada ação, exceto uma inserção, você provavelmente usará uma consulta para obter seus registros.

    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 nenhum registro, 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, reúna todas, uma etapa de cada vez.

    3. Informações de localização

    A última etapa é garantir que você saiba onde encontrar as informações que sua regra está procurando.

    Na aplicação ServiceNow, uma tabela pode estender outra tabela. Isso significa que, ao pesquisar informações, pode ser necessário consultar a tabela primária para obter 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, em seguida, imprime o campo de 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);
      }
     
     }