GlideQueryCondition : Bereichsbezogen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Die bereichsbezogene GlideQueryCondition -API bietet zusätzliche UND- oder ODER -Bedingungen, die der aktuellen Bedingung hinzugefügt werden können, sodass Sie komplexe Abfragen erstellen können.

    Erstellt komplexe Abfragen wie:
    category='hardware' OR category='software' AND priority='2' AND priority='1'

    Im Fall von addCondition()wird ein implizites AND hinzugefügt.

    Diese Klasse hat keinen Konstruktor. Ein GlideQueryCondition-Objekt wird von den folgenden Methoden zurückgegeben:
    • addActiveQuery()
    • addInactiveQuery()
    • addJoinQuery()
    • addNotNullQuery()
    • addNullQuery()
    • addQuery()

    Wenn eine komplexe Gruppe von UND- und ODER -Abfragen vorhanden ist, vereinfacht eine einzige codierte Abfrage, die alle Bedingungen enthält, die Erstellung der Abfrage. Erstellen Sie zur Vereinfachung der Abfrageerstellung eine Abfrage in einer Listenansicht, klicken Sie mit der rechten Maustaste auf die Abfrage, und wählen Sie Abfrage kopieren aus. Dies erstellt eine einzelne codierte Abfragezeichenfolge, um Ihren Ergebnissatz zurückzugeben. Verwenden Sie diese Zeichenfolge als Parameter in einem addEncodedQuery()-Aufruf.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    GlideQueryCondition – addCondition(String name, String oper, Object value)

    Fügt der aktuellen Bedingung eine UND-Bedingung hinzu.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name eines Felds.
    oper Zeichenfolge Optional. Der Operator für die Abfrage. Wenn Sie keinen Operator angeben, verwendet die Bedingung einen equals-Operator.
    Wert Objekt Wert, der abgefragt werden soll.
    Tabelle : 2. Rückgaben
    Typ Beschreibung
    GlideQueryCondition Verweis auf eine GlideQueryConditon, die dem Glide-Datensatz hinzugefügt wurde.
    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());

    GlideQueryCondition – addOrCondition(String name, String oper, Object value)

    Hängt eine ODER-Bedingung mit zwei oder drei Parametern an eine vorhandene GlideQueryCondition an.

    addOrCondition() arbeitet in Verbindung mit einer beliebigen addQuery()-Methode, um OR für die angegebenen Abfrageparameter und die Abfrage zu verwenden, die zuvor mit addQuery() erstellt wurde.

    addOrCondition() wird normalerweise mit drei Parametern aufgerufen; Tabellenfeld, Operator und Vergleichswert. Es kann nur mit zwei Parametern aufgerufen werden, Tabellenfeld und Vergleichswert, z. B. qc.addOrCondition('category', 'software');. In diesem Fall wird davon ausgegangen, dass der Operator „equal to“ ist.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Feldname
    oper Zeichenfolge (Optional) Abfrageoperator. Die verfügbaren Werte sind vom Datentyp des value-Parameters abhängig.
    Zahlen:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Zeichenfolgen (in Großbuchstaben):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • CONTAINS
    • DOESNOTCONTAIN
    Wert Objekt Wert, nach dem abgefragt werden soll (Groß- und Kleinschreibung wird nicht berücksichtigt).
    Hinweis:
    Alle in Arrays übergebenen Objekte müssen mindestens zwei Elemente enthalten. Einzelelement-Arrays werden nicht unterstützt.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Referenz auf eine GlideQueryCondition, die dem GlideRecord hinzugefügt wurde.
    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addOrCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());
    

    Zum Gruppieren von AND- oder OR-Anweisungen, wie „All incidents with a (state less than 3 OR greater than 5) AND (priority is 1 OR priority is 5)“

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addQuery('state', '<', 3);
    q1.addOrCondition('state', '>', 5);
    var q2 = myObj.addQuery('priority', 1);
    q2.addOrCondition('priority', 5);
    myObj.query();