GlideQuery – Scoped, Global
Die GlideQuery- API ist eine Alternative zu GlideRecord, um CRUD-Vorgänge für Datensatzdaten aus serverseitigen Skripts auszuführen.
Mit der GlideQuery- API können Sie:
- Verwenden Sie Standard-JavaScript-Objekte und -Typen für Abfragen und Ergebnisse.
- Diagnostizieren Sie Abfragefehler schnell mit zusätzlichen Prüfungen und löschen Sie Fehlermeldungen.
- Vereinfachen Sie Ihren Code, indem Sie Standardabfragemuster vermeiden.
- Vermeiden Sie häufige Leistungsprobleme, ohne tiefere Kenntnisse über GlideRecord zu benötigen.
new global.GlideQuery('sys_user')
// ...Diese API erfordert das Plugin „GlideQuery“ [com.sn_glidequery].Implementierung
Diese API arbeitet mit der Stream -API und der optionalen API in einem Generatormuster, bei dem die Methodenaufrufe miteinander verkettet sind und jede Methode auf dem zurückgegebenen Ergebnis der vorherigen Methode aufbaut. Verwenden Sie Methoden, um die Attribute der Abfrage zu definieren. Die Methoden werden erst ausgeführt, wenn Sie eine Terminalmethode aufrufen, eine Methode, die ein Abfrageergebnis zurückgibt, sodass Sie die Anforderungen der Abfrage definieren können, bevor Sie sie ausführen.zusammen.
Wenn die Abfrage einen einzelnen Datensatz zurückgibt, umschließt das System das Ergebnis in ein optionales Objekt. Wenn die Abfrage einen Stream von Datensätzen zurückgibt, umschließt das System das Ergebnis in einem Stream-Objekt. Mit diesen Objekten können Sie das Ergebnis mithilfe einer Reihe von Methoden in jeder API verwalten.
Dieses Skript führt beispielsweise eine Abfrage in der Aufgabentabelle aus, gruppiert die Datensätze nach Priorität und gibt jede Priorität zurück, die insgesamt mehr als vier Neuzuweisungen aufweist.
var query = new global.GlideQuery('task')
.where('active', true) //Returns new GlideQuery object with a "where" clause.
.groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
.aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
.having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
.select() //Returns a stream of records wrapped in a Stream object.
.forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result.
gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
});Priority 1: 11 reassignments
Priority 3: 6 reassignments
Priority 5: 5 reassignmentsFehlerbehandlung
Die GlideQuery- API gibt einen Fehler aus, wenn Ihre Abfrage ein Problem hat, und enthält eine klare Erklärung, um Sie zu leiten. GlideQuery prüft auf Folgendes:
- Ungültige Felder
- Ungültige Werttypen für ein Feld
- Ungültige Werte für Auswahlfelder
- Ungültige Abfrageoperatoren
Dieses Code-Beispiel würde beispielsweise einen Fehler auslösen, da das abgefragte Feld nicht in der Tabelle vorhanden ist.
new global.GlideQuery('task')
.where('id', '4717dfe5a9fe198100450448b2404c16') // should be 'sys_id'
.select('description', 'severity')
.toArray(100);
// Error: Unable to find field 'id' in table 'task'. Known fields: active, activity_due, ...Dieses Code-Beispiel würde einen Fehler auslösen, da der Datentyp eines der Argumente falsch ist.
new global.GlideQuery('task')
.where('priority', 'one') // priority is an integer (should be 1)
.select('description', 'severity')
.toArray(100);
// Error: Unable to match value ['one'] with field 'priority' in table 'task'. Expecting type 'integer'Wiederverwenden
Da GlideQuery- Objekte unveränderlich sind, können Sie sie später in anderen Teilen Ihres Codes wiederverwenden. Dieses Skript erstellt beispielsweise eine Abfrage und verwendet das GlideQuery-Objekt später, um einen Bericht zu generieren.
var highPriorityTasks = new global.GlideQuery('task')
.where('active', true)
.where('priority', 1);
generateReport(highPriorityTasks);
notifyOwners(highPriorityTasks);
var avgReassignmentCount = highPriorityTasks
.avg('reassignment_count')
.orElse(0)
Einschränkungen
Die GlideQuery- API unterstützt Folgendes nicht:
- Lesen oder Schreiben in Tabellen, die keinen Zugriff aus anderen Bereichen zulassen.
- Codierte Abfragen werden gelesen.
- GlideDate- oder GlideDateTime-Objekte, die als JavaScript-Zeichenfolgen gelesen werden.
- FX-Währungsfelder.
- Journalfeldtypen werden aktualisiert.
- Abfragen mit mehrdeutiger bedingter Logik. Beispielsweise ist die folgende Abfrage unklar, da das System nicht weiß, ob
(active = true AND name != null) OR last_name = Luddyoderactive = true AND (name != null OR last_name = Luddy) ausgeführt werden soll.var user = new global.GlideQuery('sys_user') .where('active', true) .whereNotNull('name') .orWhere('last_name', 'Luddy') .selectOne() .get()Sehen Sie sich stattdessen die Methode where() an, um zu verstehen, wie eine untergeordnete Abfrage verschachtelt wird.
Zwischen- und Terminalfunktionen in GlideQuery
GlideQuery verwendet zwei Kategorien von Methoden: Intermediate und Terminal. Zwischenfunktionen sind die Funktionen, die einen Stream zurückgeben (eine API, die für die Interaktion mit einem Stream von Elementen wie Datensätzen verwendet wird), was einen flüssigen Syntaxstil ermöglicht, bei dem Aufrufe miteinander verkettet sind. Terminalfunktionen sind die Funktionen, die keinen Stream zurückgeben und daher die Kette der Stream -Methodenaufrufe stoppen.
In GlideQuerysind Methoden wie where, orderBy und disableWorkflow Zwischenfunktionen, die ein neues GlideQuery- Objekt zurückgeben. Ebenso sind die beliebtesten Terminalfunktionen von GlideQuery, select und selectOne, Terminalfunktionen. Sie werden aufgerufen, wenn GlideQuery die Konfiguration abgeschlossen hat und bereit ist, mit der Verarbeitung von Datensätzen zu beginnen. Die Unterschiede zwischen diesen beiden Methodentypen sind wichtig, wenn Sie Aufrufe an die GlideQuery- API für Ihre spezifischen Anwendungsfälle konfigurieren. Weitere Informationen zu Zwischen- und Terminalfunktionen finden Sie im Artikel GlideQuery – Stream-Verarbeitung Teil 1.
Die folgenden Methoden werden als Zwischenstufen klassifiziert:
- aggregat(StringaggregatType, Zeichenfolgenfeld)
- deaktivierenAutoSysFields()
- deaktivierenWorkflow()
- erzwingenUpdate()
- groupBy(String-Felder)
- have(StringaggregatType, Zeichenfolgenfeld, Zeichenfolgenoperator, Zahlenwert)
- limit (Anzahllimit)
- orderBy(String-Felder)
- orderByDesc(String fieldOrAggregate, String field)
- orWhere(String fieldOrQuery, String operator, Any value)
- orWhereNotNull(String field)
- orWhereNull(String field)
- where(String fieldOrQuery, String operator, Any value)
- whereNotNull(String field)
- whereNull(String field)
- withAcls()
Die folgenden Methoden werden als Terminal klassifiziert:
- avg(String-Feld)
- Anzahl ()
- deleteMultiple()
- get(String key, Array selectedFields)
- getBy(Object keyValues, Array selectedFields)
- insert (Objekt „keyValues“, Objekt „selectedFields“)
- insertOrUpdate (Objektänderungen, Objekt selectedFields)
- max(String-Feld)
- min(String-Feld)
- select(String-Felder)
- selectOne(String-Felder)
- sum(String-Feld)
- toGlideRecord()
- update (Objektänderungen, Objekt selectedFields)
- updateMultiple (Objektänderungen)
GlideQuery – GlideQuery(String table)
Instantiiert ein GlideQuery-Objekt, das zum Erstellen und Ausführen von Datensatzabfragen verwendet wird.
| Name | Typ | Beschreibung |
|---|---|---|
| table | Zeichenfolge | Abzufragende Tabelle. |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird eine Abfrage der Benutzertabelle instanziiert.
var query = new global.GlideQuery('sys_user');
GlideQuery –aggregat(StringaggregatType, String field)
Fasst ein Feld mit einer angegebenen Zusammenfassungsfunktion zusammen.
Verwenden Sie diese Methode, um Abfragen zu erstellen, die eine Zusammenfassung für mehrere Felder erstellen oder mehrere Zusammenfassungsfunktionen verwenden, oder wenn Sie die Methode groupBy() verwenden müssen. Wenn Sie nur eine Zusammenfassung für ein Feld mit einer Funktion durchführen möchten und groupBy()nicht verwenden müssen, verwenden Sie stattdessen eine der folgenden Methoden:
- Durchschn. ()
- min()
- max()
- Anzahl ()
| Name | Typ | Beschreibung |
|---|---|---|
| „aggregatType“. | Zeichenfolge | Der Typ der auszuführenden Zusammenfassungsfunktion. Verfügbare Optionen:
|
| Ausstehend | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
var query = new global.GlideQuery('task')
.where('active', true) //Returns new GlideQuery object with a "where" clause.
.groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
.aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
.having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
.select() //Returns a stream of records wrapped in a Stream object.
.forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result.
gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
});Priority 1: 11 reassignments
Priority 3: 6 reassignments
Priority 5: 5 reassignmentsGlideQuery – avg(String field)
Gibt den Gesamtdurchschnitt eines bestimmten numerischen Felds zurück.
- Ganzzahl
- Lang
- Gleitkommazahl
- Doppelt
- Währung
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das den zusammengefassten Durchschnitt des angegebenen Felds enthält. |
Dieses Beispiel zeigt, wie die durchschnittliche Anzahl der Fehler in der Tabelle cmdb_ci zurückgegeben wird.
var faults = new global.GlideQuery('cmdb_ci')
.avg('fault_count')
.orElse(0);
gs.info(JSON.stringify(faults));
Ausgabe:
0.0037
GlideQuery – count()
Gibt die Anzahl der Datensätze zurück, die der Abfrage entsprechen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Nummer | Anzahl der Datensätze, die der Abfrage entsprechen. |
In diesem Beispiel wird die Anzahl der aktiven Datensätze in der Benutzertabelle zurückgegeben.
var userCount = new global.GlideQuery('sys_user')
.where('active', true)
.count();
Ausgabe:
612
GlideQuery – deleteMultiple()
Löscht alle Datensätze in der Tabelle, die in den vorherigen Wo-Klauseln angegeben ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel werden alle aktiven Datensätze in der Benutzertabelle gelöscht, in der der Nachname „Jeter“ lautet.
var query = new global.GlideQuery('sys_user')
.where('active', true)
.where('last_name', 'Jeter')
.deleteMultiple();
GlideQuery – disableAutoSysFields()
Deaktiviert die Aktualisierung von Systemfeldern oder Feldern mit einem Namen, der mit dem sys -Präfix beginnt, z. B. sys_created_on, sys_updated_on und sys_mod_count. Gilt nur für die angegebene Abfrage.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird der Aufgabentabelle ein Datensatz hinzugefügt, es werden jedoch keine Systemfelder festgelegt. Ohne den Aufruf dieser Methode würde das folgende Beispiel sys_updated_on, sys_mod_count usw. aktualisieren.
var query = new global.GlideQuery('task')
.disableAutoSysFields()
.insert({ description: 'example', priority: 1 });
GlideQuery – disableWorkflow()
Deaktiviert alle Geschäftsregeln, Flows, Workflows oder Audit-Datensätze, die als Ergebnis der Abfrage ausgeführt oder erstellt werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel werden mehrere Datensätze in der Aufgabentabelle aktualisiert, ohne automatische Geschäftsprozesse auszulösen.
var query = new global.GlideQuery('task')
.disableWorkflow()
.where('active', true)
.updateMultiple({ priority: 1 });
GlideQuery –forceUpdate()
Erzwingt eine Datenbankaktualisierung, auch wenn keine Datensatzänderungen vorgenommen werden. Sie können diese Methode beispielsweise verwenden, um die Ausführung einer Business Rule zu erzwingen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel erzwingt die Aktualisierung von Aufgabendatensätzen mit einer bestimmten sys_id.
var forceUpdate = new global.GlideQuery('task')
.forceUpdate()
.where('sys_id', taskId)
.update()
GlideQuery – get(String key, Array selectedFields)
Gibt einen einzelnen Datensatz aus der Abfrage zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| key | Zeichenfolge | Sys_id des zurückzugebenden Datensatzes. |
| ausgewählte Felder | Array | Optional. Zusätzliche Felder, die im Ergebnis zurückgegeben werden sollen. Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Beispiel, das einen Datensatz basierend auf sys_id zurückgibt.
var user = new global.GlideQuery('sys_user')
.get('5137153cc611227c000bbd1bd8cd2005', ['first_name', 'last_name']) //Returns an Optional object.
.orElse({ first_name: 'Default', last_name: 'User' }); //Method in the Optional class to return a default value.
gs.info(JSON.stringify(user, null, 2));
Ausgabe:
{
"sys_id":"5137153cc611227c000bbd1bd8cd2005",
"first_name":"Fred",
"last_name":"Luddy"
}
GlideQuery – getBy(Object keyValues, Array selectedFields)
Gibt ein optionales Objekt zurück, das einen einzelnen Datensatz basierend auf einem Satz von Name-Wert-Paaren enthält, nach denen abgefragt werden soll. Übernimmt den Operator „=“ für jedes Name-Wert-Paar.
| Name | Typ | Beschreibung |
|---|---|---|
| keyValues | Objekt | Objekt, bei dem die Schlüssel die Namen der Felder und die Werte die abzufragenden Werte sind. |
| ausgewählte Felder | Array | Optional. Zusätzliche Felder, die im Ergebnis zurückgegeben werden sollen. Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Beispiel, das einen Datensatz zurückgibt, indem der Name eines Benutzers abgefragt wird.
var user = new global.GlideQuery('sys_user')
.getBy({
first_name: 'Fred',
last_name: 'Luddy'
}, ['first_name', 'last_name', 'city', 'active']) // select first_name, last_name, city, active
.orElse({
first_name: 'Nobody',
last_name: 'Found',
city: 'Nowhere',
active: false
});
gs.info(JSON.stringify(user, null, 2));
Ausgabe:
{
"first_name":"Fred",
"last_name":"Luddy",
"city":null,
"active":true,
"sys_id":"5137153cc611227c000bbd1bd8cd2005"
}
GlideQuery – groupBy(String fields)
Gruppiert die Abfrageergebnisse nach einem oder mehreren festgelegten Feldern.
Sie müssen diese Methode mit deraggregat()- Methode verwenden.
| Name | Typ | Beschreibung |
|---|---|---|
| Felder | Zeichenfolge oder Array von Zeichenfolgen | Feld oder Felder, nach denen die Ergebnisse gruppiert werden sollen. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
var query = new global.GlideQuery('task')
.where('active', true) //Returns new GlideQuery object with a "where" clause.
.groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
.aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
.having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
.select() //Returns a stream of records wrapped in a Stream object.
.forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result.
gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
});Priority 1: 11 reassignments
Priority 3: 6 reassignments
Priority 5: 5 reassignmentsGlideQuery – have(StringaggregatType, String field, String operator, Number value)
Filtert Zusammenfassungsgruppen, sodass Sie nur Gruppen von Ergebnissen anzeigen können, die einer angegebenen Bedingung entsprechen.
Diese Methode muss mit den Methoden „ aggregat() “ oder „groupBy()“ verwendet werden.
| Name | Typ | Beschreibung |
|---|---|---|
| „aggregatType“. | Zeichenfolge | Der Typ der auszuführenden Zusammenfassungsfunktion. Verfügbare Optionen:
|
| Ausstehend | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| operator | Zeichenfolge | Numerischer Operator, der im Vorgang verwendet werden soll. Verfügbare Optionen:
|
| Wert | Nummer | Im Vorgang zu verwendender Zahlenwert. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
var query = new global.GlideQuery('task')
.where('active', true) //Returns new GlideQuery object with a "where" clause.
.groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
.aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
.having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
.select() //Returns a stream of records wrapped in a Stream object.
.forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result.
gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
});Priority 1: 11 reassignments
Priority 3: 6 reassignments
Priority 5: 5 reassignmentsGlideQuery – insert(Object keyValues, Object selectedFields)
Fügt einen Datensatz ein und gibt ein optionales Objekt zurück, das den Datensatz enthält.
| Name | Typ | Beschreibung |
|---|---|---|
| keyValues | Objekt | Objekt mit Name-Wert-Paaren, die in den Datensatz eingefügt werden sollen. Nicht angegebene Felder sind null. |
| ausgewählte Felder | Array | Optional. Zusätzliche Felder, die im Ergebnis zurückgegeben werden sollen. Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie ein Datensatz basierend auf dem Vor- und Nachnamen eines Benutzers eingefügt wird.
var fred = new global.GlideQuery('sys_user')
.insert({ first_name: 'Fred', last_name: 'Luddy' })
.get();
gs.info(JSON.stringify(fred, null, 2));
Ausgabe:
{
"sys_id":"cf16eed0e82a9010f8778bda83d255d2",
"first_name":"Fred",
"last_name":"Luddy"
}
GlideQuery – insertOrUpdate(Object changes, Object selectedFields)
Aktualisiert einen vorhandenen Datensatz oder fügt einen neuen Datensatz ein, wenn noch keiner vorhanden ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Changes | Objekt | Objekt mit Name-Wert-Paaren, die aktualisiert oder in den Datensatz eingefügt werden sollen. |
| ausgewählte Felder | Array | Optional. Zusätzliche Felder, die im Ergebnis zurückgegeben werden sollen. Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie ein neuer Datensatz eingefügt wird, der noch nicht im System vorhanden ist.
// insert a new record
var user = new GlideQuery('sys_user')
.insertOrUpdate({
first_name: 'George',
last_name: 'Griffey'
})
.orElse(null);
Dieses Beispiel zeigt, wie ein vorhandener Datensatz aktualisiert wird.
// update existing record
var user = new global.GlideQuery('sys_user')
.insertOrUpdate({
sys_id: '2d0efd6c73662300bb513198caf6a72e',
first_name: 'George',
last_name: 'Griffey' })
.orElse(null);
GlideQuery – limit(Number limit)
Beschränkt die Anzahl der in einer Abfrage zurückgegebenen Datensätze.
| Name | Typ | Beschreibung |
|---|---|---|
| limit | Nummer | Anzahl der zurückzugebenden Datensätze. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die zurückgegebenen Ergebnisse auf fünf Datensätze beschränkt werden.
var incidents = new global.GlideQuery('incident')
.limit(5)
.select('priority', 'description')
.forEach(function (incident){
gs.info(JSON.stringify(incident, null, 2));
});
Ausgabe:
*** Script: {
"priority": 1,
"description": "User can't get to any of his files on the file server.",
"sys_id": "9d385017c611228701d22104cc95c371"
}
*** Script: {
"priority": 1,
"description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
"sys_id": "e8caedcbc0a80164017df472f39eaed1"
}
*** Script: {
"priority": 1,
"description": "User forgot their email password.",
"sys_id": "9d3c1197c611228701cd1d94bc32d76d"
}
*** Script: {
"priority": 1,
"description": "When I try to print, my whole computer just freezes and stops working.",
"sys_id": "8d6246c7c0a80164012fb063cecd4ace"
}
*** Script: {
"priority": 3,
"description": "Unable to login even though login credentials are correct.",
"sys_id": "a9e30c7dc61122760116894de7bcc7bd"
}
GlideQuery – max(String field)
Gibt das Gesamtmaximum eines bestimmten Felds zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie der maximale Wert oder der höchste alphanumerische Wert eines bestimmten Felds zurückgegeben wird.
var name = new global.GlideQuery('sys_user')
.max('last_name')
.orElse('');
gs.info(JSON.stringify(name));
Ausgabe:
"Zortman"
GlideQuery – min(String field)
Gibt das zusammengefasste Minimum eines bestimmten Felds zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie der minimale Wert oder der niedrigste alphanumerische Wert eines bestimmten Felds zurückgegeben wird.
var name = new global.GlideQuery('sys_user')
.min('last_name')
.orElse('');
gs.info(JSON.stringify(name));
Ausgabe:
"Abel"
GlideQuery – orderBy(String fields)
Ordnet das zurückgegebene Ergebnis in aufsteigender Reihenfolge nach einem bestimmten Feld an.
| Name | Typ | Beschreibung |
|---|---|---|
| Felder | Zeichenfolge | Kommagetrennte Felder, um das Ergebnis in aufsteigender Reihenfolge zu sortieren. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Ergebnisse in aufsteigender Reihenfolge nach Datensatznummer sortiert werden.
var query = new global.GlideQuery('incident')
.orderBy('number')
.limit(5)
.select('number', 'description') //Returns a stream of records wrapped in a Stream object.
.forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
gs.info(JSON.stringify(incident, null, 2));
});
Ausgabe:
*** Script: {
"number": "INC0000001",
"description": "User can't access email on mail.company.com.",
"sys_id": "9c573169c611228700193229fff72400"
}
*** Script: {
"number": "INC0000002",
"description": "User can't get to any of his files on the file server.",
"sys_id": "9d385017c611228701d22104cc95c371"
}
*** Script: {
"number": "INC0000003",
"description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
"sys_id": "e8caedcbc0a80164017df472f39eaed1"
}
*** Script: {
"number": "INC0000004",
"description": "User forgot their email password.",
"sys_id": "9d3c1197c611228701cd1d94bc32d76d"
}
*** Script: {
"number": "INC0000005",
"description": "CPU was 100% busy for more than 10 minutes",
"sys_id": "e8e875b0c0a80164009dc852b4d677d5"
}
GlideQuery – orderByDesc(String fieldOrAggregate, String field)
Sortiert das zurückgegebene Ergebnis in absteigender Reihenfolge nach einem bestimmten Feld.
| Name | Typ | Beschreibung |
|---|---|---|
| FeldOderAggregat | Zeichenfolge | Wenn die Abfrage die Methode „ aggregat() “ nicht verwendet, übergeben Sie das Feld, nach dem die Ergebnisse sortiert werden sollen. Wenn die Abfrage dieaggregat() -Methode verwendet, übergeben Sie den Typ der auszuführenden Zusammenfassungsfunktion. Verfügbare Optionen:
|
| Ausstehend | Zeichenfolge | Optional. Feld, um das Ergebnis in absteigender Reihenfolge zu sortieren. Erforderlich für Abfragen mit deraggregat()- Methode. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Ergebnisse in absteigender Reihenfolge sortiert werden.
var query = new global.GlideQuery('incident')
.orderByDesc('number')
.limit(5)
.select('number', 'description') //Returns a stream of records wrapped in a Stream object.
.forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
gs.info(JSON.stringify(incident, null, 2));
});
Ausgabe:
*** Script: {
"number": "INC0009009",
"description": "Unable to access the shared folder. Please provide access.",
"sys_id": "57af7aec73d423002728660c4cf6a71c"
}
*** Script: {
"number": "INC0009005",
"description": "Unable to send or receive emails.",
"sys_id": "ed92e8d173d023002728660c4cf6a7bc"
}
*** Script: {
"number": "INC0009004",
"description": "While launching the defect tracking base URL, it is redirecting to an error page.",
"sys_id": "e329de99731423002728660c4cf6a73c"
}
*** Script: {
"number": "INC0009003",
"description": "Having an issue with users trying to access the company portal app",
"sys_id": "9fffc328731823002728660c4cf6a742"
}
*** Script: {
"number": "INC0009002",
"description": "My computer is not detecting the headphone device. It could be an issue with the USB port.",
"sys_id": "1c832706732023002728660c4cf6a7b9"
}
Dieses Beispiel zeigt, wie ein zusammengefasstes Ergebnis nach der Summe der untergeordneten Incidents sortiert wird.
var aggQuery = new GlideQuery('incident')
.aggregate('sum', 'child_incidents')
.groupBy('category')
.orderByDesc('sum', 'child_incidents')
.select()
.forEach(function (category){
gs.info(JSON.stringify(category, null, 2));
});
Ausgabe:
*** Script: {
"group": {
"category": "hardware"
},
"sum": {
"child_incidents": 2
}
}
*** Script: {
"group": {
"category": "inquiry"
},
"sum": {
"child_incidents": 1
}
}
*** Script: {
"group": {
"category": "software"
},
"sum": {
"child_incidents": 0
}
}
*** Script: {
"group": {
"category": ""
},
"sum": {
"child_incidents": null
}
}
*** Script: {
"group": {
"category": "database"
},
"sum": {
"child_incidents": null
}
}
*** Script: {
"group": {
"category": "network"
},
"sum": {
"child_incidents": null
}
}
GlideQuery – orWhere(String fieldOrQuery, String operator, Any value)
Fügt einer Abfrage eine OR-Klausel hinzu, die Werte basierend auf einer bestimmten Bedingung zurückgibt.
| Name | Typ | Beschreibung |
|---|---|---|
| FeldOderAbfrage | Zeichenfolge oder GlideQuery | Feld oder ein anderes GlideQuery-Objekt, das in der where-Klausel verwendet wird. Wenn Sie ein Feld übergeben, können Sie per Dot-Walk zu einem gewünschten Wert gelangen. Beispiel: „company.name“. |
| operator | Zeichenfolge | Optional. Operator, der in der OR-Klausel verwendet wird. Wenn Sie kein Argument übergeben, verwendet das System den Operator =. Sie müssen keinen Platzhalterwert einfügen. |
| Wert | Beliebig | In der OR-Klausel verwendeter Wert. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie einer Abfrage eine einfache ODER-Klausel hinzugefügt wird.
var query = new global.GlideQuery('sys_user')
.where('failed_attempts', '>', 0)
.orWhere('last_login', '<', '2019-04-15')
.select()
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"sys_id": "005d500b536073005e0addeeff7b12f4"
}
*** Script: {
"sys_id": "d999e5fc77e72300454792718a10611d"
}
*** Script: {
"sys_id": "30ad318577ab2300454792718a10619e"
}
*** Script: {
"sys_id": "4ac73ecd738123002728660c4cf6a72c"
}
*** Script: {
"sys_id": "3883f4c0730123002728660c4cf6a754"
}
*** Script: {
"sys_id": "3988a3ca732023002728660c4cf6a757"
}
*** Script: {
"sys_id": "8ff5b254b33213005e3de13516a8dcf7"
}
Dieses Beispiel zeigt, wie eine orWhere -Klausel hinzugefügt wird, die eine separate Abfrage enthält.
// active = true OR (title = 'Vice President' AND state = 'CA')
var query = new GlideQuery('sys_user')
.where('active', true)
.orWhere(new GlideQuery()
.where('title', 'Vice President')
.where('state', 'CA'))
.select('name')
.limit(5)
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"name": "ITIL User",
"sys_id": "681b365ec0a80164000fb0b05854a0cd"
}
*** Script: {
"name": "SOAP Guest",
"sys_id": "155699460a0a0b2b009e27c10b7f68f6"
}
*** Script: {
"name": "System Administrator",
"sys_id": "6816f79cc0a8016401c5a33be04be441"
}
*** Script: {
"name": "Alva Pennigton",
"sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
}
*** Script: {
"name": "Benchmark Scheduler",
"sys_id": "d3383a875b0132003d1c484c11f91a5b"
}
GlideQuery – orWhereNotNull(String field)
Fügt eine ODER-Klausel hinzu, die Datensätze zurückgibt, die in einem bestimmten Feld keinen NULL-Wert enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Benutzertabelle abgefragt und Ergebnisse zurückgegeben werden, bei denen der Vor- oder Nachname nicht NULL ist.
var query = new global.GlideQuery('sys_user')
.whereNotNull('first_name')
.orWhereNotNull('last_name')
.select('name')
.limit(5)
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"name": "ITIL User",
"sys_id": "681b365ec0a80164000fb0b05854a0cd"
}
*** Script: {
"name": "System Administrator",
"sys_id": "6816f79cc0a8016401c5a33be04be441"
}
*** Script: {
"name": "Alva Pennigton",
"sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
}
*** Script: {
"name": "Benchmark Scheduler",
"sys_id": "d3383a875b0132003d1c484c11f91a5b"
}
*** Script: {
"name": "Allyson Gillispie",
"sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
}
GlideQuery – orWhereNull(String field)
Fügt einer Abfrage, die Datensätze zurückgibt, die einen NULL-Wert in einem bestimmten Feld enthalten, eine OR-Klausel hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Benutzertabelle abgefragt und Datensätze zurückgegeben werden, bei denen der Vor- oder Nachname NULL ist.
var query = new global.GlideQuery('sys_user')
.whereNull('last_name')
.orWhereNull('first_name')
.select('first_name', 'last_name')
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"first_name": "ml.admin",
"last_name": null,
"sys_id": "88aad6c5c73003005f1b78d48b9763a5"
}
*** Script: {
"first_name": "Sitemap Scheduler User",
"last_name": null,
"sys_id": "85388c25b71011104eed4643ae11a993"
}
*** Script: {
"first_name": null,
"last_name": "Guest",
"sys_id": "5136503cc611227c0183e96598c4f706"
}
*** Script: {
"first_name": "ml_report.user",
"last_name": null,
"sys_id": "b6bad6c5c73003005f1b78d48b97632a"
}
GlideQuery – parse(String table, String encoded_query )
Fügt einer neuen GlideQuery -Abfrage eine codierte Abfrage hinzu.
Diese Methode unterstützt nicht alle GlideRecord- codierten Abfrageoperatoren. Die folgenden Operatoren werden derzeit unterstützt:
= |
ALLES |
GT_FIELD |
NICHT IN |
!= |
ZWISCHEN |
GT_ODER_GLEICH_FELD |
NICHT WIE |
> |
ENTHÄLT |
IN |
NSAMEAS |
>= |
ENTHÄLT NICHT |
INSTANCEOF |
EIN |
< |
DYNAMISCH |
LIKE |
SAMEAS |
<= |
EMPTYSTRING |
LT_FIELD |
STARTSWITH |
ENDSWITH |
LT_OR_EQUALS_FIELD |
| Name | Typ | Beschreibung |
|---|---|---|
| table | Zeichenfolge | Abzufragende Tabelle, z. B. Aufgabe oder Incident. |
| encoded_query | Zeichenfolge | Codierte Abfrage, die auf die Datensätze in der angegebenen Tabelle angewendet werden soll. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | GlideQuery-Objekt, das die codierte Abfrage enthält. |
Im folgenden Beispiel wird ein GlideQuery-Objekt erstellt, das alle aktiven Datensätze in der Aufgabentabelle enthält, sortiert nach dem Prioritätsfeld, das als Stream-Objekt zurückgegeben wird, das nur das Beschreibungsfeld enthält.
GlideQuery.parse('task', 'active=true^ORDERBYpriority') // Pass the encoded query to use to parse the Task records
.select('description') // Return the records that match the encoded query
.forEach(doSomething); // Do some processing on each of the returned records
GlideQuery – select(String fields)
Gibt die Ergebnisse der Abfrage als Stream-Objekt zurück, das die angegebenen Felder enthält.
Sie können eine Kennzeichnung an einen Feldnamen anhängen, um die Metadaten des Felds anstelle des Feldwerts zurückzugeben. Wenn Sie beispielsweise den Feldnamen company$DISPLAY verwenden, wird der Anzeigewert eines Unternehmensfelds zurückgegeben. Mögliche Kennzeichnungen:
ANZEIGE: Gibt den Anzeigewert eines Felds zurück.CURRENCY_CODE: Gibt den Währungscode eines Währungsfelds zurück. Beispiel:USD.CURRENCY_DISPLAY: Gibt den Währungsanzeigewert eines Währungsfelds zurück. Beispiel:123,45 Yen.CURRENCY_STRING: Gibt die Währungszeichenfolge eines Währungsfelds zurück. Beispiel:JPY;123,45.
| Name | Typ | Beschreibung |
|---|---|---|
| Felder | Zeichenfolge oder Array von Zeichenfolgen | Optional. Felder, die im Ergebnis angezeigt werden sollen. Sie können eine beliebige Anzahl von Feldern als Argumente angeben, per Dot-Walk zu einem gewünschten Wert gehen oder eine Kennzeichnung verwenden. Beispiel: oder
Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Stream | Objekt, das für die Interaktion mit einem Stream von Elementen wie Datensätzen verwendet wird. |
Dieses Beispiel zeigt, wie Sie anzuzeigende Felder aus der Abfrage auswählen und $DISPLAY verwenden, um den Anzeigewert eines Felds zurückzugeben.
var stream = new global.GlideQuery('sys_user')
.select('first_name', 'last_name', 'company$DISPLAY')
.limit(5)
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"first_name": "System",
"last_name": "Administrator",
"company$DISPLAY": "",
"sys_id": "6816f79cc0a8016401c5a33be04be441"
}
*** Script: {
"first_name": "Alva",
"last_name": "Pennigton",
"company$DISPLAY": "ACME North America",
"sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
}
*** Script: {
"first_name": "Benchmark",
"last_name": "Scheduler",
"company$DISPLAY": "",
"sys_id": "d3383a875b0132003d1c484c11f91a5b"
}
*** Script: {
"first_name": "Allyson",
"last_name": "Gillispie",
"company$DISPLAY": "ACME North America",
"sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
}
*** Script: {
"first_name": "SOAP",
"last_name": "Guest",
"company$DISPLAY": "",
"sys_id": "155699460a0a0b2b009e27c10b7f68f6"
}
GlideQuery – selectOne(String fields)
Gibt das Ergebnis der Abfrage als optionales Objekt mit den angegebenen Feldern zurück.
Verwenden Sie diese Methode, wenn Sie einen einzelnen Datensatz zurückgeben oder testen, ob ein Datensatz vorhanden ist. Wenn Sie mehrere Datensätze zurückgeben, verwenden Sie die Methode select(), um ein Stream-Objekt zurückzugeben.
Sie können eine Kennzeichnung an einen Feldnamen anhängen, um die Metadaten des Felds anstelle des Feldwerts zurückzugeben. Wenn Sie beispielsweise den Feldnamen company$DISPLAY verwenden, wird der Anzeigewert eines Unternehmensfelds zurückgegeben. Mögliche Kennzeichnungen:
ANZEIGE: Gibt den Anzeigewert eines Felds zurück.CURRENCY_CODE: Gibt den Währungscode eines Währungsfelds zurück. Beispiel:USD.CURRENCY_DISPLAY: Gibt den Währungsanzeigewert eines Währungsfelds zurück. Beispiel:123,45 Yen.CURRENCY_STRING: Gibt die Währungszeichenfolge eines Währungsfelds zurück. Beispiel:JPY;123,45.
| Name | Typ | Beschreibung |
|---|---|---|
| Felder | Zeichenfolge oder Array von Zeichenfolgen | Optional. Felder, die im Ergebnis angezeigt werden sollen. Sie können eine beliebige Anzahl von Feldern als Argumente angeben, per Dot-Walk zu einem gewünschten Wert gehen oder eine Kennzeichnung verwenden. Beispiel: oder
Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie Sie einen einzelnen Datensatz als optionales Objekt zurückgeben und angegebene Felder anzeigen.
var user = new global.GlideQuery('sys_user')
.where('zip', '12345')
.whereNotNull('last_name')
.selectOne('first_name', 'last_name', 'company$DISPLAY')
.get();
gs.info(JSON.stringify(user, null, 2));
Ausgabe:
{
"first_name":"Abel",
"last_name":"Tuter",
"company$DISPLAY":"ACME South America",
"sys_id":"62826bf03710200044e0bfc8bcbe5df1"
}
GlideQuery – sum(String field)
Gibt die Gesamtsumme eines gegebenen numerischen Felds zurück.
- Ganzzahl
- Lang
- Gleitkommazahl
- Doppelt
- Währung
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie die Summe aller Fehler in der Tabelle cmdb_ci zurückgegeben wird.
var totalFaults = new global.GlideQuery('cmdb_ci')
.sum('fault_count')
.orElse(0);
gs.info(JSON.stringify(totalFaults));
Ausgabe:
10
GlideQuery – toGlideRecord()
Gibt ein GlideRecord-Objekt zurück, das die aktuelle Abfrage darstellt. Gibt ein GlideAggregrate-Objekt zurück, wenn die Abfrage die GlideQuery.aggregate()- Methode verwendet.
Verwenden Sie nach der Transformation der Abfrage die query()- Methode in den Klassen GlideRecord oder GlideAggregate, um die Datenbank abzufragen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideRecord oder GlideAggregate | GlideRecord-Objekt, das die Abfrage enthält. Wenn Sie die GlideQuery.aggregate() -Methode verwendet haben, gibt die Methode stattdessen ein GlideAggregrate-Objekt zurück. |
Dieses Beispiel zeigt, wie ein GlideQuery-Objekt in einen GlideRecord umgewandelt wird.
var userGr = new global.GlideQuery('sys_user')
.where('active', true)
.whereNotNull('first_name')
.limit(10)
.toGlideRecord();
userGr.query();
GlideQuery – update(Object changes, Object selectedFields)
Aktualisiert einen vorhandenen Datensatz, der den definierten Bedingungen entspricht.
Bevor Sie diese Methode verwenden, rufen Sie die Methode where() auf, um die Bedingungen anzugeben, die ein Datensatz erfüllen muss, um aktualisiert zu werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Changes | Objekt | Objekt mit Name-Wert-Paaren, die im Datensatz aktualisiert werden sollen. Namen müssen mit Feldern in der Tabelle übereinstimmen. |
| ausgewählte Felder | Array | Optional. Zusätzliche Felder, die im Ergebnis zurückgegeben werden sollen. Standard: Das System gibt immer die sys_id zurück. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie ein Datensatz mit neuen Werten aktualisiert wird.
var updateRecord = new global.GlideQuery('sys_user')
.where('sys_id', '0a826bf03710200044e0bfc8bcbe5d7a')
.update({ city: 'Los Angeles' });
GlideQuery – updateMultiple(Object changes)
Aktualisiert alle vorhandenen Datensätze, die den definierten Bedingungen entsprechen. Gibt die Anzahl der aktualisierten Datensätze zurück.
Bevor Sie diese Methode verwenden, rufen Sie die Methode where() auf, um die Bedingungen anzugeben, die die Datensätze erfüllen müssen, um aktualisiert zu werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Changes | Objekt | Objekt mit Name-Wert-Paaren, die im Datensatz aktualisiert werden sollen. Namen müssen mit Feldern in der Tabelle übereinstimmen. |
| Typ | Beschreibung |
|---|---|
| Objekt | Objekt, das die Anzahl der aktualisierten Datensätze enthält. Zu den Schlüsseln gehören:
|
Dieses Beispiel zeigt, wie Datensätze aktualisiert werden, die definierte Kriterien erfüllen.
var update = new global.GlideQuery('sys_user')
.where('active', false)
.where('last_name', 'Griffey')
.updateMultiple({ active: true });
gs.info(JSON.stringify(update));
Ausgabe:
{"rowCount":1}
GlideQuery – where(String fieldOrQuery, String operator, Any value)
Fügt der Abfrage eine Klausel „Where“ hinzu, die Werte basierend auf einer bestimmten Bedingung zurückgibt.
| Name | Typ | Beschreibung |
|---|---|---|
| FeldOderAbfrage | Zeichenfolge oder GlideQuery | Feld oder ein anderes GlideQuery-Objekt, das in der where-Klausel verwendet wird. Wenn Sie ein Feld übergeben, können Sie per Dot-Walk zu einem gewünschten Wert gelangen. Beispiel: „company.name“. |
| operator | Zeichenfolge | Optional. Operator, der in der Klausel „where“ verwendet wird. Wenn Sie kein Argument übergeben, verwendet das System den Operator =. |
| Wert | Beliebig | Wert, der in der Klausel „where“ verwendet wird. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie Datensätze aus der Benutzertabelle zurückgegeben werden, in denen aktiv „true“ ist und die letzte Anmeldung des Benutzers nach einem bestimmten Datum liegt.
var query = new global.GlideQuery('sys_user')
.where('active', true)
.where('last_login', '>', '2018-01-01')
.limit(5)
.select()
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"sys_id": "6816f79cc0a8016401c5a33be04be441"
}
*** Script: {
"sys_id": "005d500b536073005e0addeeff7b12f4"
}
*** Script: {
"sys_id": "d999e5fc77e72300454792718a10611d"
}
*** Script: {
"sys_id": "30ad318577ab2300454792718a10619e"
}
*** Script: {
"sys_id": "3883f4c0730123002728660c4cf6a754"
}
Dieses Beispiel zeigt, wie Datensätze aus der Incident-Tabelle zurückgegeben werden, bei denen aktiv „true“ und die Priorität oder der Schweregrad 1 ist.
// active = true AND (priority = 1 OR severity = 1)
var query = new GlideQuery('incident')
.where('active', true)
.where(new GlideQuery()
.where('priority', 1)
.orWhere('severity', 1))
.limit(5)
.select()
.toArray(5)
gs.info(JSON.stringify(query, null, 2));
Ausgabe:
[
{
"sys_id":"b0f31e5673500010c2e7660c4cf6a711"
},
{
"sys_id":"8ff5b254b33213005e3de13516a8dcf7"
},
{
"sys_id":"d999e5fc77e72300454792718a10611d"
},
{
"sys_id":"30ad318577ab2300454792718a10619e"
},
{
"sys_id":"3883f4c0730123002728660c4cf6a754"
}
]
GlideQuery – whereNotNull(String field)
Gibt Datensätze zurück, die in einem bestimmten Feld keinen NULL-Wert enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Benutzertabelle abgefragt und Ergebnisse zurückgegeben werden, bei denen das Feld first_name nicht NULL ist.
var query = new global.GlideQuery('sys_user')
.whereNotNull('first_name')
.select('name')
.limit(5)
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"name": "System Administrator",
"sys_id": "6816f79cc0a8016401c5a33be04be441"
}
*** Script: {
"name": "Alva Pennigton",
"sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
}
*** Script: {
"name": "Benchmark Scheduler",
"sys_id": "d3383a875b0132003d1c484c11f91a5b"
}
*** Script: {
"name": "Allyson Gillispie",
"sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
}
*** Script: {
"name": "SOAP Guest",
"sys_id": "155699460a0a0b2b009e27c10b7f68f6"
}
GlideQuery – whereNull(String field)
Gibt Datensätze zurück, die einen NULL-Wert in einem bestimmten Feld enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausstehend | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Benutzertabelle abgefragt und Datensätze zurückgegeben werden, bei denen der Vor- oder Nachname NULL ist.
var query = new global.GlideQuery('sys_user')
.whereNull('last_name')
.orWhereNull('first_name')
.select('first_name', 'last_name')
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"first_name": "ml.admin",
"last_name": null,
"sys_id": "88aad6c5c73003005f1b78d48b9763a5"
}
*** Script: {
"first_name": "Sitemap Scheduler User",
"last_name": null,
"sys_id": "85388c25b71011104eed4643ae11a993"
}
*** Script: {
"first_name": null,
"last_name": "Guest",
"sys_id": "5136503cc611227c0183e96598c4f706"
}
*** Script: {
"first_name": "ml_report.user",
"last_name": null,
"sys_id": "b6bad6c5c73003005f1b78d48b97632a"
}
GlideQuery – withAcls()
Führt die Abfrage mit der GlideRecordSecure- API aus, um die Datenbank unter Berücksichtigung von ACLs sicher abzufragen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie eine sichere Abfrage mithilfe von ACLs ausgeführt wird.
var users = new global.GlideQuery('sys_user')
.withAcls()
.limit(5)
.orderByDesc('first_name')
.select('first_name')
.forEach(function (user){
gs.info(JSON.stringify(user, null, 2));
});
Ausgabe:
*** Script: {
"first_name": "Zane",
"sys_id": "16826bf03710200044e0bfc8bcbe5dbc"
}
*** Script: {
"first_name": "Zackary",
"sys_id": "8a826bf03710200044e0bfc8bcbe5d69"
}
*** Script: {
"first_name": "Yvette",
"sys_id": "4e826bf03710200044e0bfc8bcbe5d57"
}
*** Script: {
"first_name": "Winnie",
"sys_id": "f682abf03710200044e0bfc8bcbe5d1d"
}
*** Script: {
"first_name": "Wilmer",
"sys_id": "42826bf03710200044e0bfc8bcbe5d7b"
}