GlideQueryCondition – Umfang
Der Umfang ist festgelegt GlideQueryCondition Die API stellt zusätzliche bereit 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() , Ein implizit UND Wird hinzugefügt.
- addActiveQuery()
- addInactiveQuery()
- addJoinQuery()
- addNotNullQuery()
- addNullQuery()
- addQuery()
Wenn es einen komplizierten Satz von gibt UND Und ODER Abfragen, eine einzelne codierte Abfrage, die alle Bedingungen enthält, vereinfacht die Erstellung von Abfragen. 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 festlegen glide.invalid_query.returns_no_rowsSystemeigenschaft auf „wahr“, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen kann die Abfrage Datensätze in API-Ergebnissen zurückgeben, auch wenn glide.invalid_query.returns_no_rowsIst auf „wahr“ festgelegt. Dies geschieht in Abfragen, bei denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der WHERE-Operator die ungültigen Begriffe, interpretiert jedoch den Rest der Abfrageanweisung 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. Der Operator für die Abfrage. Wenn Sie keinen Operator angeben, verwendet die Bedingung einen equals-Operator. |
| Wert | Objekt | Wert, der abgefragt werden soll. |
| Typ | Beschreibung |
|---|---|
| GlideQueryCondition | Verweis auf ein GlideQueryConditon, das 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 einen zwei- oder drei-Parameter ODER eine Bedingung 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());
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();