Guia de solução de problemas do widget

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 5 min. de leitura
  • Use as ferramentas a seguir para investigar e resolver comportamentos inesperados em seus widgets Portal de serviços personalizados.

    Reduzir complexidade
    Desative widgets não relacionados ao widget que você está solucionando para isolar partes da página que podem estar causando erros ou comportamento inesperado. Defina o campo ativo como falso em um registro de widget para ocultar o widget na página e impedir que os scripts associados sejam executados.
    Usar o console do desenvolvedor do navegador

    Todos os navegadores de desktop compatíveis têm ferramentas de desenvolvedor integradas. Acesse as ferramentas de desenvolvedor do navegador para exibir mensagens do console e erros gerados pelo JavaScript do lado do cliente. Muitas das ferramentas de registro em log detalhadas abaixo geram informações para este console.

    Se você tiver problemas de desempenho, verifique o console JavaScript para ver se há erros, um grande número de solicitações HTTP ou solicitações HTTP que demoram muito para serem resolvidas. Você pode usar o console para identificar widgets que carreguem lentamente. Para obter mais informações, consulte o artigo Como identificar um widget lento em uma página [KB0744521] na Base de conhecimento do Now Support.

    Determinar a causa dos problemas de desempenho

    As dicas a seguir podem ajudar a determinar a causa dos problemas de desempenho em portais:

    • Determine se o problema está relacionado ao portal ou a toda a plataforma, comparando a funcionalidade em ambas as interfaces. Para obter mais informações sobre problemas de desempenho da plataforma, consulte Desempenho da plataforma.
    • Determine se o problema afeta o portal inteiro ou páginas específicas. Se todas as páginas do portal estiverem lentas, verifique se os itens de menu com script no menu de cabeçalho ou os temas com fontes grandes ou arquivos de imagem podem ser a causa. Se uma página específica estiver lenta, use o console do desenvolvedor do navegador para determinar qual widget pode ser a causa.
    • Verifique a tabela Log [syslog] para obter avisos relacionados a objetos JSON grandes que causam lentidão. Se esses avisos forem exibidos com a ação que causa lentidão, isso indica que um widget está usando muitos dados.

    Para obter mais informações, consulte o artigo Seis riscos comuns de desempenho no Portal de serviços e como evitá-los [KB0634588] na Base de conhecimento do Now Support.

    Use o menu de contexto do widget para acessar informações e opções
    CTRL + clique com o botão direito em um widget para acessar as opções de configuração do widget. Também há opções para gerar o escopo e o objeto de dados do escopo para o console do navegador. Para obter mais detalhes sobre este menu, consulte Uso de widgets do portal.
    Usar métodos de script para capturar a saída de depuração

    Vários métodos estão disponíveis para gerar informações de depuração no servidor e no código do lado do cliente.

    Tabela 1. Métodos de depuração com script
    Método Disponibilidade Descrição
    console.log() Servidor e cliente Registra a saída no console do desenvolvedor do navegador.
    $sp.log() Servidor Registra a saída para a tabela Entradas de log do Portal de serviços [sp_log], quando o usuário conectado tem a função sp_admin ou admin.
    gs.log() Servidor Registra a saída na tabela Log [syslog].
    Nota:
    gs.log cria registros na tabela syslog. O uso excessivo pode afetar negativamente o desempenho.
    gs.warn() Servidor Produz saída de nível de aviso na tabela Log [syslog].
    gs.error() Servidor Produz saída de nível de erro na tabela Log [syslog].
    gs.addInfoMessage() Servidor Exibe uma mensagem informativa verde na parte superior da janela do navegador.
    gs.addErrorMessage() Servidor Exibe uma mensagem de erro vermelha na parte superior da janela do navegador.
    spUtil.addErrorMessage() Cliente Exibe uma mensagem de erro na janela do navegador.
    spUtil.addInfoMessage() Cliente Exibe uma mensagem informativa na janela do navegador.
    spUtil.addTrivialMessage() Cliente Exibe uma mensagem que desaparece automaticamente após um curto período de tempo.
    depurador Cliente Define um ponto de interrupção nos navegadores Chrome e Firefox, permitindo que você percorra um script linha por linha no console do desenvolvedor do navegador.
    {{data|json}} HTML Este código pode ser adicionado ao código HTML de uma página para gerar o objeto de dados para a página do portal no formato JSON.
    Verificar se há restrições de segurança

    Frequentemente, os problemas de exibição do widget são causados por regras de acesso ou critérios do usuário, em vez do script do widget. Verifique os critérios do usuário para registros e verifique se todos os registros que não podem ser acessados em um widget podem ser acessados usando a IU da plataforma. Use o depurador de ACL para garantir que seus usuários tenham o acesso esperado aos registros usados por seus widgets. Para obter mais detalhes sobre o depurador, consulte Ferramentas de depuração de ACL.

    Catálogo de serviços itens também podem ser restritos para não aparecer em Portal de serviços. Se você receber uma mensagem de erro Você não está autorizado ou o registro não é válido para um widget Catálogo de serviços, verifique se o item não está oculto de Portal de serviços.

    Verifique os provedores em angular associados
    Verifique se os Provedores em angular necessários estão associados aos widgets. Remover os provedores em angular padrão associados a um widget do sistema de base pode causar um comportamento inesperado. Por exemplo, remover os provedores angulares scToggleData ou scBindHtmlCompile do widget Item do catálogo de SC.
    Criar uma referência ao escopo de widgets no console
    Use a referência a um widget para manipular dados de escopo ou execute manualmente os scripts de cliente e servidor de widgets. Use as etapas a seguir para criar a referência.
    • 1. Clique com o botão direito do mouse no widget e escolha Inspecionar.
    • 2. Na guia Elementos das ferramentas de desenvolvimento, clique para realçar o elemento com o atributo widget =widget. Você pode encontrá-lo alguns elementos acima do elemento atualmente inspecionado. Este elemento aponta a ferramenta de script $0 no widget.
    • No console Javascript, execute o seguinte código:
      var scopeRef = angular.element($0).scope();
    Use a referência ao seu widget para mudar dados no console. Veja o exemplo a seguir. Lembre-se de executar AngularJS $apply() no escopo para aplicar as mudanças à página.
    scopeRef.data.prop1 = "Pear";
    scopeRef.$apply();
    Execute qualquer função definida no controlador do cliente de widgets a partir de sua referência usando a sintaxe abaixo.
    scopeRef.exampleFunction();

    Use o comando de atualização para executar manualmente o script do servidor de widgets.

    scopeRef.server.refresh();