GlideQuery: Bereichsbezogen, global
Die GlideQuery -Skripteinbindung ist eine Alternative zur GlideRecord- API zum Ausführen von CRUD-Vorgängen für Datensatzdaten aus serverseitigen Skripts.
Mit der GlideQuery-Skripteinbindung 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 allgemeine Leistungsprobleme, ohne vertiefte Kenntnisse über GlideRecord zu benötigen.
new global.GlideQuery('sys_user')
// ...Diese Skripteinbindung erfordert das Plugin „GlideQuery“ [com.sn_glidequery].Implementierung
Diese Skripteinbindung arbeitet mit der Stream -API und der optionalen API in einem Builder-Muster, bei dem die Methodenaufrufe verkettet sind, 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 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 den einzelnen APIs 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 Neuzuweisungen von mehr als vier 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 -Skripteinbindung löst einen Fehler aus, wenn bei der Abfrage ein Problem auftritt, und enthält eine verständliche Erklärung. Dieses Skript enthält Prüfungen für:
- Ungültige Felder
- Ungültige Werttypen für ein Feld
- Ungültige Werte für Auswahlfelder
- Ungültige Abfrageoperatoren
Das folgende Codebeispiel 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 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 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-Skripteinbindung unterstützt Folgendes nicht:
- Lese- oder Schreibvorgänge in Tabellen, die keinen Zugriff von 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 Die folgende Abfrage ist beispielsweise 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 die Methode wo() an, um zu verstehen, wie eine untergeordnete Abfrage geschachtelt wird.
Zwischen- und Terminalmethoden in GlideQuery
Die GlideQuery-Skripteinbindung verwendet zwei Kategorien von Methoden: Zwischen- und Terminalmethoden. Zwischenmethoden sind die Methoden, die einen Streamzurückgeben, eine API, die für die Interaktion mit einem Stream von Elementen wie Datensätzen verwendet wird. Sie ermöglichen eine flüssige Syntax, bei der Aufrufe miteinander verkettet sind. Terminalmethoden sind Methoden, die keinen Stream zurückgeben und daher die Kette der Stream -Methodenaufrufe stoppen.
In der GlideQuery-Skripteinbindung sind Methoden wie wo(), orderBy()und disableWorkflow() Zwischenmethoden, die ein neues GlideQuery-Objekt zurückgeben. Auch die beliebtesten Terminalmethoden der GlideQuery -Skripteinbindungen, Select() und SelectOne(), sind Terminalmethoden. Diese Methoden werden aufgerufen, wenn GlideQuery konfiguriert wurde und die Verarbeitung von Datensätzen beginnen kann. Es ist wichtig, die Unterschiede zwischen diesen beiden Methodentypen zu beachten, wenn Sie Aufrufe für die GlideQuery-Skripteinbindung entsprechend Ihren spezifischen Anwendungsfällen konfigurieren. Weitere Informationen zu Zwischen- und Terminalmethoden finden Sie im Artikel GlideQuery – Streamverarbeitung Teil 1.
Die folgenden Methoden werden als fortgeschrittene Methoden klassifiziert:
- aggregat(StringaggregatType, Zeichenfolgenfeld)
- disableAutoSysFields ()
- disableWorkflow ()
- erzwingenUpdate()
- groupBy(Zeichenfolgenfelder)
- mit (Zeichenfolgen-aggregatType, Zeichenfolgenfeld, Zeichenfolgenoperator, Zahlenwert)
- limit(Anzahllimit)
- orderBy (Zeichenfolgenfelder)
- orderByDesc(ZeichenfolgenfeldOrAggregat, Zeichenfolgenfeld)
- orWhere(Zeichenfolge fieldOrQuery, Zeichenfolgenoperator, Beliebiger Wert)
- orWhereNotNull(Zeichenfolgenfeld)
- orWhereNull(Zeichenfolgenfeld)
- wobei (ZeichenfolgenfeldOrAbfrage, Zeichenfolgenoperator, Beliebiger Wert)
- woNotNull(Zeichenfolgenfeld)
- woNull(Zeichenfolgenfeld)
- mit ACLs ()
Die folgenden Methoden werden als Terminal klassifiziert:
- avg(Zeichenfolgenfeld)
- Anzahl ()
- löschenMehrere ()
- get(Zeichenfolgenschlüssel, Array selectedFields)
- getBy(Object keyValues, Array selectedFields)
- insert(Object keyValues, Object selectedFields)
- insertOrUpdate(Object changes, Object selectedFields)
- max(Zeichenfolgenfeld)
- min(Zeichenfolgenfeld)
- auswählen (Zeichenfolgenfelder)
- SelectOne(Zeichenfolgenfelder)
- sum(Zeichenfolgenfeld)
- toGlideRecord ()
- update(Objekt ändert sich, Objekt selectedFields)
- updateMultiple(Objekt ändert sich)
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 (StringaggregatType, Zeichenfolgenfeld)
Aggregiert ein Feld mit einer angegebenen Aggregationsfunktion.
Verwenden Sie diese Methode, um Abfragen zu erstellen, die für mehrere Felder aggregieren oder mehrere Aggregatfunktionen verwenden oder wenn Sie die groupBy()- Methode verwenden müssen. Wenn Sie nur für ein Feld mit einer Funktion aggregieren möchten und nicht groupBy()verwenden müssen, verwenden Sie stattdessen eine der folgenden Methoden:
- Durchschnitt ()
- min ()
- Max ()
- Anzahl ()
| Name | Typ | Beschreibung |
|---|---|---|
| aggregatType | 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 - avg(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. |
In diesem Beispiel wird gezeigt, 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 vorhergehenden Where-Klauseln angegeben ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel werden alle aktiven Datensätze in der Benutzertabelle gelöscht, in 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 dem Präfix „ sys “ 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 im folgenden Beispiel „sys_updated_on“, „sys_mod_count“ usw. aktualisiert.
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. |
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 – erzwingenUpdate()
Erzwingt eine Datenbankaktualisierung, auch wenn keine Datensatzänderungen vorgenommen werden. Beispielsweise können Sie mit dieser Methode die Ausführung einer Geschäftsregel erzwingen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel werden Aufgabendatensätze mit einer bestimmten sys_id erzwungen.
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. |
| 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Beispiel, das einen Datensatz basierend auf der 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 enthält, basierend auf einer Reihe von Name-Wert-Paaren, 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 der Name der Felder und die Werte die abzufragenden Werte sind. |
| 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Beispiel, das einen Datensatz zurückgibt, indem der Name 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(Zeichenfolgefelder)
Gruppiert die Abfrageergebnisse nach einem oder mehreren festgelegten Feldern.
Sie müssen diese Methode mit der aggregat()- 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 – mit (Zeichenfolgen-aggregatType, Zeichenfolgenfeld, Zeichenfolgenoperator, Zahlenwert)
Filtert Zusammenfassungsgruppen, sodass Sie nur Gruppen von Ergebnissen anzeigen können, die einer angegebenen Bedingung entsprechen.
Muss diese Methode mit den Methoden „ aggregat() “ oder „groupBy()“ verwenden.
| Name | Typ | Beschreibung |
|---|---|---|
| aggregatType | 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 | 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 – einfügen (Objekt „keyValues“, Objekt „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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
In diesem Beispiel wird gezeigt, 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, falls 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
Dieses Beispiel zeigt, wie Sie einen neuen Datensatz einfügen, 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);
In diesem Beispiel wird gezeigt, 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 | Nummer | Anzahl der zurückzugebenden Datensätze. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird gezeigt, wie Sie die zurückgegebenen Ergebnisse auf fünf Datensätze beschränken.
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 aggregierte Maximum 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
In diesem Beispiel wird gezeigt, 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
In diesem Beispiel wird gezeigt, 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)
Sortiert das zurückgegebene Ergebnis in aufsteigender Reihenfolge nach einem bestimmten Feld.
| 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 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)
Ordnet das zurückgegebene Ergebnis in absteigender Reihenfolge nach einem bestimmten Feld.
| Name | Typ | Beschreibung |
|---|---|---|
| fieldOrAggregate | Zeichenfolge | Wenn die Abfrage nicht die Methode „ aggregat() “ verwendet, übergeben Sie das Feld, nach dem die Ergebnisse sortiert werden sollen. Wenn die Abfrage die Methode „ aggregat() “ verwendet, ü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 deraggregat()- Methode. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird gezeigt, wie Sie die Ergebnisse in absteigender Reihenfolge nach Nummern sortieren.
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"
}
In diesem Beispiel wird gezeigt, wie ein aggregiertes Ergebnis anhand 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, 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 wo-Klausel verwendet wird. Wenn Sie ein Feld übergeben, können Sie einen 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 einfügen. |
| Wert | Beliebig | In der ODER-Klausel verwendeter Wert. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird gezeigt, 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"
}
In diesem Beispiel wird gezeigt, 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(Zeichenfolgenfeld)
Fügt eine ODER-Klausel hinzu, die Datensätze zurückgibt, die in einem bestimmten Feld keinen Nullwert enthalten.
| Name | Typ | Beschreibung |
|---|---|---|
| Feld | Zeichenfolge | In der Abfrage verwendetes Feld. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
Dieses Beispiel zeigt, wie Sie die Anwendertabelle abfragen und Ergebnisse zurückgeben, 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 Sie die Anwendertabelle abfragen und Datensätze zurückgeben, 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 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 |
NOT IN |
!= |
BETWEEN |
GT_ODER_GLEICH_FELD |
NICHT WIE |
> |
CONTAINS |
IN |
NSAMEAS |
>= |
DOES NOT CONTAIN |
INSTANCEOF |
EIN |
< |
DYNAMISCH |
WIE |
SAMEAS |
<= |
LEEREZeichenfolge |
LT_FIELD |
STARTSWITH |
ENDSWITH |
LT_ODER_GLEICH_FELD |
| 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, zurückgegeben als Stream-Objekt, 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 – auswählen (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 Werts des Felds zurückzugeben. Wenn Sie beispielsweise den Feldnamen company$DISPLAY verwenden, wird der Anzeigewert eines Unternehmensfelds zurückgegeben. Mögliche Kennzeichnungen:
DISPLAY: 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:Yen123,45.CURRENCY_STRING: Gibt die Währungszeichenfolge aus einem Währungsfeld 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, einen Dot-Walk bis zum gewünschten Wert durchführen 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 mit $DISPLAY den Anzeigewert eines Felds zurückgeben.
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 um zu testen, ob ein Datensatz vorhanden ist. Wenn Sie mehrere Datensätze zurückgeben, verwenden Sie die Select () -Methode, um ein Stream-Objekt zurückzugeben.
Sie können eine Kennzeichnung an einen Feldnamen anhängen, um die Metadaten des Felds anstelle des Werts des Felds zurückzugeben. Wenn Sie beispielsweise den Feldnamen company$DISPLAY verwenden, wird der Anzeigewert eines Unternehmensfelds zurückgegeben. Mögliche Kennzeichnungen:
DISPLAY: 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:Yen123,45.CURRENCY_STRING: Gibt die Währungszeichenfolge aus einem Währungsfeld 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, einen Dot-Walk bis zum gewünschten Wert durchführen 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. |
In diesem Beispiel wird gezeigt, wie ein einzelner Datensatz als optionales Objekt zurückgegeben und die angegebenen 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 Gesamtsumme 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
In diesem Beispiel wird gezeigt, 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 GlideAggregate-Objekt zurück, wenn die Abfrage die GlideQuery.aggregate()- Methode verwendet.
Verwenden Sie nach dem Transformieren der Abfrage die Methode query() in der Klasse 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 Methode GlideQuery.aggregate() verwendet haben, gibt die Methode stattdessen ein GlideAggregrate-Objekt zurück. |
In diesem Beispiel wird gezeigt, wie ein GlideQuery-Objekt in ein GlideRecord-Objekt 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.
Rufen Sie vor der Verwendung dieser Methode die Methode wo() 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 Feldern in der Tabelle entsprechen. |
| 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 für die Interaktion mit einem einzelnen Datensatz verwendet wird. |
In diesem Beispiel wird gezeigt, 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.
Rufen Sie vor der Verwendung dieser Methode die Methode wo() auf, um die Bedingungen anzugeben, die die Datensätze zum Aktualisieren erfüllen müssen.
| Name | Typ | Beschreibung |
|---|---|---|
| Changes | Objekt | Objekt mit Name-Wert-Paaren, die im Datensatz aktualisiert werden sollen. Namen müssen Feldern in der Tabelle entsprechen. |
| Typ | Beschreibung |
|---|---|
| Objekt | Objekt, das die Anzahl der aktualisierten Datensätze enthält. Schlüssel umfassen:
|
In diesem Beispiel wird gezeigt, wie Datensätze aktualisiert werden, die ein definiertes Kriterium 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 – wobei (ZeichenfolgenfeldOrAbfrage, 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 wo-Klausel verwendet wird. Wenn Sie ein Feld übergeben, können Sie einen Dot-Walk zu einem gewünschten Wert durchführen. Beispiel: „company.name“. |
| operator | Zeichenfolge | Optional. Operator, der in der wo-Klausel verwendet wird. Wenn Sie kein Argument übergeben, verwendet das System den Operator =. |
| Wert | Beliebig | Wert, der in der wo-Klausel verwendet wird. |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird gezeigt, wie Datensätze aus der Benutzertabelle zurückgegeben werden, bei denen „active“ auf „true“ festgelegt ist und die letzte Anmeldung des Benutzers nach einem bestimmten Datum erfolgt.
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 Sie Datensätze aus der Incident-Tabelle zurückgeben, bei denen „Aktiv“ auf „true“ und die Priorität bzw. der Schweregrad auf „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 - woNotNull(Zeichenfolgenfeld)
Gibt Datensätze zurück, die in einem bestimmten Feld keinen Nullwert 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 - woNull(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 Sie die Anwendertabelle abfragen und Datensätze zurückgeben, 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 – mit ACLs ()
Führt die Abfrage mithilfe der GlideRecordSecure- API aus, um die Datenbank sicher unter Berücksichtigung von ACLs abzufragen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| GlideQuery | Das Abfrageobjekt, das erstellt wird. |
In diesem Beispiel wird gezeigt, 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"
}