GlideFilter - escopo, global
. 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());
Upper case query: Abel Tuter
Lower case query: Abel TuterO 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());
}
Upper case condition: Abel TuterO 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());
}
Upper case condition: Abel Tuter
Lower case condition: Abel TuterValores nulos de filtro
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: 4E. 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: 3GlideFilter - GlideFilter (filtro de cadeia de caracteres, título da cadeia de caracteres)
Instancia um objeto GlideFilter.
| 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);
Number of users named Rebekah: 2GlideFilter - 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.
| 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:
Padrão: verdadeiro |
| Tipo | Descrição |
|---|---|
| Booliano | Resultados da comparação de filtros.
|
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);
}
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.
| 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:
Padrão: falso |
| Tipo | Descrição |
|---|---|
| Booliano | Resultados da verificação de correspondência.
|
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);
Number of users named Rebekah: 2GlideFilter - setCaseSensitive(booliano caseSensitive)
Habilita ou desabilita resultados de filtro com distinção entre maiúsculas e minúsculas.
| Nome | Tipo | Descrição |
|---|---|---|
| caseSensitive | Booliano | Sinalizador que indica se o filtro diferencia maiúsculas de minúsculas. Valores válidos:
Padrão: verdadeiro |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| ExcetivaSegurança | Booliano |
Sinalizador que indica se o filtro deve ser avaliado na área restrita. Valores válidos:
Padrão: falso |
| 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