Tutorial: Configurar uma fonte de pesquisa de base de conhecimento externa

  • Versão de lançamento: Zurich
  • Atualizado 24 de jun. de 2026
  • 2 min. de leitura
  • Defina uma fonte de pesquisa avançada para retornar dados de qualquer fonte na Internet. Para entender o poder das fontes de pesquisa, siga este tutorial para configurar uma fonte de pesquisa de base de conhecimento externa.

    Antes de Iniciar

    Função necessária: nenhuma

    Para criar uma fonte de pesquisa avançada, você precisa de acesso autenticado a um site externo por meio de uma REST API e conhecimento básico do AngularJS .

    Por Que e Quando Desempenhar Esta Tarefa

    Nesta integração, você irá:

    • Crie um script de busca de dados que use ServiceNow API de tabela para consultar uma base de conhecimento de outra ServiceNow instância.
    • Decodifique a resposta JSON e defina os campos que o widget de pesquisa espera.
    • Atualize o modelo HTML das fontes de pesquisa para abrir o resultado da pesquisa no site externo.

    Procedimento

    1. Na IU da plataforma, navegue até Portal de serviços > Portais e selecione o portal ao qual você deseja adicionar a origem de pesquisa.
    2. Em Fontes de pesquisa lista relacionada, clique em Novo .
    3. Crie um nome e ID para a origem de pesquisa.
      O ID deve ser exclusivo e não deve incluir espaços ou caracteres especiais.
    4. Em Fonte de dados , selecione Origem com script caixa de seleção.
    5. Adicione conteúdo ao campo de script de busca de dados.
      1. Defina a função de pesquisa a ser executada pela instância.

        Este exemplo usa um Exemplo de RESTMessageV2 sem registro , mas você pode modificar este exemplo para usar um pré-configurado Serviço web REST de saída se necessário, ou crie um perfil de autenticação mais seguro.

        (function(query) {  
        var results = [];  
        /* Calculate your results here. */ 
        var url= "https://myInstance.service-now.com/api/now/table/kb_knowledge?sysparm_query=GOTO123TEXTQUERY321%3D" + encodeURI(query) + "&sysparm_fields=sys_id%2Cnumber%2Cshort_description%2Ccategory%2Ctext";  
            var ws = new sn_ws.RESTMessageV2();
                ws.setBasicAuth("search_user", "search");  
                ws.setHttpMethod("get");  
                ws.setEndpoint(url);  
          
                var jsonOutput = ws.execute();  
        
        return results;  
        })(query);
        Nota:
        No exemplo anterior, ws.setBasicAuth requer um nome de usuário e senha para a instância remota. Para obter mais detalhes, consulte RESTMessageV2 - escopo, global .
      2. Adicione uma instrução if ao script de busca de dados para decodificar o objeto JSON que está sendo retornado, iterar sobre cada resultado e definir os campos esperados.

        O script de obtenção de dados final:

        (function(query) {  
        var results = [];  
        /* Calculate your results here. */  
        var url= "https://<my-instance>.service-now.com/api/now/table/kb_knowledge?sysparm_query=GOTO123TEXTQUERY321%3D" + 
        encodeURI(query) + "&sysparm_fields=sys_id%2Cnumber%2Cshort_description%2Ccategory%2Ctext";  
        var ws = new sn_ws.RESTMessageV2();  
            ws.setBasicAuth("search_user", "search");  
            ws.setHttpMethod("get");  
            ws.setEndpoint(url);  
          
            var jsonOutput = ws.execute(); 
            if (jsonOutput) {  
                var response = new JSON().decode(jsonOutput.getBody());  
                results = response.result;  
                results.forEach(function(result) {  
                    result.url = "https://myInstance.service-now.com/kb_view.do?sysparm_article=" + result.number;            
                    result.target = "_blank";  
                    result.primary = result.short_description;  
                });  
            }  
        
            if (jsonOutput.haveError()){
                gs.addErrorMessage(jsonOutput.getErrorMessage());
            }
        
        return results;  
        })(query); 
        Neste exemplo, os seguintes campos são definidos no objeto de resultado:
        • url Se estiver vinculando a um site externo em vez de abrir o registro em seu ServiceNow, define para onde o link leva.
        • destino O destino do link. Defina o destino como _em branco para abrir resultados em uma nova guia, caso contrário, deixe-a em branco.
        • primário : O campo primário exibido nos resultados da pesquisa.
    6. Atualize o modelo de página de pesquisa para abrir os resultados da pesquisa no site externo.
      <div>
       <a href="https://myInstance.service-now.com/kb_view.do?sysparm_article={{item.number}}" target="_blank" class="h4 text-primary m-b-sm block">   
          <span ng-bind-html="highlight(item.primary, data.q)"></span>
        </a>
        <span class="text-muted" ng-repeat="f in item.fields | limitTo: 4">
          <span class="m-l-xs m-r-xs" ng-if="!$first"> · </span>
          {{f.label}}: <span ng-bind-html="highlight(f.display_value, data.q)"></span>
        </span>
      </div>
    7. Clique em Atualizar.

    Resultado

    Teste a pesquisa externa em seu portal. Os resultados são exibidos sob o valor do campo de nome definido na etapa três.

    Uma fonte de pesquisa externa na página de pesquisa

    Cada resultado de pesquisa é aberto no site externo definido no modelo de página de pesquisa.

    Um único resultado de pesquisa da fonte de pesquisa externa