GlideQueryCondition - Com escopo
O escopo GlideQueryCondition A API fornece adicionais E. ou OU condições que podem ser adicionadas à condição atual, permitindo criar consultas complexas.
category='hardware' OR category='software' AND priority='2' AND priority='1'No caso de AddCondition() um implícito E. adicionado.
- AddActiveQuery()
- AddInactiveQuery()
- AddJoinQuery()
- AddNotNullQuery()
- AddNullQuery()
- AddQuery()
Se houver um conjunto complicado de E. e. OU uma única consulta codificada que contém todas as condições simplifica a criação da consulta. Para simplificar a criação da consulta, crie uma consulta em uma exibição de lista, clique com o botão direito do mouse na consulta e selecione Copiar consulta . Ele cria uma única cadeia de caracteres de consulta codificada para retornar seu conjunto de resultados. Use essa cadeia de caracteres como um parâmetro em um AddEncodedQuery() chamada.
Sempre teste consultas em uma instância de subprodução antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como incluir um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usando um inserir() , atualizar() , DeleteRecord() ou DeleteMultiple() o método em resultados de consulta incorretos pode resultar em perda de dados.
Você pode definir glide.invalid_query.returns_no_rowspropriedade do sistema como verdadeira para que consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rowsdefinido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da instrução de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.
GlideQueryCondition - addCondition(nome da cadeia de caracteres, operador da cadeia de caracteres, valor do objeto)
Adiciona uma condição E à condição atual.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome de um campo. |
| oper | Cadeia de caracteres | Opcional. O operador da consulta. Se você não especificar um operador, a condição usará um operador igual. |
| valor | Objeto | Valor a ser consultado. |
| Tipo | Descrição |
|---|---|
| GlideQueryCondition | Referência a um GlideQueryConditon que foi adicionado ao registro do Glide. |
var now_GR = new GlideRecord('incident');
var qc = now_GR.addQuery('category', 'Hardware');
qc.addCondition('category', 'Network');
now_GR.addQuery('number','INC0000003');
now_GR.next();
now_GR.number;
gs.info(now_GR.getEncodedQuery());
GlideQueryCondition - addOrCondition(nome da cadeia de caracteres, operador da cadeia de caracteres, valor do objeto)
Anexa um parâmetro OU condição de dois ou três a uma GlideQueryCondition existente.
AddOrCondition() funciona em conjunto com qualquer um dos AddQuery() métodos para OU os parâmetros de consulta especificados para a consulta construída anteriormente usando AddQuery() .
AddOrCondition() normalmente é chamado com três parâmetros: campo de tabela, operador e valor de comparação. Ele pode ser chamado com apenas dois parâmetros, campo de tabela e valor de comparação, como AddOrCondition('category', 'software'); . Neste caso, o operador é considerado "igual a".
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo |
| oper | Cadeia de caracteres | (Opcional) Operador de consulta. Os valores disponíveis dependem do tipo de dados do valor parâmetro. Números:
Cadeias de caracteres (deve estar em maiúsculas):
|
| valor | Objeto | Valor no qual consultar (não diferencia maiúsculas de minúsculas). Nota: Todos passados em matrizes devem conter no mínimo dois elementos. Matrizes de elemento único não são compatíveis. |
| Tipo | Descrição |
|---|---|
| GlideQueryCondition | Uma referência a um GlideQueryConditon que foi adicionado ao GlideRecord. |
var now_GR = new GlideRecord('incident');
var qc = now_GR.addQuery('category', 'Hardware');
qc.addOrCondition('category', 'Network');
now_GR.addQuery('number','INC0000003');
now_GR.next();
now_GR.number;
gs.info(now_GR.getEncodedQuery());
Para agrupar E/OU declarações para fazer consultas complexas, como "Todos os incidentes com um estado menor que 3 OU maior que 5) E (a prioridade é 1 OU a prioridade é 5)
var myObj = new GlideRecord('incident');
var q1 = myObj.addQuery('state', '<', 3);
q1.addOrCondition('state', '>', 5);
var q2 = myObj.addQuery('priority', 1);
q2.addOrCondition('priority', 5);
myObj.query();