GlideRecord : Bereichsbezogen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 45 Minuten Lesedauer
  • Die bereichsbezogene GlideRecord -API wird für Datenbankvorgänge verwendet.

    Die GlideRecord -API ist das primäre Kommunikationsmittel mit der Datenbank im serverseitigen Code. Ein GlideRecord ist ein Objekt, das Datensätze aus einer einzelnen Tabelle enthält. Verwenden Sie die API, um ein GlideRecord-Objekt zu instanziieren und Abfrageparameter, Filter, Grenzwerte und Reihenfolgen hinzuzufügen.

    Weitere Informationen zum Erstellen und Ausführen von Abfragen finden Sie im GlideRecord -Artikel.

    Informationen zu einer Klasse, die dieselben Funktionen wie GlideRecord ausführt und ACLs erzwingt, finden Sie unter GlideRecordSecure verwenden.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Rufen Sie Werte aus Datensätzen ab

    In den meisten Fällen sollten Sie kein Dot-Walking verwenden, um Werte aus einem Datensatz abzurufen. Beim Dot-Walking wird das gesamte Objekt anstelle des Feldwerts abgerufen. Das Abrufen des Objekts verbraucht mehr Speicher und kann zu unerwünschten Ergebnissen führen, wenn es in Arrays oder in Serviceportalverwendet wird.

    Anstatt das gesamte Objekt abzurufen, können Sie eine der folgenden Methoden verwenden, um die Feldwerte zu kopieren:

    Wenn ein Dot-Walking durch ein GlideElement-Objekt erforderlich ist, rufen Sie Werte mit der toString()- Methode ab. Beispielsweise benötigen Sie möglicherweise die sys_id des Managers des aktuellen Anrufers, um ein anderes Referenzfeld festzulegen. Das folgende Beispiel zeigt, wie Sie den Zeichenfolgenwert anstelle des gesamten Objekts abrufen:
    var mgr = current.caller_id.manager.toString();

    Scoped GlideRecord – addActiveQuery()

    Fügt einen Filter hinzu, um aktive Datensätze zurückzugeben.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Filter, um aktive Datensätze zurückzugeben.
    var inc = new GlideRecord('incident');
    inc.addActiveQuery();
    inc.query();

    Bereichsbezogener GlideRecord - addEncodedQuery(String query, BooleanforceFieldACL)

    Fügt eine codierte Abfrage anderen Abfragen hinzu, die möglicherweise festgelegt wurden.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Eine codierte Abfragezeichenfolge.
    forceFieldACL Boolean Optional. Kennzeichnung, die angibt, ob Feld-ACL-Regeln (Access Control List, Zugriffssteuerungsliste) erzwungen werden sollen.
    Gültige Werte:
    • „wahr“: Feld-ACLs erzwingen.
    • „falsch“: Feld-ACLs nicht erzwingen.

    Standardwert: false

    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    void
    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.addInfoMessage(now_GR.getValue('number'));
    }

    Scoped GlideRecord – addFunction(Object function)

    Wendet ein vordefiniertes GlideDBFunctionBuilder-Objekt auf einen Datensatz an.

    Verwenden Sie die bereichsbezogene Klasse „GlideDBFunctionBuilder“, um eine Funktion zu definieren. Nachdem die Funktion definiert wurde, verwenden Sie die addFunction(Object function)-Methode, um die Funktion auf einen Datensatz anzuwenden.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    function Objekt GlideDBFunctionBuilder-Objekt, das einen SQL-Vorgang definiert.
    Tabelle : 6. Rückgaben
    Typ Beschreibung
    void
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();
    
    // Query incidents in which order + priority is less than 5 and display that added value
    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(myAddingFunction);
    now_GR.addQuery(myAddingFunction, '<', 5);
    now_GR.query();
    while(now_GR.next())
      gs.info(now_GR.getValue(myAddingFunction));

    Ausgabe:

    1
    4
    3
    1
    1
    2
    1

    Bereichsbezogener GlideRecord – addJoinQuery(String joinTable, Zeichenfolge primaryField, Zeichenfolge joinTableField)

    Fügt einen Filter hinzu, um Datensätze basierend auf einer Beziehung in einer Tabelle zurückzugeben, die sich auf den aktuellen GlideRecord bezieht.

    Sie können diese Methode verwenden, um alle Benutzer in der Datenbankgruppe über die Tabelle „Gruppenmitglieder“ [sys_user_grmember] zu finden oder um alle Probleme zu finden, denen ein Incident zugewiesen ist, über die Beziehung incident.problem_id.

    Dies ist kein echter Datenbank-Join, sondern addJoinQuery() fügt eine Unterabfrage hinzu. Während also der Ergebnissatz basierend auf der Verknüpfung begrenzt wird, haben Sie nur Zugriff auf die Felder in der Basistabelle (also in der Tabelle, mit der der GlideRecord initialisiert wurde).

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    joinTable Zeichenfolge Name der Tabelle, die im Join verwendet werden soll, z. B. 'incident'.
    primaryField Zeichenfolge Optional. Name des Felds in GlideRecord, das zum Verknüpfen des im Parameter joinTableField angegebenen Felds verwendet werden soll.

    Standard: sys_id

    joinTableField Zeichenfolge Optional. Name des Felds in der in joinTable angegebenen Tabelle, das zum Verknüpfen der Tabellen verwendet werden soll.

    Standard: Erstes Feld in der in joinTable angegebenen Tabelle, das ein Referenzfeld für die aktuelle GlideRecord-Tabelle ist.

    Tabelle : 8. Rückgaben
    Typ Beschreibung
    GlideQueryCondition Filter, der Datensätze auflistet, bei denen die Beziehungen übereinstimmen.

    Suchen Sie Probleme, denen ein Incident zugeordnet ist. In diesem Beispiel werden Probleme mit zugeordneten Incidents zurückgegeben. Es werden jedoch keine Werte aus den Incidents abgerufen, die als Teil der Abfrage zurückgegeben werden.

    var prob = new GlideRecord('problem');
    prob.addJoinQuery('incident');
    prob.query();

    Suchen Sie inaktive Probleme mit zugeordneten Incidents.

    // Look for Problem records that have associated Incident records
    var now_GR = new GlideRecord('problem');
    var grSQ = now_GR.addJoinQuery('incident');
     
    // Where the Problem records are "active=false"
    now_GR.addQuery('active', 'false');
     
    // And the Incident records are "active=true"
    grSQ.addCondition('active', 'true');
     
    // Query
    now_GR.query();
     
    // Iterate and output results
    while (now_GR.next()) {
    gs.info(now_GR.getValue('number'));
    }

    Suchen Sie nach Problemen, denen Incidents zugeordnet sind, bei denen der Wert des Felds „Incident caller_id “ mit dem Wert des Felds „Problem opened_by “ übereinstimmt.

    var now_GR = new GlideRecord('problem'); 
            now_GR.addJoinQuery('incident', 'opened_by', 'caller_id'); 
            now_GR.query();

    Scoped GlideRecord – addNotNullQuery(String fieldName)

    Filter, der Datensätze angibt, bei denen der im Parameter übergebene Wert des Felds nicht NULL ist.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Name des zu überprüfenden Felds.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Filter, der Datensätze angibt, bei denen der im Parameter übergebene Wert des Felds nicht NULL ist.
    var target = new GlideRecord('incident'); 
    target.addNotNullQuery('short_description');
    target.query();   // Issue the query to the database to get all records where short_description is not null
    while (target.next()) {   
         // add code here to process the incident record
    }

    Scoped GlideRecord – addNullQuery(String fieldName)

    Fügt einen Filter hinzu, um Datensätze zurückzugeben, bei denen der Wert des angegebenen Felds NULL ist.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Name des zu überprüfenden Felds.
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Dem GlideRecord hinzugefügte Abfragebedingung.
    var target = new GlideRecord('incident'); 
    target.addNullQuery('short_description');
    target.query();   // Issue the query to the database to get all records where short_description is null
    while (target.next()) {   
       // add code here to process the incident record
    }

    Scoped GlideRecord – addQuery(String query)

    Fügt einen Filter hinzu, um Datensätze mithilfe einer codierten Abfragezeichenfolge zurückzugeben.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Eine codierte Abfragezeichenfolge.
    Tabelle : 14. Rückgaben
    Typ Beschreibung
    GlideQueryCondition Dem GlideRecord hinzugefügte Abfragebedingung.
    var rec = new GlideRecord('incident');
    rec.addQuery('active=true');
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      gs.info('Active incident ' + rec.getValue('number') + ' closed');
      rec.update();
    }

    Scoped GlideRecord – addQuery(String name, Object value)

    Erstellen Sie eine Suchabfrage, und geben Sie die Zeilen zurück, die der Anforderung entsprechen.

    Wenn Sie mit SQL vertraut sind, ähnelt diese Methode der „where“ -Klausel. Ein oder mehrere addQuery()-Aufrufe können in einer einzelnen Abfrage erfolgen; in diesem Fall wird für die Abfragen AND verwendet. Wenn für eine der Abfrage-Anweisungen OR verwendet werden muss, verwenden Sie die GlideQueryCondition-Methode addOrCondition().

    Wenn addQuery() mit nur zwei Parametern, dem Tabellennamen und dem Vergleichswert, aufgerufen wird, z. B. myObj.addQuery('category','Hardware');, wird davon ausgegangen, dass der Operator „gleich“ ist.

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 15. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des abzufragenden Tabellenfelds oder einer der folgenden reservierten Namen:
    • 123TEXTQUERY321: Fügt der Abfrage einen Zeichenfolgen-Suchbegriff hinzu. Geben Sie die Zeichenfolge an, die Sie als Wert abgleichen möchten. Verwenden Sie diese Option, um Datensätze mit Feldwerten zurückzugeben, die die Suchzeichenfolge enthalten. Diese Option durchsucht alle Felder in der Tabelle, die für die Indizierung und Suche konfiguriert sein müssen. Weitere Informationen zum Konfigurieren von Tabellen für die Indizierung und Suche finden Sie unter Einzelne Tabelle für die Indizierung und Suche konfigurieren.
    • 123TEXTINDEXGROUP321: Fügt der Abfrage eine Textindexgruppe hinzu. Geben Sie den Namen der Textindexgruppe aus der Tabelle „Textindexgruppen“ [ts_index_group], die Sie abfragen möchten, als Wert an. Verwenden Sie diese Option, um Suchergebnisse aus einer der Tabellen in einer Textindexgruppe zurückzugeben, wobei die Punktzahlen für die Ergebnisrelevanz anhand der Einstellungen dieser Textindexgruppe normalisiert werden. Weitere Informationen zum Konfigurieren von Textindexgruppen finden Sie unter Mehrere Tabellen für Indizierung und Suche konfigurieren.
    Hinweis:
    Weitere Informationen zur Verwendung der reservierten Namen finden Sie unter Abfragen von Tabellen im Skript.
    Wert Objekt Wert, nach dem abgefragt werden soll (Groß- und Kleinschreibung wird nicht berücksichtigt).
    Tabelle : 16. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Abfragebedingung wurde dem GlideRecord hinzugefügt.

    Dieses Codebeispiel zeigt, wie Sie die aktiven Datensätze in der Incident-Tabelle abfragen und dann alle auf inaktiv setzen.

    var rec = new GlideRecord('incident');
    rec.addQuery('active', true);
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      rec.update();
    }

    Dieses Codebeispiel fügt eine Abfrage für Datensätze hinzu, die mit „E-Mail-Server“ in der Tabelle „kb_knowledge“ übereinstimmen, wobei die Relevanzwerte für Suchergebnisse anhand von Einstellungen aus der Textindexgruppe des Portals berechnet werden.

    var now_GR = new GlideRecord("kb_knowledge);
    now_GR.addQuery("123TEXTQUERY321", "email server");
    now_GR.addQuery("123TEXTINDEXGROUP321", "portal");
    now_GR.query();

    Scoped GlideRecord – addQuery(String name, String operator, Object value)

    Bietet die Möglichkeit, eine Anforderung zu erstellen, die bei ihrer Ausführung die Zeilen der angegebenen Tabelle zurückgibt, die der Anforderung entsprechen.

    Wenn Sie mit SQL vertraut sind, ähnelt diese Methode der „where“ -Klausel. Ein oder mehrere addQuery()-Aufrufe können in einer einzelnen Abfrage erfolgen; in diesem Fall wird für die Abfragen AND verwendet. Wenn für eine der Abfrage-Anweisungen OR verwendet werden muss, verwenden Sie die GlideQueryCondition-Methode addOrCondition().

    Testen Sie Abfragen immer in einer Test- und Entwicklungsumgebung, bevor Sie sie in einer Produktionsinstanz bereitstellen. Eine falsch erstellte codierte Abfrage, z. B. das Hinzufügen eines ungültigen Feldnamens, führt zu einer ungültigen Abfrage. Wenn die ungültige Abfrage ausgeführt wird, wird der ungültige Teil der Abfragebedingung gelöscht und die Ergebnisse basieren auf dem gültigen Teil der Abfrage, der möglicherweise alle Datensätze aus der Tabelle zurückgibt. Die Methode insert(), update(), deleteRecord() oder deleteMultiple() kann bei schlechten Abfrageergebnissen zu Datenverlust führen.

    Sie können die Systemeigenschaft glide.invalid_query.returns_no_rows auf „true“ festlegen, damit Abfragen mit ungültigen codierten Abfragen keine Datensätze zurückgeben. In einigen Fällen gibt die Abfrage möglicherweise noch Datensätze in API-Ergebnissen zurück, auch wenn glide.invalid_query.returns_no_rows auf „true“ festgelegt ist. Dies geschieht in Abfragen, in denen ein ungültiger Abfragebegriff mit einem WHERE-Operator verwendet wird. In solchen Abfragen ignoriert der Operator WHERE die ungültigen Begriffe, interpretiert den Rest der Abfrageanweisung jedoch und gibt ihn zurück. Weitere Informationen zu dieser Systemeigenschaft und ihrer Funktionalität finden Sie unter Available system properties.

    Tabelle : 17. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des Tabellenfelds.
    operator Zeichenfolge Abfrageoperator. Die verfügbaren Werte sind vom Datentyp des value-Parameters abhängig.
    Zahlen:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Zeichenfolgen (in Großbuchstaben):
    • =
    • !=
    • IN
    • NOT IN
    • STARTSWITH
    • ENDSWITH
    • CONTAINS
    • DOES NOT CONTAIN
    • INSTANCEOF
    Hinweis:
    Verwenden Sie CONTAINS anstelle des LIKE-Operators.
    Wert Objekt Wert, nach dem abgefragt werden soll (Groß- und Kleinschreibung wird nicht berücksichtigt).
    Tabelle : 18. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Dem GlideRecord hinzugefügte Abfragebedingung.
    var rec = new GlideRecord('incident');
    rec.addQuery('active',true);
    rec.addQuery('sys_created_on', ">", "2010-01-19 04:05:00");
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      gs.info('Active incident ' + rec.getValue('number') + ' closed');
      rec.update();
    }

    Verwendung des IN-Operators.

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('number','IN','INC00001,INC00002');
    now_GR.query();
    while(now_GR.next()) {
      //do something....
    }

    Bereichsbezogener GlideRecord – addValue(Zeichenfolgenfeld, Zahlenwert)

    Stellt atomare Additions- und Subtraktionsvorgänge für ein angegebenes Zahlenfeld auf Datenbankebene für das aktuelle GlideRecord-Objekt bereit.

    Normalerweise wird ein GlideRecord-Objekt als ein Datensatz in einer Datenbank geschrieben. Einzelne Feldwerte werden wie definiert gespeichert. Bei Code, der einem GlideRecord-Feld einen Wert hinzufügt, wird das Feld einfach mit dem neuen Wert in der Datenbank gespeichert, anstatt es atomar zu erhöhen.

    Wenn beispielsweise der folgende Code ausgeführt wird, lautet der Wert des Felds u_count in der -Datenbank 2.
    gs.info(now_GR.u_count); // "1" 
    now_GR.u_count += 1;
    now_GR.update();
    now_GR.get(now_GR.sys_id);
    gs.info(now_GR.u_count); // "2"
    Wenn ein anderer Benutzer gleichzeitig identischen Code ausführt, anstatt dass die beiden Vorgänge jeweils 1 zu u_counthinzufügen, hat dies den Nettoeffekt, dass u_count nur 2 enthält, wobei die Aktualisierung eines Vorgangs tatsächlich verloren geht.
    Umgekehrt führt die Methode addValue() die Addition/Subtraktion in der Datenbank durch, wenn der Datensatz als atomarer Vorgang aktualisiert wird. Zwei gleichzeitig ausgeführte Vorgänge aktualisieren das Feld ordnungsgemäß.
    gs.info(now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.info(now_GR.u_count); // "3", if executed concurrently with another user 
    Hinweis:
    Der neue Wert wird nur dann aus der Datenbank zurückgelesen, wenn dies explizit geschieht.

    Wie setValue()werden auch addValue() -Änderungen erst nach einem nachfolgenden Aufruf von update() oder insert()in der Datenbank wirksam. Wenn insert() aufgerufen wird, wird das angegebene Feld mit dem Parameter value initialisiert, der an addValue()übergeben wird.

    Hinweis:
    Wenn setValue() für das angegebene Feld vor dem Aufruf von addValue()aufgerufen wird, wird die Methode addValue() nicht verarbeitet, und es wird eine Fehlermeldung protokolliert.
    Tabelle : 19. Parameter
    Name Typ Beschreibung
    field Zeichenfolge Name des zu ändernden Felds in diesem GlideRecord
    Hinweis:
    Der Datentyp des zugeordneten Felds muss eine Ganzzahl sein. Diese Methode unterstützt keine anderen Datentypen wie „Long“.
    Wert Ganzzahl Betrag, der dem Wert hinzugefügt werden soll, wenn der Datensatz gespeichert wird. Um einen Subtraktionsvorgang auszuführen, übergeben Sie einfach einen negativen Wert.
    Tabelle : 20. Rückgaben
    Typ Beschreibung
    void

    Zeigt einen hinzugefügten Wert an.

    gs.info(now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.info(now_GR.u_count);

    Ausgabe:

    2

    Zeigt einen Wert an, der subtrahiert wird.

    gs.info(now_GR.u_count); // "4" 
    now_GR.addValue("u_count", -1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.info(now_GR.u_count);

    Ausgabe:

    3

    Bereichsbezogener GlideRecord –applyEncodedQuery(String queryString)

    Legt die Werte der angegebenen codierten Abfragebegriffe fest und wendet sie auf den aktuellen GlideRecord an.

    Tabelle : 21. Parameter
    Name Typ Beschreibung
    queryString Zeichenfolge Codierte Abfrage, die auf den aktuellen GlideRecord angewendet werden soll.
    Tabelle : 22. Rückgaben
    Typ Beschreibung
    Keine

    function createAcl(table, role) {
      gs.info("Checking security on table " + table);
      var now_GR = new GlideRecord("sys_security_acl");
      now_GR.addQuery("name", table);
      now_GR.addQuery("operation", "read");
      now_GR.query();
      var encQuery = now_GR.getEncodedQuery();
      if (now_GR.next()) {
      // existing acl found so use it
        createAclRole(now_GR.getValue('sys_id'), role);
        return;
      } else {
        now_GR.initialize();
        now_GR.applyEncodedQuery(encQuery);
        var acl = now_GR.insert();
        gs.info("Added read access control on " + table);
        createAclRole(acl, role);
      }
    }

    Scoped GlideRecord – canCreate()

    Bestimmt, ob die Zugriffskontrollregeln (einschließlich der Benutzerrollen) das Einfügen neuer Datensätze in diese Tabelle ermöglichen.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 24. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Anwenders das Erstellen von Datensätzen in dieser Tabelle zulassen.
    Gültige Werte:
    • „wahr“: Erstellen zulässig
    • „falsch“: Erstellen ist nicht zulässig

    In diesem Codebeispiel wird geschrieben, ob der aktuelle Benutzer Datensätze in der Incident-Tabelle im Systemprotokoll erstellen kann.

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canCreate());

    Scoped GlideRecord – canDelete()

    Bestimmt, ob die Zugriffskontrollregeln (einschließlich der Benutzerrollen) das Löschen von Datensätzen in diese Tabelle ermöglichen.

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 26. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Anwenders das Löschen von Datensätzen in dieser Tabelle zulassen.
    Gültige Werte:
    • true: Löschen zulässig
    • „falsch“: Löschen ist nicht zulässig

    In diesem Codebeispiel wird geschrieben, ob der aktuelle Benutzer Datensätze in der Incident-Tabelle im Systemprotokoll löschen kann.

    var att = new GlideRecord('sys_attachment');
    gs.info(att.canDelete());

    Scoped GlideRecord – canRead()

    Bestimmt, ob die Zugriffssteuerungsregeln (ACLs) das Lesen von Datensätzen in dieser Tabelle zulassen. Diese Methode wertet alle ACL-Typen aus, z. B. Anwenderrollen, ACLs mit Skript, ACLs mit Skriptbedingungen usw.

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 28. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Anwenders das Lesen von Datensätzen in dieser Tabelle zulassen.
    Gültige Werte:
    • true: Lesen zulässig
    • false: Lesen ist nicht zulässig

    In diesem Codebeispiel wird geschrieben, ob der aktuelle Benutzer Datensätze in der Incident-Tabelle im Systemprotokoll lesen kann.

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canRead());

    Scoped GlideRecord – canWrite ()

    Bestimmt, ob die Zugriffskontrollregeln, zu denen die Rollen des Benutzers gehören, die Bearbeitung von Datensätzen in dieser Tabelle zulassen.

    Tabelle : 29. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 30. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Anwenders das Schreiben von Datensätzen in dieser Tabelle zulassen.
    Gültige Werte:
    • true: Schreiben zulässig
    • „falsch“: Schreiben ist nicht zulässig

    In diesem Codebeispiel wird geschrieben, ob der aktuelle Benutzer Datensätze in die Incident-Tabelle im Systemprotokoll schreiben kann.

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canWrite());

    Scoped GlideRecord – chooseWindow(Number firstRow, Number lastRow, Boolean forceCount)

    Legt einen Zeilenbereich fest, der von nachfolgenden Abfragen zurückgegeben werden soll.

    Tabelle : 31. Parameter
    Name Typ Beschreibung
    firstRow Nummer Nullbasierter Index der Startzeile für den Bereich, einschließlich. (Ein Wert von 0 gibt die erste Zeile zurück.)
    letzte Reihe Nummer Nullbasierter Index der Endzeile für den Bereich, ausschließlich.

    Wenn beispielsweise firstRow = 1 und lastRow = 5 ist, werden vier Datensätze zurückgegeben (2–5).

    forceCount Boolean Optional. Kennzeichnung, die angibt, ob eine Abfrage der Zeilenanzahl erzwungen werden soll. In den meisten Implementierungen dieses Aufrufs wird die Zeilenanzahl durchgeführt. Es gibt einige Sonderfälle, z. B. Textsuchen, bei denen keine Zeilenzählung durchgeführt wurde. Durch das Festlegen dieser Kennzeichnung wird sichergestellt, dass die Zeilenanzahl auftritt.
    Gültige Werte:
    • „wahr“: Die Anzahl der Zeilen ist immer vorhanden.
    • false: Zeilenanzahl erfolgt, wenn sie in der normalen Ausführung der Methode implementiert ist.

    Standardwert: false

    Tabelle : 32. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel wird gezeigt, wie die Datensätze 3 und 4 aus der Incident-Tabelle [incident] zurückgegeben werden.

    var now_GR = new GlideRecord('incident');
    now_GR.orderBy('number');
    now_GR.chooseWindow(2, 4);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('number') + ' is within window');
    }

    Ausgabe:

    *** Script: INC0000003 is within window
    *** Script: INC0000004 is within window

    Scoped GlideRecord – deleteMultiple()

    Löscht alle Datensätze, die die Abfrage erfüllen.

    Diese Methode löscht keine Anhänge.

    Verwenden Sie nicht deleteMultiple() für Tabellen mit Währungsfeldern. Löschen Sie jeden Datensatz einzeln. Verwenden Sie diese Methode zudem nicht mit den Methoden chooseWindow() oder setLimit(), wenn Sie mit großen Tabellen arbeiten. Die Methode setLimit() begrenzt nicht die Anzahl der Datensätze, die mit deleteMultiple()gelöscht werden. Alle von der Abfrage zurückgegebenen Datensätze werden unabhängig von setLimit()gelöscht.

    Die Systemeigenschaft glide.db.forced.chunk.threshold legt den Schwellenwert fest, über den das Löschen und Aktualisieren von Blockdatensätzen erzwungen wird. Das Chunking verhindert, dass das Löschen von Primärschlüsseln in großen Tabellen Replikationsprobleme verursacht. Weitere Informationen finden Sie unter Available system properties.

    Tabelle : 33. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 34. Ergebnisse
    Typ Beschreibung
    Keine

    In diesem Beispiel wird gezeigt, wie alle inaktiven Datensätze aus der Incident-Tabelle gelöscht werden.

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active','false');
    now_GR.query();
    now_GR.deleteMultiple();

    Scoped GlideRecord – deleteRecord()

    Löscht den aktuellen Datensatz.

    Tabelle : 35. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 36. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Datensatz erfolgreich gelöscht wurde.
    Gültige Werte:
    • wahr: Datensatz wurde gelöscht.
    • „falsch“: Es wurde kein Datensatz zum Löschen gefunden.

    In diesem Beispiel wird gezeigt, wie ein angegebener Datensatz aus der Incident-Tabelle gelöscht wird.

    var now_GR = new GlideRecord('incident');
    //to delete one record
    if (now_GR.get('99ebb4156fa831005be8883e6b3ee4b9'))
        now_GR.deleteRecord();

    In diesem Beispiel wird gezeigt, wie ein Datensatz unmittelbar nach dem Einfügen aus der Incident-Tabelle gelöscht wird. Der Incident- GlideRecord muss nach dem Einfügen neu geladen werden, bevor er gelöscht werden kann.

    var grTicket = new GlideRecord('incident');
    grTicket.initialize();
    grTicket.short_description = 'Example ticket';
    grTicket.work_notes = 'An update about the ticket';
    var ins_sys_id = grTicket.insert(); // Insert the record
    grTicket.get(ins_sys_id); // Reload the inserted record
    gs.info(grTicket.deleteRecord()); // Delete the record

    Ausgabe:

    true

    Bereichsbezogener GlideRecord – disableSysIdInOptimization()

    Deaktiviert die Standardoptimierung, die verhindert, dass eine zusätzliche Datenbankabfrage ausgeführt wird, wenn ein Anwender eine große Anzahl von sys_ids übergibt, z. B. grIncident.addQuery('sys_id', 'IN', listOf200SysIds).

    Diese Methode wirkt sich nur auf den GlideRecord aus, für den sie aufgerufen wird. Um die sys_id-Grenzwertoptimierung für alle GlideRecords zu ändern, passen Sie den Wert in der Systemeigenschaft glide.db.first_pass_sys_id_list_size.max an (Standard: 100).

    Wenn Sie diese Methode nicht aufrufen oder die Systemeigenschaft glide.db.first_pass_sys_id_list_size.max anpassen und eine Liste übergeben, die mehr sys_id-Einträge enthält, als in glide.db.first_pass_sys_id_list_size.maxdefiniert sind, ist der von GlideRecord.getRowCount() zurückgegebene Wert möglicherweise falsch.

    Tabelle : 37. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 38. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie Sie mit der Methode disableSysIdInOptimiation() die sys_id-Grenzwertoptimierung deaktivieren, wenn Sie eine sys_id-Liste für Incidents mit 200 Einträgen übergeben.

    var listOf200SysIds = [ ... ]; // 200 comma separated sys_ids
    var grIncident = new GlideRecord('incident');
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds);
    grIncident.disableSysIdInOptimization(); // Rowcount could be incorrect without this method call
    grIncident.query();
    if (grIncident.next())
        gs.info("Rowcount: " + grIncident.getRowCount());

    Ausgabe:

    Rowcount: 200

    Scoped GlideRecord – get(Object name, Object value)

    Gibt den angegebenen Datensatz im aktuellen GlideRecord-Objekt zurück.

    Diese Methode akzeptiert einen oder zwei Parameter. Wenn nur ein einzelner Parameter übergeben wird, geht die Methode davon aus, dass es sich um die sys_id des gewünschten Datensatzes handelt. Wenn der Wert nicht gefunden wird, wird versucht, den Wert mit dem Anzeigewert abzugleichen. Wenn zwei Parameter übergeben werden, ist der erste der Name der Spalte im zu durchsuchenden GlideRecord. Der zweite ist der Wert, nach dem gesucht werden soll. Wenn mehrere Datensätze gefunden werden, verwenden Sie next(), um auf die zusätzlichen Datensätze zuzugreifen.

    Tabelle : 39. Parameter
    Name Typ Beschreibung
    Name Objekt Optional. Name der instanziierten GlideRecord-Spalte für die Suche nach dem angegebenen Parameter value. Wenn nur ein einzelner Parameter übergeben wird, geht die Methode davon aus, dass dieser Parameter die sys_id oder der Anzeigewert ist.
    Wert Objekt Abzugleichender Wert. Bei berechneten Feldern wird der Wert unverändert abgeglichen, anstatt eine Berechnung mit einem geskripteten Standardwert für ein Feld im Datensatz auszuführen.
    Tabelle : 40. Rückgaben
    Typ Beschreibung
    Boolean Gibt an, ob der angeforderte Datensatz gefunden wurde:
    • true: Datensatz wurde gefunden
    • false: Datensatz wurde nicht gefunden

    In diesem Beispiel wird gezeigt, wie Sie durch Übergabe von sys_id einen Incident-Datensatz erhalten.

    var grIncident = new GlideRecord('incident');
    var returnValue = grIncident.get('99ebb4156fa831005be8883e6b3ee4b9');
    gs.info(returnValue); // logs true or false
    gs.info(grIncident.short_description); // logs Incident Short description

    Dieses Beispiel zeigt, wie Sie einen Incident-Datensatz erhalten, indem Sie das zu suchende Feld (caller_id.name) und den Wert übergeben, der in diesem Feld übereinstimmen soll.

    var grIncident = new GlideRecord('incident');
    var returnValue = grIncident.get('caller_id.name','Sylivia Wayland');
    gs.info(returnValue); // logs true or false
    gs.info(grIncident.getValue('number')); // logs Incident Number

    Scoped GlideRecord – getAttribute(String fieldName)

    Gibt die Wörterbuchattribute für das angegebene Feld zurück.

    Tabelle : 41. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Feldname, für den die Wörterbuchattribute zurückgegeben werden sollen
    Tabelle : 42. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Wörterbuchattribute
    doit();
    function doit() {
      var now_GR = new GlideRecord('sys_user');
      now_GR.query("user_name","admin");
      if (now_GR.next()) {
        gs.info("we got one");
        gs.info(now_GR.location.getAttribute("tree_picker"));
      }
    }

    Scoped GlideRecord – getClassDisplayValue()

    Gibt die Bezeichnung der aktuellen Tabelle zurück.

    Tabelle : 43. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 44. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Bezeichnung, die die Tabelle identifiziert.

    In diesem Beispiel wird die Bezeichnung der übergebenen Tabelle gedruckt.

    // Display the incident table label
    var now_GR = new GlideRecord("incident");
    var value = now_GR.getClassDisplayValue();
    gs.info("The table label is " + value + ".");

    Ausgabe:

    The table label is Incident.

    Scoped GlideRecord – getDisplayValue()

    Ruft den Anzeigewert für den aktuellen Datensatz ab.

    Anzeigewerte werden auf Grundlage des tatsächlichen Werts in der Datenbank und der Benutzer- oder Systemeinstellungen und Voreinstellungen geändert.

    Der zurückgegebene Anzeigewert hängt vom Feldtyp ab.
    • Auswahlfelder: Der Datenbankwert kann eine Zahl sein, der Anzeigewert ist jedoch aussagekräftiger.
    • Datumsfelder: Der Datenbankwert liegt im UTC-Format vor, während der Anzeigewert auf der Zeitzone des Benutzers basiert.
    • Verschlüsselter Text: Der Datenbankwert ist verschlüsselt, während der Anzeigewert entsprechend dem Verschlüsselungskontext des Benutzers unverschlüsselt ist.
    • Referenzfelder: Der Datenbankwert ist sys_id, der Anzeigewert ist jedoch ein Anzeigefeld des referenzierten Datensatzes.
    Tabelle : 45. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 46. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Anzeigewert für den aktuellen Datensatz.

    In diesem Beispiel wird der Anzeigewert eines angegebenen Incident-Datensatzes in das Protokoll geschrieben.

    var now_GR = new GlideRecord('incident');
    now_GR.get('sys_id','<sys_id>');
    gs.info(now_GR.getDisplayValue());

    Ausgabe:

    INC0000050

    Scoped GlideRecord – getED()

    Gibt den Deskriptor des Elements zurück.

    Tabelle : 47. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 48. Ergebnisse
    Typ Beschreibung
    GlideElementDescriptor Der Deskriptor des Elements.

    In diesem Beispiel wird gezeigt, wie das Namensfeld für einen Incident-GlideRecord abgerufen wird.

    var grInc = new GlideRecord('incident');
    grInc.get('sys_id','ef43c6d40a0a0b5700c77f9bf387afe3');
    
    var field = grInc.getElement('priority');
    var ed = field.getED();
    
    var isEdge = ed.getLabel();
    gs.info("Label is - " + isEdge);
    Ausgabe:
    Label is - Priority

    Bereichsbezogener GlideRecord – getElement(String fieldName)

    Ruft das GlideElement-Objekt für das angegebene Feld ab.

    Der von dieser Methode zurückgegebene Wert ist ein vollständiges GlideElement-Objekt. Die Ergebnisse entsprechen dem Dot-Walking eines Feldwerts. Zum Beispiel liefert now_GR.getElement('short_description') dasselbe Ergebnis wie nowGR.short_description.

    In den meisten Fällen sollten Sie kein Dot-Walking verwenden, um Werte aus einem Datensatz abzurufen. Beim Dot-Walking wird das gesamte Objekt anstelle des Feldwerts abgerufen. Das Abrufen des Objekts verbraucht mehr Speicher und kann zu unerwünschten Ergebnissen führen, wenn es in Arrays oder in Serviceportalverwendet wird.

    Anstatt das gesamte Objekt abzurufen, können Sie eine der folgenden Methoden verwenden, um die Feldwerte zu kopieren:

    Wenn ein Dot-Walking durch ein GlideElement-Objekt erforderlich ist, rufen Sie Werte mit der toString()- Methode ab. Beispielsweise benötigen Sie möglicherweise die sys_id des Managers des aktuellen Anrufers, um ein anderes Referenzfeld festzulegen. Das folgende Beispiel zeigt, wie Sie den Zeichenfolgenwert anstelle des gesamten Objekts abrufen:
    var mgr = current.caller_id.manager.toString();
    Tabelle : 49. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Spaltenname, für den das GlideElement-Objekt zurückgegeben werden soll.
    Tabelle : 50. Rückgaben
    Typ Beschreibung
    GlideElement Das GlideElement für die angegebene Spalte des aktuellen Datensatzes. Jedes Objekt beschreibt ein Feld im aktuellen GlideRecord.

    Das folgende Beispiel zeigt, wie Sie einen neuen Incident-Datensatz mit Details im Feld Kurzbeschreibung hinzufügen.

    var elementName = 'short_description'; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.newRecord(); 
    now_GR.setValue(elementName, "My DB is not working");
    now_GR.insert();
     
    var sdesc = now_GR.getElement('short_description');
    gs.info(sdesc.getValue());

    Ausgabe:

    My DB is not working

    Bereichsbezogener GlideRecord – getElements()

    Gibt ein Array von GlideElement-Objekten zurück. Jedes Objekt beschreibt ein Feld im aktuellen GlideRecord.

    Wenn ein Dot-Walking durch ein GlideElement-Objekt erforderlich ist, rufen Sie Werte mit der toString()- Methode ab. Beispielsweise benötigen Sie möglicherweise die sys_id des Managers des aktuellen Anrufers, um ein anderes Referenzfeld festzulegen. Das folgende Beispiel zeigt, wie Sie den Zeichenfolgenwert anstelle des gesamten Objekts abrufen:
    var mgr = current.caller_id.manager.toString();
    Tabelle : 51. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 52. Ergebnisse
    Typ Beschreibung
    Array Array von GlideElement -Objekten. Jedes Objekt beschreibt ein Feld im aktuellen GlideRecord.

    Im folgenden Beispiel wird der Wert des Namensfelds für die fünf neuesten in der Tabelle „Frage“ [question] erstellten Datensätze angezeigt.

    var now_GR = new GlideRecord('question');
    var elementArr = now_GR.getElements();
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(5);
    now_GR.query();
    
    while (now_GR.next()){
      var qNames = now_GR.name.toString();
      elementArr.push(qNames);
      gs.info(qNames);
    }

    Ausgabe:

    delivery_time_var
    delivery_time
    sequence
    priority
    assigned_group

    Scoped GlideRecord – getEncodedQuery()

    Ruft die Abfragebedingung des aktuellen Ergebnissatzes als codierte Abfragezeichenfolge ab.

    Einzelheiten finden Sie unter Codierte Abfragezeichenfolgen .

    Tabelle : 53. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 54. Ergebnisse
    Typ Beschreibung
    Zeichenfolge
    var now_GR = new GlideRecord('incident'); 
    now_GR.addQuery('active', true);
    now_GR.addQuery('priority', 1); 
    now_GR.query(); 
    var encodedQuery = now_GR.getEncodedQuery(); 
    gs.info(encodedQuery);

    Ausgabe:

    active=true^priority=1

    Scoped GlideRecord – getLabel()

    Gibt die Feldbezeichnung zurück.

    Tabelle : 55. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 56. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Feldbezeichnung
    template.print("Summary of Requested items:\n");  
    var now_GR = new GlideRecord("sc_req_item");
    now_GR.addQuery("request", current.sysapproval);
    now_GR.query();
    while(now_GR.next()) {
    var nicePrice = now_GR.price.toString();
      if (nicePrice != '') {
        nicePrice = parseFloat(nicePrice);
        nicePrice = nicePrice.toFixed(2);
      }
      template.print(now_GR.number + ":  " + now_GR.quantity + " X " + now_GR.cat_item.getDisplayValue() 
        + " at $" + nicePrice + " each \n");
      template.print("    Options:\n");
      for (key in now_GR.variables) {
      var now_V = now_GR.variables[key];
        if(now_V.getGlideObject().getQuestion().getLabel() != '') {
          template.space(4);
          template.print('     ' +  now_V.getGlideObject().getQuestion().getLabel() + " = " 
            + now_V.getDisplayValue() + "\n");  
        }
      }
    }

    Scoped GlideRecord – getLastErrorMessage()

    Ruft die letzte Fehlermeldung ab. Wenn keine letzte Fehlermeldung angezeigt wird, wird null zurückgegeben.

    Tabelle : 57. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 58. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die letzte Fehlermeldung als String.
    // Setup a data policy where short_description field in incident is mandatory
    var now_GR = new GlideRecord('incident');
    now_GR.insert(); // insert without data in mandatory field
    var errormessage = now_GR.getLastErrorMessage(); 
    gs.info(errormessage);

    Ausgabe:

    Data Policy Exception: Short description is mandatory

    Scoped GlideRecord – getRecordClassName()

    Ruft den Klassennamen für den aktuellen Datensatz ab.

    Tabelle : 61. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 62. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Klassenname.
    var now_GR = new GlideRecord('incident'); 
    var recordClassName = now_GR.getRecordClassName(); 
    gs.info(recordClassName);

    Ausgabe:

    incident

    Scoped GlideRecord – getRowCount()

    Ruft die Anzahl der Zeilen (Datensätze) im aktuellen GlideRecord-Objekt ab.

    Hinweis:
    GlideRecord gibt übereinstimmende Datensätze zurück. Daher ist es möglicherweise nicht so effizient wie GlideAggregate, wenn Sie nur die Anzahl der Datensätze benötigen. Wenn Sie nur eine Datensatzanzahl benötigen und nicht über die übereinstimmenden Datensätze iterieren, verwenden Sie GlideAggregate.
    Die Anzahl der Datensätze in GlideRecord oder GlideAggregate wird abgerufen
    Die APIs „GlideRecord getRowCount()“ und „GlideAggregate getAggregate()“ bieten ähnliche Informationen. Verwenden Sie die folgenden Kriterien, um zu bestimmen, welche Option für Sie am besten geeignet ist.
    • Die getRowCount()-Methode von GlideRecord gibt an, wie viele Datensätze von einer Abfrage zurückgegeben wurden, zusammen mit den Datensätzen selbst. Wenn Sie die Anzahl der Datensätze im Ergebnissatz vor oder nach dem Iterieren über den Satz benötigen, um Aktionen für die Datensätze auszuführen, verwenden Sie diese Methode.
    • Die getAggregate()-Methode von GlideAggregate ruft nur die Anzahl der Datensätze ab, die der Abfrage entsprechen, nicht jedoch die tatsächlichen Datensätze. Die Zusammenfassung muss für das GlideAggregate- Objekt festgelegt werden, bevor die Abfrage ausgegeben wird.
    Datensätze und Anzahl werden mit GlideRecord getRowCount() abgerufen
    Das folgende Beispiel zeigt, wie Sie mit GlideRecord getRowCount()die Gesamtzahl der aktiven Incidents abrufen:
    var incident = new GlideRecord("incident");
    incident.addQuery("active", true);
    incident.query();
     
    gs.info("*** Total number of active incidents: {0}", incident.getRowCount());
    Mit GlideAggregate getAggregate() wird nur die Anzahl der Datensätze abgerufen
    Das folgende Beispiel zeigt, wie nur die Anzahl der Datensätze zurückgegeben wird. Da bei dieser Methode nicht die übereinstimmenden Datensätze verwendet werden, ist es viel effizienter, eine Aggregatabfrage zu verwenden und nur die Anzahl zurückzugeben.
    var incident = new GlideAggregate("incident");
    incident.addQuery("active", true);
    incident.addAggregate("COUNT");
    incident.query();
     
    if (incident.next())
        gs.info("*** Total number of active incidents: {0}", incident.getAggregate("COUNT"));
    Entscheiden, welche Option für Ihre Lösung am besten geeignet ist

    Wenn Sie nur die Anzahl der Datensätze abrufen möchten, ist die Methode GlideAggregate getAggregate() die beste Option. Um einzelne Datensätze zu verwenden und die Anzahl der Ergebnisse abzurufen, verwenden Sie GlideRecord getRowCount(), da diese Funktionalität durch eine einzelne Abfrage bereitgestellt wird.

    Hinweis:
    Wenn Sie die Methode getRowCount() verwenden möchten, wenn Sie sys_id IN mit mehr als 100 sys_id-Werten verwenden, z. B. grIncident.addQuery('sys_id', 'IN', listOf200SysIds), müssen Sie entweder:
    • Rufen Sie die disableSysIdInOptimization() -Methode für GlideRecord auf.
    • Oder passen Sie die Systemeigenschaft glide.db.first_pass_sys_id_list_size.max auf einen Wert an, der höher ist als die Anzahl der sys_ids in der Liste.
    Stellen Sie außerdem sicher, dass Sie die Methode .next() aufrufen, bevor Sie die Methode getRowCount() aufrufen.
    Tabelle : 63. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 64. Ergebnisse
    Typ Beschreibung
    Nummer Anzahl der Zeilen im aktuellen GlideRecord.

    Das folgende Beispiel zeigt, wie die Anzahl der Incidents aus der Incident-Tabelle [Incident] abgerufen wird.

    var numberOfIncidents = new GlideRecord('incident');
    numberOfIncidents.query();
    gs.info("Records in incident table: " + numberOfIncidents.getRowCount());

    Ausgabe:

    Records in incident table: 6920

    Das folgende Codebeispiel zeigt, wie Sie mit der Methode disableSysIdInOptimiation() die sys_id-Grenzwertoptimierung deaktivieren, wenn Sie eine sys_id-Liste für Incidents mit 200 Einträgen übergeben.

    var listOf200SysIds = [ ... ]; // 200 comma separated sys_ids
    var grIncident = new GlideRecord('incident');
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds);
    grIncident.disableSysIdInOptimization(); // Rowcount could be incorrect without this method call
    grIncident.query();
    if (grIncident.next())
        gs.info("Rowcount: " + grIncident.getRowCount());

    Ausgabe:

    Rowcount: 200

    Scoped GlideRecord – getTableName()

    Ruft den Namen der Tabelle ab, die dem GlideRecord zugeordnet ist.

    Tabelle : 65. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 66. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der Tabellenname
    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.getTableName());

    Scoped GlideRecord – getUniqueValue()

    Ruft den Primärschlüssel des Datensatzes ab, der normalerweise die sys_id ist, sofern nicht anders angegeben.

    Tabelle : 67. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 68. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Eindeutiger Primärschlüssel als Zeichenfolge oder NULL, wenn der Schlüssel NULL ist.
    var now_GR = new GlideRecord('kb_knowledge');
    now_GR.query();
    now_GR.next();
    var uniqueid = now_GR.getUniqueValue();
    gs.info(uniqueid);

    Scoped GlideRecord – getValue(String name)

    Ruft den Zeichenfolgewert eines zugrunde liegenden Elements in einem Feld ab.

    Hinweis:
    Wenn das Plugin Feldverschlüsselung Enterprise aktiviert ist und die Instanz Zugriff auf den Schlüssel hat, gibt diese Methode Klartextwerte aus verschlüsselten Feldern zurück. Wenn die Instanz keinen Zugriff auf den Schlüssel hat, gibt diese Methode den verschlüsselten Wert zurück. Weitere Informationen finden Sie unter Plattformverschlüsselung.
    Tabelle : 69. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des Felds, aus dem der Wert abgerufen werden soll.
    Tabelle : 70. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Zeichenfolgewert des zugrunde liegenden Elements. Gibt null zurück, wenn das Feld leer ist oder nicht vorhanden ist. Boolesche Werte werden als Zeichenfolgenwerte vom Typ „0“ und „1“ anstelle von „falsch“ und „wahr“ zurückgegeben.
    var now_GR = new GlideRecord('incident'); 
    now_GR.orderBy('number');
    now_GR.query('active','true'); 
    now_GR.next(); 
    gs.info(now_GR.getValue('number'));

    Ausgabe:

    INC0000002

    Scoped GlideRecord – GlideRecord(String tableName)

    Erstellt eine Instanz der GlideRecord-Klasse für die angegebene Tabelle.

    Tabelle : 71. Parameter
    Name Typ Beschreibung
    tableName Zeichenfolge Die zu verwendende Tabelle.
    var now_GR = new GlideRecord('incident');

    Scoped GlideRecord – hasNext()

    Bestimmt, ob weitere Datensätze im GlideRecord-Objekt vorhanden sind.

    Tabelle : 72. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 73. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn der Abfrageergebnissatz mehr Datensätze enthält.
    var rec = new GlideRecord('incident'); 
    rec.query(); 
    if (rec.hasNext()) { 
      gs.info("Table is not empty"); 
    }

    Scoped GlideRecord – insert()

    Fügt einen neuen Datensatz mit den Feldwerten ein, die für den aktuellen Datensatz festgelegt wurden.

    Tabelle : 74. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 75. Ergebnisse
    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.initialize();
    now_GR.setValue('name', 'New Incident');
    now_GR.setValue('description', 'Incident description');
    now_GR.insert();

    Ausgabe:

    138fb4111b4d4d907cf30d03cd4bcb57

    Scoped GlideRecord – initialize()

    Erstellt einen leeren Datensatz, der vor einem Einfügevorgang gefüllt werden kann.

    Tabelle : 76. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 77. Ergebnisse
    Typ Beschreibung
    void
    var grIncident = new GlideRecord('incident');
    grIncident.initialize();
    grIncident.setValue('short_description', 'New Incident');
    grIncident.setValue('description', 'Incident description');
    grIncident.insert();

    Scoped GlideRecord – isActionAborted()

    Überprüft, ob die aktuelle Datenbankaktion abgebrochen werden soll.

    isActionAborted() wird initialisiert (auf false gesetzt) für neue Threads und durch next( )-Methode.

    Tabelle : 78. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 79. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die aktuelle Datenbankaktion abgebrochen werden soll.
    Gültige Werte:
    • wahr: Die aktuelle Datenbankaktion soll abgebrochen werden.
    • „falsch“: Die aktuelle Datenbankaktion darf nicht abgebrochen werden.
    var now_GR = new GlideRecord('incident');
     
    gs.info(now_GR.isActionAborted());

    Ausgabe:

    false

    Bereichsbezogener GlideRecord – isEncodedQueryValid(Zeichenfolgenabfrage)

    Überprüft, ob die angegebene verschlüsselte Abfrage gültig ist.

    Wenn die angegebene codierte Abfrage gültig ist, wird die Abfrage angewendet, als ob Sie addEncodedQuery()aufgerufen hätten. Wenn die angegebene codierte Abfrage ungültig ist, wird „sys_idNotValidnull“ als codierte Abfrage hinzugefügt.

    Hinweis:
    Diese Methode ist veraltet und wurde durch die Methode „isValidEncodedQuery()“ ersetzt, die die Abfrage nicht ausführt.
    Tabelle : 80. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Zu überprüfende verschlüsselte Abfrage. Siehe Codierte Abfragezeichenfolgen.
    Tabelle : 81. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die angegebene codierte Abfrage gültig ist.
    • „wahr“: Die übergebene codierte Abfrage ist gültig.
    • „falsch“: Die übergebene codierte Abfrage ist ungültig.

    Dieses Codebeispiel zeigt, wie eine codierte Abfrage validiert und dann Logik ausgeführt wird, wenn die Abfrage gültig ist.

    var now_GR = new GlideRecord('incident_sla');
    var isValidQuery = now_GR.isEncodedQueryValid('inc_impact=1^taskslatable_active=true');
    if (isValidQuery) {
      now_GR.query();
      .
      .
      .
    }

    Scoped GlideRecord – isNewRecord()

    Überprüft, ob der aktuelle Datensatz ein neuer Datensatz ist, der noch nicht in die Datenbank eingefügt wurde.

    Tabelle : 82. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 83. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn der Datensatz neu ist und nicht in die Datenbank eingefügt wurde.
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.newRecord(); // create a new record and populate it with default values
    gs.info(now_GR.isNewRecord());

    Scoped GlideRecord – isValid()

    Bestimmt, ob die aktuelle Tabelle gültig ist oder ob der Datensatz erfolgreich abgerufen wurde.

    Tabelle : 84. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 85. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Tabelle gültig ist oder ob der Datensatz erfolgreich abgerufen wurde.
    Mögliche Werte:
    • „wahr“: Tabelle ist gültig oder der Datensatz wurde erfolgreich abgerufen.
    • „falsch“: Tabelle ist ungültig, oder der Datensatz wurde nicht erfolgreich abgerufen.
    var comment_GR = new GlideRecord('cf_comment');
    var commentId = '99ebb4156fa831005be8883e6b3ee4b9';
    comment_GR.get(commentId);
    gs.info(comment_GR.isValid());

    Bereichsbezogener GlideRecord – isValidEncodedQuery(String query)

    Überprüft, ob die Syntax der codierten Abfrage korrekt ist.

    Bei der Übergabe einer leeren Zeichenfolge ("") als Bereitstellungsabfrage:
    • Die leere Zeichenfolge („“) stellt das Fehlen einer Abfrage dar und gibt „falsch“ zurück.
    • Der Aufruf von GlideRecord.addEncodedQuery("") gefolgt von GlideRecord.query() gibt alle Zeilen zurück. Die Abfragemethode ähnelt einer SQL SELECT-Anweisung. In SQL stellt bei Verwendung von „SELECT * FROMfoo WHERE X“ der Wert X die Abfrage dar. Wenn kein Abfragewert angegeben wird, werden alle Datensätze zurückgegeben (z. B. SELECT * FROMfoo).
    Tabelle : 86. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Zu überprüfende verschlüsselte Abfrage. Siehe Codierte Abfragezeichenfolgen.
    Tabelle : 87. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die angegebene codierte Abfrage gültig ist.
    • „wahr“: Die übergebene codierte Abfrage ist gültig.
    • „falsch“: Die übergebene codierte Abfrage ist ungültig.

    Dieses Codebeispiel zeigt, wie überprüft wird, ob die codierte Abfrage gültig ist.

    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    var isValidQuery = now_GR.isValidEncodedQuery(queryString);
    if (isValidQuery) {
      now_GR.addEncodedQuery(queryString);
      now_GR.query();
      .
      .
      .
    }

    Scoped GlideRecord – isValidField(String columnName)

    Bestimmt, ob das angegebene Feld in der aktuellen Tabelle definiert ist.

    Tabelle : 88. Parameter
    Name Typ Beschreibung
    columnName Zeichenfolge Name des Felds.
    Tabelle : 89. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn das Feld für die aktuelle Tabelle definiert ist.
    var now_GR = new GlideRecord('incident'); 
    now_GR.initialize(); 
    gs.info(now_GR.isValidField("short_description"));

    Scoped GlideRecord – isValidRecord()

    Bestimmt, ob ein Datensatz tatsächlich vom Vorgang zum Abfragen/Abrufen des Datensatzes zurückgegeben wurde.

    Tabelle : 90. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 91. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob ein Datensatz tatsächlich vom Abfrage-/Abrufvorgang zurückgegeben wurde.
    Gültige Werte:
    • „wahr“: Vom Abfrage-/Abrufvorgang zurückgegebener Datensatz.
    • „falsch“: Ende des Datensatzes, kein Datensatz zurückgegeben.
    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) { 
      gs.info(rec.number + ' exists');
    }
    gs.info(rec.isValidRecord());

    Bereichsbezogener GlideRecord – isView()

    Überprüft, ob der Datensatz in einer Ansicht oder einer Tabelle erstellt wurde.

    Tabelle : 92. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 93. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Datensatz in einer Tabelle erstellt wurde, die eine Ansicht ist.
    • „wahr“: Der Datensatz wurde in einer -Ansicht erstellt.
    • „falsch“: Der Datensatz wurde in einer Tabelle erstellt.

    Dieses Codebeispiel zeigt, wie bestimmt wird, ob ein GlideRecord in einer Ansicht oder einer Tabelle erstellt wurde.

    var mySLA = new GlideRecord('incident_sla');
    
    if (mySLA.isView() == true){
       gs.info('This record was created in a view.');
    } else {
       gs.info('This record was created in a table.');
    }

    Ausgabe:

    This record was created in a view.

    Scoped GlideRecord – newRecord()

    Erstellt einen neuen GlideRecord-Datensatz, legt die Standardwerte für die Felder fest und weist dem Datensatz eine eindeutige ID zu.

    Tabelle : 94. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 95. Ergebnisse
    Typ Beschreibung
    void
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.newRecord(); 
    gs.info(now_GR.isNewRecord());

    Ausgabe:

    true

    Scoped GlideRecord – next()

    Geht zum nächsten Datensatz im GlideRecord-Objekt.

    Hinweis:
    Diese Methode schlägt fehl, wenn in der Tabelle ein Feld mit dem Namen „next“ vorhanden ist. Verwenden Sie in diesem Fall die -Methode _next().
    Tabelle : 96. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 97. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob in GlideRecord ein „nächster“ Datensatz vorhanden ist
    Gültige Werte:
    • wahr: Das Verschieben zum nächsten Datensatz war erfolgreich.
    • „falsch“: Keine weiteren Datensätze im Ergebnissatz.
    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) {
     gs.info(rec.getValue('number') + ' exists');
    }
    Ausgabe:
    INC0010112 exists
    INC0010114 exists
    INC0010119 exists
    INC0010127 exists

    Scoped GlideRecord – _next()

    Geht zum nächsten Datensatz im GlideRecord. Bietet die gleiche Funktionalität wie Next(). Verwenden Sie diese Methode, wenn der GlideRecord eine Spalte mit dem Namen „next“ hat.

    Tabelle : 98. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 99. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob im Abfragesatz weitere Datensätze vorhanden sind.
    Mögliche Werte:
    • true: Mehr Datensätze im Abfragesatz.
    • „falsch“: Keine weiteren Datensätze im Abfragesatz.

    Das folgende Beispiel zeigt, wie die einzelnen Datensätze in der Tabelle „Incidents“ [incident] aufgelistet werden.

    var rec = new GlideRecord('incident');
    rec.query();
    while (rec._next()) {
      gs.info(rec.getValue('number') + ' exists');
    }

    Ausgabe:

    INC0000060 exists
    INC0009002 exists
    INC0000009 exists
    INC0000010 exists
    INC0000011 exists
    INC0000012 exists
    ...

    Scoped GlideRecord – operation()

    Bestimmt, ob es sich um einen Vorgang zum Einfügen, Aktualisieren oder Löschen handelt.

    Wenn Sie den Vorgang kennen, können Sie mit current.operation() eine generische Geschäftsregel erstellen, die jeden Vorgang eindeutig behandelt.

    Informationen zur Verwendung der globalen Variablen currentfinden Sie unter Globale Variablen in Geschäftsregeln.

    Tabelle : 100. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 101. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Aktueller Vorgang.
    Mögliche Werte:
    • delete
    • einfügen
    • Aktualisieren

    Das folgende Beispiel zeigt, wie diese Methode in einer Geschäftsregel verwendet wird. Die Methode „operation()“ erkennt, welcher Vorgang ein Ereignis ausgelöst hat, und führt je nach Aktualisierungs- und Einfügevorgang eine andere Aktion aus.

    if(current.operation() == "update") {
      current.updates ++; } 
    if(current.operation() == "insert") {
      current.updates = 0; }

    Scoped GlideRecord – orderBy(String name)

    Gibt eine orderBy-Spalte an.

    Rufen Sie diese Methode mehr als einmal auf, um nach mehreren Spalten zu sortieren. Die Ergebnisse sind in aufsteigender Reihenfolge angeordnet. Informationen zum Anordnen von Datensätzen in absteigender Reihenfolge finden Sie unter Scoped GlideRecord – orderByDesc(String name).

    Tabelle : 102. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Spaltenname, der zum Sortieren der Datensätze in diesem GlideRecord-Objekt verwendet werden soll.
    Tabelle : 103. Rückgaben
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie Incident-Datensätze in aufsteigender Reihenfolge nach Kurzbeschreibung sortiert werden.

    var queryString = "priority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.orderBy('short_description'); // Ascending Order
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    Ausgabe:

    Can't launch 64-bit Windows 7 virtual machine
    Can't log into SAP from my laptop today
    Network storage unavailable
    Please remove the latest hotfix from my PC

    Scoped GlideRecord – orderByDesc(String name)

    Gibt eine absteigende orderBy-Spalte an.

    Rufen Sie diese Methode mehr als einmal auf, um nach mehreren Spalten zu sortieren. Die Ergebnisse werden in absteigender Reihenfolge angeordnet. Informationen zum Anordnen von Datensätzen in aufsteigender Reihenfolge finden Sie unter Scoped GlideRecord – orderBy(String name).

    Tabelle : 104. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Spaltenname, der zum Sortieren der Datensätze in einem GlideRecord-Objekt verwendet werden soll.
    Tabelle : 105. Rückgaben
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie Incident-Datensätze in absteigender Reihenfolge nach Kurzbeschreibung sortiert werden.

    var queryString = "priority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('short_description'); //Descending Order
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    Ausgabe:

    Please remove the latest hotfix from my PC
    Network storage unavailable
    Can't log into SAP from my laptop today
    Can't launch 64-bit Windows 7 virtual machine

    Bereichsbezogener GlideRecord – Abfrage (Zeichenfolgenfeld, Zeichenfolgenwert)

    Führt eine Abfrage der Tabelle basierend auf den in den Abfragemethoden angegebenen Filtern aus, z. B. addQuery() und addEncodedQuery().

    Diese Methode fragt die GlideRecord-Tabelle sowie etwaige Verweise auf die Tabelle ab. Weitere Informationen finden Sie unter Tabellen in Skript abfragen.

    Hinweis:
    Diese Methode schlägt fehl, wenn in der Tabelle ein Feld mit dem Namen „query“ vorhanden ist. Verwenden Sie in diesem Fall stattdessen die Methode_query().

    Weitere Informationen zum Erstellen und Ausführen von Abfragen finden Sie im GlideRecord -Artikel.

    Tabelle : 106. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Optional: Außerdem muss ein Wertparameter angegeben werden. Name des Felds, in dem nach dem im Wertparameter angegebenen Wert gesucht werden soll.
    Hinweis:
    Diese Methode wird normalerweise ohne Argumente ausgeführt. Sie können jedoch ein Name-Wert-Paar angeben, um Datensätze mit den angegebenen Werten zu filtern. Wenn die Parameter angegeben sind, wird der Abfrage die Bedingung „name=value“ hinzugefügt.
    Wert Zeichenfolge Optional: Außerdem muss ein Feldparameter angegeben werden. Wert, nach dem im angegebenen Feldparameter gesucht werden soll.
    Tabelle : 107. Rückgaben
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie das Systemwörterbuch [sys_dictionary] nach Tabellen mit einem Abfragefeld durchsucht wird.

    var tableArr = [];
    
    var now_GR = new GlideRecord('sys_dictionary');
    now_GR.addQuery('element', 'query');
    now_GR.setLimit(6);
    
    now_GR.query();
    
    while(now_GR.next()){
       tableArr.push(now_GR.name.getValue());
    };
    
    gs.info('The following tables have a field column called "query":');
    
    for (i = 0; i < tableArr.length; i++) {
       gs.info(tableArr[i]);
    };

    Ausgabe:

    The following tables have a field column called "query":
    cmdb_convert_bulk_services
    cmdb_multisource_query_status
    cmdb_qb_result_base
    cmdb_qb_table_mapping
    discovery_probes_cim_query
    kb_feedback

    Bereichsbezogener GlideRecord – _query(Zeichenfolgenfeld, Zeichenfolgenwert)

    Führt eine Abfrage der Tabelle basierend auf den in den Abfragemethoden angegebenen Filtern aus, z. B. addQuery() und addEncodedQuery(). Diese Methode sollte für Tabellen verwendet werden, in denen eine Spalte mit dem Namen „query“ vorhanden ist, die beim Ausführen der Abfragemethode () zu Fehlern führen kann.

    Diese Methode fragt die GlideRecord-Tabelle sowie etwaige Verweise auf die Tabelle ab. Weitere Informationen finden Sie unter Tabellen in Skript abfragen.

    Weitere Informationen zum Erstellen und Ausführen von Abfragen finden Sie im GlideRecord -Artikel.

    Tabelle : 108. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Optional: Außerdem muss ein Wertparameter angegeben werden. Name des Felds, in dem nach dem im Wertparameter angegebenen Wert gesucht werden soll.
    Hinweis:
    Diese Methode wird normalerweise ohne Argumente ausgeführt. Sie können jedoch ein Name-Wert-Paar angeben, um Datensätze mit den angegebenen Werten zu filtern. Wenn die Parameter angegeben sind, wird der Abfrage die Bedingung „name=value“ hinzugefügt.
    Wert Zeichenfolge Optional: Außerdem muss ein Feldparameter angegeben werden. Wert, nach dem im angegebenen Feldparameter gesucht werden soll.
    Tabelle : 109. Rückgaben
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie die Tabelle „Wissensfeedback“ [kb_feedback] abgefragt und KB-Artikel mit Kommentaren aufgelistet werden, die Excel enthalten.

    var rec = new GlideRecord('kb_feedback');
    rec.addQuery('comments', 'CONTAINS', 'Excel');
    rec._query();
    while (rec.next()) { 
     gs.info(rec.getDisplayValue('article') + " comment: " + rec.getValue('comments'));
    }

    Ausgabe:

    KB0000005 comment: 
    	     Can you please add the version of Excel this applies to? All?
    		
    KB0000005 comment: 
    	     Does this work for all Excel versions? OSX and Windows alike?

    Scoped GlideRecord – setAbortAction(Boolean b)

    Legt ein Flag fest, um anzugeben, ob die nächste Datenbankaktion (Einfügen, Aktualisieren, Löschen) abgebrochen werden soll. Dies wird häufig in Business Rules verwendet.

    Verwenden Sie in einer onBefore- Business-Regel, um zu verhindern, dass die Datenbankaktion ausgeführt wird. Die Business Rule läuft nach dem Aufruf von setAbortAction() weiter. Durch das Aufrufen von setAbortAction() werden die nachfolgenden Business Rules nicht an der Ausführung gehindert. Durch Aufrufen dieser Methode wird nur die Ausführung der Datenbankaktion verhindert.

    Tabelle : 110. Parameter
    Name Typ Beschreibung
    b Boolean „True“, um die nächste Aktion abzubrechen. „False“, wenn die Aktion erlaubt werden soll.
    Tabelle : 111. Ergebnisse
    Typ Beschreibung
    void
    // Often used in business rule to check whether the current operation should be aborted.
    if (current.size > 16) {
      current.setAbortAction(true);
    }

    Scoped GlideRecord – setLimit(Number maxNumRecords)

    Legt das Limit für die Anzahl der Datensätze fest, die von der GlideRecord-Abfrage abgerufen werden.

    Tabelle : 112. Parameter
    Name Typ Beschreibung
    maxNumRecords Zahl Maximale Anzahl der abzurufenden Datensätze.
    Tabelle : 113. Ergebnisse
    Typ Beschreibung
    void
    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(10);
    now_GR.query(); // this retrieves latest 10 incident records created

    Scoped GlideRecord – setNewGuidValue(String guid)

    Legt den sys_id-Wert für den aktuellen Datensatz fest.

    Tabelle : 114. Parameter
    Name Typ Beschreibung
    guid Zeichenfolge GUID, die dem aktuellen Datensatz zugewiesen werden soll.
    Tabelle : 115. Rückgaben
    Typ Beschreibung
    void
    var now_GR = new GlideRecord('incident');
    now_GR.setValue('short_description', 'The third floor printer is broken');
    now_GR.setNewGuidValue('eb4636ca6f6d31005be8883e6b3ee333');
    now_GR.insert();
    gs.info(now_GR.getValue('sys_id'));

    Scoped GlideRecord – setValue(String name, Object value)

    Legt den Wert des Felds mit dem angegebenen Namen auf den angegebenen Wert fest.

    Normalerweise führt das Skript einen now_GR.category = Wertaus. Wenn jedoch der Elementname selbst eine Variable ist, können Sie now_GR.setValue(elementName, value)verwenden. Stellen Sie beim Festlegen eines Werts sicher, dass der Datentyp des Felds mit dem Datentyp des eingegebenen Werts übereinstimmt.

    Hinweis:
    Wenn das Plugin Feldverschlüsselung Enterprise aktiviert ist und die Instanz Zugriff auf den Schlüssel hat, können mit dieser Methode verschlüsselte Daten in verschlüsselte Felder eingefügt werden. Wenn die Instanz keinen Zugriff auf den Schlüssel hat, gibt diese Methode einen Fehler zurück. Weitere Informationen finden Sie unter Plattformverschlüsselung.
    Nicht für Authentifizierung mit Passwort2-Feldern
    Die Methode „setValue()“ übergibt password2-Daten als Klartext, was zu einem Fehler führt, weil verschlüsselte Daten erwartet werden. Darüber hinaus werden durch die Verwendung der Methode „setValue()“ für password2-Felder Daten verfügbar gemacht, die verschlüsselt werden sollten.

    Verwenden Sie für die password2-Authentifizierung stattdessen die Methode setDisplayValue().

    Tabelle : 116. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des Felds.
    Wert Objekt Wert, der dem Feld zugewiesen werden soll.
    Tabelle : 117. Rückgaben
    Typ Beschreibung
    Keine
    var elementName = 'short_description'; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.initialize(); 
    now_GR.setValue(elementName, "My DB is not working");
    now_GR.insert();

    Scoped GlideRecord – setWorkflow(Boolean enable)

    Aktiviert oder deaktiviert die Ausführung von Business Rules, Skriptengines und Audit.

    Warnung:
    Das Deaktivieren der Ausführung von Business-Regeln, Skript-Engines und Audits kann erhebliche Auswirkungen auf Ihre Instanz ServiceNow® und ihre Funktionsweise haben. Testen Sie diese Änderung gründlich, bevor Sie sie in der Produktion bereitstellen.
    Hinweis:
    Diese Methode kann nicht für bereichsübergreifende Anwendungen festgelegt werden. Weitere Informationen finden Sie im folgenden KB-Artikel https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0820691.
    Tabelle : 118. Parameter
    Name Typ Beschreibung
    enable Boolean Kennzeichnung, die angibt, ob die Ausführung von Business-Regeln, Skript-Engines und Audit aktiviert oder deaktiviert werden soll.
    Gültige Werte:
    • „wahr“: Aktiviert die Ausführung von Business-Regeln, Skript-Engines und Audits.
    • „falsch“: Deaktiviert die Ausführung von Business-Regeln, Skript-Engines und Audit.

    Standardwert: wahr

    Tabelle : 119. Rückgaben
    Typ Beschreibung
    void
    //Enable business rules, scripts engines for x_app_table
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.setWorkflow(true);

    Scoped GlideRecord – update(String reason)

    Aktualisiert den GlideRecord mit allen vorgenommenen Änderungen. Wenn der Datensatz noch nicht vorhanden ist, wird er eingefügt.

    Tabelle : 120. Parameter
    Name Typ Beschreibung
    reason Zeichenfolge Optional. Grund für das Update. Der Grund wird im Audit-Datensatz angezeigt.
    Tabelle : 121. Rückgaben
    Typ Beschreibung
    Zeichenfolge Sys_id des neuen oder aktualisierten Datensatzes. Gibt NULL zurück, wenn das Update fehlschlägt.

    Das folgende Beispiel zeigt, wie das Feld Kurzbeschreibung eines incident aktualisiert wird.

    var now_GR = new GlideRecord('incident');
    now_GR.get('99ebb4156fa831005be8883e6b3ee4b9');
    now_GR.setValue('short_description', 'Update the short description');
    now_GR.update();
    gs.info(now_GR.getElement('short_description'));

    Ausgabe:

    Update the short description.

    Scoped GlideRecord – updateMultiple()

    Aktualisiert jeden GlideRecord in einer angegebenen Abfrage mit einem angegebenen Satz von Changes.

    Diese Methode unterstützt das Hinzufügen mehrerer Journaleinträge nicht.

    Die Systemeigenschaft glide.db.forced.chunk.threshold legt den Schwellenwert fest, über den das Löschen und Aktualisieren von Blockdatensätzen erzwungen wird. Das Chunking verhindert, dass das Löschen von Primärschlüsseln in großen Tabellen Replikationsprobleme verursacht. Weitere Informationen finden Sie unter Available system properties.

    Hinweis:
    Um die erwarteten Ergebnisse sicherzustellen, verwenden Sie die Methode „setValue()“ anstelle von direkten Zuweisungen. Verwenden Sie also gr_Now.setValue(' <field_name> ', '4')); anstelle von gr_Now= 4 .
    Hinweis:
    Verwenden Sie diese Methode nicht mit den Methoden chooseWindow() oder setLimit(), wenn Sie mit großen Tabellen arbeiten.

    Diese Methode legt neue Werte fest und löscht vorhandene Werte nicht. Um einen vorhandenen Wert zu löschen, verwenden Sie die Methode setValue(), und setzen Sie das Feld auf null.

    Tabelle : 122. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 123. Ergebnisse
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie Sie den Status aller aktiven Incidents auf 4 – „Warten auf Benutzerinformationen“ aktualisieren.

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active', true);
    now_GR.setValue('state',  4);
    now_GR.updateMultiple();

    Bereichsbezogener GlideRecord – updateWithReferences(Objektgrund)

    Aktualisiert einen Datensatz und führt auch Einfügungen oder Updates für zugehörige Datensätze mit den bereitgestellten Informationen durch.

    Tabelle : 124. Parameter
    Name Typ Beschreibung
    reason Objekt Grund für die Aktualisierungen. Der Grund wird im Audit-Datensatz angezeigt.
    Tabelle : 125. Ergebnisse
    Typ Beschreibung
    Zeichenfolge sys_id für den Datensatz, der aktualisiert wird.

    Bei der Verarbeitung eines Incidents, bei dem die Anrufer-ID auf den Referenz-sys_user-Datensatz „John Doe“ festgelegt ist, aktualisiert der folgende Code den Anwenderdatensatz von John Doe. Wenn ein Incident verarbeitet wird, für den keine Anrufer-ID angegeben ist, erstellt der folgende Code einen neuen sys_user-Datensatz mit den angegebenen Informationen (first_name, last_name) und legt den Wert der Anrufer-ID auf den neu erstellten sys_user-Datensatz fest.

    var inc = new GlideRecord('incident');
    inc.get(inc_sys_id);  // Looking up an existing incident record where 'inc_sys_id' represents the sys_id of a incident record
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.updateWithReferences();
    }