GlideFilter - escopo, global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 7 min. de leitura
  • . GlideFilter A API permite filtrar consultas para determinar se um ou mais registros atendem a um conjunto especificado de requisitos.

    Os métodos para esta API podem ser acessados usando o objeto global GlideFilter.

    Distinção entre maiúsculas e minúsculas

    . GlideFilter Por padrão, a API diferencia maiúsculas de minúsculas. Use SetCaseSensitive() método para habilitar ou desabilitar distinção entre maiúsculas e minúsculas. GlideRecord as consultas não diferenciam maiúsculas de minúsculas.

    O exemplo a seguir mostra como uma consulta GlideRecord não diferencia maiúsculas e minúsculas e resulta no mesmo registro de usuário com maiúsculas ou minúsculas.

    var gr_Query = new GlideRecord('sys_user');
    gr_Query.addQuery('first_name', 'Abel');
    gr_Query.query();
    while (gr_Query.next())
      gs.info("Upper case query: " + gr_Query.getDisplayValue());
    
    var gr_Query = new GlideRecord('sys_user');
    gr_Query.addQuery('first_name', 'abel');
    gr_Query.query();
    while (gr_Query.next())       
      gs.info("Lower case query: " + gr_Query.getDisplayValue());
    GlideRecord.query() a saída mostra a mesma exibição de resultados, independentemente do caso.
    Upper case query: Abel Tuter
    Lower case query: Abel Tuter

    O exemplo a seguir mostra como GlideFilter recupera somente o valor correspondente do registro para a condição de maiúsculas. A condição minúscula não fornece uma correspondência.

    // Matches the 'Abel Tuter' user record
    var gr_Query = new GlideRecord('sys_user');
    gr_Query.query();
    var condition = 'first_name=Abel';
    var glideFilter = new GlideFilter(condition, 'filterCondition');
    while (gr_Query.next()) {
       if (glideFilter.match(gr_Query, true))
            gs.info("Upper case condition: " + gr_Query.getDisplayValue());
    }
    
    // The following code does not match 'Abel Tuter' user record
    var gr_Query = new GlideRecord('sys_user');
    gr_Query.query();
    var condition = 'first_name=abel';
    var glideFilter = new GlideFilter(condition, 'filterCondition');
    while (gr_Query.next()) {
       if (glideFilter.match(gr_Query, true))
            gs.info("Lower case condition: " + gr_Query.getDisplayValue());
    }
    A saída revela que o filtro retorna somente resultados em maiúsculas com distinção entre maiúsculas e minúsculas padrão:
    Upper case condition: Abel Tuter

    O exemplo a seguir mostra como desabilitar a distinção entre maiúsculas e minúsculas do GlideFilter com SetCaseSensitive() método. O filtro corresponde à condição, embora o caso não corresponda ao valor do campo.

    // Matches the 'Abel Tuter' user record
    var gr_Query = new GlideRecord('sys_user');
    gr_Query.query();
    var condition = 'first_name=Abel';
    var glideFilter = new GlideFilter(condition, 'filterCondition');
    while (gr_Query.next()) {
       if (glideFilter.match(gr_Query, true))
         gs.info("Upper case condition: " + gr_Query.getDisplayValue());
    }
    
    // The following code disables case sensitivity and matches the same record
    var gr_Query = new GlideRecord('sys_user');
    gr_Query.query();
    
    var condition = 'first_name=abel';
    var glideFilter = new GlideFilter(condition, 'filterCondition');
    glideFilter.setCaseSensitive(false);
    
    while (gr_Query.next()) {
      if (glideFilter.match(gr_Query, true))
        gs.info("Lower case condition: " + gr_Query.getDisplayValue());
    }
    A saída revela GlideFilter resultados que não diferenciam maiúsculas de minúsculas:
    Upper case condition: Abel Tuter
    Lower case condition: Abel Tuter

    Valores nulos de filtro

    Para excluir valores nulos de GlideFilter resultados da consulta, adicionar ISNOTEMPTY para a condição de consulta. O exemplo a seguir mostra como usar a mesma consulta codificada com GlideRecord e. GlideFilter produz resultados diferentes.
    var insertRecordsGr = new GlideRecord('u_test_table');
    insertRecordsGr.deleteMultiple();
    var dates = ['', '2021-01-29', '2021-01-30', '2021-01-31'];
    dates.forEach(function(val) {
      insertRecordsGr.initialize();
      insertRecordsGr.u_date_field = val;
      insertRecordsGr.insert();
    });
    
    var now_GR = new GlideRecord('u_test_table');
    now_GR.addEncodedQuery('u_date_field<javascript:gs.beginningOfToday()');
    now_GR.query();
    
    // Encoded query includes null values with GlideFilter, which might cause unexpected results
    var condition = 'u_date_field<javascript:gs.beginningOfToday()';
    
    var grWithGlideFilter = new GlideRecord('u_test_table');
    grWithGlideFilter.query();
    var filter = new GlideFilter(condition, 'filterCondition');
      
    var countWithGlideFilter = 0;
    while (grWithGlideFilter.next()) {
      if (GlideFilter.checkRecord(grWithGlideFilter, condition))
         countWithGlideFilter++;
    }
    
    gs.info('Record RowCount: ' + now_GR.getRowCount() + ' - Filter Count: ' + countWithGlideFilter);
    A saída mostra isso GlideRecord retorna três registros, ignorando valores de data vazios. . GlideFilter a consulta conta o valor de data vazio e retorna uma contagem de quatro registros.
    Record RowCount: 3 - Filter Count: 4
    Para excluir valores nulos do GlideFilter resultados, adicione um E. condição ISNOTEMPTY para o campo consultado.
    // Encoded query includes null values with GlideFilter
    var condition = 'u_date_field<=javascript:gs.beginningOfToday()^u_date_fieldISNOTEMPTY';
    A saída mostra que GlideFilter a consulta codificada ignora o valor de data nulo e conta três resultados.
    Record RowCount: 3 - Filter Count: 3

    GlideFilter - GlideFilter (filtro de cadeia de caracteres, título da cadeia de caracteres)

    Instancia um objeto GlideFilter.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    filtros Cadeia de caracteres Cadeia de caracteres de consulta codificada no formato Glide padrão. Consulte Cadeias de caracteres de consulta codificadas . Os resultados diferenciam maiúsculas de minúsculas, a menos que desabilitados usando SetCaseSensitive() método.

    Para excluir valores nulos de GlideFilter Resultados da consulta, adicione ISNOTEMPTY à condição de consulta.

    título Cadeia de caracteres Título descritivo do filtro.

    O exemplo a seguir mostra como filtrar o número de usuários chamados Rebekah.

    var now_GR = new GlideRecord('sys_user');
    now_GR.query();
    var condition = 'first_name=rebekah';
    var filter = new GlideFilter(condition, 'filterCondition');
    filter.setCaseSensitive(false);
      
    var countResults = 0;
    while (now_GR.next()) {
      if (filter.match(now_GR, true))
         countResults++;
    }
    
    gs.info('Number of users named Rebekah: ' + countResults);
    Saída:
    Number of users named Rebekah: 2

    GlideFilter - checkRecord(GlideRecord now_GR, filtro de cadeia de caracteres, correspondência booliana)

    Compara um filtro especificado com o conteúdo de um GlideRecord especificado.

    Se o filtro especificado contiver uma condição, o método retornará verdadeiro se o registro atender à condição.

    Os filtros são compatíveis com várias condições, por exemplo "número verdadeiro da categoria abc" . Você pode usar matchparâmetro para definir se todas as condições devem ser atendidas para determinar uma correspondência ou apenas uma única condição.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Now_GR GlideRecord GlideRecord para avaliar.
    filtros Cadeia de caracteres Cadeia de caracteres de consulta codificada no formato Glide padrão. Consulte Cadeias de caracteres de consulta codificadas .

    Para excluir valores nulos de GlideFilter Resultados da consulta, adicione ISNOTEMPTY à condição de consulta.

    Nota:
    . filteros valores diferenciam maiúsculas de minúsculas. Você não pode usar SetCaseSensitive(falso) para mudar o valor que diferencia maiúsculas de minúsculas.
    correspondência Booliano Opcional. Sinalizador que indica se todas as condições devem ser atendidas se filtero parâmetro contém várias condições.

    Valores válidos:

    • Verdadeiro: Todas as condições devem ser atendidas para que o método retorne verdadeiro.
    • Falso: Somente uma das condições deve ser atendida para que o método retorne verdadeiro.

    Padrão: verdadeiro

    Tabela 3. Retornos
    Tipo Descrição
    Booliano Resultados da comparação de filtros.
    • Verdadeiro: As condições do filtro foram atendidas.
    • Falso: As condições do filtro não foram atendidas.

    O exemplo a seguir mostra como exibir verdadeiro para cada registro na tabela Incidente que atende à condição de filtro. Caso contrário, falso.

    var rec = new GlideRecord('incident');
    rec.query();
    
    var bool = true;
     
    while(rec.next())
    {
       bool = GlideFilter.checkRecord(rec, "active=true");
       gs.info("number "+ rec.number + " is " + bool);
    }
    Saída:
    number INC0000060 is false
    number INC0009002 is false
    number INC0000009 is false
    ...
    number INC0000015 is true
    number INC0000016 is true
    number INC0000017 is true
    ...

    GlideFilter - Correspondência (GlideRecord now_GR, correspondência booliana)

    Avalia um filtro em relação a um GlideRecord especificado.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    Now_GR GlideRecord GlideRecord para avaliar.
    correspondência Booliano

    Sinalizador que indica se todas as condições de filtro devem corresponder.

    Valores válidos:
    • Verdadeiro: Todas as condições de filtro devem corresponder.
    • Falso: A correspondência de condição do filtro não é necessária.

    Padrão: falso

    Tabela 5. Retornos
    Tipo Descrição
    Booliano Resultados da verificação de correspondência.
    • Verdadeiro: As condições do filtro foram atendidas.
    • Falso: As condições do filtro não foram atendidas.

    O exemplo a seguir mostra como garantir que as condições de filtro correspondam ao GlideRecord fornecido.

    var now_GR = new GlideRecord('sys_user');
    now_GR.query();
    var condition = 'first_name=rebekah';
    var filter = new GlideFilter(condition, 'filterCondition');
    filter.setCaseSensitive(false);
      
    var countResults = 0;
    while (now_GR.next()) {
      if (filter.match(now_GR, true))
         countResults++;
    }
    
    gs.info('Number of users named Rebekah: ' + countResults);
    Saída:
    Number of users named Rebekah: 2

    GlideFilter - setCaseSensitive(booliano caseSensitive)

    Habilita ou desabilita resultados de filtro com distinção entre maiúsculas e minúsculas.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    caseSensitive Booliano Sinalizador que indica se o filtro diferencia maiúsculas de minúsculas.
    Valores válidos:
    • Verdadeiro: O filtro diferencia maiúsculas de minúsculas.
    • Falso: O filtro não diferencia maiúsculas de minúsculas.

    Padrão: verdadeiro

    Tabela 7. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como desabilitar resultados que diferenciam maiúsculas de minúsculas.

    var now_GR = new GlideRecord('sys_user');
    now_GR.query();
    
    var condition = 'first_name=rebekah';
    var filter = new GlideFilter(condition, 'filterCondition');
    
    // Disable case-sensitive filtering
    filter.setCaseSensitive(false);
    
    while (now_GR.next()) {
      if (filter.match(now_GR, true))
         gs.info(now_GR.getDisplayValue());
    }

    A saída mostra que o filtro recupera resultados de maiúsculas com uma condição de minúsculas.

    Rebekah Padley
    Rebekah Lindboe

    GlideFilter - setEnforceSecurity(enforceSecurity booliano)

    Habilita ou desabilita a avaliação em área restrita da cadeia de caracteres do filtro.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    ExcetivaSegurança Booliano

    Sinalizador que indica se o filtro deve ser avaliado na área restrita.

    Valores válidos:
    • Verdadeiro: Avalie o filtro na área restrita.
    • Falso: Não avalie o filtro na área restrita.

    Padrão: falso

    Tabela 9. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar este método.

    var now_GR = new GlideRecord('sys_user');
    now_GR.query();
    var condition = 'first_name=rebekah';
    var filter = new GlideFilter(condition, 'filterCondition');
    filter.setEnforceSecurity(true);
      
    var countResults = 0;
    while (now_GR.next()) {
      if (filter.match(now_GR, true))
         countResults++;
    }
    
    gs.info('Number of users named Rebekah: ' + countResults);
    

    Saída:

    Number of users named Rebekah: 2