GlideQuery - escopo, global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 30 min. de leitura
  • . GlideQuery a inclusão de script é uma alternativa ao GlideRecord API para executar operações CRUD em dados de registro de scripts do lado do servidor.

    . GlideQuery a inclusão de script permite que você:

    • Use objetos e tipos JavaScript padrão para consultas e resultados.
    • Diagnostique rapidamente erros de consulta com verificações adicionais e mensagens de erro claras.
    • Simplifique seu código evitando padrões de consulta de boiler-plate.
    • Evite problemas comuns de desempenho sem precisar de conhecimento mais profundo do GlideRecord.
    Use GlideQuery inclusão de script em scripts do lado do servidor com escopo ou globais. Quando usado em um app com escopo, ele deve ser prefixado com o escopo global.
    new global.GlideQuery('sys_user')
    // ...
    Esta inclusão de script requer o plug-in GlideQuery [com.sn_glidequery].

    Implementação

    Esta inclusão de script funciona em conjunto com Fluxo e. Opcional APIs em um padrão do construtor em que o método chama a cadeia, cada método criado no resultado retornado do método anterior. Use métodos para definir os atributos da consulta. Os métodos não são executados até que você chame um método de terminal, um método que retorna um resultado de consulta, permitindo que você defina os requisitos da consulta antes de executá-la.

    Se a consulta retornar um único registro, o sistema encapsulará o resultado em um objeto Opcional. Se a consulta retornar um fluxo de registros, o sistema encapsulará o resultado em um objeto Fluxo. Esses objetos permitem gerenciar o resultado usando um conjunto de métodos em cada API.

    Por exemplo, isso O script executa uma consulta na tabela Tarefa, agrupa os registros por prioridade e retorna cada prioridade que tem reatribuições totais maiores que quatro.

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    Saída:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    Tratamento de erros

    . GlideQuery a inclusão de script gera um erro quando sua consulta tem um problema e inclui uma explicação clara para ajudar a orientá-lo. Este script inclui verificações para:

    • Campos inválidos
    • Tipos de valor inválidos para um campo
    • Valores inválidos para campos de seleção
    • Operadores de consulta inválidos

    Por exemplo, o exemplo de código a seguir geraria um erro porque o campo consultado não existe na tabela.

    new global.GlideQuery('task')
        .where('id', '4717dfe5a9fe198100450448b2404c16') // should be 'sys_id'
        .select('description', 'severity')
        .toArray(100);
      // Error: Unable to find field 'id' in table 'task'. Known fields: active, activity_due, ...

    Esta amostra de código geraria um erro porque o tipo de dados de um dos argumentos está incorreto.

    new global.GlideQuery('task')
        .where('priority', 'one') // priority is an integer (should be 1)
        .select('description', 'severity')
        .toArray(100);
      // Error: Unable to match value ['one'] with field 'priority' in table 'task'. Expecting type 'integer'

    Reutilize

    Como os objetos GlideQuery são imutáveis, você pode reutilizá-los posteriormente em outras partes do seu código. Por exemplo, este script cria uma consulta e usa o objeto GlideQuery posteriormente para gerar um relatório.

    var highPriorityTasks = new global.GlideQuery('task')
        .where('active', true)
        .where('priority', 1);
    
    generateReport(highPriorityTasks);
    notifyOwners(highPriorityTasks);
    var avgReassignmentCount = highPriorityTasks
        .avg('reassignment_count')
        .orElse(0)
    

    Limitações

    . GlideQuery a inclusão de script não é compatível com:

    • Leitura ou gravação em tabelas que não permitem acesso de outros escopos.
    • Lendo consultas codificadas.
    • Objetos GlideDate ou GlideDateTime, que são lidos como cadeias de caracteres JavaScript.
    • Campos de moeda FX.
    • Atualizando tipos de campo de registro.
    • Consultas com lógica condicional ambígua. Por exemplo, a consulta a seguir não está clara porque o sistema não sabe se deve ser executada (Ativo: Verdadeiro E nome! Nulo) OU last_name: Luddy ou Verdadeiro E (nome !: Nulo OU last_name: Luddy) .
      var user = new global.GlideQuery('sys_user')
        .where('active', true)
        .whereNotNull('name')
        .orWhere('last_name', 'Luddy')
        .selectOne()
        .get()

      Consulte onde() método para entender como aninhar uma consulta secundária.

    Nota:
    . GlideQuery A inclusão de script converte objetos GlideRecord em objetos JavaScript padrão, pode levar mais tempo para executar consultas. Para reduzir problemas de desempenho, evite criar loops que iteram em um grande número de registros.

    Métodos intermediário e terminal no GlideQuery

    . GlideQuery a inclusão de script usa duas categorias de métodos: intermediário e terminal. Métodos intermediários são aqueles métodos que retornam um Fluxo , Uma API usada para interagir com um fluxo de itens como registros, permitindo um estilo fluente de sintaxe em que as chamadas são encadeadas. Métodos de terminal são aqueles métodos que não retornam um fluxo e, portanto, param a cadeia de Fluxo chamadas de método.

    Em GlideQuery inclusão de script, métodos como onde() , Orderby() e Desabilitar Workflow() São métodos intermediários que retornam um novo objeto GlideQuery. Da mesma forma, o GlideQuery os métodos de terminal mais populares da inclusão de script, selecionar() e. SelectOne() , são métodos de terminal. Esses métodos são chamados quando GlideQuery a configuração terminou e está pronta para iniciar o processamento de registros. É importante ter em mente as diferenças entre esses dois tipos de método ao configurar chamadas para GlideQuery inclusão de script de acordo com seus casos de uso específicos. Para obter mais informações sobre métodos intermediários e de terminal, consulte o artigo GlideQuery - Fluxo de processamento Parte 1 .

    Os seguintes métodos são classificados como intermediários:

    • Agregate(cadeia de caracteres aggregateType, campo de cadeia de caracteres)
    • DisableAutoSysFields()
    • Desabilitar Workflow()
    • ForceUpdate()
    • GroupBy (campos de cadeia de caracteres)
    • (Cadeia de caracteres aggregateType, campo de cadeia de caracteres, operador de cadeia de caracteres, valor numérico)
    • Limit (limite numérico)
    • Orderby (campos de cadeia de caracteres)
    • OrderByDesc(cadeia de caracteres fieldOrAggregate, campo de cadeia de caracteres)
    • OrWhere(cadeia de caracteres fieldOrQuery, operador de cadeia de caracteres, qualquer valor)
    • Ou WhereNotNull (campo de cadeia de caracteres)
    • Ou WhereNull (campo de cadeia de caracteres)
    • String fieldOrQuery, operador de cadeia de caracteres, qualquer valor)
    • WheNotNull (campo de cadeia de caracteres)
    • WheNull (campo de cadeia de caracteres)
    • Com Acls()

    Os seguintes métodos são classificados como terminal:

    • avg (campo de cadeia de caracteres)
    • contagem()
    • deleteMultiple()
    • GET (Chave de cadeia de caracteres, Matriz selectedFields)
    • GetBy (Object KeyValues, Array selectedFields)
    • Inserir (Object KeyValues, Objeto Selecionado Campos)
    • InsertOrUpdate(Mudanças de objeto, Objeto selectedFields)
    • (Campo de cadeia de caracteres)
    • Min (campo de cadeia de caracteres)
    • (Campos de cadeia de caracteres)
    • SelectOne (campos de cadeia de caracteres)
    • Soma (campo de cadeia de caracteres)
    • ToGlideRecord()
    • Atualização (mudanças de objeto, objetos selecionados campos)
    • UpdateMultiple (mudanças de objeto)
    Nota:
    Parse (tabela de cadeia de caracteres, cadeia de caracteres encoded_query) não é intermediário ou terminal, mas estático.

    GlideQuery - GlideQuery (tabela de cadeia de caracteres)

    Instancia um objeto GlideQuery usado para criar e executar consultas de registro.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Tabela a ser consultada.
    Tabela 2. Retornos
    Tipo Descrição
    Nenhum(a)

    Este exemplo instancia uma consulta da tabela Usuário.

    var query = new global.GlideQuery('sys_user');

    GlideQuery - Agregado(cadeia de caracteres aggregateType, campo de cadeia de caracteres)

    Agrega um campo usando uma função de agregação especificada.

    Use este método para criar consultas que agregam em vários campos ou usam várias funções agregadas, ou se você precisar usar GroupBy() método. Se você quiser agregar apenas um campo com uma função e não precisar usar GroupBy() , em seguida, use um destes métodos:

    • média ()
    • mínimo ()
    • ()
    • contagem()
    Tabela 3. Parâmetros
    Nome Tipo Descrição
    AggregateType Cadeia de caracteres O tipo de função de agregação a ser executada. As opções incluem:
    • mín Retorna o menor valor de todos os registros correspondentes.
    • máx Retorna o maior valor de todos os registros correspondentes.
    • soma Retorna a soma de todos os registros correspondentes.
    • média Retorna a média de todos os registros correspondentes.
    • contagem Retorna o número de registros correspondentes.
    Assunto: Cadeia de caracteres Campo no qual executar a operação.
    Tabela 4. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.
    Este O script executa uma consulta na tabela Tarefa, agrupa os registros por prioridade e retorna cada prioridade que tem reatribuições totais maiores que quatro.
    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    Saída:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    GlideQuery - média (campo de cadeia de caracteres)

    Retorna a média agregada de um determinado campo numérico.

    Você só pode usar este método em campos dos seguintes tipos:
    • Inteiro
    • Longa
    • Número de ponto flutuante
    • Duplo
    • Moeda
    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo no qual executar a operação.
    Tabela 6. Retornos
    Tipo Descrição
    Opcional Objeto que contém a média agregada do campo fornecido.

    Este exemplo mostra como retornar o número médio de falhas na tabela cmdb_ci.

    var faults = new global.GlideQuery('cmdb_ci')
        .avg('fault_count')
        .orElse(0);
    
    gs.info(JSON.stringify(faults));

    Saída:

    0.0037

    GlideQuery - count()

    Retorna o número de registros que correspondem à consulta.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. Retorna
    Tipo Descrição
    Número Número de registros que correspondem à consulta.

    Este exemplo retorna o número de registros ativos na tabela Usuário.

    var userCount = new global.GlideQuery('sys_user')
        .where('active', true)
        .count();

    Saída:

    612

    GlideQuery - deleteMultiple()

    Exclui todos os registros na tabela especificada pelas cláusulas WHERE anteriores.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Nenhum(a)

    Este exemplo exclui todos os registros ativos na tabela Usuário em que o sobrenome é Jeter.

    var query = new global.GlideQuery('sys_user')
        .where('active', true)
        .where('last_name', 'Jeter')
        .deleteMultiple();

    GlideQuery - disableAutoSysFields()

    Desabilita a atualização de campos do sistema ou campos com um nome que começa com sistema prefixo, como sys_created_on, sys_updated_on e sys_mod_count. Aplica-se somente à consulta especificada.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo adiciona um registro à tabela de tarefas, mas não define campos do sistema. Sem chamar este método, o exemplo abaixo atualizaria sys_updated_on, sys_mod_count e assim por diante.

    var query = new global.GlideQuery('task')
        .disableAutoSysFields()
        .insert({ description: 'example', priority: 1 });

    GlideQuery - disableWorkflow()

    Desabilita regras de negócios, fluxos, fluxos de trabalho ou registros de auditoria que seriam executados ou criados como resultado da consulta.

    Nota:
    Este método só funciona para tabelas no escopo GLOBAL.
    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 14. Retorna
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo atualiza vários registros na tabela Tarefa sem acionar processos de negócios automáticos.

    var query = new global.GlideQuery('task')
        .disableWorkflow()
        .where('active', true)
        .updateMultiple({ priority: 1 });

    GlideQuery - forceUpdate()

    Força uma atualização do banco de dados mesmo quando nenhuma mudança de registro é feita. Por exemplo, você pode usar este método para forçar a execução de uma regra de negócios.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 16. Retorna
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo força as atualizações de registros de tarefa com um determinado sys_id.

    var forceUpdate = new global.GlideQuery('task')
        .forceUpdate()
        .where('sys_id', taskId)
        .update()

    GlideQuery - GET (chave de cadeia de caracteres, matriz selectedFields)

    Retorna um único registro da consulta.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    chave Cadeia de caracteres Sys_id do registro a ser retornado.
    selectedFields Matriz Opcional. Campos adicionais a serem retornados no resultado.

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 18. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Exemplo que retorna um registro baseado em sys_id.

    var user = new global.GlideQuery('sys_user')
        .get('5137153cc611227c000bbd1bd8cd2005', ['first_name', 'last_name']) //Returns an Optional object.
        .orElse({ first_name: 'Default', last_name: 'User' }); //Method in the Optional class to return a default value.
    
    gs.info(JSON.stringify(user, null, 2));

    Saída:

    {
       "sys_id":"5137153cc611227c000bbd1bd8cd2005",
       "first_name":"Fred",
       "last_name":"Luddy"
    }

    GlideQuery - getBy (Object KeyValues, Array selectedFields)

    Retorna um objeto opcional que contém um único registro com base em um conjunto de pares nome-valor para consulta. Assume o operador '

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    KeyValues Objeto Objeto em que as chaves são o nome dos campos e os valores são os valores a serem consultados.
    selectedFields Matriz Opcional. Campos adicionais a serem retornados no resultado.

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 20. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Exemplo que retorna um registro consultando o nome de um usuário.

    var user = new global.GlideQuery('sys_user')
        .getBy({
            first_name: 'Fred',
            last_name: 'Luddy'
        }, ['first_name', 'last_name', 'city', 'active']) // select first_name, last_name, city, active
        .orElse({
            first_name: 'Nobody',
            last_name: 'Found',
            city: 'Nowhere',
            active: false
        });
    
    gs.info(JSON.stringify(user, null, 2));

    Saída:

    {
       "first_name":"Fred",
       "last_name":"Luddy",
       "city":null,
       "active":true,
       "sys_id":"5137153cc611227c000bbd1bd8cd2005"
    }

    GlideQuery - groupBy (campos de cadeia de caracteres)

    Agrupa os resultados da consulta por um campo ou campos designados.

    Você deve usar este método com agregado() método.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    campos Cadeia de caracteres ou matriz de cadeias de caracteres Campos para agrupar os resultados.
    Tabela 22. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.
    Este O script executa uma consulta na tabela Tarefa, agrupa os registros por prioridade e retorna cada prioridade que tem reatribuições totais maiores que quatro.
    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    Saída:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    GlideQuery - Tendo (cadeia de caracteres aggregateType, campo de cadeia de caracteres, operador de cadeia de caracteres, valor numérico)

    Os filtros agregam grupos para que você possa exibir somente grupos de resultados que correspondam a uma condição especificada.

    Este método deve ser usado com agregado() ou GroupBy() métodos.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    AggregateType Cadeia de caracteres O tipo de função de agregação a ser executada. As opções incluem:
    • mín Retorna o menor valor de todos os registros correspondentes.
    • máx Retorna o maior valor de todos os registros correspondentes.
    • soma Retorna a soma de todos os registros correspondentes.
    • média Retorna a média de todos os registros correspondentes.
    • contagem Retorna o número de registros correspondentes.
    Assunto: Cadeia de caracteres Campo no qual executar a operação.
    operador Cadeia de caracteres Operador numérico a ser usado na operação.
    As opções incluem:
    • > Maior que.
    • . Menos de.
    • . Maior que ou igual a.
    • . Menor que ou igual a.
    • . Igual a.
    • . Diferente de.
    valor Número Valor numérico a ser usado na operação.
    Tabela 24. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.
    Este O script executa uma consulta na tabela Tarefa, agrupa os registros por prioridade e retorna cada prioridade que tem reatribuições totais maiores que quatro.
    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    Saída:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    GlideQuery - inserir(Object KeyValues, Object selectedFields)

    Insere um registro e retorna um objeto opcional que contém o registro.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    KeyValues Objeto Objeto que contém pares nome-valor a serem inseridos no registro. Campos não especificados serão nulos.
    selectedFields Matriz Opcional. Campos adicionais a serem retornados no resultado.

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 26. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como inserir um registro com base no nome e no sobrenome de um usuário.

    var fred = new global.GlideQuery('sys_user')
        .insert({ first_name: 'Fred', last_name: 'Luddy' })
        .get();
    
    gs.info(JSON.stringify(fred, null, 2));

    Saída:

    {
       "sys_id":"cf16eed0e82a9010f8778bda83d255d2",
       "first_name":"Fred",
       "last_name":"Luddy"
    }

    GlideQuery - insertOrUpdate(Mudanças de objeto, Object selectedFields)

    Atualiza um registro existente ou insere um novo registro, se ainda não houver um.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    Mudanças Objeto Objeto que contém pares nome-valor para atualizar ou inserir no registro.
    selectedFields Matriz Opcional. Campos adicionais a serem retornados no resultado.

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 28. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como inserir um novo registro que ainda não existe no sistema.

    // insert a new record
    var user = new GlideQuery('sys_user')
        .insertOrUpdate({
            first_name: 'George',
            last_name: 'Griffey'
        })
        .orElse(null);

    Este exemplo mostra como atualizar um registro existente.

    // update existing record
    var user = new global.GlideQuery('sys_user')
        .insertOrUpdate({
            sys_id: '2d0efd6c73662300bb513198caf6a72e',
            first_name: 'George',
            last_name: 'Griffey' })
        .orElse(null);

    GlideQuery - limite (limite numérico)

    Limita o número de registros retornados em uma consulta.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    limite Número Número de registros a serem retornados.
    Tabela 30. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como limitar os resultados retornados a cinco registros.

    var incidents = new global.GlideQuery('incident')
        .limit(5)
        .select('priority', 'description')
        .forEach(function (incident){
            gs.info(JSON.stringify(incident, null, 2));
        });

    Saída:

    *** Script: {
      "priority": 1,
      "description": "User can't get to any of his files on the file server.",
      "sys_id": "9d385017c611228701d22104cc95c371"
    }
    *** Script: {
      "priority": 1,
      "description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
      "sys_id": "e8caedcbc0a80164017df472f39eaed1"
    }
    *** Script: {
      "priority": 1,
      "description": "User forgot their email password.",
      "sys_id": "9d3c1197c611228701cd1d94bc32d76d"
    }
    *** Script: {
      "priority": 1,
      "description": "When I try to print, my whole computer just freezes and stops working.",
      "sys_id": "8d6246c7c0a80164012fb063cecd4ace"
    }
    *** Script: {
      "priority": 3,
      "description": "Unable to login even though login credentials are correct.",
      "sys_id": "a9e30c7dc61122760116894de7bcc7bd"
    }

    GlideQuery - max (campo de cadeia de caracteres)

    Retorna o máximo agregado de um determinado campo.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo no qual executar a operação.
    Tabela 32. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como retornar o valor máximo, ou o valor alfanumérico mais alto, de um determinado campo.

    var name = new global.GlideQuery('sys_user')
        .max('last_name')
        .orElse('');
    
    gs.info(JSON.stringify(name));

    Saída:

    "Zortman"

    GlideQuery - min (campo de cadeia de caracteres)

    Retorna o mínimo agregado de um determinado campo.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo no qual executar a operação.
    Tabela 34. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como retornar o valor mínimo, ou o menor valor alfanumérico, de um determinado campo.

    var name = new global.GlideQuery('sys_user')
        .min('last_name')
        .orElse('');
    
    gs.info(JSON.stringify(name));

    Saída:

    "Abel"

    GlideQuery - orderBy (campos de cadeia de caracteres)

    Ordena o resultado retornado em ordem crescente por um determinado campo.

    Tabela 35. Parâmetros
    Nome Tipo Descrição
    campos Cadeia de caracteres Campos delimitados por vírgulas para ordenar o resultado em ordem crescente.
    Tabela 36. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como ordenar resultados em ordem crescente por número de registro.

    var query = new global.GlideQuery('incident')
        .orderBy('number')
        .limit(5)
        .select('number', 'description') //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
            gs.info(JSON.stringify(incident, null, 2));
        });

    Saída:

    *** Script: {
      "number": "INC0000001",
      "description": "User can't access email on mail.company.com.",
      "sys_id": "9c573169c611228700193229fff72400"
    }
    *** Script: {
      "number": "INC0000002",
      "description": "User can't get to any of his files on the file server.",
      "sys_id": "9d385017c611228701d22104cc95c371"
    }
    *** Script: {
      "number": "INC0000003",
      "description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
      "sys_id": "e8caedcbc0a80164017df472f39eaed1"
    }
    *** Script: {
      "number": "INC0000004",
      "description": "User forgot their email password.",
      "sys_id": "9d3c1197c611228701cd1d94bc32d76d"
    }
    *** Script: {
      "number": "INC0000005",
      "description": "CPU was 100% busy for more than 10 minutes",
      "sys_id": "e8e875b0c0a80164009dc852b4d677d5"
    }

    GlideQuery - orderByDesc(cadeia de caracteres fieldOrAggregate, campo de cadeia de caracteres)

    Ordena o resultado retornado em ordem decrescente por um determinado campo.

    Tabela 37. Parâmetros
    Nome Tipo Descrição
    OrAggregate Cadeia de caracteres Se a consulta não usar agregado() , passe o campo para ordenar os resultados.

    Se a consulta usar agregado() , passe o tipo de função de agregação a ser executada.

    As opções incluem:
    • mín Retorna o menor valor de todos os registros correspondentes.
    • máx Retorna o maior valor de todos os registros correspondentes.
    • soma Retorna a soma de todos os registros correspondentes.
    • média Retorna a média de todos os registros correspondentes.
    • contagem Retorna o número de registros correspondentes.
    Assunto: Cadeia de caracteres Opcional. Campo para ordenar o resultado em ordem decrescente. Necessário para consultas usando agregado() método.
    Tabela 38. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como ordenar o resultado em ordem decrescente por número.

    var query = new global.GlideQuery('incident')
        .orderByDesc('number')
        .limit(5)
        .select('number', 'description') //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
            gs.info(JSON.stringify(incident, null, 2));
        });

    Saída:

    *** Script: {
      "number": "INC0009009",
      "description": "Unable to access the shared folder. Please provide access.",
      "sys_id": "57af7aec73d423002728660c4cf6a71c"
    }
    *** Script: {
      "number": "INC0009005",
      "description": "Unable to send or receive emails.",
      "sys_id": "ed92e8d173d023002728660c4cf6a7bc"
    }
    *** Script: {
      "number": "INC0009004",
      "description": "While launching the defect tracking base URL, it is redirecting to an error page.",
      "sys_id": "e329de99731423002728660c4cf6a73c"
    }
    *** Script: {
      "number": "INC0009003",
      "description": "Having an issue with users trying to access the company portal app",
      "sys_id": "9fffc328731823002728660c4cf6a742"
    }
    *** Script: {
      "number": "INC0009002",
      "description": "My computer is not detecting the headphone device. It could be an issue with the USB port.",
      "sys_id": "1c832706732023002728660c4cf6a7b9"
    }

    Este exemplo mostra como solicitar um resultado agregado pela soma de incidentes secundários.

    var aggQuery = new GlideQuery('incident')
        .aggregate('sum', 'child_incidents')
        .groupBy('category')
        .orderByDesc('sum', 'child_incidents')
        .select()
        .forEach(function (category){
            gs.info(JSON.stringify(category, null, 2));    
        });

    Saída:

    *** Script: {
      "group": {
        "category": "hardware"
      },
      "sum": {
        "child_incidents": 2
      }
    }
    *** Script: {
      "group": {
        "category": "inquiry"
      },
      "sum": {
        "child_incidents": 1
      }
    }
    *** Script: {
      "group": {
        "category": "software"
      },
      "sum": {
        "child_incidents": 0
      }
    }
    *** Script: {
      "group": {
        "category": ""
      },
      "sum": {
        "child_incidents": null
      }
    }
    *** Script: {
      "group": {
        "category": "database"
      },
      "sum": {
        "child_incidents": null
      }
    }
    *** Script: {
      "group": {
        "category": "network"
      },
      "sum": {
        "child_incidents": null
      }
    }

    GlideQuery - ouWhere(cadeia de caracteres fieldOrQuery, operador de cadeia de caracteres, qualquer valor)

    Adiciona uma cláusula OU a uma consulta que retorna valores com base em uma determinada condição.

    Nota:
    Preceda este método com onde() , WhereNull() ou WhereNotNull() métodos.
    Tabela 39. Parâmetros
    Nome Tipo Descrição
    FieldOrQuery Cadeia de caracteres ou GlideQuery Ou outro objeto GlideQuery usado na cláusula WHERE. Se passar um campo, você poderá fazer referência com pontos até um valor desejado. Por exemplo, 'company.name' .
    operador Cadeia de caracteres Opcional. Operador usado na cláusula OU. Se você não passar um argumento, o sistema usará o operador . Não é necessário incluir um valor de espaço reservado.
    valor Qualquer Valor usado na cláusula OU.
    Tabela 40. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como adicionar uma cláusula OU simples a uma consulta.

    var query = new global.GlideQuery('sys_user')
       .where('failed_attempts', '>', 0)
       .orWhere('last_login', '<', '2019-04-15')
       .select()
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "sys_id": "005d500b536073005e0addeeff7b12f4"
    }
    *** Script: {
      "sys_id": "d999e5fc77e72300454792718a10611d"
    }
    *** Script: {
      "sys_id": "30ad318577ab2300454792718a10619e"
    }
    *** Script: {
      "sys_id": "4ac73ecd738123002728660c4cf6a72c"
    }
    *** Script: {
      "sys_id": "3883f4c0730123002728660c4cf6a754"
    }
    *** Script: {
      "sys_id": "3988a3ca732023002728660c4cf6a757"
    }
    *** Script: {
      "sys_id": "8ff5b254b33213005e3de13516a8dcf7"
    }

    Este exemplo mostra como adicionar um OuOnde cláusula que contém uma consulta separada.

    // active = true OR (title = 'Vice President' AND state = 'CA')
    var query = new GlideQuery('sys_user')
       .where('active', true)
       .orWhere(new GlideQuery()
           .where('title', 'Vice President')
           .where('state', 'CA'))
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "name": "ITIL User",
      "sys_id": "681b365ec0a80164000fb0b05854a0cd"
    }
    *** Script: {
      "name": "SOAP Guest",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }
    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }

    GlideQuery - ouWhereNotNull (campo de cadeia de caracteres)

    Adiciona uma cláusula OU que retorna registros que não contêm um valor nulo em um determinado campo.

    Nota:
    Preceda este método com onde() , WhereNull() ou WhereNotNull() métodos.
    Tabela 41. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo usado na consulta.
    Tabela 42. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como consultar a tabela Usuário e retornar resultados em que o nome ou sobrenome não são nulos.

    var query = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .orWhereNotNull('last_name')
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "name": "ITIL User",
      "sys_id": "681b365ec0a80164000fb0b05854a0cd"
    }
    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "name": "Allyson Gillispie",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }

    GlideQuery - ouWhereNull (campo de cadeia de caracteres)

    Adiciona uma cláusula OU a uma consulta que retorna registros que contêm um valor nulo em um determinado campo.

    Nota:
    Preceda este método com onde() , WhereNull() ou WhereNotNull() métodos.
    Tabela 43. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo usado na consulta.
    Tabela 44. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como consultar a tabela Usuário e retornar registros em que o nome ou sobrenome são nulos.

    var query = new global.GlideQuery('sys_user')
       .whereNull('last_name')
       .orWhereNull('first_name')
       .select('first_name', 'last_name')
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "first_name": "ml.admin",
      "last_name": null,
      "sys_id": "88aad6c5c73003005f1b78d48b9763a5"
    }
    *** Script: {
      "first_name": "Sitemap Scheduler User",
      "last_name": null,
      "sys_id": "85388c25b71011104eed4643ae11a993"
    }
    *** Script: {
      "first_name": null,
      "last_name": "Guest",
      "sys_id": "5136503cc611227c0183e96598c4f706"
    }
    *** Script: {
      "first_name": "ml_report.user",
      "last_name": null,
      "sys_id": "b6bad6c5c73003005f1b78d48b97632a"
    }

    GlideQuery - Parse(tabela de cadeia de caracteres, cadeia de caracteres encoded_query )

    Adiciona uma consulta codificada a um novo GlideQuery consulta.

    Este método não é compatível com todos GlideRecord operadores de consulta codificada. Os seguintes operadores são compatíveis no momento:

    = QUALQUER COISA GT_FIELD NÃO ESTÁ EM
    != ENTRE GT_OR_EQUALS_FIELD NÃO GOSTO
    > CONTÉM EM NSAMEAS
    >= NÃO CONTÉM INSTANCEOF ATIVADO
    < DYNAMIC CURTIR SAMEAS
    <= EMPTISTRING LT_FIELD STARTSWITH
    ENDSWITH LT_OR_EQUALS_FIELD
    Tabela 45. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Tabela a ser consultada, como tarefa ou incidente.
    encoded_query Cadeia de caracteres Consulta codificada para aplicar aos registros na tabela especificada.
    Tabela 46. Retornos
    Tipo Descrição
    GlideQuery Objeto GlideQuery que contém a consulta codificada.

    O exemplo a seguir cria um objeto GlideQuery que contém todos os registros ativos na tabela de tarefas, ordenados pelo campo Prioridade, retornados como um objeto Fluxo que contém apenas o campo de descrição.

    GlideQuery.parse('task', 'active=true^ORDERBYpriority') // Pass the encoded query to use to parse the Task records
      .select('description') // Return the records that match the encoded query
      .forEach(doSomething); // Do some processing on each of the returned records

    GlideQuery - selecionar (campos de cadeia de caracteres)

    Retorna os resultados da consulta como um objeto de fluxo que contém os campos especificados.

    Nota:
    Use um método de terminal no Fluxo classe para obter o resultado da consulta. Para obter mais informações, consulte Fluxo .

    Você pode anexar um sinalizador a um nome de campo para retornar os metadados do campo em vez do valor do campo. Por exemplo, usando o nome do campo EXIBIÇÃO da empresa retorna o valor de exibição de um campo da empresa. Os sinalizadores possíveis incluem:

    • EXIBIÇÃO Retorna o valor de exibição de um campo.
    • CURRENCY_CODE Retorna o código de moeda de um campo de moeda. Por exemplo, USD .
    • CURRENCY_DISPLAY Retorna o valor de exibição de moeda de um campo de moeda. Por exemplo, ¥123,45 .
    • CURRENCY_STRING Retorna a cadeia de caracteres de moeda de um campo de moeda. Por exemplo, JPY;123,45 .
    Tabela 47. Parâmetros
    Nome Tipo Descrição
    campos Cadeia de caracteres ou matriz de cadeias de caracteres Opcional. Campos a serem exibidos no resultado. Você pode fornecer qualquer número de campos como argumentos, referência com pontos para um valor desejado ou usar um sinalizador. Por exemplo:
    select('first_name', 'location.city', 'company$DISPLAY');
    ou
    select(['first_name', 'location.city', 'company$DISPLAY']);

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 48. Retornos
    Tipo Descrição
    Fluxo Objeto usado para interagir com um fluxo de itens, como registros.

    Este exemplo mostra como selecionar campos a serem exibidos na consulta e como usar PARA EXIBIR para retornar o valor de exibição de um campo.

    var stream = new global.GlideQuery('sys_user')
       .select('first_name', 'last_name', 'company$DISPLAY')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "company$DISPLAY": "",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "first_name": "Alva",
      "last_name": "Pennigton",
      "company$DISPLAY": "ACME North America",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "first_name": "Benchmark",
      "last_name": "Scheduler",
      "company$DISPLAY": "",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "first_name": "Allyson",
      "last_name": "Gillispie",
      "company$DISPLAY": "ACME North America",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }
    *** Script: {
      "first_name": "SOAP",
      "last_name": "Guest",
      "company$DISPLAY": "",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }

    GlideQuery - selectOne (campos de cadeia de caracteres)

    Retorna o resultado da consulta como um objeto opcional que contém campos especificados.

    Use este método ao retornar um único registro ou para testar se existe um registro. Se retornar vários registros, use selecionar() Método para retornar um objeto de fluxo.

    Você pode anexar um sinalizador a um nome de campo para retornar os metadados do campo em vez do valor do campo. Por exemplo, usando o nome do campo EXIBIÇÃO da empresa retorna o valor de exibição de um campo da empresa. Os sinalizadores possíveis incluem:

    • EXIBIÇÃO Retorna o valor de exibição de um campo.
    • CURRENCY_CODE Retorna o código de moeda de um campo de moeda. Por exemplo, USD .
    • CURRENCY_DISPLAY Retorna o valor de exibição de moeda de um campo de moeda. Por exemplo, ¥123,45 .
    • CURRENCY_STRING Retorna a cadeia de caracteres de moeda de um campo de moeda. Por exemplo, JPY;123,45 .
    Tabela 49. Parâmetros
    Nome Tipo Descrição
    campos Cadeia de caracteres ou matriz de cadeias de caracteres Opcional. Campos a serem exibidos no resultado. Você pode fornecer qualquer número de campos como argumentos, referência com pontos para um valor desejado ou usar um sinalizador. Por exemplo:
    selectOne('first_name', 'location.city', 'company$DISPLAY');
    ou
    selectOne(['first_name', 'location.city', 'company$DISPLAY']);

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 50. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como retornar um único registro como um objeto opcional e exibir campos especificados.

    var user = new global.GlideQuery('sys_user')
        .where('zip', '12345')
        .whereNotNull('last_name')
        .selectOne('first_name', 'last_name', 'company$DISPLAY')
        .get();
    
    gs.info(JSON.stringify(user, null, 2));

    Saída:

    {
       "first_name":"Abel",
       "last_name":"Tuter",
       "company$DISPLAY":"ACME South America",
       "sys_id":"62826bf03710200044e0bfc8bcbe5df1"
    }

    GlideQuery - Soma (campo de cadeia de caracteres)

    Retorna a soma agregada de um determinado campo numérico.

    Você só pode usar este método em campos dos seguintes tipos:
    • Inteiro
    • Longa
    • Número de ponto flutuante
    • Duplo
    • Moeda
    Tabela 51. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo no qual executar a operação.
    Tabela 52. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como retornar a soma de todas as falhas na tabela cmdb_ci.

    var totalFaults = new global.GlideQuery('cmdb_ci')
        .sum('fault_count')
        .orElse(0);
    
    gs.info(JSON.stringify(totalFaults));

    Saída:

    10

    GlideQuery - toGlideRecord()

    Retorna um objeto GlideRecord que representa a consulta atual. Retorna um objeto GlideAggregrate se a consulta usar GlideQuery.Aggregate() método.

    Depois de transformar a consulta, use consulta () método no GlideRecord ou GlideAggregate classes para consultar o banco de dados.

    Tabela 53. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 54. Retorna
    Tipo Descrição
    GlideRecord ou GlideAggregate Objeto GlideRecord que contém a consulta. Se você usou GlideQuery.Aggregate() , em seguida, o método retorna um objeto GlideAggregrate.

    Este exemplo mostra como transformar um objeto GlideQuery em um GlideRecord.

    var userGr = new global.GlideQuery('sys_user')
        .where('active', true)
        .whereNotNull('first_name')
        .limit(10)
        .toGlideRecord();
    userGr.query();

    GlideQuery - atualização (mudanças de objeto, objetos selecionados)

    Atualiza um registro existente que corresponde às condições definidas.

    Antes de usar este método, chame onde() método para especificar as condições que um registro deve atender para ser atualizado.

    Tabela 55. Parâmetros
    Nome Tipo Descrição
    Mudanças Objeto Objeto que contém pares nome-valor a serem atualizados no registro. Os nomes devem corresponder aos campos na tabela.
    selectedFields Matriz Opcional. Campos adicionais a serem retornados no resultado.

    Padrão: O sistema sempre retorna o sys_id.

    Tabela 56. Retornos
    Tipo Descrição
    Opcional Objeto usado para interagir com um único registro.

    Este exemplo mostra como atualizar um registro com novos valores.

    var updateRecord = new global.GlideQuery('sys_user')
        .where('sys_id', '0a826bf03710200044e0bfc8bcbe5d7a')
        .update({ city: 'Los Angeles' });

    GlideQuery - updateMultiple (mudanças de objeto)

    Atualiza todos os registros existentes que correspondem às condições definidas. Retorna o número de registros atualizados.

    Antes de usar este método, chame onde() método para especificar as condições que os registros devem atender para serem atualizados.

    Tabela 57. Parâmetros
    Nome Tipo Descrição
    Mudanças Objeto Objeto que contém pares nome-valor a serem atualizados no registro. Os nomes devem corresponder aos campos na tabela.
    Tabela 58. Retornos
    Tipo Descrição
    Objeto Objeto que contém o número de registros que foram atualizados. As chaves incluem:
    • Contagem de linhas Número de linhas atualizadas na tabela.

    Este exemplo mostra como atualizar todos os registros que atendem a um critério definido.

    var update = new global.GlideQuery('sys_user')
        .where('active', false)
        .where('last_name', 'Griffey')
        .updateMultiple({ active: true });
    
    gs.info(JSON.stringify(update));

    Saída:

    {"rowCount":1}

    GlideQuery - where (cadeia de caracteres fieldOrQuery, operador de cadeia de caracteres, qualquer valor)

    Adiciona uma cláusula WHERE à consulta que retorna valores com base em uma determinada condição.

    Nota:
    Não preceda este método com OuOnde() , OuwheNull() ou Ou NoNulo() métodos.
    Tabela 59. Parâmetros
    Nome Tipo Descrição
    FieldOrQuery Cadeia de caracteres ou GlideQuery Ou outro objeto GlideQuery usado na cláusula WHERE. Se passar um campo, você poderá fazer referência com pontos até um valor desejado. Por exemplo, 'company.name' .
    operador Cadeia de caracteres Opcional. Operador usado na cláusula WHERE. Se você não passar um argumento, o sistema usará o operador .
    valor Qualquer Valor usado na cláusula WHERE.
    Tabela 60. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como retornar registros da tabela Usuário em que ativo é verdadeiro e o último login do usuário é posterior a uma data especificada.

    var query = new global.GlideQuery('sys_user')
       .where('active', true)
       .where('last_login', '>', '2018-01-01')
       .limit(5)
       .select()
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "sys_id": "005d500b536073005e0addeeff7b12f4"
    }
    *** Script: {
      "sys_id": "d999e5fc77e72300454792718a10611d"
    }
    *** Script: {
      "sys_id": "30ad318577ab2300454792718a10619e"
    }
    *** Script: {
      "sys_id": "3883f4c0730123002728660c4cf6a754"
    }

    Este exemplo mostra como retornar registros da tabela Incidente em que ativo é verdadeiro e a prioridade ou severidade é 1.

    // active = true AND (priority = 1 OR severity = 1)
    var query = new GlideQuery('incident')
        .where('active', true)
        .where(new GlideQuery()
            .where('priority', 1)
            .orWhere('severity', 1))
       .limit(5)
       .select()
       .toArray(5)
    
    gs.info(JSON.stringify(query, null, 2));

    Saída:

    [
       {
          "sys_id":"b0f31e5673500010c2e7660c4cf6a711"
       },
       {
          "sys_id":"8ff5b254b33213005e3de13516a8dcf7"
       },
       {
          "sys_id":"d999e5fc77e72300454792718a10611d"
       },
       {
          "sys_id":"30ad318577ab2300454792718a10619e"
       },
       {
          "sys_id":"3883f4c0730123002728660c4cf6a754"
       }
    ]

    GlideQuery - whereNotNull (campo de cadeia de caracteres)

    Retorna registros que não contêm um valor nulo em um determinado campo.

    Nota:
    Não preceda este método com OuOnde() , OuwheNull() ou Ou NoNulo() métodos.
    Tabela 61. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo usado na consulta.
    Tabela 62. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como consultar a tabela Usuário e retornar resultados em que o campo first_name não é nulo.

    var query = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "name": "Allyson Gillispie",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }
    *** Script: {
      "name": "SOAP Guest",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }

    GlideQuery - wheNull (campo de cadeia de caracteres)

    Retorna registros que contêm um valor nulo em um determinado campo.

    Nota:
    Não preceda este método com OuOnde() , OuwheNull() ou Ou NoNulo() métodos.
    Tabela 63. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Campo usado na consulta.
    Tabela 64. Retornos
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como consultar a tabela Usuário e retornar registros em que o nome ou sobrenome são nulos.

    var query = new global.GlideQuery('sys_user')
       .whereNull('last_name')
       .orWhereNull('first_name')
       .select('first_name', 'last_name')
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    Saída:

    *** Script: {
      "first_name": "ml.admin",
      "last_name": null,
      "sys_id": "88aad6c5c73003005f1b78d48b9763a5"
    }
    *** Script: {
      "first_name": "Sitemap Scheduler User",
      "last_name": null,
      "sys_id": "85388c25b71011104eed4643ae11a993"
    }
    *** Script: {
      "first_name": null,
      "last_name": "Guest",
      "sys_id": "5136503cc611227c0183e96598c4f706"
    }
    *** Script: {
      "first_name": "ml_report.user",
      "last_name": null,
      "sys_id": "b6bad6c5c73003005f1b78d48b97632a"
    }

    GlideQuery - withAcls()

    Executa a consulta usando GlideRecordSecure API para consultar com segurança o banco de dados e respeitar as ACLs.

    Tabela 65. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 66. Retorna
    Tipo Descrição
    GlideQuery O objeto de consulta que está sendo criado.

    Este exemplo mostra como executar uma consulta segura usando ACLs.

    var users = new global.GlideQuery('sys_user')
        .withAcls()
        .limit(5)
        .orderByDesc('first_name')
        .select('first_name')
        .forEach(function (user){
            gs.info(JSON.stringify(user, null, 2));
        });

    Saída:

    *** Script: {
      "first_name": "Zane",
      "sys_id": "16826bf03710200044e0bfc8bcbe5dbc"
    }
    *** Script: {
      "first_name": "Zackary",
      "sys_id": "8a826bf03710200044e0bfc8bcbe5d69"
    }
    *** Script: {
      "first_name": "Yvette",
      "sys_id": "4e826bf03710200044e0bfc8bcbe5d57"
    }
    *** Script: {
      "first_name": "Winnie",
      "sys_id": "f682abf03710200044e0bfc8bcbe5d1d"
    }
    *** Script: {
      "first_name": "Wilmer",
      "sys_id": "42826bf03710200044e0bfc8bcbe5d7b"
    }