Tutorial: configurar uma origem de pesquisa da base de conhecimento externa

  • Versão de lançamento: Yokohama
  • Atualizado 9 de jan. de 2026
  • 2 min. de leitura
  • Defina uma origem de pesquisa avançada para retornar dados de qualquer origem na Internet. Para entender o poder das origens de pesquisa, siga este tutorial para configurar uma origem de pesquisa da base de conhecimento externa.

    Antes de Iniciar

    Função necessária: nenhuma

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

    Por Que e Quando Desempenhar Esta Tarefa

    Nesta integração, você:

    • Crie um script de busca de dados que usa a ServiceNow API da tabela para consultar uma base de conhecimento de outra instância ServiceNow.
    • 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. Na lista relacionada Origens de pesquisa, 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. Na guia Fonte de dados, marque a caixa de seleção É origem com script.
    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 serviço web REST de saída pré-configurado, se necessário, ou criar 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 - com escopo, global.
      2. Adicione uma instrução "if" ao script de busca de dados para decodificar o objeto JSON que está sendo retornado, iterar em cada resultado e definir os campos esperados.

        O script de busca 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 vincular a um site externo em vez de abrir o registro em sua instância ServiceNow, isso definirá para onde o link leva.
        • target: o destino do link. Defina o destino como _blank para abrir os resultados em uma nova guia, caso contrário, deixe 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 no 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 origem de pesquisa externa