GlideRecord : Client
Die GlideRecord- API stellt Methoden bereit, die Datenbankvorgänge ausführen. Diese API ermöglicht die Verwendung einiger GlideRecord-Funktionen in clientseitigen Skripts, z. B. Client-Skripts und UI-Richtlinienskripts.
Ein GlideRecord enthält sowohl Datensätze als auch Felder. Mit clientseitigen GlideRecord -Methoden erstellte Abfragen werden auf dem Server ausgeführt. Daher wird vom Client-Browser eine Anforderung zum Abrufen der Datensatzdaten gestellt.
Die clientseitige GlideRecord-API wird in bereichsbezogenen Anwendungen nicht unterstützt. Erstellen Sie stattdessen eine Skripteinbindung, und verwenden Sie die GlideAJAX- API oder die REST APIs. Darüber hinaus wendet diese API Zugriffssteuerungslisten (ACLs) basierend auf den Anmeldeinformationen des Benutzers an, der das Skript ausführt. Um den Code auf dem Server ohne ACLs auszuführen, verwenden Sie die GlideAjax- API.
Client side GlideRecord – GlideRecord(String tableName)
Erstellt eine Instanz der GlideRecord-Klasse für die angegebene Tabelle.
| Name | Typ | Beschreibung |
|---|---|---|
| tableName | Zeichenfolge | Die zu verwendende Tabelle. |
var now_GR = new GlideRecord('incident');
Client side GlideRecord – addOrderBy(String column)
Fügt eine Spalte zum Sortieren in der Abfrage hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| column | Zeichenfolge | Spalte, nach der der Ergebnissatz sortiert werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
Client side GlideRecord – addQuery(String name, Object value)
Fügt eine Abfrage hinzu, um Datensätze zurückzugeben, bei denen der angegebene Feldname einem angegebenen Wert entspricht (oder sich in einer Liste von Werten befindet).
Wenn Sie mit SQL vertraut sind, ähnelt diese Methode der „where“ -Klausel. Sie können eine oder mehrere Abfragen für einen einzelnen Filter erstellen, indem Sie diese Methode mehrmals aufrufen. Bei dieser Methode werden die Abfragen mit UND verknüpft. Wenn Sie alle gewünschten Abfragen definiert haben, rufen Sie Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert) auf, um die angegebene Abfrageklausel (den Filter) auszuführen.
Um einen anderen Vorgang als AND auszuführen, verwenden Sie entweder die Methode addQuery(Zeichenfolgenname , Objektoperator, Objektwert) oder die Methode setEncodedQuery().
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name des zu überprüfenden Felds. |
| Wert | Objekt | Wert oder Liste der Werte, nach denen abgefragt werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
Beispiel für mehrere Abfragen
var now_GR = new GlideRecord('incident');
now_GR.addQuery('priority', 4); // Priority is 4 – Low and,
now_GR.addQuery('state', 3); // State is On Hold
now_GR.query(response);
function response(result) {
while(result.next()) {
// Print all INC with priority 4 – Low AND state is On Hold
console.log(result.getValue('number'));
}
}
Beispiel für die Übergabe eines Zeichenfolgenobjekts
var now_GR = new GlideRecord('incident');
now_GR.addQuery('short_description', new String('USB device not working')); // string object
now_GR.addQuery('priority', 4); //number
now_GR.query(response);
function response(result) {
while(result.next()) {
// Print all INC with priority 4 – Low AND short description contains 'USB device not working'
console.log(result.getValue('number'));
}
}
Client side GlideRecord – addQuery(String name, Object operator, Object value)
Fügt einen Filter hinzu, um Datensätze zurückzugeben, bei denen das Feld die angegebene Bedingung erfüllt (Feld, Operator, Wert).
Wenn Sie mit SQL vertraut sind, ähnelt diese Methode der „where“ -Klausel. Sie können eine oder mehrere Abfragen für einen einzelnen Filter erstellen, indem Sie diese Methode mehrmals aufrufen. Wenn Sie alle gewünschten Abfragen definiert haben, rufen Sie Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert) auf, um die angegebene Abfrageklausel (den Filter) auszuführen.
Um komplexere Abfragen zu erstellen, verwenden Sie die Methode setEncodedQuery().
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name des zu überprüfenden Felds. |
| operator | Objekt | Abfrageoperator. Die verfügbaren Werte sind vom Datentyp des value-Parameters abhängig. Zahlen:
Zeichenfolgen (in Großbuchstaben):
Hinweis: Verwenden Sie nicht den LIKE-Operator. Verwenden Sie stattdessen CONTAINS. |
| Wert | Objekt | Wert, nach dem abgefragt werden soll (Groß- und Kleinschreibung wird nicht berücksichtigt). |
| Typ | Beschreibung |
|---|---|
| void |
Beispiel, das zeigt, wie einem Filter mehrere Abfragen hinzugefügt werden.
var now_GR = new GlideRecord('incident');
now_GR.addQuery('priority', '<=', 2); // Priority is 2 or higher and,
now_GR.addQuery('short_description', 'CONTAINS', 'crash'); // Short description contains the word crash
now_GR.query(response);
function response(result) {
while(result.next()) {
// Print all INC with priority of 2 or higher AND short description contains "crash"
console.log(result.getValue('number'));
}
}
Beispiel für die Übergabe eines Arrays, um mehrere Bedingungen in einer einzigen Abfrage zu überprüfen.
var priorities = [4,2];
var now_GR = new GlideRecord('incident');
now_GR.addQuery('priority', 'IN', priorities);
now_GR.query(response);
function response(result) {
while(result.next()) {
console.log(result.getValue('number'));
}
}
Client side GlideRecord – deleteRecord(Function responseFunction)
Löscht den aktuellen Datensatz und ruft nach Abschluss die angegebene Antwortfunktion auf.
| Name | Typ | Beschreibung |
|---|---|---|
| responseFunction | Funktion | Antwortfunktion für den Rückruf. |
| Typ | Beschreibung |
|---|---|
| Keine |
In diesem Beispiel wird ein -Datensatz gelöscht und anschließend die Antwortfunktion aufgerufen, um eine Warnmeldung zu protokollieren.
var recordGR = new GlideRecord('incident');
if (recordGR.get('99ebb4156fa831005be8883e6b3ee4b9')) {
recordGR.deleteRecord(response);
}
function response(result) {
alert('Deleted record sys_id: ' + result.getValue('sys_id'));
}
Ausgabe:
Deleted record sys_id: 99ebb4156fa831005be8883e6b3ee4b9
Client- seitiger GlideRecord – get(String sys_id)
Führt eine GlideRecord-Abfrage für einen Datensatz mit der angegebenen sys_id aus. Es wird erwartet, dass diese Methode für die Abfrage einzelner Datensätze verwendet wird. Daher wird vor dem Zurückkehren ein next-Vorgang durchgeführt.
| Name | Typ | Beschreibung |
|---|---|---|
| sys_id | Zeichenfolge | Die sys_id des zu suchenden Datensatzes. |
| Typ | Beschreibung |
|---|---|
| Boolean | „True“, wenn ein oder mehrere übereinstimmende Datensätze gefunden wurden. „False“, wenn keine Datensätze gefunden wurden. |
Client side GlideRecord – getEncodedQuery()
Ruft die Abfragebedingung des aktuellen Ergebnissatzes als codierte Abfragezeichenfolge ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Codierte Abfragezeichenfolge, die alle Bedingungen enthält, die der Abfrage hinzugefügt wurden. |
Client side GlideRecord – getLimit()
Gibt den Grenzwert für Datensätze zurück, die von der GlideRecord-Abfrage zurückgegeben werden sollen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zahl | Grenzwert für Datensätze, die von der GlideRecord-Abfrage zurückgegeben werden sollen. |
Client side GlideRecord – getTableName()
Ruft den Namen der Tabelle ab, die diesem GlideRecord zugeordnet ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Der Tabellenname |
var item = new GlideRecord('sc_request');
item.addQuery('sys_id', current.request);
item.query(itemResponse);
function itemResponse(item) {
alert('The table is ' + item.getTableName());
}
Client side GlideRecord – hasNext()
Bestimmt, ob weitere Datensätze im GlideRecord vorhanden sind.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | „True“, wenn der Abfragesatz mehr Datensätze enthält. |
Client side GlideRecord – insert(Function responseFunction)
Fügt einen neuen Datensatz mit den Feldwerten ein, die für den aktuellen Datensatz festgelegt wurden.
| Name | Typ | Beschreibung |
|---|---|---|
| responseFunction | Funktion | Funktion, die ausgeführt werden soll, sobald der Datensatz eingefügt wurde. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Sys_id des eingefügten Datensatzes oder null, wenn der Datensatz nicht eingefügt wurde. |
var now_GR = new GlideRecord('incident');
now_GR.short_description = 'Learn about GlideRecord';
var recResponse = now_GR.insert(handleResponse);
function handleResponse(recResponse, answer) {
// Answer will be the sys_id of the created record or null
alert('Newly created sys_id is - ' + answer + ' exists');
}
Client side GlideRecord – next()
Geht zum nächsten Datensatz im GlideRecord.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | „False“, wenn der Abfragesatz keine weiteren Datensätze enthält. |
var rec = new GlideRecord('incident');
rec.query(recResponse);
function recResponse(rec) {
while (rec.next()) {
alert(rec.number + ' exists');
}
}
Client side GlideRecord – orderBy(String column)
Gibt eine orderBy-Spalte an. Kann mehr als einmal aufgerufen werden, um nach mehreren Spalten zu sortieren.
| Name | Typ | Beschreibung |
|---|---|---|
| column | Zeichenfolge | Spaltenname, der zum Sortieren des Ergebnissatzes verwendet werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
function UpdateProjectWBS(project) {
var count = 0;
var child = new GlideRecord('pm_project_task');
child.addQuery('parent', project.sys_id);
child.orderBy('order');
child.orderBy('number');
child.query(childResponse);
g_form.addInfoMessage(count + ' Project Tasks updated');
}
function childResponse(child) {
var len = child.getRowCount().toString().length;
var seq = 0;
while (child.next()) {
count += UpdateProjectTaskWBS(child, 1, ++seq, len, '');
}
}
Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert)
Führt die Abfrage an den Server für die Tabelle basierend auf dem Filter „addQuery()“ aus. Diese Methode fragt die GlideRecord-Tabelle sowie etwaige Verweise auf die Tabelle ab.
Führen Sie keine synchronen Abfrageaufrufe durch. Wenn Sie eine Abfrage ohne Antwortfunktion ausführen, wird der Anruf synchronisiert. Das heißt, die Anzeige wartet auf die Abfrageantwort, bevor Sie fortfahren.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Optional. Der Name eines abzufragenden Felds. |
| responseFunction | Funktion | Die Funktion, die aufgerufen wird, wenn die Abfrageergebnisse verfügbar sind. |
| Wert | Zeichenfolge | Optional. Der Feldwert, nach dem abgefragt werden soll. Jedes Literalpaar wird als Abfragepaar betrachtet (Feld: Wert). |
| Typ | Beschreibung |
|---|---|
| void |
Im Folgenden finden Sie ein einfaches Beispiel mit einer Antwortfunktion.
var rec = new GlideRecord('incident');
rec.query(recResponse);
function recResponse(rec) {
while (rec.next()) {
alert(rec.number + ' exists');
}
}
Das folgende Beispiel zeigt den Unterschied zwischen synchroner und asynchroner Syntax anhand eines asynchronen Beispiels.
// synchronous call syntax (no response function): DO NOT USE
query();
// asynchronous call syntax
// performs query with current conditions, calls responseFunction when done
query(responseFunction)
// synchronous call syntax (no response function): DO NOT USE
// adds "category=hardware" to current query conditions and performs query
query('category', 'hardware')
// asynchronous call syntax
// adds "category=hardware" to current query conditions, performs query, and calls responseFunction when done
query('category', 'hardware', responseFunction)
// asynchronous call example
// adds "user_name=abel.tuter" to current query conditions, performs query, and calls defined response function when done
function onLoad() {
var now_GR = new GlideRecord("sys_user");
now_GR.query("user_name", "abel.tuter", function(now_GR) {
if (now_GR.next()) {
alert("You can access fields by name from the client API, just like in the server API:\n now_GR.name = " + now_GR.name);
alert("You can also access fields using getValue():\n now_GR.getValue(\"email\") = " + now_GR.getValue("email"));
if (now_GR.getDisplayValue) {
alert("In Service Portal, Mobile, and Agent Workspace, you can access a field's display value:\n now_GR.getDisplayValue(\"company\") = " + now_GR.getDisplayValue("company"));
} else {
alert("On the desktop, you cannot access a field's display value, but can get its sys_id:\n now_GR.company = " + now_GR.company);
}
alert("You cannot dot-walk in the client API:\n now_GR.company.name = " + now_GR.company.name);
}
});
}
Clientseitiges GlideRecord – setEncodedQuery(String encodedQuery)
Fügt der aktuellen Abfrageklausel eine angegebene codierte Abfragezeichenfolge hinzu.
Mit dieser Methode können Sie im Gegensatz zu anderen clientseitigen addQuery()- Methoden komplexe Filter (codierte Abfragezeichenfolgen) in einem einzigen Abfrageaufruf angeben. Wenn Sie alle gewünschten Abfragen definiert haben, rufen Sie Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert) auf, um die angegebene Abfrageklausel (den Filter) auszuführen. Weitere Informationen zu codierten Abfragezeichenfolgen finden Sie unter Codierte Abfragezeichenfolgen.
Wenn Sie diese Methode mehrmals vor der Abfragemethode () aufrufen, werden die Abfragen UND-verknüpft.
| Name | Typ | Beschreibung |
|---|---|---|
| encodedQuery | Zeichenfolge | Codierte Abfragezeichenfolge, die der aktuellen Abfrageklausel hinzugefügt werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
var now_GR = new GlideRecord('incident');
now_GR.setEncodedQuery('priority=4^ORstate=3');
now_GR.query(response);
function response(result) {
while(result.next()) {
console.log(result.getValue('number'));
}
}
Client side GlideRecord – setLimit(Number maxQuery)
Legt den Grenzwert für die Anzahl der Datensätze im GlideRecord fest.
| Name | Typ | Beschreibung |
|---|---|---|
| maxQuery | Zahl | Grenzwert für die Anzahl der abzurufenden Datensätze. |
| Typ | Beschreibung |
|---|---|
| void |