GlideFilter : dans le champ d’application, global
L’API GlideFilter permet de filtrer les requêtes pour déterminer si un ou plusieurs enregistrements répondent à un ensemble spécifié d’exigences.
Les méthodes de cette API sont accessibles à l’aide de l’objet global GlideFilter.
Sensibilité à la casse
L’API GlideFilter est sensible à la casse par défaut. Utilisez la méthode setCaseSensitive() pour activer ou désactiver la sensibilité à la casse. Les requêtes GlideRecord ne sont pas sensibles à la casse.
L’exemple suivant montre comment une requête GlideRecord n’est pas sensible à la casse et aboutit au même enregistrement utilisateur avec des majuscules ou des minuscules.
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 TuterL’exemple suivant montre comment GlideFilter récupère uniquement la valeur correspondante de l’enregistrement pour la condition de majuscule. La condition en minuscules ne fournit pas de correspondance.
// 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 TuterL’exemple suivant montre comment désactiver la sensibilité à la casse GlideFilter avec la méthode setCaseSensitive( ). Le filtre correspond à la condition même si le ticket ne correspond pas à la valeur du champ.
// 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 TuterFiltrer les valeurs nulles
ISNOTEMPTY à la condition de requête. L’exemple suivant montre comment l’utilisation de la même requête codée avec GlideRecord et GlideFilter produit des résultats différents.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);La sortie montre que GlideRecord retourne trois enregistrements, en ignorant les valeurs de date vides. La requête GlideFilter compte la valeur de date vide et renvoie un nombre de quatre enregistrements.Record RowCount: 3 - Filter Count: 4ETISNOTEMPTY au champ interrogé.// Encoded query includes null values with GlideFilter
var condition = 'u_date_field<=javascript:gs.beginningOfToday()^u_date_fieldISNOTEMPTY';La sortie montre que la requête codée GlideFilter ignore la valeur de date nulle et compte trois résultats.Record RowCount: 3 - Filter Count: 3GlideFilter : GlideFilter (filtre de chaîne, titre de chaîne)
Instancie un objet GlideFilter.
| Nom | Type | Description |
|---|---|---|
| filtre | Chaîne | Chaîne de requête codée au format Glide standard. Voir Chaînes de requête codées. Les résultats sont sensibles à la casse, sauf s’ils sont désactivés à l’aide de la méthode setCaseSensitive( ). Pour exclure les valeurs Null des résultats de la requête GlideFilter , ajoutez ISNOTEMPTY à la condition de requête. |
| Titre | Chaîne | Titre descriptif pour le filtre. |
L’exemple suivant montre comment filtrer le nombre d’utilisateurs nommés 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, filtre de chaîne, correspondance booléenne)
Compare un filtre spécifié au contenu d’un GlideRecord spécifié.
Si le filtre spécifié contient une condition, la méthode renvoie la valeur vrai si l’enregistrement remplit la condition.
Les filtres prennent en charge plusieurs conditions, par exemple « actif=vrai^numéro=abc^catégorie=demande ». Vous pouvez utiliser le match paramètre pour définir si toutes les conditions doivent être remplies pour déterminer une correspondance ou une seule condition.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord à évaluer. |
| filtre | Chaîne | Chaîne de requête codée au format Glide standard. Voir Chaînes de requête codées. Pour exclure les valeurs Null des résultats de la requête GlideFilter , ajoutez ISNOTEMPTY à la condition de requête. Remarque : Les valeurs sont sensibles à la filter casse. De plus, vous ne pouvez pas utiliser setCaseSensitive(false) pour modifier la valeur sensible à la casse. |
| correspondre | Booléen | Facultatif. Marqueur indiquant si toutes les conditions doivent être remplies si le filter paramètre contient plusieurs conditions. Valeurs valides :
Par défaut : true |
| Type | Description |
|---|---|
| Booléen | Résultats de la comparaison de filtres.
|
L’exemple suivant montre comment afficher vrai pour chaque enregistrement de la table Incident qui remplit la condition de filtre. Faux sinon.
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 : match(GlideRecord now_GR, correspondance booléenne)
Évalue un filtre par rapport à un GlideRecord spécifié.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord à évaluer. |
| correspondre | Booléen | Marqueur indiquant si toutes les conditions de filtre doivent correspondre. Valeurs valides :
Valeur par défaut : false |
| Type | Description |
|---|---|
| Booléen | Résultats de la vérification du match.
|
L’exemple suivant montre comment s’assurer que les conditions de filtre correspondent au GlideRecord fourni.
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(booléen caseSensitive)
Active ou désactive les résultats de filtre sensibles à la casse.
| Nom | Type | Description |
|---|---|---|
| caseSensitive | Booléen | Marqueur indiquant si le filtre est sensible à la casse. Valeurs valides :
Par défaut : true |
| Type | Description |
|---|---|
| Aucun |
L’exemple suivant montre comment désactiver les résultats sensibles à la casse.
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());
}
La sortie montre que le filtre récupère les résultats en majuscules avec une condition en minuscules.
Rebekah Padley
Rebekah Lindboe
GlideFilter : setEnforceSecurity(booléen enforceSecurity)
Active ou désactive l’évaluation en bac à sable de la chaîne de filtre.
| Nom | Type | Description |
|---|---|---|
| enforceSecurity | Booléen |
Marqueur indiquant s’il faut évaluer le filtre dans le bac à sable. Valeurs valides :
Valeur par défaut : false |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
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);
Sortie :
Number of users named Rebekah: 2