---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Consultando tabelas no script

# Consultando tabelas no script {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 8 min. de leitura

Usando métodos na API GlideRecord, você pode retornar todos os registros de uma tabela, retornar registros de uma tabela que atendem a condições específicas ou retornar registros que incluem uma cadeia de caracteres de uma única tabela ou de várias tabelas em um grupo de índice de texto.

Consultar tabelas usando a API GlideRecord. Para obter referência de API, consulte [GlideRecord - Com escopo](https://servicenow-prod.fluidtopics.net/FBR_zQLvGAsgQtw7~4MAGA#c_GlideRecordScopedAPI "A API GlideRecord com escopo é usada para operações de banco de dados.").

## Retornar todos os registros de uma tabela {#c_UsingGlideRecordToQueryTables__section_bgd_ryw_g3b}

Para consultar uma tabela, primeiro crie um objeto GlideRecord. Para criar um GlideRecord, crie o seguinte no script:

    var target = new GlideRecord('incident');

A criação de um GlideRecord cria uma variável de `destino` que é um objeto GlideRecord para a tabela de incidentes.  
Para processar todos os registros da tabela de incidentes, adicione o seguinte script:

    target.query(); // Issue the query to the database to get all records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

Este script emite a consulta () para o banco de dados. Cada chamada para next() carregaria o próximo registro para processamento.

## Retornar registros de uma tabela que atendem às condições de consulta {#c_UsingGlideRecordToQueryTables__section_thn_tyw_g3b}

Na maioria das vezes, você deseja recuperar um registro específico ou um conjunto específico de registros e tem alguns critérios (condições de consulta) que definem os registros que deseja obter. Por exemplo, digamos que você queira obter todos os registros de incidentes que tenham um valor de prioridade 1. Aqui está o código que realizaria isso.

    var target = new GlideRecord('incident'); 
    target.addQuery('priority',1);
    target.query(); // Issue the query to the database to get relevant records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

Observe que o script de exemplo inclui `target.addQuery('priority', 1);`. Esta linha indica que você deseja somente os registros em que o campo priority é igual a 1. Em geral, a maioria das consultas a serem executadas são consultas de igualdade; consultas em que você deseja encontrar registros com um campo igual a um valor. Por esse motivo, você não precisa fornecer um operador de igualdade. No entanto, digamos que você queira encontrar todos os incidentes em que o campo priority é maior que 1. Nesse caso, você forneceria o operador que deseja aplicar à consulta.

    var target = new GlideRecord('incident') ; 
    target.addQuery('priority','>',1);
    target.query(); // Issue the query to the database to get relevant records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

## Retornar registros de uma tabela que inclui uma cadeia de caracteres {#c_UsingGlideRecordToQueryTables__section_kwq_3zw_g3b}

Use o nome reservado `"123TEXTQUERY321"` para pesquisar correspondências de cadeia de caracteres em todos os campos de uma tabela. Por exemplo, este script retorna registros da tabela Incidente com valores de campos que incluem a cadeia de caracteres "e-mail".

    var now_GR = new GlideRecord('incident');
    gr.addQuery('123TEXTQUERY321', 'email');
    gr.query();

`"123TEXTQUERY321"` é uma opção reservada para o parâmetro name no método `addQuery()`. Você pode usar esta opção em uma cadeia de caracteres de consulta codificada. Por exemplo, em vez de `gr.addQuery('123TEXTQUERY321', 'email');`, você pode usar `gr.addEncodedQuery('123TEXTQUERY321=email')`.

A pesquisa de cadeia de caracteres não diferencia maiúsculas de minúsculas. O sistema retornará os mesmos resultados se você pesquisar e- <kbd class="ph userinput">mail</kbd>, E- <kbd class="ph userinput">mail</kbd>ou <kbd class="ph userinput">EMAIL</kbd>.  
Nota:  
Antes de poder consultar usando uma pesquisa de cadeia de caracteres, você deve configurar a indexação de texto (e, opcionalmente, atributos de pesquisa) para a tabela que deseja pesquisar. Para obter mais informações, consulte [Configuração de uma única tabela para indexação e pesquisa](https://www.servicenow.com/docs/access?context=configure-single-table-for-indexing&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).

## Retornar registros de várias tabelas em um grupo de índice de texto que inclui uma cadeia de caracteres {#c_UsingGlideRecordToQueryTables__section_h2m_jzw_g3b}

Use o nome reservado `"123TEXTINDEXGROUP321"` para pesquisar uma cadeia de caracteres em uma tabela de um grupo de índice de texto. Esta opção retorna resultados com pontuações de relevância calculadas usando as configurações do grupo de índice de texto.  
Nota:  
Você só pode consultar uma tabela no grupo de índice de texto por vez. Use esta opção quando quiser emitir várias consultas de tabela única e mesclar seus resultados, ordenando-os por pontuação de relevância. A vantagem desta opção é que as pontuações de relevância do resultado da pesquisa para as consultas de tabela individuais são normalizadas de forma consistente para todas as tabelas no grupo de índice de texto.  
Por exemplo, este script retorna registros da tabela Conhecimento que incluem a palavra-chave "e-mail", com pontuações de relevância calculadas para o grupo de índice "portal".

    var now_GR = new GlideRecord('kb_knowledge');
    gr.addQuery('123TEXTQUERY321', 'email');
    gr.addQuery('123TEXTINDEXGROUP321', 'portal');
    gr.query();

Você pode criar uma consulta semelhante para cada tabela adicional no grupo de índices do "portal" que deseja pesquisar e mesclar os resultados das consultas individuais, exibindo os resultados com as pontuações de relevância mais altas primeiro. Como todas essas consultas de pesquisa usam as mesmas configurações de pesquisa de grupo de índice de texto, as pontuações de relevância de seus resultados são todas normalizadas de forma consistente. Se você pesquisou o mesmo conjunto de tabelas sem usar o método `gr.addQuery('123TEXTINDEXGROUP321', 'portal')`, as pontuações de relevância das consultas individuais seriam normalizadas de forma diferente e não seriam uma base útil para classificar o conjunto de resultados mesclado.

`'123TEXTINDEXGROUP321'` é uma opção reservada para o parâmetro name no método `addQuery()`. Você pode usar esta opção em uma cadeia de caracteres de consulta codificada. Por exemplo, em vez de `gr.addQuery('123TEXTINDEXGROUP321', 'portal');`, você pode usar `gr.addEncodedQuery('123TEXTINDEXGROUP321=portal')`.

A pesquisa de cadeia de caracteres de várias tabelas não diferencia maiúsculas de minúsculas. O sistema retornará os mesmos resultados se você pesquisar e- <kbd class="ph userinput">mail</kbd>, E- <kbd class="ph userinput">mail</kbd>ou <kbd class="ph userinput">EMAIL</kbd>.  
Nota:  
Antes de poder consultar tabelas em um grupo de índices, você deve configurar a indexação de texto e os atributos de pesquisa dessas tabelas e incluí-las no grupo de índices. Para obter mais informações, consulte [Configuração de várias tabelas para indexação e pesquisa](https://www.servicenow.com/docs/access?context=index-multiple-tables&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). Todas as tabelas no grupo de índice devem usar o formato de indexação V4.

## Operadores JavaScript disponíveis {#ariaid-title2}

Descreve os operadores que podem ser usados em uma solicitação addQuery().
{#r_AvailableJavaScriptOperators__table_pc2_kqj_2p__entry__3}

| Campo | Definição | adicionarConsulta |
|-|-|-|
| = | O campo deve ser igual ao valor fornecido. | addQuery('priority', '=', 1); |
| \> | O campo deve ser maior que o valor fornecido. | addQuery('priority', '\>', 1); |
| \< | O campo deve ser menor que o valor fornecido. | addQuery('priority', '\<', 3); |
| \>= | O campo deve ser igual ou maior que o valor fornecido. | addQuery('priority', '\>=', 1); |
| \<= | O campo deve ser igual ou menor que o valor fornecido. | addQuery('priority', '\<=', 3); |
| != | O campo não deve ser igual ao valor fornecido. | addQuery('priority', '!=', 1); |
| COMEÇA COM | O campo deve iniciar com o valor fornecido. O exemplo mostrado à direita retorna todos os registros em que o campo <var class="keyword varname">short_description</var> começa com o texto Erro. | addQuery('short_description', 'STARTSWITH', 'Error'); |
| CONTÉM | O campo deve conter o valor fornecido em algum lugar no texto. O exemplo mostrado à direita retorna todos os registros em que o campo <var class="keyword varname">short_description</var> contém o texto Erro em qualquer lugar no campo. Nota: A operação LIKE não é compatível. Os administradores devem usar CONTÉM na consulta. | addQuery('short_description', 'CONTAINS', 'Error'); |
| IN | Usa um mapa de valores que permite vírgulas e reúne uma coleção de registros que atendem a algum outro requisito. Comporta-se como `Selecionar * de <table> onde short_description IN ('Error', 'Êxito', 'Falha')`, que é idêntico a `Selecionar * de <table> onde short_description='Error'`. Por exemplo, para consultar todos os valores de variáveis que pertencem a uma Atividade específica, use a cláusula IN e armazene seus sys_ids em um mapa ou lista separada por vírgulas. Em seguida, consulte a tabela de valores de variáveis e forneça esta lista de sys_ids. | addQuery('short_description', 'IN', 'Error,Success,Failure'); |
| TERMINACOM | O campo deve terminar com o valor fornecido. O exemplo mostrado à direita retorna todos os registros em que o campo <var class="keyword varname">short_description</var> termina com o texto Erro. | addQuery('short_description', 'ENDSWITH', 'Error'); |
| NÃO CONTÉM | Seleciona registros que NÃO correspondem ao padrão no campo. Este operador não recupera campos vazios. Para valores vazios, use os operadores "está vazio" ou "não está vazio".O exemplo mostrado à direita retorna todos os registros em que o campo <var class="keyword varname">short_description</var> não tem a palavra "Erro". | addQuery('short_description', 'NÃO CONTÉM', 'Erro'); |
| NÃO EM | Usa um mapa de valores que permite vírgulas e reúne uma coleção de registros que atendem a algum outro requisito. Comporta-se como: `Selecione * de <table> onde short_description NOT IN ('Error')`. | addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); |
| INSTÂNCIADE | Operador especial que recupera somente registros de uma "classe" especificada para tabelas estendidas. O exemplo de código à direita mostra como recuperar todos os itens de configuração classificados como computadores. | addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); |
[Tabela 1. Operadores JavaScript disponíveis]

{#r_AvailableJavaScriptOperators__table_pc2_kqj_2p}

Para obter informações adicionais sobre os operadores que estão disponíveis para filtros e consultas, consulte [Operators available for filters and queries](https://www.servicenow.com/docs/access?context=r_OpAvailableFiltersQueries&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US).  
Existem também alguns métodos especiais que você pode usar para pesquisar dados que são NULL ou NOT NULL. Para pesquisar todos os incidentes em que o campo <var class="keyword varname">short_description</var> não foi fornecido (é nulo), use a seguinte consulta:

    var target = new GlideRecord('incident'); 
    target.addNullQuery('short_description');
    target.query(); // Issue the query to the database to get all records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

Para encontrar todos os incidentes nos quais um <var class="keyword varname">short_description</var> foi fornecido, use a seguinte consulta:

    var target = new GlideRecord('incident'); 
    target.addNotNullQuery('short_description');
    target.query(); // Issue the query to the database to get all records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

Para obter mais informações sobre a API GlideRecord e seus métodos disponíveis, consulte [GlideRecord](https://servicenow-prod.fluidtopics.net/FBR_zQLvGAsgQtw7~4MAGA#c_GlideRecordScopedAPI "A API GlideRecord com escopo é usada para operações de banco de dados.").

## Exemplos de consulta de GlideRecord {#ariaid-title3}

Esses exemplos demonstram como executar várias consultas de GlideRecord.

### consulta

    var rec = new GlideRecord('incident');
    rec.query(); 
    while(rec.next()) { 
      gs.print(rec.number + ' exists'); }

### atualizar

    var rec = new GlideRecord('incident');
    rec.addQuery('active',true);
    rec.query(); 
    while(rec.next()) { 
      rec.active = false;
      gs.print('Active incident ' + rec.number = ' closed');
      rec.update(); }

### inserir

    var rec = new GlideRecord('incident');
    rec.initialize();
    rec.short_description = 'Network problem'; 
    rec.caller_id.setDisplayValue('Joe Employee'); 
    rec.insert();

### excluir

    var rec = new GlideRecord('incident');
    rec.addQuery('active',false);
    rec.query(); 
    while(rec.next()) { 
      gs.print('Inactive incident ' + rec.number + ' deleted');
      rec.deleteRecord(); }

### Consultando tabelas do Catálogo de serviços

Você não pode consultar diretamente as variáveis da tabela Item da solicitação do Catálogo de serviços \[sc_req_item\]. Em vez disso, consulte a tabela Propriedade de variável, \[sc_item_option_mtom\], adicionando duas consultas, uma para o nome da variável e outra para o valor. A consulta retorna o relacionamento muitos para muitos, que você pode percorrer com pontos até o item solicitado. O exemplo a seguir encontra os itens da solicitação que têm a variável <var class="keyword varname">item_name</var> com um valor de <var class="keyword varname">item_value</var> e exibe os números dos itens da solicitação:

    var now_GR = new GlideRecord('sc_item_option_mtom');
    gr.addQuery('sc_item_option.item_option_new.name','item_name');
    gr.addQuery('sc_item_option.value','item_value');
    gr.query();
     
    while(gr.next()) {
      gs.addInfoMessage(gr.request_item.number); }

Para obter informações adicionais, consulte [GlideRecord](https://servicenow-prod.fluidtopics.net/FBR_zQLvGAsgQtw7~4MAGA#c_GlideRecordScopedAPI "A API GlideRecord com escopo é usada para operações de banco de dados.").

