GlideQuery: Bereichsbezogen, Global
Die GlideQuery Die Skripteinbindung ist eine Alternative zu GlideRecord API zum Ausführen von CRUD-Vorgängen für Datensatzdaten aus serverseitigen Skripts.
Die GlideQuery Mit der Skripteinbindung können Sie:
- Verwenden Sie standardmäßige JavaScript-Objekte und -Typen für Abfragen und Ergebnisse.
- Diagnostizieren Sie schnell Abfragefehler mit zusätzlichen Prüfungen und leeren Fehlermeldungen.
- Vereinfachen Sie Ihren Code, indem Sie Abfragemuster für Kessel-Platten vermeiden.
- Vermeiden Sie häufige Leistungsprobleme, ohne tiefere Kenntnisse über GlideRecord zu benötigen.
new global.GlideQuery('sys_user')
// ...Diese Skripteinbindung erfordert das Plugin GlideQuery [com.sn_glidequery].Implementierung
Diese Skripteinbindung funktioniert mit Stream Und Optional APIs in einem builder-Muster, bei dem die Methode die Kette aufruft, wobei 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 vor der Ausführung definieren können.
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 ein Stream-Objekt. Mit diesen Objekten können Sie das Ergebnis mit einer Reihe von Methoden in jeder API verwalten.
Zum Beispiel dies Das Skript führt eine Abfrage für die Aufgabentabelle durch, gruppiert die Datensätze nach Priorität und gibt jede Priorität zurück, deren Neuzuweisungen insgesamt größer als vier sind.
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 Die Skripteinbindung löst einen Fehler aus, wenn bei Ihrer Abfrage ein Problem auftritt, und enthält eine klare Erklärung, die Ihnen hilft. Diese Skripteinbindung prüft auf:
- Ungültige Felder
- Ungültige Werttypen für ein Feld
- Ungültige Werte für Auswahlfelder
- Ungültige Abfrageoperatoren
Beispielsweise würde das folgende Codebeispiel 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 Codebeispiel 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 dann später das GlideQuery-Objekt, 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 Skripteinbindung unterstützt 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 sie ausgeführt werden soll
(Aktiv = wahr UND Name != null) ODER Last_Name = LuddyOderAktiv = wahr UND (Name != null ODER Last_Name = Luddy).var user = new global.GlideQuery('sys_user') .where('active', true) .whereNotNull('name') .orWhere('last_name', 'Luddy') .selectOne() .get()Siehe Wobei() Methode, um zu verstehen, wie stattdessen eine untergeordnete Abfrage verschachtelt wird.
Mittel- und Terminalmethoden in GlideQuery
Die GlideQuery Die Skripteinbindung verwendet zwei Kategorien von Methoden: Intermediate und Terminal. Zwischenmethoden sind die Methoden, die eine zurückgeben Stream , Eine API, die für die Interaktion mit einem Stream von Elementen wie Datensätzen verwendet wird und einen flüssigen Syntaxstil ermöglicht, bei dem Aufrufe miteinander verkettet werden. Terminalmethoden sind die Methoden, die keinen Stream zurückgeben und daher die Kette von stoppen Stream Methodenaufrufe.
In GlideQuery Skripteinbindung, Methoden wie Wobei() , OrderBy() , Und DeaktivierenWorkflow() Sind Zwischenmethoden, die ein neues GlideQuery-Objekt zurückgeben. Ebenso wird GlideQuery Die beliebtesten Terminalmethoden der Skripteinbindung, Auswählen () Und SelectOne() , Sind Terminalmethoden. Diese Methoden werden aufgerufen, wenn GlideQuery Ist mit der Konfiguration abgeschlossen und kann mit der Verarbeitung von Datensätzen beginnen. Die Unterschiede zwischen diesen beiden Methodentypen sollten bei der Konfiguration von Aufrufen für beachtet werden GlideQuery Skripteinbindung gemäß Ihren spezifischen Anwendungsfällen. Weitere Informationen zu Zwischen- und Terminalmethoden finden Sie im artikel GlideQuery – Stream-Verarbeitung Teil 1 .
Die folgenden Methoden werden als Zwischenmethoden klassifiziert:
- Aggregat(String aggregateType, Zeichenfolgenfeld)
- DisableAutoSysFields()
- DeaktivierenWorkflow()
- ForceUpdate()
- Groupby(Zeichenfolgenfelder)
- Hat(String aggregateType, Zeichenfolgenfeld, Zeichenfolgenoperator, Zahlenwert)
- Limit(Nummernlimit)
- OrderBy(Zeichenfolgenfelder)
- OrderByDesc(ZeichenfolgenfeldOrAggregat, Zeichenfolgenfeld)
- OrWhere(String fieldOrQuery, Zeichenfolgenoperator, beliebiger Wert)
- OrWhereNotNull(Zeichenfolgenfeld)
- OrWhereNull(Zeichenfolgenfeld)
- Wo(String fieldOrQuery, Zeichenfolgenoperator, beliebiger Wert)
- Where NotNull(Zeichenfolgenfeld)
- Where-Null(Zeichenfolgenfeld)
- WithAcls()
Die folgenden Methoden werden als Terminal klassifiziert:
- durchschn.(Zeichenfolgenfeld)
- Anzahl()
- DeleteMultiple()
- GET(Zeichenfolgenschlüssel, Array selectedFields)
- GetBy(Object keyValues, Array selectedFields)
- Einfügen(Object keyValues, Object selectedFields)
- InsertOrUpdate(Objektänderungen, Objekt selectedFields)
- max.(Zeichenfolgenfeld)
- Min(Zeichenfolgenfeld)
- Auswählen (Zeichenfolgenfelder)
- SelectOne(Zeichenfolgenfelder)
- Summe(Zeichenfolgenfeld)
- Zu GlideRecord()
- Aktualisieren (Objektänderungen, Objekt ausgewählt Felder)
- UpdateMultiple (Objektänderungen)
GlideQuery – GlideQuery(Zeichenfolgentabelle)
Instanziiert 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 Anwendertabelle instanziiert.
var query = new global.GlideQuery('sys_user');
GlideQuery – Aggregat(String aggregateType, Zeichenfolgenfeld)
Fasst ein Feld mit einer angegebenen Zusammenfassungsfunktion zusammen.
Verwenden Sie diese Methode, um Abfragen zu erstellen, die für mehrere Felder aggregieren oder mehrere Aggregatfunktionen verwenden, oder wenn Sie verwenden müssen Groupby() Methode. Wenn Sie nur für ein Feld mit einer Funktion aggregieren möchten und nicht verwenden müssen Groupby() , Verwenden Sie stattdessen eine der folgenden Methoden:
- durchschn.()
- Min.()
- max.()
- Anzahl()
| Name | Typ | Beschreibung |
|---|---|---|
| AggregateType | Zeichenfolge | Der Typ der auszuführenden Zusammenfassungsfunktion. Verfügbare Optionen:
|
| Feld | 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 – Durchschn.(Zeichenfolgenfeld)
Gibt den aggregierten Durchschnitt eines bestimmten numerischen Felds zurück.
- Ganzzahl
- Lang
- Gleitkommazahl
- Doppelt
- Währung
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das den aggregierten Durchschnitt des angegebenen Felds enthält. |
Dieses Beispiel zeigt, wie die durchschnittliche Anzahl von Fehlern 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 |
|---|---|
| Anzahl | Anzahl der Datensätze, die der Abfrage entsprechen. |
Dieses Beispiel gibt die Anzahl der aktiven Datensätze in der Anwendertabelle zurück.
var userCount = new global.GlideQuery('sys_user')
.where('active', true)
.count();
Ausgabe:
612
GlideQuery – deleteMultiple()
Löscht alle Datensätze in der Tabelle, die von den vorherigen WHERE-Klauseln angegeben wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel werden alle aktiven Datensätze in der Anwendertabelle gelöscht, bei denen 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 beginnt sys Präfix, 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 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 Business-Regeln, 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. |
Dieses Beispiel aktualisiert mehrere Datensätze in der Aufgabentabelle, 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-Regel zu erzwingen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird die Aktualisierung von Aufgabendatensätzen mit einer bestimmten sys_ID erzwungen
var forceUpdate = new global.GlideQuery('task')
.forceUpdate()
.where('sys_id', taskId)
.update()
GlideQuery – GET (Zeichenfolgenschlüssel, Array selectedFields)
Gibt einen einzelnen Datensatz aus der Abfrage zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| key | Zeichenfolge | SYS_ID des zurückzugebenden Datensatzes. |
| selectedFields | 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 zur 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 einer Reihe von Name-Wert-Paaren enthält, nach denen abgefragt werden soll. Nimmt den Operator „=“ für jedes Name-Wert-Paar an.
| Name | Typ | Beschreibung |
|---|---|---|
| KeyValues | Objekt | Objekt, bei dem die Schlüssel der Name der Felder und die Werte die Werte sind, nach denen abgefragt werden soll. |
| selectedFields | 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 zur Interaktion mit einem einzelnen Datensatz verwendet wird. |
Beispiel, das einen Datensatz zurückgibt, indem nach dem Namen eines Anwenders 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(Zeichenfolgenfelder)
Gruppiert die Abfrageergebnisse nach einem oder mehreren festgelegten Feldern.
Sie müssen diese Methode mit verwenden Aggregat() Methode.
| 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 – Having(String aggregateType, Zeichenfolgenfeld, Zeichenfolgenoperator, Zahlenwert)
Filtert Aggregatgruppen, damit Sie nur Gruppen von Ergebnissen anzeigen können, die einer angegebenen Bedingung entsprechen.
Diese Methode muss mit verwendet werden Aggregat() Oder Groupby() Methoden.
| Name | Typ | Beschreibung |
|---|---|---|
| AggregateType | Zeichenfolge | Der Typ der auszuführenden Zusammenfassungsfunktion. Verfügbare Optionen:
|
| Feld | 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 | Anzahl | Zahlenwert, der im Vorgang verwendet 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 – 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. |
| selectedFields | 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 zur Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie ein Datensatz basierend auf dem vor- und Nachnamen eines Anwenders 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. |
| selectedFields | 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 zur 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(Nummernlimit)
Begrenzt die Anzahl der in einer Abfrage zurückgegebenen Datensätze.
| Name | Typ | Beschreibung |
|---|---|---|
| limit | Anzahl | 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 begrenzt 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(Zeichenfolgenfeld)
Gibt das Aggregatmaximum eines bestimmten Felds zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das zur Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie der Höchstwert 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(Zeichenfolgenfeld)
Gibt das aggregierte Minimum eines bestimmten Felds zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das zur Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie der Mindestwert 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(Zeichenfolgenfelder)
Ordnet das zurückgegebene Ergebnis in aufsteigender Reihenfolge nach einem bestimmten Feld an.
| Name | Typ | Beschreibung |
|---|---|---|
| Felder | Zeichenfolge | Kommagetrennte Felder, nach denen das Ergebnis in aufsteigender Reihenfolge sortiert werden soll. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie Ergebnisse in aufsteigender Reihenfolge nach Datensatznummer angeordnet 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, Zeichenfolgenfeld)
Ordnet das zurückgegebene Ergebnis in absteigender Reihenfolge nach einem bestimmten Feld an.
| Name | Typ | Beschreibung |
|---|---|---|
| FieldOrAggregat | Zeichenfolge | Wenn die Abfrage nicht verwendet Aggregat() Methode übergeben Sie das Feld, nach dem die Ergebnisse sortiert werden sollen. Wenn die Abfrage verwendet Aggregat() Methode: Übergeben Sie den Typ der auszuführenden Zusammenfassungsfunktion. Verfügbare Optionen:
|
| Feld | Zeichenfolge | Optional. Feld, nach dem das Ergebnis in absteigender Reihenfolge sortiert werden soll. Erforderlich für Abfragen mit Aggregat() Methode. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie das Ergebnis in absteigender Reihenfolge nach Nummer sortiert wird.
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 aggregiertes 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, Zeichenfolgenoperator, beliebiger Wert)
Fügt einer Abfrage eine ODER-Klausel hinzu, die Werte basierend auf einer bestimmten Bedingung zurückgibt.
| Name | Typ | Beschreibung |
|---|---|---|
| FieldOrQuery | Zeichenfolge oder GlideQuery | Feld oder ein anderes GlideQuery-Objekt, das in der WHERE-Klausel verwendet wird. Wenn Sie ein Feld übergeben, können Sie DOT-Walk zu einem gewünschten Wert durchführen. Beispiel: „company.name“ . |
| operator | Zeichenfolge | Optional. Operator, der in der ODER-Klausel verwendet wird. Wenn Sie kein Argument übergeben, verwendet das System den Operator =. Sie müssen keinen Platzhalterwert einschließen. |
| Wert | Beliebig | In der ODER-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 Sie eine hinzufügen OrWhere Klausel, 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(Zeichenfolgenfeld)
Fügt eine ODER-Klausel hinzu, die Datensätze zurückgibt, die keinen Nullwert in einem bestimmten Feld enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Anwendertabelle 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(Zeichenfolgenfeld)
Fügt einer Abfrage eine ODER-Klausel hinzu, die Datensätze zurückgibt, die einen Nullwert in einem bestimmten Feld enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Anwendertabelle 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(Zeichenfolgentabelle, Zeichenfolge encoded_query )
Fügt einer neuen eine codierte Abfrage hinzu GlideQuery Abfrage.
Diese Methode unterstützt nicht alle GlideRecord Codierte Abfrageoperatoren. Die folgenden Operatoren werden derzeit unterstützt:
= |
ALLES |
GT_FIELD |
NICHT IN |
!= |
ZWISCHEN |
GT_OR_EQUALS_FIELD |
NICHT WIE |
> |
ENTHÄLT |
IN |
NSAMEAS |
>= |
ENTHÄLT NICHT |
INSTANCEOF |
EIN |
< |
DYNAMISCH |
GEFÄLLT MIR |
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 Zum Anwenden auf die Datensätze in der angegebenen Tabelle. |
| 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(Zeichenfolgenfelder)
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 Felds zurückzugeben. Beispiel: Mithilfe des Feldnamens Unternehmens$ANZEIGE Gibt den Anzeigewert eines Unternehmensfelds zurück. Mögliche Kennzeichnungen sind:
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.CURRENCY_ZEICHENFOLGE: 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, Dot-Walk zu einem gewünschten Wert durchführen oder eine Kennzeichnung verwenden. Zum Beispiel: oder
Standard: Das System gibt immer die sys_ID zurück |
| Typ | Beschreibung |
|---|---|
| Stream | Objekt, das zur Interaktion mit einem Stream von Elementen wie Datensätzen verwendet wird. |
Dieses Beispiel zeigt, wie Felder ausgewählt werden, die in der Abfrage angezeigt und verwendet werden sollen $ANZEIGE 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(Zeichenfolgenfelder)
Gibt das Ergebnis der Abfrage als optionales Objekt zurück, das die angegebenen Felder enthält.
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 Auswählen () Methode zum Rückgeben eines Stream-Objekts.
Sie können eine Kennzeichnung an einen Feldnamen anhängen, um die Metadaten des Felds anstelle des Felds zurückzugeben. Beispiel: Mithilfe des Feldnamens Unternehmens$ANZEIGE Gibt den Anzeigewert eines Unternehmensfelds zurück. Mögliche Kennzeichnungen sind:
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.CURRENCY_ZEICHENFOLGE: 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, Dot-Walk zu einem gewünschten Wert durchführen oder eine Kennzeichnung verwenden. Zum Beispiel: oder
Standard: Das System gibt immer die sys_ID zurück |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das zur Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie ein einzelner Datensatz als optionales Objekt zurückgegeben und angegebene Felder angezeigt werden.
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(Zeichenfolgenfeld)
Gibt die aggregierte Summe eines bestimmten numerischen Felds zurück.
- Ganzzahl
- Lang
- Gleitkommazahl
- Doppelt
- Währung
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | Feld, für das der Vorgang ausgeführt werden soll. |
| Typ | Beschreibung |
|---|---|
| Optional | Objekt, das zur 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 verwendet GlideQuery.Aggregat() Methode.
Verwenden Sie nach dem Transformieren der Abfrage die Abfrage () Methode in GlideRecord Oder GlideAggregat Klassen zum Abfragen der Datenbank.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideRecord oder GlideAggregate | GlideRecord-Objekt, das die Abfrage enthält. Wenn Sie verwendet haben GlideQuery.Aggregat() Methode, 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(Objektänderungen, Objekt selectedFields)
Aktualisiert einen vorhandenen Datensatz, der den definierten Bedingungen entspricht.
Rufen Sie vor der Verwendung dieser Methode auf Wobei() Methode zum Angeben der Bedingungen, 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. |
| selectedFields | 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 zur 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 (Objektänderungen)
Aktualisiert alle vorhandenen Datensätze, die den definierten Bedingungen entsprechen. Gibt die Anzahl der aktualisierten Datensätze zurück.
Rufen Sie vor der Verwendung dieser Methode auf Wobei() Methode zum Angeben der Bedingungen, 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 Datensätze enthält, die aktualisiert wurden. Schlüssel:
|
Dieses Beispiel zeigt, wie Datensätze aktualisiert werden, die einem definierten Kriterium entsprechen.
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, Zeichenfolgenoperator, beliebiger Wert)
Fügt der Abfrage eine WHERE-Klausel hinzu, die Werte basierend auf einer bestimmten Bedingung zurückgibt.
| Name | Typ | Beschreibung |
|---|---|---|
| FieldOrQuery | Zeichenfolge oder GlideQuery | Feld oder ein anderes GlideQuery-Objekt, das in der WHERE-Klausel verwendet wird. Wenn Sie ein Feld übergeben, können Sie DOT-Walk zu einem gewünschten Wert durchführen. Beispiel: „company.name“ . |
| operator | Zeichenfolge | Optional. In der WHERE-Klausel verwendeter Operator. Wenn Sie kein Argument übergeben, verwendet das System den Operator =. |
| Wert | Beliebig | In der WHERE-Klausel verwendeter Wert. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie Datensätze aus der Anwendertabelle zurückgegeben werden, bei der „aktiv“ auf „wahr“ und die letzte Anmeldung des Anwenders nach einem angegebenen 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, wobei „aktiv“ auf „wahr“ und die Priorität oder der Schweregrad „1“ festgelegt 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 – where NotNull(Zeichenfolgenfeld)
Gibt Datensätze zurück, die keinen Nullwert in einem bestimmten Feld enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Anwendertabelle 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 – where Null(Zeichenfolgenfeld)
Gibt Datensätze zurück, die einen Nullwert in einem bestimmten Feld enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie die Anwendertabelle 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 aus GlideRecordSecure API zum sicheren Abfragen der Datenbank bei Einhaltung von ACLs.
| 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"
}