GlideFilter: Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Die GlideFilter API ermöglicht das Filtern von Abfragen, um zu bestimmen, ob ein oder mehrere Datensätze eine bestimmte Reihe von Anforderungen erfüllen.

    Methoden für diese API sind über das globale GlideFilter-Objekt zugänglich.

    Groß-/Kleinschreibung beachten

    Die GlideFilter Bei der API wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden. Verwenden Sie SetCaseSensitive() Methode zum Aktivieren oder Deaktivieren der Groß-/Kleinschreibung. GlideRecord Bei Abfragen wird zwischen Groß- und Kleinschreibung unterschieden.

    Das folgende Beispiel zeigt, wie bei einer GlideRecord-Abfrage die Groß-/Kleinschreibung nicht beachtet wird und zum selben Anwenderdatensatz mit Groß- oder Kleinbuchstaben führt.

    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.Abfrage() Die Ausgabe zeigt unabhängig vom Fall dieselben Ergebnisse an.
    Upper case query: Abel Tuter
    Lower case query: Abel Tuter

    Das folgende Beispiel zeigt, wie GlideFilter Ruft nur den übereinstimmenden Wert des Datensatzes für die Bedingung für Großbuchstaben ab. Die Bedingung in Kleinbuchstaben gibt keine Übereinstimmung an.

    // 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());
    }
    Die Ausgabe zeigt, dass der Filter nur Ergebnisse in Großbuchstaben mit standardmäßiger Groß-/Kleinschreibung zurückgibt:
    Upper case condition: Abel Tuter

    Das folgende Beispiel zeigt, wie die Groß-/Kleinschreibung von GlideFilter mit deaktiviert wird SetCaseSensitive() Methode. Der Filter entspricht der Bedingung, auch wenn der Fall nicht mit dem Feldwert übereinstimmt.

    // 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());
    }
    Die Ausgabe wird angezeigt GlideFilter Ergebnisse ohne Berücksichtigung der Groß-/Kleinschreibung:
    Upper case condition: Abel Tuter
    Lower case condition: Abel Tuter

    Nullwerte filtern

    Zum Ausschließen von Nullwerten aus GlideFilter Abfrageergebnisse hinzufügen ISNOTEMPTY An die Abfragebedingung. Das folgende Beispiel zeigt, wie dieselbe codierte Abfrage mit verwendet wird GlideRecord Und GlideFilter Erzeugt verschiedene Ergebnisse.
    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);
    Die Ausgabe zeigt das an GlideRecord Gibt drei Datensätze zurück, wobei leere Datumswerte übersprungen werden. Die GlideFilter Abfrage zählt den leeren Datumswert und gibt eine Anzahl von vier Datensätzen zurück.
    Record RowCount: 3 - Filter Count: 4
    Zum Ausschließen von Nullwerten aus GlideFilter Ergebnisse, fügen Sie ein hinzu UND Bedingung ISNOTEMPTY Zum abgefragten Feld.
    // Encoded query includes null values with GlideFilter
    var condition = 'u_date_field<=javascript:gs.beginningOfToday()^u_date_fieldISNOTEMPTY';
    Die Ausgabe zeigt an, dass GlideFilter Codierte Abfrage überspringt den Nulldatumswert und zählt drei Ergebnisse.
    Record RowCount: 3 - Filter Count: 3

    GlideFilter – GlideFilter (Zeichenfolgenfilter, Zeichenfolgentitel)

    Instanziiert ein GlideFilter-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Filter Zeichenfolge Codierte Abfragezeichenfolge im Standard-Glide-Format. Siehe Codierte Abfragezeichenfolgen . Bei Ergebnissen wird zwischen Groß- und Kleinschreibung unterschieden, es sei denn, sie werden mit deaktiviert SetCaseSensitive() Methode.

    Zum Ausschließen von Nullwerten aus GlideFilter Abfrageergebnisse, fügen Sie der Abfragebedingung ISNOTEMPTY hinzu.

    Titel Zeichenfolge Beschreibender Titel für den Filter.

    Das folgende Beispiel zeigt, wie die Anzahl der Anwender mit dem Namen Rebekah gefiltert wird.

    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);
    Ausgabe:
    Number of users named Rebekah: 2

    GlideFilter – checkRecord(GlideRecord Now_GR, Zeichenfolgenfilter, boolesche Übereinstimmung)

    Vergleicht einen angegebenen Filter mit dem Inhalt eines angegebenen GlideRecord.

    Wenn der angegebene Filter eine Bedingung enthält, gibt die Methode „wahr“ zurück, wenn der Datensatz die Bedingung erfüllt.

    Filter unterstützen beispielsweise mehrere Bedingungen „Active=wahr^number=abc^category=Request“ . Sie können verwenden matchParameter, der definiert, ob alle Bedingungen erfüllt sein müssen, um eine Übereinstimmung zu bestimmen, oder nur eine einzelne Bedingung.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Now_GR GlideRecord GlideRecord Auszuwerten.
    Filter Zeichenfolge Codierte Abfragezeichenfolge im Standard-Glide-Format. Siehe Codierte Abfragezeichenfolgen .

    Zum Ausschließen von Nullwerten aus GlideFilter Abfrageergebnisse, fügen Sie der Abfragebedingung ISNOTEMPTY hinzu.

    Hinweis:
    Die filterBei Werten wird zwischen Groß- und Kleinschreibung unterschieden. Außerdem können Sie nicht verwenden SetCaseSensitive (falsch) Ändern Sie den Wert, bei dem die Groß-/Kleinschreibung beachtet wird.
    Treffer Boolean Optional. Kennzeichnung, die angibt, ob alle Bedingungen erfüllt sein müssen, wenn filterParameter enthält mehrere Bedingungen.

    Gültige Werte:

    • Wahr: Alle Bedingungen müssen erfüllt sein, damit die Methode „wahr“ zurückgibt.
    • Falsch: Nur eine der Bedingungen muss erfüllt sein, damit die Methode „wahr“ zurückgibt.

    Standard: Wahr

    Tabelle : 3. Rückgaben
    Typ Beschreibung
    Boolean Ergebnisse des Filtervergleichs.
    • Wahr: Filterbedingungen wurden erfüllt.
    • Falsch: Filterbedingungen wurden nicht erfüllt.

    Das folgende Beispiel zeigt, wie „wahr“ für jeden Datensatz in der Incident-Tabelle angezeigt wird, der die Filterbedingung erfüllt. Andernfalls „falsch“.

    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);
    }
    Ausgabe:
    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 – Übereinstimmung(GlideRecord Now_GR, boolesche Übereinstimmung)

    Wertet einen Filter für einen angegebenen GlideRecord aus.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Now_GR GlideRecord GlideRecord Auszuwerten.
    Treffer Boolean

    Kennzeichnung, die angibt, ob alle Filterbedingungen übereinstimmen müssen.

    Gültige Werte:
    • Wahr: Alle Filterbedingungen müssen übereinstimmen.
    • Falsch: Übereinstimmung der Filterbedingung ist nicht erforderlich.

    Standard: Falsch

    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Boolean Ergebnisse der Übereinstimmungsprüfung.
    • Wahr: Filterbedingungen wurden erfüllt.
    • Falsch: Filterbedingungen wurden nicht erfüllt.

    Das folgende Beispiel zeigt, wie sichergestellt wird, dass die Filterbedingungen mit dem bereitgestellten GlideRecord übereinstimmen.

    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);
    Ausgabe:
    Number of users named Rebekah: 2

    GlideFilter – setCaseSensitive(boolescher caseSensitive)

    Aktiviert oder deaktiviert Filterergebnisse, bei denen die Groß-/Kleinschreibung beachtet wird.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    caseSensitive Boolean Kennzeichnung, die angibt, ob beim Filter Groß-/Kleinschreibung beachtet wird.
    Gültige Werte:
    • Wahr: Beim Filter wird zwischen Groß- und Kleinschreibung unterschieden.
    • Falsch: Beim Filter wird zwischen Groß- und Kleinschreibung unterschieden.

    Standard: Wahr

    Tabelle : 7. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Beispiel zeigt, wie Sie Ergebnisse deaktivieren, bei denen die Groß-/Kleinschreibung beachtet wird.

    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());
    }

    Die Ausgabe zeigt an, dass der Filter Ergebnisse in Großbuchstaben mit einer Bedingung für Kleinbuchstaben abruft.

    Rebekah Padley
    Rebekah Lindboe

    GlideFilter – setEnforceSecurity (boolescher Wert für enforceSecurity)

    Aktiviert oder deaktiviert die Sandbox-Auswertung der Filterzeichenfolge.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Sicherheit durchsetzen Boolean

    Kennzeichnung, die angibt, ob der Filter in der Sandbox ausgewertet werden soll.

    Gültige Werte:
    • Wahr: Werten Sie den Filter in der Sandbox aus.
    • Falsch: Werten Sie den Filter in der Sandbox nicht aus.

    Standard: Falsch

    Tabelle : 9. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    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);
    

    Ausgabe:

    Number of users named Rebekah: 2