Consultando tabelas no script
Usando métodos na API GlideRecord, você pode retornar todos os registros de uma tabela, retornar registros de uma tabela que atendam 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.
Tabelas de consulta usando a API GlideRecord. Para referência de API, consulte GlideRecord - Com escopo .
Retorna todos os registros de uma tabela
var target = new GlideRecord('incident');Criar um GlideRecord cria um destino Variável que é um objeto GlideRecord para a tabela de incidentes.
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 o. consulta () para o banco de dados. Cada chamada para next() carregaria o próximo registro para processamento.
Retorna registros de uma tabela que atendem às condições de 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
}AddQuery('Prioridade', 1); . Esta linha indica que você deseja somente os registros em que priorityo campo é igual a 1. Em geral, a maioria das consultas que você deseja executar 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 priorityo campo é 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
}Retorna registros de uma tabela que incluem uma cadeia de caracteres
Use 123TEXTQUERY321' nome reservado para pesquisar correspondências de cadeia de caracteres em todos os campos em uma tabela. Por exemplo, este script retorna registros da tabela Incidente com valores de campo 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 nameparâmetro no AddQuery() método. Você pode usar esta opção em uma cadeia de caracteres de consulta codificada. Por exemplo, em vez de AddQuery('123TEXTquery321', 'email'); , você pode usar AddEncodedQuery('123TEXTQUERY321') .
A pesquisa de cadeia de caracteres não diferencia maiúsculas de minúsculas. O sistema retorna os mesmos resultados, independentemente de você pesquisar e-mail , E-mail ou E-MAIL .
Retorna registros de várias tabelas em um grupo de índice de texto que incluem uma cadeia de caracteres
Use '123TEXTINDEXGROUP321' nome reservado 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.
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 índice "portal" que você 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 dos resultados são normalizadas de forma consistente. Se você pesquisou o mesmo conjunto de tabelas sem usar 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 mesclados.
'123TEXTINDEXGROUP321' é uma opção reservada para nameparâmetro no AddQuery() método. Você pode usar esta opção em uma cadeia de caracteres de consulta codificada. Por exemplo, em vez de AddQuery('123TEXTINDEXGROUP321', 'portal'); , você pode usar gr.addEncodedQuery('123TEXTINDEXGROUP321 .
A pesquisa de cadeia de caracteres de várias tabelas não diferencia maiúsculas de minúsculas. O sistema retorna os mesmos resultados, independentemente de você pesquisar e-mail , E-mail ou E-MAIL .
Operadores JavaScript disponíveis
Descreve os operadores que podem ser usados em um AddQuery() solicitação.
| Campo | Definição | AddQuery |
|---|---|---|
| = | O campo deve ser igual ao valor fornecido. | AddQuery('Priority', '', '', 1); |
| > | O campo deve ser maior que o valor fornecido. | AddQuery('Prioridade', '>', 1); |
| < | O campo deve ser menor que o valor fornecido. | AddQuery('Prioridade', '', '', 3); |
| >= | O campo deve ser igual ou maior que o valor fornecido. | AddQuery('Prioridade', '>', 1); |
| <= | O campo deve ser igual ou menor que o valor fornecido. | AddQuery('Prioridade', '', '', 3); |
| != | O campo não deve ser igual ao valor fornecido. | AddQuery('Priority', '!', 1); |
| COMEÇA COM | O campo deve começar com o valor fornecido. O exemplo mostrado à direita retorna todos os registros em que short_description O campo começa com o texto Erro. | AddQuery('shhort_description', 'STARTSWITH', 'Erro'); |
| CONTÉM | O campo deve conter o valor fornecido em algum lugar no texto. O exemplo mostrado à direita retorna todos os registros em que short_description O campo contém o texto Erro em qualquer lugar do campo. Nota: A operação CURTIR não é compatível. Os administradores devem usar CONTÉM na consulta. |
AddQuery('short_description', 'CONTÉM', 'Erro'); |
| IN | Usa um mapa de valores que permite vírgulas e reúne uma coleção de registros que atendem a algum outro requisito. Se comporta como Selecione * de <table>Em que short_description EM ("Erro", "Sucesso", "Falha") , que é idêntico a Selecione * de <table>Em que short_description: "Erro" . Por exemplo, para consultar todos os valores de variáveis que pertencem a uma atividade específica, use INe armazenam seus sys_ids em um mapa ou lista separada por vírgulas. Em seguida, consulte a tabela de valores variáveis e forneça esta lista de sys_ids. |
AddQuery('short_description', 'IN', 'Error,Success,Failure'); |
| ENDSWITH | O campo deve ser encerrado com o valor fornecido. O exemplo mostrado à direita retorna todos os registros em que short_description O campo termina com o texto Erro. | AddQuery('short_description', 'ENDSWITH', 'Erro'); |
| 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 short_description O campo não tem a palavra "Erro". | AddQuery('short_description', 'NÃO CONTÉM', 'Erro'); |
| NÃO ESTÁ EM | Usa um mapa de valores que permite vírgulas e reúne uma coleção de registros que atendem a algum outro requisito. Se comporta como: Selecione * de <table>Em que short_description NÃO ESTÁ EM ('Erro') . |
AddQuery('short_description', 'NOT IN', 'Error,Success,Failure'); |
| INSTANCEOF | 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'); |
Para obter informações adicionais sobre os operadores disponíveis para filtros e consultas, consulte Operators available for filters and queries.
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
}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 GlideRecord API e seus métodos disponíveis, consulte GlideRecord .
Exemplos de consulta GlideRecord
Estes exemplos demonstram como executar vários GlideRecord consultas.
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
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 .