GlideQueryCondition : Global
Die 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.
category='hardware' OR category='software' AND priority='2' AND priority='1'Im Fall von addCondition()wird ein implizites AND hinzugefügt.
- 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 Aufruf der addEncodedQuery()- Methode.
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.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name eines Felds. |
| oper | Zeichenfolge | (Optional) Operator für die Abfrage. Wenn Sie keinen Operator angeben, verwendet die Bedingung einen equals-Operator. |
| Wert | Objekt | Abzufragender Wert. |
| Typ | Beschreibung |
|---|---|
| GlideQueryCondition | Ein Verweis auf eine GlideQueryConditon, die dem GlideRecord 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());
Bereichsbezogenes Äquivalent
Um die addCondition()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addCondition().
GlideQueryCondition – addOrCondition(String name, String oper, Object value)
Hängt eine OR-Bedingung mit 2 oder 3 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.
| 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):
|
| 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. |
| 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());
Um AND- oder OR-Anweisungen zu gruppieren, wie (state < 3 OR state > 5) AND (priority = 1 OR priority = 5), verwenden Sie folgenden Code:
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();
Bereichsbezogenes Äquivalent
Um die addOrCondition()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addOrCondition().