GlideRecord – Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 58 Minuten Lesedauer
  • Die GlideRecord- API wird für Datenbankvorgänge verwendet.

    Die GlideRecord-API ist das primäre Mittel zur Anbindung an die 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 Artikel GlideRecord.

    Informationen zu GlideRecordSecure, einer von GlideRecord geerbten Klasse, die dieselben Funktionen wie GlideRecord ausführtund auch ACLs erzwingt, finden Sie in den GlideServer-APIs.

    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.

    Ruft Werte aus Datensätzen ab

    Verwenden Sie in den meisten Fällen kein Dot-Walking, um Werte aus einem Datensatz abzurufen. Dot-Walking ruft das gesamte Objekt anstelle des Feldwerts ab. 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 die Feldwerte mit einer der folgenden Methoden kopieren:

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

    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();

    Bereichsbezogenes Äquivalent

    Um die addActiveQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addActiveQuery().

    GlideRecord – addDomainQuery(Object glideRecord)

    Ändert die für die Abfrage verwendete Domäne von der Domäne des Benutzers in die Domäne des bereitgestellten GlideRecord.

    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.

    Diese Funktion erfordert das Plugin „Domain Support – Domain Extensions Installer“ (com.glide.domain.msp_extensions.installer).

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    glideRecord Objekt GlideRecord, aus dem die Domäne abgerufen werden kann.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    void
    //This example requires the Domain plugin be active, the Group table is the specified 
    //Domain table, and the ITIL user is in the Database Atlanta domain
    //From any domain (using queryNoDomain()) look up the incidents that an ITIL user can only see 
    //who is in the Database Atlanta domain, should expect all incidents with the global or the
    //Database Atlanta domain specified.
    var domain = new GlideRecord('sys_user');
    domain.addQuery('user_name', 'itil');
    domain.queryNoDomain();
    if (domain.next()) {
        var domainQuery = new GlideRecord('incident');
        domainQuery.addQuery('active', true);
        domainQuery.addDomainQuery(domain);
        domainQuery.query();
        gs.print('Number of Incidents for ITIL user: ' + domainQuery.getRowCount());
        while (domainQuery.next())
            gs.print(domainQuery.number);
    }

    Bereichsbezogenes Äquivalent

    Diese Methode ist in bereichsbezogenen Anwendungen nicht verfügbar.

    GlideRecord – addEncodedQuery(String query)

    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.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Eine codierte Abfragezeichenfolge.
    Tabelle : 6. 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.number);
     }

    Bereichsbezogenes Äquivalent

    Um die addEncodedQuery()-Methode in einer Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: addEncodedQuery().

    GlideRecord – addExtraField(String dotWalkedField)

    Fragt ein oder mehrere Dot-Walking-Felder aus einem Formular oder Skript in einer einzelnen Anforderung ab.

    Mit der addExtraField()- Methode können Sie Dot-Walking-Felder in einer einzigen Datenbankanforderung abfragen, anstatt mehrere Abfragen pro Dot-Walking-Element in einem Formular oder Skript durchzuführen (was mehrere Round Trips zur Datenbank erfordert).

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    punktWalkedField Zeichenfolge Dot-Walking-Feldname. Ebenen von Feldnamen werden durch Punkte (Punkte) getrennt. Geben Sie beispielsweise den Wert Caller.Company ein, wenn Sie den abfragen möchten Unternehmen > Anrufer -Bedingung in der Incident-Tabelle [Incident].

    Das Format von dotWalkedField folgt der Reihenfolge der Felder von links nach rechts in einem Dot-Walking-Formular oder -Skript.

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    Keine
    Hinweis:
    Die addExtraField()- Methode wirkt sich nicht auf die Ausgabeergebnisse aus. Die Ausgabe ist immer gleich, unabhängig davon, ob Sie diese Methode in Ihrem Skript verwenden.
    Das folgende Beispiel zeigt, wie das Feld „Kontaktname“ von cmn_location abgefragt wird (referenziert aus dem Referenzfeld „location“ in einem cmdb_ci-Feld).
    Hinweis:
    Der Wert „dotWalkedField“ in diesem Beispiel, cmdb_ci.location.contact.name, sieht in der Benutzeroberfläche ServiceNow® in etwa so aus wie „cmdb_ci fields“ => „cmn_location fields“ => „sys_user fields“, wenn Felder in einer Liste ausgewählt werden.
    var gliderecord = new GlideRecord("incident");
    gliderecord.addQuery("number", "INC0041457");
    gliderecord.addExtraField("cmdb_ci.location.contact.name");
    gliderecory.query();
    gliderecord.next();
    gs.print(gliderecord.cmdb_ci.location.contact.name);
    

    Die Ausgabe ist die gleiche wie bei gs.print(gr.cmdb_ci.location.contact.name), ohne addExtraField()zu verwenden. Die addExtraField()- Methode optimiert die Abfrage der Dot-Walking-Felder. Beispielausgabe:

    Abel Tuter

    GlideRecord – addFunction(Object function)

    Wendet ein vordefiniertes GlideDBFunctionBuilder-Objekt auf einen Datensatz an.

    Verwenden Sie die bereichsbezogene GlideDBFunctionBuilder-Klasse, 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 : 9. Parameter
    Name Typ Beschreibung
    function Objekt Ein GlideDBFunctionBuilder- oder GlideDBCaseStatementBuilder-Objekt, das einen SQL-Vorgang definiert.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    void
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();
    
    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(myAddingFunction);
    now_GR.addQuery(myAddingFunction, '<', 5);
    now_GR.query();
    while(now_GR.next())
    gs.log(now_GR.getValue(myAddingFunction));
    

    Ausgabe:

    *** Script: 1
    *** Script: 4
    *** Script: 3
    *** Script: 1
    *** Script: 1
    *** Script: 2
    *** Script: 1
    *** Script: 1

    GlideRecord – addInactiveQuery()

    Fügt einen Filter hinzu, um inaktive Datensätze zurückzugeben. Inaktive Datensätze weisen „false“ für das aktive Flag auf.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Zeichnet auf, wo das aktive Flag „false“ ist.
    var inc = new GlideRecord('incident');
    inc.addInactiveQuery();
    inc.query();

    Bereichsbezogenes Äquivalent

    Verwenden Sie in bereichsbezogenen Anwendungen die bereichsbezogene Methode addQuery("active","false").

    GlideRecord – addJoinQuery(String table)

    Fügt einen Filter hinzu, um Datensätze basierend auf einer Beziehung in einer verknüpften Tabelle zurückzugeben.

    Suchen Sie beispielsweise alle Benutzer in der Datenbankgruppe (Benutzer über sys_user_grmember-Tabelle). Ein anderes Beispiel wäre das Suchen aller Probleme, denen ein Incident zugewiesen wurde (Probleme über die incident.problem_id-Beziehung).

    Dies ist kein echter Datenbank-Join, sondern addJoinQuery() fügt eine Unterabfrage hinzu. Während der Ergebnissatz auf der Grundlage des Joins begrenzt ist, haben Sie nur auf die Felder der Basistabelle Zugriff (diejenigen, die sich in der Tabelle befinden, mit 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.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Tabellenname
    Tabelle : 14. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Zeichnet auf, wo 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 active=false-Probleme mit zugeordneten Incidents.

    // Look for Problem records
    var now_GR = new GlideRecord('problem');
     
    // That have associated Incident records
    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 print results
    while (now_GR.next()) {
        gs.print(now_GR.getValue('number'));
    }

    Bereichsbezogenes Äquivalent

    Um die addJoinQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addJoinQuery().

    GlideRecord – addJoinQuery(String table, String primaryField)

    Fügt einen Filter hinzu, um Datensätze basierend auf einer Beziehung in einer verknüpften Tabelle zurückzugeben.

    Suchen Sie beispielsweise alle Benutzer in der Datenbankgruppe (Benutzer über sys_user_grmember-Tabelle). Ein anderes Beispiel wäre das Suchen aller Probleme, denen ein Incident zugewiesen wurde (Probleme über die incident.problem_id-Beziehung).

    Dies ist kein echter Datenbank-Join, sondern addJoinQuery() fügt eine Unterabfrage hinzu. Während der Ergebnissatz auf der Grundlage des Joins begrenzt ist, haben Sie nur auf die Felder der Basistabelle Zugriff (diejenigen, die sich in der Tabelle befinden, mit 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.

    Tabelle : 15. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Tabellenname
    primaryField Zeichenfolge Primärfeld (wenn nicht sys_id).
    Tabelle : 16. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Zeichnet auf, wo die Beziehungen übereinstimmen.

    Suchen Sie nach Problemen mit Incidents, indem Sie das Feld open_by am Join-Schlüssel anstelle der sys_id verwenden.

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

    Bereichsbezogenes Äquivalent

    Um die addJoinQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addJoinQuery().

    GlideRecord – addJoinQuery(String table, String primaryField, String joinTableField)

    Fügt einen Filter hinzu, um Datensätze basierend auf einer Beziehung in einer verknüpften Tabelle zurückzugeben.

    Suchen Sie beispielsweise alle Benutzer in der Datenbankgruppe (Benutzer über sys_user_grmember-Tabelle). Ein anderes Beispiel wäre das Suchen aller Probleme, denen ein Incident zugewiesen wurde (Probleme über die incident.problem_id-Beziehung).

    Dies ist kein echter Datenbank-Join, sondern addJoinQuery() fügt eine Unterabfrage hinzu. Während der Ergebnissatz auf der Grundlage des Joins begrenzt ist, haben Sie nur auf die Felder der Basistabelle Zugriff (diejenigen, die sich in der Tabelle befinden, mit 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.

    Tabelle : 17. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Tabellenname
    primaryField Zeichenfolge Primärfeld (wenn nicht sys_id).
    joinTableField Zeichenfolge Feld, das die Tabellen verbindet (wenn nicht sys_id)
    Tabelle : 18. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Zeichnet auf, wo die Beziehungen übereinstimmen.

    Suchen Sie nach Problemen mit zugeordneten Incidents, bei denen der caller_id-Feldwert des Incident dem des opened_by-Field des Problems entspricht.

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

    Bereichsbezogenes Äquivalent

    Um die addJoinQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addJoinQuery().

    GlideRecord – addNotNullQuery(String fieldName)

    Fügt einen Filter hinzu, um Datensätze zurückzugeben, bei denen das angegebene Feld nicht NULL ist.

    Tabelle : 19. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Der Feldname.
    Tabelle : 20. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition GlideQueryCondition von Datensätzen, bei denen das Parameterfeld nicht NULL ist.
    var target = new GlideRecord('incident'); 
      target.addNotNullQuery('short_description');
      target.query();   // Issue the query to the database to get all records
      while (target.next()) {   
         // add code here to process the incident record
      }

    Bereichsbezogenes Äquivalent

    Um die addNotNullQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addNotNullQuery().

    GlideRecord – addNullQuery(String fieldName)

    Fügt einen Filter hinzu, um Datensätze zurückzugeben, bei denen das angegebene Feld NULL ist.

    Tabelle : 21. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Der Feldname.
    Tabelle : 22. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition GlideQueryCondition von Datensätzen, bei denen das angegebene Feld NULL ist.
    var target = new GlideRecord('incident'); 
      target.addNullQuery('short_description');
      target.query();   // Issue the query to the database to get all records
      while (target.next()) {   
         // add code here to process the incident record
      }

    Bereichsbezogenes Äquivalent

    Um die addNullQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addNullQuery().

    GlideRecord – addQuery(String name, Object 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. Für diese Methode werden die Abfragen AND-verknüpft. Wenn für eine der Abfrageanweisungen OR verwendet werden muss, verwenden Sie die GlideQueryCondition-Klasse.

    addQuery() wird normalerweise mit drei Parametern aufgerufen; Tabellenfeld, Operator und Vergleichswert. Es kann nur mit zwei Parametern aufgerufen werden, Tabellenfeld und Vergleichswert, z. B. myObj.addQuery('category','Hardware');. In diesem Fall wird davon ausgegangen, dass der Operator „equal to“ ist.

    Weitere Informationen zur Verwendung von Abfragen finden Sie unter Tabellen in Skripts abfragen.

    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.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des Tabellenfelds
    operator Objekt 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 : 24. Ergebnisse
    Typ Beschreibung
    GlideQueryCondition Verweis auf die GlideQueryCondition, die dem GlideRecord hinzugefügt wurde.
    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.active = false;
     gs.print('Active incident ' + rec.number + ' closed');
     rec.update();
    }

    Verwendung des IN-Operators.

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

    Bereichsbezogenes Äquivalent

    Um die addQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addQuery().

    GlideRecord – addValue(String field, Number value)

    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 eine 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 inkrementieren.

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

    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() übergebenwird.

    Hinweis:
    Wenn setValue() für das angegebene Feld vor dem Aufruf von addValue()aufgerufen wird, wird die addValue()- Methode nicht verarbeitet, und eine Fehlermeldung wird protokolliert.
    Tabelle : 25. Parameter
    Name Typ Beschreibung
    field Zeichenfolge Der Name des zu ändernden Felds in diesem GlideRecord.

    Wenn das zugeordnete Feld kein numerischer Typ ist, wird der Vorgang ignoriert.

    Wert Nummer Der Betrag, der dem Wert hinzugefügt werden soll, wenn der Datensatz gespeichert wird. Um eine Subtraktionsoperation durchzuführen, übergeben Sie einfach einen negativen Wert.
    Tabelle : 26. Ergebnisse
    Typ Beschreibung
    void

    Zeigt einen hinzugefügten Wert an.

    gs.print(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.print(now_GR.u_count);

    Ausgabe: 2

    Zeigt einen Wert an, der subtrahiert wird.

    gs.print(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.print(now_GR.u_count);

    Ausgabe: 3

    GlideRecord – applyEncodedQuery(String queryString)

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

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    queryString Zeichenfolge Codierte Abfrage, die auf den aktuellen GlideRecord angewendet werden soll.
    Tabelle : 28. Ergebnisse
    Typ Beschreibung
    Keine

    function createAcl(table, role) {
      gs.print("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.sys_id.toString(), role);
        return;
      } else {
      now_GR.initialize();
      now_GR.applyEncodedQuery(encQuery);
      var acl = now_GR.insert();
        gs.print("Added read access control on " + table);
        createAclRole(acl, role);
      } 
    }

    GlideRecord – applyTemplate(String template)

    Wenden Sie einen Vorlagendatensatz aus der Vorlagentabelle [sys_template] auf den aktuellen Datensatz an. Wenn die angegebene Vorlage nicht gefunden wird, wird keine Aktion ausgeführt.

    Hinweis:
    Diese Methode instanziiert automatisch eine now_GR.insert()- Methode, wenn für eine Vorlage das Feld Nächste zugehörige untergeordnete Vorlage ausgefüllt ist. Weitere Informationen finden Sie unter Vorlagen für zugehörige Aufgabendatensätze erstellen.
    Tabelle : 29. Parameter
    Name Typ Beschreibung
    template Zeichenfolge Name einer Vorlage aus der Tabelle „Vorlagen“ [sys_template].
    Tabelle : 30. Ergebnisse
    Typ Beschreibung
    void
    var rec1 = new GlideRecord("incident");
    rec1.initialize();
    rec1.applyTemplate("my_incident_template");
    rec1.insert();

    GlideRecord – autoSysFields(Boolean e)

    Aktiviert oder deaktiviert die Aktualisierung auf die Felder „sys_updated_by“, „sys_updated_on“, „sys_mod_count“, „sys_created_by“ und „sys_created_on“. Dies wird häufig zum manuellen Aktualisieren von Feldwerten in einem Datensatz verwendet, während historische Informationen unverändert bleiben.

    Warnung:
    Seien Sie vorsichtig, wenn Sie diese Methode verwenden. Wenn Sie diese Methode verwenden, wird das Feld „sys_mod_count“ nicht erhöht, und andere sys_-Felder werden nicht aktualisiert. Dies kann die Funktionalität beeinträchtigen, einschließlich, aber nicht beschränkt auf Aktivitätsformatierer, Verlaufssätze, Benachrichtigungen und Metriken.
    Tabelle : 31. Parameter
    Name Typ Beschreibung
    e Boolean Bei „false“ werden Updates auf „sys_updated_by“, „sys_updated_on“, „sys_mod_count“, „sys_created_by“ und „sys_created_on“ deaktiviert.
    Tabelle : 32. Ergebnisse
    Typ Beschreibung
    void
    var inc = new GlideRecord('incident');
     
    // Change all Open(1) incidents to Active(2)
     
    inc.addQuery('state', 1);
    inc.query();
     
    while (inc.next()) {
      inc.autoSysFields(false);  // Do not update sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by, and sys_created_on
      inc.setWorkflow(false);    // Do not run any other business rules
      inc.setValue('state', 2);
      inc.update();
    }

    GlideRecord – canCreate()

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

    Tabelle : 33. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 34. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Benutzers das Erstellen von Datensätzen in dieser Tabelle zulassen.
    Mögliche Werte:
    • true: Erstellung zulässig
    • false: Erstellen ist nicht zulässig

    Dieses Beispiel zeigt, ob Datensätze in der Tabelle „vorteil_plan“ erstellt werden können.

    canCreateBenefitPlan : function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canCreate();
    }

    Bereichsbezogenes Äquivalent

    Um die canCreate()-Methode in einer Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: canCreate().

    GlideRecord – canDelete()

    Bestimmt, ob die Zugriffskontrollregeln (einschließlich der Rolle des Benutzers) das Löschen von Datensätzen in dieser Tabelle zulassen.

    Tabelle : 35. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 36. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Benutzers das Löschen von Datensätzen in dieser Tabelle zulassen.
    Gültige Werte:
    • true: Löschen zulässig
    • false: Löschen ist nicht zulässig
    var att = new GlideRecord('sys_attachment');
    att.get('$[sys_attachment.sys_id]');
    var sm = GlideSecurityManager.get();
    var checkMe = 'record/sys_attachment/delete';
    var canDelete = sm.hasRightsTo(checkMe, att);
    gs.log('canDelete: ' + canDelete);

    Bereichsbezogenes Äquivalent

    Um die canDelete()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: canDelete().

    GlideRecord – canRead()

    Bestimmt, ob die Zugriffskontrollregeln (ACLs) das Lesen von Datensätzen in dieser Tabelle ermöglichen. Diese Methode wertet alle ACL-Typen aus, z. B. Benutzerrollen, geskriptete ACLs, ACLs mit geskripteten Bedingungen usw.

    Tabelle : 37. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 38. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Rollen des Benutzers das Lesen von Datensätzen in dieser Tabelle ermöglichen.
    Gültige Werte:
    • true: Lesen zulässig
    • false: Lesen ist nicht zulässig

    Dieses Beispiel zeigt, ob Datensätze aus der Tabelle „vorteil_plan“ gelesen werden können.

    canReadBenefitPlan: function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canRead();
    }

    Bereichsbezogenes Äquivalent

    Um die canRead()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: canRead().

    GlideRecord – canWrite()

    Bestimmt, ob die Zugriffskontrollregeln (einschließlich der Rolle des Benutzers) Updates der Datensätze in dieser Tabelle zulassen.

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

    Dieses Beispiel zeigt, ob Datensätze in die Tabelle „vorteil_plan“ geschrieben werden können.

    canWriteBenefitPlan : function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canWrite();
    }

    Bereichsbezogenes Äquivalent

    Um die canWrite()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: canWrite().

    GlideRecord – changes()

    Bestimmt, ob sich eines der Felder im Datensatz geändert hat.

    Tabelle : 41. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 42. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob Änderungen im angegebenen Datensatz vorhanden sind.
    Mögliche Werte:
    • true: Felder im angegebenen Datensatz haben sich geändert.
    • false: Es wurden keine Felder geändert.

    Dieses Beispiel zeigt, wie Sie überprüfen können, ob sich ein Incident-Datensatz geändert hat.

    var now_GR = new GlideRecord("incident");
    now_GR.query();
    now_GR.next();
    if (now_GR.changes()) {
      gs.print("The incident record reported changes right after being read");
    } else {
      gs.print("The incident record has not changed");
    }

    Bereichsbezogenes Äquivalent

    Um diese Funktionalität in einer bereichsbezogenen Anwendung implementieren, fügen Sie folgenden Code hinzu:

    var now_GR = new GlideRecord("incident");
       now_GR.get("965c9e5347c12200e0ef563dbb9a7156");
       now_GR.short_description = "test";
       var elements = now_GR.getElements();
       var hasChanged = false;
       for(var i=0; i < elements.length;i++){
         var element = elements[i];
         hasChanged = hasChanged || element.changes();
         gs.info(element.getName() + ":" + element.changes());
       }
       gs.info(hasChanged);

    GlideRecord – deleteMultiple()

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

    Diese Methode löscht keine Anhänge.

    Dot-Walking wird für diese Methode nicht unterstützt. Bei Verwendung der deleteMultiple()Funktion für referenzierte Tabellen werden alle Datensätze in der Tabelle gelöscht. Bei der Verwendung von deleteRecord() zum Kaskadieren des Löschvorgangs werden vorherige Aufrufe bei setWorkflow() für dasselbe GlideRecord-Objekt auch ignoriert.

    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 setLimit()- Methode 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, ab dem das Löschen und Aktualisieren von Blockdatensätzen erzwungen wird. Chunking trägt dazu bei, zu verhindern, dass das Löschen von Nicht-Primärschlüsseln in großen Tabellen Replikationsprobleme verursacht. Weitere Informationen finden Sie unter Available system properties.

    Tabelle : 43. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 44. Ergebnisse
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, 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();

    Bereichsbezogenes Äquivalent

    Um die deleteMultiple()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: deleteMultiple().

    GlideRecord – deleteRecord()

    Löscht einen einzelnen Datensatz.

    Hinweis:
    Bei der Verwendung von deleteMultiple() zum Kaskadieren des Löschvorgangs werden vorherige Aufrufe bei setWorkflow() für dasselbe GlideRecord-Objekt ignoriert.
    Tabelle : 45. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 46. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Datensatz erfolgreich gelöscht wurde.
    Mögliche Werte:
    • true: Datensatz wurde gelöscht.
    • false: Es wurde kein Datensatz zum Löschen gefunden.

    Dieses Beispiel zeigt, wie alle inaktiven Datensätze aus der Incident-Tabelle gelöscht werden.

    var rec = new GlideRecord('incident');
    rec.addQuery('active',false);
    rec.query();
    while (rec.next()) { 
     gs.info('Inactive incident ' + rec.number + ' deleted');
     rec.deleteRecord();
    }

    Ausgabe:

    Inactive incident INC0010010 deleted
    Inactive incident INC0010011 deleted

    Dieses Beispiel zeigt, 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

    Bereichsbezogenes Äquivalent

    Um die deleteRecord()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: deleteRecord().

    GlideRecord – find(String columnName, String value)

    Gibt „true“ zurück, wenn für einen Datensatz in der angegebenen Spalte ein übereinstimmender Wert vorhanden ist. Wenn er gefunden wird, wird auch zum ersten übereinstimmenden Datensatz gegangen, wobei im Wesentlichen next() bis zur Rückgabe des Datensatzes ausgeführt wird.

    Tabelle : 47. Parameter
    Name Typ Beschreibung
    columnName Zeichenfolge Feldname, nach dem gesucht werden soll.
    Wert Zeichenfolge Wert, nach dem im angegebenen Feld gesucht werden soll.
    Tabelle : 48. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob ein Datensatz in der aktuellen Tabelle einen übereinstimmenden Wert im angegebenen Feld hat.
    Mögliche Werte:
    • true: Übereinstimmendes Feld.
    • false: Kein übereinstimmendes Feld.

    Dieses Beispiel zeigt, wie Sie einen Datensatz in der Incident-Tabelle mit „Kritisch“ im Feld „Kurzbeschreibung“ finden.

    var now_GR = new GlideRecord("incident");
    now_GR.query();
    var shortDescription = "Critical";
    if (now_GR.find("short_description", shortDescription)) {
      gs.print("An incident with the specified field value was found");
      var recordID = now_GR.getValue("sys_id");
      gs.print("Found in the following record: " + recordID);
    } else {
      gs.print("An incident with the specified field value was not found");
    }

    Ausgabe

    An incident with the specified field value was found
    Found in the following record: 552c48888c033300964f4932b03eb092

    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 nicht gefunden, 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 : 49. Parameter
    Name Typ Beschreibung
    Name Objekt Optional. Name der instanziierten GlideRecord-Spalte, in der nach dem angegebenen Parameter value gesucht werden soll. Wenn nur ein einziger Parameter übergeben wird, geht die Methode davon aus, dass dieser Parameter die sys_id ist.
    Wert Objekt Abzugleichender Wert.
    Tabelle : 50. Ergebnisse
    Typ Beschreibung
    Boolean Gibt an, ob der angeforderte Datensatz gefunden wurde.
    Mögliche Werte:
    • true: Datensatz wurde gefunden
    • false: Datensatz wurde nicht gefunden

    In diesem Beispiel wird ein Incident-Datensatz durch Übergabe der sys_id abgerufen.

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

    In diesem Beispiel wird ein Incident-Datensatz abgerufen, indem die Spalte im zu suchenden Datensatz und der zu suchende Wert übergeben werden.

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

    Bereichsbezogenes Äquivalent

    Um die get()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: get().

    GlideRecord – getAttribute(String fieldName)

    Gibt die Wörterbuchattribute im angegebenen Feld zurück.

    Tabelle : 51. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Feldname, für den die Wörterbuchattribute zurückgegeben werden sollen
    Tabelle : 52. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Wörterbuchattribute

    Dieses Beispiel zeigt, wie die Wörterbuchattribute für „tree_picker“ zurückgegeben werden.

    function doit() {
      var now_GR = new GlideRecord('sys_user');
      now_GR.query("user_name","admin");
      if (now_GR.next()) {
        gs.print("we got one");
        gs.print(now_GR.location.getAttribute("tree_picker"));
      }
    }

    Bereichsbezogenes Äquivalent

    Um die getAttribute()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getAttribute().

    GlideRecord – getClassDisplayValue()

    Gibt die Bezeichnung der Tabelle zurück.

    Tabelle : 53. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 54. 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.

    Bereichsbezogenes Äquivalent

    Um die getClassDisplayValue()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getClassDisplayValue().

    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 ist vom Feldtyp abhängig.
    • 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 : 55. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 56. 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

    Bereichsbezogenes Äquivalent

    Um die getDisplayValue()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getDisplayValue().

    GlideRecord – getED()

    Gibt den Deskriptor des Elements zurück.

    Tabelle : 57. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 58. Ergebnisse
    Typ Beschreibung
    GlideElementDescriptor Deskriptor des Elements.

    Dieses Beispiel zeigt, wie das Namensfeld für einen Incident-GlideRecord abgerufen wird.

    grInc = new GlideRecord('incident');
    grInc.getActiveQuery();
    grInc.query();
    if (grInc.next())
      gs.info("Table Descriptor is - " + grInc.getED().getName());
    

    Ausgabe:

    Table Descriptor is - incident

    Bereichsbezogenes Äquivalent

    Um die getED()-Methode in einer Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: getED().

    GlideRecord – getElement(String fieldName)

    Ruft das GlideElement für ein angegebenes 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') das gleiche Ergebnis wie nowGR.short_description.

    Verwenden Sie in den meisten Fällen kein Dot-Walking, um Werte aus einem Datensatz abzurufen. Dot-Walking ruft das gesamte Objekt anstelle des Feldwerts ab. 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 die Feldwerte mit einer der folgenden Methoden kopieren:

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

    Siehe auch: GlideElement – toString().

    Tabelle : 59. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Spaltenname, für den das GlideElement-Objekt zurückgegeben werden soll.
    Tabelle : 60. Ergebnisse
    Typ Beschreibung
    GlideElement Das GlideElement für die angegebene Spalte des aktuellen Datensatzes. Jedes Objekt beschreibt ein Feld im aktuellen GlideRecord.

    Dieses Beispiel zeigt, wie das GlideElement-Objekt für eine übergebene Tabelle abgerufen und mit den erwarteten Systemmetadatenwerten verglichen wird.

    function compareElement(comment, table, element, /*{}*/ expected) {
      var now_GR = new GlideRecord(table);
      var el = now_GR.getElement(element);
      for (var n in expected) {
        assertEquals(comment + ":" + table + "." + element, expected[n], el.sys_meta[n]);
      }
    }

    Bereichsbezogenes Äquivalent

    Um die getElement()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getElement().

    GlideRecord – getEncodedQuery()

    Ruft die Abfragebedingung des aktuellen Ergebnissatzes als codierte Abfragezeichenfolge ab.

    Weitere Informationen finden Sie unter Codierte Abfragezeichenfolgen .

    Tabelle : 61. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 62. Ergebnisse
    Typ Beschreibung
    Zeichenfolge

    Dieses Beispiel zeigt, wie Sie die aktuelle codierte Abfrage abrufen, um sie später zum Erstellen einer Lese-ACL-Rolle zu verwenden.

    function createAcl(table, role) {
      gs.print("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.sys_id.toString(), role);
       return;
      } else {
        now_GR.initialize();
        now_GR.applyEncodedQuery(encQuery);
        var acl = now_GR.insert();
        gs.print("   Added read access control on " + table);
        createAclRole(acl, role);
      }
    }

    Bereichsbezogenes Äquivalent

    Um die getEncodedQuery()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getEncodedQuery().

    GlideRecord – getEscapedDisplayValue()

    Ruft den Feldwert für das Anzeigefeld des aktuellen Datensatzes ab und fügt Escape-Zeichen für die Verwendung in Jelly-Skripts hinzu.

    Hinweis:
    Damit diese Methode funktioniert, muss in der zugehörigen Tabelle ein Anzeigewert festgelegt worden sein. Weitere Informationen dazu finden Sie unter Feld als Tabellenanzeigewert auswählen.
    Tabelle : 63. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 64. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Wert des Anzeigefelds der aktuellen Tabelle mit Escape-Zeichen.

    Dieses Beispiel zeigt, wie der Anzeigewert user_name mit Escape-Zeichen aus der Benutzertabelle [sys_user] abgerufen wird.

    var userName = "Michael J'ones";
    var now_GR = new GlideRecord("sys_user");
    if (now_GR.get("user_name", userName)) {
      gs.print("Deleting existing user=" + userName);
      now_GR.deleteRecord();
    }
    now_GR.initialize();
    
    var name = userName.split(" ", 2);
    var firstName = name[0];
    var lastName = name[1];
    now_GR.setValue("user_name", userName);
    gs.print("Name: " + now_GR.getValue("user_name"));
    now_GR.setValue("first_name", firstName);
    now_GR.setValue("last_name", lastName);
    var escapeValue = now_GR.getEscapedDisplayValue();
    gs.print("Escaped name: " + escapeValue);

    Ausgabe:

    Name: Michael J'ones
    Escaped name: Michael J\'ones

    GlideRecord – getFields()

    Ruft eine Java-ArrayList von Feldern im aktuellen Datensatz ab.

    Tabelle : 65. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 66. Ergebnisse
    Typ Beschreibung
    Java-ArrayList Felder im aktuellen Datensatz
    // This can be run in "Scripts - Background" for demonstration purposes
     
    // Get a single incident record
    var grINC = new GlideRecord('incident');
    grINC.query();
    grINC.next();
    gs.print('Using ' + grINC.getValue('number'));
    gs.print('');
     
    // getFields() returns a Java ArrayList
    var fields = grINC.getFields();
     
    // Enumerate GlideElements in the GlideRecord object that have values
    gs.print('Enumerating over all fields with values:');
    for (var i = 0; i < fields.size(); i++) {
      var glideElement = fields.get(i);
      if (glideElement.hasValue()) {
        gs.print('  ' + glideElement.getName() + '\t' + glideElement);
      }
    }
    gs.print('');
     
    // Get a specific GlideElement: number
    gs.print('Getting the number field:');
    for (var i = 0; i < fields.size(); i++) {
      var glideElement = fields.get(i);
      if (glideElement.hasValue() && glideElement.getName() == 'number') {
        gs.print('  ' + glideElement.getName() + '\t' + glideElement);
      }
    }

    GlideRecord – getLabel()

    Ruft die Bezeichnung des Felds ab.

    Tabelle : 67. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 68. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Bezeichnung des Felds

    Dieses Beispiel zeigt, wie Sie eine Bezeichnung eines Fragefelds in der Tabelle „Angefordertes Element“ abrufen und die Bezeichnung und ihren Anzeigenamen drucken.

    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() + " = " 
                         + vnow_V.getDisplayValue() + "\n");  
          }
        }
    }

    Bereichsbezogenes Äquivalent

    Um die getLabel()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getLabel().

    GlideRecord – getLocation()

    Ruft die Zeilennummer des aktuellen Datensatzes in der Tabelle ab.

    Tabelle : 71. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 72. Ergebnisse
    Typ Beschreibung
    Nummer Nullbasierte Zeilennummer des aktuellen Datensatzes in der Tabelle.

    Dieses Beispiel zeigt, wie Sie überprüfen können, ob ein Datensatz in der Incident-Tabelle nicht ordnungsgemäß abgerufen wurde, indem Sie die Datensatzanzahl mit der Datensatzspeicherortnummer vergleichen.

    var now_GR = new GlideRecord("incident");
    now_GR.addQuery("priority", "4");
    now_GR.query();
    for (x=0; x <4; x++) {
      now_GR.next();
      gs.print("Location value: " + now_GR.getLocation());
    }

    Ausgabe:

    Location value: 0
    Location value: 1
    Location value: 2
    Location value: 3

    GlideRecord – getPlural()

    Ruft die Pluralbezeichnung der GlideRecord-Tabelle ab.

    Wenn der Tabellenname beispielsweise „Change Request“ lautet, gibt diese Methode „Change Requests“ zurück.

    Tabelle : 73. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 74. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die Pluralbezeichnung der GlideRecord-Tabelle.

    Dieses Beispiel zeigt, dass die Rückgabewerte für getLabel() und getPlural() für die Incident-Tabelle überprüft werden.

    var now_GR = new GlideRecord('incident');
    gs.print(now_GR.getLabel());
    if (now_GR.getLabel() != 'Incident')
    throw "GlideRecord.getLabel() returned unexpected value for table 'incident': " + now_GR.getLabel();
    
    gs.print(now_GR.getPlural());
    if (now_GR.getPlural() != 'Incidents')
    throw "GlideRecord.getPlural() returned unexpected value for table 'incident': " + now_GR.getPlural();
    "success";

    Bereichsbezogenes Äquivalent

    Um die getPlural()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die bereichsbezogene GlideRecord.getED()- Methode, um den Deskriptor des Felds zu erhalten, und verwenden dann die bereichsbezogene GlideElementDescriptor.getPlural()- Methode.

    GlideRecord – getRecordClassName()

    Ruft den Klassennamen (Tabellennamen) für den aktuellen Datensatz ab.

    Tabelle : 75. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 76. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Klassen- oder Tabellenname
    function TaskAssignmentFilter() {
      var classname = current.getRecordClassName();
      var filter = "type=null";
      if (classname == "incident" && current.category == "database") {
        filter = GetGroupFilter("database");
      }
      else {
        // append exclusion for 'catalog' to the filter
        var cat = new GlideRecord("sys_user_group_type");  
        cat.addQuery("name", "catalog");
        cat.query();
        if (cat.next()) {
          filter += "^ORtype!=" + cat.sys_id;
        }
      }
      gs.log("TaskAssignmentFilter: " + filter);
      return filter;
    }

    Bereichsbezogenes Äquivalent

    Um die getRecordClassName()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getRecordClassName().

    GlideRecord – getRelatedLists()

    Ruft eine Liste mit Namen und Anzeigewerten von zugehörigen Listen ab, die dem aktuellen GlideRecord zugeordnet sind.

    Tabelle : 77. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 78. Ergebnisse
    Typ Beschreibung
    HashMap Hashmap mit Namen und Anzeigewerten zugehöriger Listen.

    Dieses Beispiel zeigt, wie Sie die Liste der Namen und Anzeigewerte der zugehörigen Listen abrufen, die dem aktuellen GlideRecord zugeordnet sind, sie in einem Array speichern und ihre Werte dann drucken.

    var now_GR = new GlideRecord('incident');
    var c = now_GR.getRelatedLists().values().toArray();
    var numElements = c.length;
    for( var i = 0; i < numElements; ++i){
      gs.print(i+": "+c[i]);
    }

    GlideRecord – getRelatedTables()

    Ruft eine Liste mit Namen und Anzeigewerten von Tabellen ab, auf die der aktuelle Datensatz verweist.

    Tabelle : 79. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 80. Ergebnisse
    Typ Beschreibung
    HashMap Hashmap mit Namen und Anzeigewerten von zugehörigen Tabellen.

    Dieses Beispiel zeigt, wie Sie die Liste der Namen und Anzeigewerte von Tabellen abrufen, die sich auf den aktuellen GlideRecord beziehen, sie in einem Array speichern und ihre Werte dann drucken.

    var now_GR = new GlideRecord('incident');
    var c = now_GR.getRelatedTables().values().toArray();
    var numElements = c.length;
    for( var i = 0; i < numElements; ++i){
      gs.print(i+": "+c[i]);
    }

    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 die übereinstimmenden Datensätze nicht durchlaufen, verwenden Sie GlideAggregate.
    Abrufen der Anzahldatensätze in GlideRecord oder GlideAggregate
    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 GlideRecord-Methode getRowCount() gibt an, wie viele Datensätze von einer Abfrage zusammen mit den Datensätzen selbst zurückgegeben wurden. Wenn Sie die Anzahl der Datensätze im Ergebnissatz benötigen, bevor oder nachdem Sie den Satz durchlaufen haben, um Aktionen für die Datensätze auszuführen, verwenden Sie diese Methode.
    • Die GlideAggregate-Methode getAggregate() ruft nur eine Anzahl von Datensätzen ab, die der Abfrage entsprechen, ausgenommen die tatsächlichen Datensätze. Die Zusammenfassung muss für das GlideAggregate- Objekt festgelegt werden, bevor die Abfrage ausgegeben wird.
    Datensätze und Anzahl mit GlideRecord getRowCount() abrufen
    Das folgende Beispiel zeigt, wie die Gesamtzahl der aktiven Incidents mit GlideRecord getRowCount() abgerufen wird:
    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 diese Methode nicht die übereinstimmenden Datensätze verwendet, ist es viel effizienter, eine Zusammenfassungsabfrage 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 die einzelnen Datensätze zu verwenden und die Anzahl der Ergebnisse abzurufen, verwenden Sie GlideRecord getRowCount(), da eine einzelne Abfrage diese Funktionalität bereitstellt.

    Tabelle : 81. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 82. 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

    Bereichsbezogenes Äquivalent

    Um die getRowCount()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getRowCount().

    GlideRecord – getRowNumber()

    Ruft die von saveLocation() oder setLocation()festgelegte Zeilennummer ab.

    Um die aktuelle Zeilennummer zu erhalten, verwenden Sie getLocation().

    Tabelle : 83. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 84. Ergebnisse
    Typ Beschreibung
    Nummer Gespeicherte Zeilennummer.

    Dieses Beispiel zeigt, wie Sie eine Zeilenposition in der Benutzertabelle speichern und diese Zeilennummer dann abrufen.

    var now_GR = new GlideRecord('sys_user');
    now_GR.addQuery();
    now_GR.query();
    now_GR.saveLocation(5);
    var savedRow = now_GR.getRowNumber();
    gs.print("Saved row: " + savedRow);

    Ausgabe:

    Saved row: 5

    GlideRecord – getTableName()

    Ruft den Tabellennamen ab, der diesem GlideRecord zugeordnet ist.

    Tabelle : 85. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 86. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Tabellenname

    Dieses Beispiel zeigt, wie der aktuelle Tabellenname in das Systemprotokoll geschrieben wird.

    gs.log('Table: ' + current.getTableName()); 
    gs.log('Parent: ' + current.parent.sys_id); 
    var item = new GlideRecord('sc_req_item'); 
    item.addQuery('sys_id', current.parent.sys_id); 
    item.query(); 
    if(item.next()){ 
      for(var variable in item.variable_pool) {
        gs.log(variable); 
        var answer = eval ("item.variable_pool." + variable + ".getDisplayValue()");
        gs.log(answer);
      }
    }

    Bereichsbezogenes Äquivalent

    Um die getTableName()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getTableName().

    GlideRecord – getUniqueValue()

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

    Tabelle : 87. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 88. 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);

    GlideRecord – getValue(String fieldName)

    Ruft den Zeichenfolgenwert eines angegebenen Felds ab.

    Hinweis:
    Wenn das Plugin Verschlüsselung auf Spaltenebene 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 Platform Encryption.
    Tabelle : 89. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Name eines Felds, für das der Wert abgerufen werden soll.
    Tabelle : 90. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Wert des angegebenen Elements. Gibt NULL zurück, wenn das Feld leer ist oder nicht vorhanden ist.
    Hinweis:
    Boolesche Werte werden als Zeichenfolgenwerte „0“ und „1“ anstelle von „falsch“ und „wahr“ zurückgegeben.

    In diesem Beispiel wird die Methode getValue() verwendet, um Feldwerte in zwei GlideRecords abzurufen, die verglichen werden.

    function() {
      var jobExists = true;
      var jobGr;
      while(jobExists){
        jobGr = new GlideRecord("sys_trigger");
        jobExists = jobGr.get("name", "BaselineAPI: Create Baseline Job");
      }
      var baselineGr =  new GlideRecord('pm_project_baseline');
      baselineGr.get('baseline_name','Test Project Baseline');
      baselineGr.query();
     
      Assert.assertEquals(true, baselineGr.next());
      var projectGr =  new GlideRecord('pm_project');
      projectGr.get(this._project);
      Assert.assertEquals(projectGr.getValue('cost'), baselineGr.getValue('cost'));
      Assert.assertEquals((projectGr.getValue('capex_cost')), baselineGr.getValue('capex_cost'));
      Assert.assertEquals((projectGr.getValue('opex_cost')), baselineGr.getValue('opex_cost'));
      Assert.assertEquals((projectGr.getValue('budget_cost')), baselineGr.getValue('budget_cost'));
      Assert.assertEquals((projectGr.getValue('value')), baselineGr.getValue('value'));
      Assert.assertEquals((projectGr.getValue('npv_value')), baselineGr.getValue('npv_value'));  Assert.assertEquals((projectGr.getValue('score')), baselineGr.getValue('score'));
    }

    Bereichsbezogenes Äquivalent

    Um die getValue()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getValue().

    GlideRecord – GlideRecord(String tableName)

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

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

    GlideRecord – hasAttachments()

    Bestimmt, ob der aktuelle GlideRecord Anhänge enthält.

    Tabelle : 92. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 93. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn der aktuelle Datensatz Anhänge enthält, andernfalls „false“.

    In diesem Beispiel wird nach Anhängen gesucht und ein Link erstellt, falls vorhanden.

    var attachment_link = '';
    var rec = new GlideRecord('sc_req_item');
    rec.addQuery('sys_id', current.request_item);
    rec.query();
    if(rec.next()){
      if(rec.hasAttachments()){
        attachment_link = gs.getProperty('glide.servlet.uri') + rec.getLink();
      }   
    }

    GlideRecord – hasNext()

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

    Tabelle : 94. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 95. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn der Abfragesatz mehr Datensätze enthält, andernfalls „false“.

    Dieses Beispiel zeigt, wie verschiedene Funktionen aufgerufen werden, je nachdem, ob im aktuellen GlideRecord zusätzliche Datensätze vorhanden sind.

    if (now_GR.hasNext()) {
      dothis(); // found it, do it
    } else {
      dothat(); // didn't find it
    };

    Bereichsbezogenes Äquivalent

    Um die hasNext()-Methode in einer bereichsbezogenen Anwendung zu verwende, verwenden Sie die entsprechende bereichsbezogene Methode: hasNext().

    GlideRecord – initialize()

    Erstellt einen leeren Datensatz innerhalb des aktuellen GlideRecord, der vor einer Einfügung ausgefüllt werden kann.

    Tabelle : 96. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 97. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel wird ein neuer Datensatz in der to_do-Tabelle initialisiert, ein Datensatz erstellt und dann in die Tabelle eingefügt.

    var now_GR = new GlideRecord('to_do');
    now_GR.initialize(); 
    now_GR.name = 'first to do item'; 
    now_GR.description = 'learn about GlideRecord'; 
    now_GR.insert();

    Bereichsbezogenes Äquivalent

    Um die initialize()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: initialize().

    GlideRecord – insert()

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

    Tabelle : 98. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 99. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die sys_id des eingefügten Datensatzes oder null, wenn der Datensatz nicht eingefügt wird.

    Dieses Beispiel erstellt einen neuen Datensatz in der to_do-Tabelle, legt Werte für einige Datensatzfelder fest und fügt den Datensatz dann in die Tabelle ein.

    var now_GR = new GlideRecord('to_do');
    now_GR.initialize(); 
    now_GR.name = 'first to do item'; 
    now_GR.description = 'learn about GlideRecord'; 
    now_GR.insert();

    Bereichsbezogenes Äquivalent

    Um die insert()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: insert().

    GlideRecord – insertWithReferences()

    Fügt einen neuen Datensatz ein und fügt auch alle zugehörigen Datensätze mit den angegebenen Informationen ein oder aktualisiert sie.

    Tabelle : 100. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 101. Ergebnisse
    Typ Beschreibung
    Zeichenfolge sys_id des eingefügten Datensatzes oder NULL, wenn der Datensatz nicht eingefügt wurde.

    Wenn kein Referenzwert angegeben ist (wie unten), wird ein neuer Benutzerdatensatz mit dem angegebenen first_name und last_name erstellt, und der Wert caller_id wird auf diesen neu erstellten sys_user-Datensatz festgelegt. Das Ergebnis ist ein neuer sys_user-Datensatz mit dem angegebenen first_name und last_name und ein neuer Incident-Datensatz mit der angegebenen short_description und caller_id.

    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'New incident 1';
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.insertWithReferences();

    Wenn ein caller_id-Wert angegeben ist, wird diese caller_id mit dem angegebenen first_name und last_name aktualisiert. Das Ergebnis ist ein neu erstellter Incident Record mit Werten für short_description und caller_id.

    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'New incident 1';
    inc.caller_id.setDisplayValue('David Loo');
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.insertWithReferences();

    GlideRecord – instanceOf(String className)

    Überprüft eine Tabelle auf den Typ/die Klasse der Tabelle.

    Tabelle : 102. Parameter
    Name Typ Beschreibung
    className Zeichenfolge Name eines Datensatztyps oder einer Datensatzklasse.
    Tabelle : 103. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn Tabelle eine Instanz der angegebenen Klasse ist.

    In diesem Beispiel wird überprüft, ob die übergebene Gruppe/der übergebene Benutzer den Tabellen-/Klassentyp „sys_user“ aufweist.

    function(groupOrUser, label, grantedBy) {
      var labelCheck;
      var labelRecord;
      if (typeof label === "string") {
        labelRecord = new GlideRecord('label');
        labelRecord.addQuery('name', label);
        labelRecord.query();
        labelRecord.next();
      } else {
        labelRecord = label;
      }
      if (groupOrUser.instanceOf('sys_user')) {
        labelCheck = new GlideRecord('label_user_m2m');
        labelCheck.addQuery('user', groupOrUser.sys_id);
      } else {
        labelCheck = new GlideRecord('label_group_m2m');
        labelCheck.addQuery('group', groupOrUser.sys_id);
      }
      labelCheck.addQuery('label', labelRecord.sys_id);
      if (grantedBy !== "undefined") {
        labelCheck.addQuery('granted_by', grantedBy.sys_id);
      }
      labelCheck.query();
      return labelCheck.hasNext();
    }

    GlideRecord – isNewRecord()

    Bestimmt, ob der aktuelle Datensatz in die Datenbank eingefügt wurde.

    Diese Methode gibt nur dann „true“ zurück, wenn die newRecord()-Methode aufgerufen wurde. Diese Methode ist nützlich für die geskriptete ACL und in den Bedingungen für UI Actions, sollte jedoch nicht in Hintergrundskripts verwendet werden.

    Hinweis:
    Diese Methode gibt „true“ für jeden neuen Datensatz während einer Business Rule zurück, oder wenn die newRecord()-Methode zum Initialisieren eines Datensatzes mit Standardwerten und einer eindeutigen ID (sys_id) verwendet wird. In allen anderen Fällen wird „false“ zurückgegeben.
    Tabelle : 104. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 105. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der aktuelle Datensatz neu ist (wurde nicht in die Datenbank eingefügt).
    Mögliche Werte:
    • true: Datensatz ist neu.
    • false: Datensatz ist nicht neu.

    In diesem Beispiel wird überprüft, ob der neue Datensatz in die Tabelle „sys_user“ eingefügt wurde.

    var now_GR = new GlideRecord("sys_user");
    now_GR.newRecord();
    now_GR.setValue("user_name", "John Smith");
    gs.print("Is this a new record: " + now_GR.isNewRecord());
    
    var now_GR2 = new GlideRecord("sys_user");
    now_GR2.addQuery("user_name", "Abel Tutor");
    now_GR2.query();
    now_GR2.next();
    gs.print("Is this a new record: " + now_GR2.isNewRecord());

    GlideRecord – isValid()

    Bestimmt, ob die aktuelle GlideRecord-Tabelle vorhanden ist.

    Tabelle : 106. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 107. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn die Tabelle vorhanden (gültig) ist, andernfalls „false“.

    In diesem Beispiel wird überprüft, ob die Incident-Tabelle vorhanden ist.

    var testTable = new GlideRecord('incident');
    gs.print(testTable.isValid());

    Bereichsbezogenes Äquivalent

    Um die isValid()-Methode in einer Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: isValid().

    GlideRecord – isValidField(String fieldName)

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

    Tabelle : 108. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Name des zu überprüfenden Felds.
    Tabelle : 109. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn das Feld in der Tabelle definiert ist, andernfalls „false“.

    In diesem Beispiel wird überprüft, ob das Feld sys_class_name in der Tabelle „cmds_software_instance“ vorhanden ist.

    var gobj = new GlideRecord('sys_db_object');
    gobj.addQuery('name','cmdb_software_instance');
    gobj.query();
    if (!gobj.next()) {
      var si = new GlideRecord('cmdb_software_instance');
      si.query();
      var count = 0;
      while (si.next()) {
        if (!si.isValidField('sys_class_name')) {
          var ci = new GlideRecord('cmdb_ci');
          ci.name = si.name;
          ci.setNewGuidValue(si.sys_id);
          ci.sys_class_name = 'cmdb_software_instance';
          ci.insert();
          count++;
        }
      }
    }

    Bereichsbezogenes Äquivalent

    Um die isValidField()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: isValidField().

    GlideRecord – isValidRecord()

    Bestimmt, ob der aktuelle Datensatz gültig ist.

    Tabelle : 110. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 111. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der aktuelle Datensatz gültig ist.
    Gültige Werte:
    • true: Datensatz ist gültig.
    • false: Nach dem Ende des Datensatzes.

    In diesem Beispiel wird überprüft, ob der Datensatzbezeichner durch die übergebene sys_id ein gültiger Datensatz in der Ideentabelle ist.

    function(sysId) {
      this.log('Inside acceptIdea sysId = ' + sysId);
      var now_GR = new GlideRecord('idea');
      now_GR.get(sysId);
      this.log('now_GR.isValidRecord() = ' + now_GR.isValidRecord());
      if(now_GR.isValidRecord()) {
        now_GR.setValue('state', 2);
        this.log('Updating gliderecord');
        this.log('gliderecord table name' + now_GR.getTableName());
        now_GR.update();
      }
    }

    Bereichsbezogenes Äquivalent

    Um die isValidRecord()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: isValidRecord().

    GlideRecord – newRecord()

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

    Tabelle : 112. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 113. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel wird überprüft, ob der neue Datensatz in die Tabelle „sys_user“ eingefügt wurde.

    var now_GR = new GlideRecord("sys_user");
    now_GR.newRecord();
    now_GR.setValue("user_name", "John Smith");
    gs.print("Is this a new record: " + now_GR.isNewRecord());
    
    var now_GR2 = new GlideRecord("sys_user");
    now_GR2.addQuery("user_name", "Abel Tutor");
    now_GR2.query();
    now_GR2.next();
    gs.print("Is this a new record: " + now_GR2.isNewRecord());

    Bereichsbezogenes Äquivalent

    Um die newRecord()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: newRecord().

    GlideRecord – next()

    Geht zum nächsten Datensatz im GlideRecord.

    Verwenden Sie diese Methode, um die Datensätze zu durchlaufen, die von einer GlideRecord-Abfrage zurückgegeben werden.

    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().
    Hinweis:
    Das if(myObj.next())-Konstrukt verarbeitet nur den ersten zurückgegebenen Datensatz.
    Tabelle : 114. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 115. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob im GlideRecord ein „nächster“ Datensatz vorhanden ist.
    Gültige Werte:
    • true: Wechsel zum nächsten Datensatz war erfolgreich.
    • false: Keine weiteren Datensätze im Ergebnissatz.

    Dieses Beispiel zeigt, wie die Incident-Tabelle mit der Methode next() durchlaufen wird.

    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) { 
      gs.print(rec.number + ' exists');
    }

    Bereichsbezogenes Äquivalent

    Um die next()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: next().

    GlideRecord – _next()

    Geht zum nächsten Datensatz im GlideRecord. Bietet die gleiche Funktionalität wie next(), für Fälle, in denen der GlideRecord die Spalte „next“ aufweist.

    Tabelle : 116. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 117. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn der Abfragesatz mehr Datensätze enthält.
    var rec = new GlideRecord('sys_template');
    rec.query();
    while (rec._next()) { 
      gs.print(rec.number + ' exists');
    }

    Bereichsbezogenes Äquivalent

    Um die _next()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: _next().

    GlideRecord – operation()

    Bestimmt, ob ein Vorgang eingefügt, aktualisiert oder gelöscht wird.

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

    Informationen zur Verwendung der globalen Variablen „ current“ finden Sie unter Globale Variablen in Business Rules.

    Tabelle : 118. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 119. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Aktueller Vorgang.
    Mögliche Werte:
    • löschen
    • einfügen
    • Aktualisieren

    Das folgende Beispiel zeigt, wie diese Methode in einer Business Rule verwendet wird. Die Methode operation() erkennt, welcher Vorgang ein Event 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; }

    Dieses Beispiel zeigt, wie die operation()- Methode verwendet wird, um den Operation-Wert an die startFlow()- Methode zu übergeben.

    function createNewTransferOrder() {
      var toGr = new GlideRecord("alm_transfer_order");
      toGr.initialize();
      // From Stockroom - Southern California Warehouse
      toGr.setValue('from_stockroom', fromStockroomSysId);
      // To Stockroom - San Diego North - Pickup/Dropoff
      toGr.setValue('to_stockroom', toStockroomSysId);
      var transferOrder = toGr.insert();
    
      if(toGr.get(transferOrder)){
      // Start Transfer Order Workflow
      var wf = new Workflow();
      var context = wf.startFlow(toWorkflowSysId, toGr, toGr.operation(),{});
        createNewTransferOrderLine(transferOrder);
      } 
    }

    Bereichsbezogenes Äquivalent

    Um die operation()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: operation().

    GlideRecord – orderBy(String fieldName)

    Gibt einen Feldnamen an, der zum Sortieren des Abfragesatzes verwendet werden soll. Um nach mehreren Feldern zu sortieren, rufen Sie diese Methode mehrmals mit unterschiedlichen Feldwerten auf.

    Tabelle : 120. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Feld, nach dem der Abfragesatz sortiert werden soll.
    Tabelle : 121. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie der Abfragesatz nach „order“ und dann nach „number“ sortiert wird.

    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();
      var len = child.getRowCount().toString().length;
      var seq = 0;
      while (child.next()) {
        count += UpdateProjectTaskWBS(child, 1, ++seq, len, '');
      }
      gs.addInfoMessage(count + ' Project Tasks updated');
    }

    Bereichsbezogenes Äquivalent

    Um die orderBy()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: orderBy().

    GlideRecord – orderByDesc(String, fieldName)

    Gibt das Feld an, das zum Sortieren der Abfragesätze in absteigender Reihenfolge verwendet werden soll.

    Tabelle : 122. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Name des Felds, das zum Sortieren der Abfrageergebnisse in absteigender Reihenfolge verwendet werden soll.
    Tabelle : 123. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie der Abfragesatz in aufsteigender oder absteigender Reihenfolge sortiert wird.

    function(fiscalType, orderByDesc) {
      var now_GR = new GlideRecord('fiscal_period');
      now_GR.addQuery('fiscal_type', fiscalType);
      if (orderByDesc) {
        now_GR.orderByDesc('fiscal_start_date_time');
      } else {
        now_GR.orderBy('fiscal_start_date_time');
      }
      now_GR.setLimit(1);
      now_GR.query();
      now_GR.next();
      return now_GR.sys_id;
    }

    Bereichsbezogenes Äquivalent

    Um die orderByDesc()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: orderByDesc().

    GlideRecord – query(String field, String value)

    Führt eine Abfrage für die Tabelle basierend auf den Filtern aus, die durch Abfragemethoden wie addQuery() und addEncodedQuery()angegeben werden.

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

    Hinweis:
    Diese Methode schlägt fehl, wenn in der Tabelle ein Feld mit dem Namen „query“ vorhanden ist. Verwenden Sie in diesem Fall die Methode _query(). Um Abfragen in einer domänengetrennten Instanz auszuführen, verwenden Sie die Methode queryNoDomain().

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

    Tabelle : 124. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Optional – Wertparameter muss ebenfalls 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 zu filtern, die die angegebenen Werte enthalten. Wenn die Parameter angegeben sind, wird der Abfrage die Bedingung „name=value“ hinzugefügt.
    Wert Zeichenfolge Optional – muss auch Feldparameter angegeben werden. Wert, nach dem im angegebenen Feldparameter gesucht werden soll.
    Tabelle : 125. Ergebnisse
    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

    Bereichsbezogenes Äquivalent

    Um die query()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: query().

    GlideRecord – _query(String field, String value)

    Führt eine Abfrage für die Tabelle basierend auf den Filtern aus, die durch Abfragemethoden wie addQuery() und addEncodedQuery()angegeben werden. Diese Methode soll für Tabellen verwendet werden, in denen eine Spalte mit dem Namen „query“ vorhanden ist, die beim Ausführen der query()-Methode 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 Skripts abfragen.

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

    Tabelle : 126. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Optional – Wertparameter muss ebenfalls 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 zu filtern, die die angegebenen Werte enthalten. Wenn die Parameter angegeben sind, wird der Abfrage die Bedingung „name=value“ hinzugefügt.
    Wert Zeichenfolge Optional – muss auch Feldparameter angegeben werden. Wert, nach dem im angegebenen Feldparameter gesucht werden soll.
    Tabelle : 127. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Beispiel zeigt, wie Sie die Wissensfeedback-Tabelle [kb_feedback] abfragen und KB-Artikel mit Kommentaren auflisten, 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?

    Bereichsbezogenes Äquivalent

    Um die _query()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: _query().

    GlideRecord – queryNoDomain(String field, String value)

    Wird in domänengetrennten Instanzen verwendet. Ähnlich wie bei query() wird die Abfrage anhand der Tabelle basierend auf den durch addQuery() und addEncodedQuery() angegebenen Filtern ausgeführt, Domänen werden jedoch ignoriert.

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

    Tabelle : 128. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Optional – Wertparameter muss ebenfalls 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 zu filtern, die die angegebenen Werte enthalten. Wenn die Parameter angegeben sind, wird der Abfrage die Bedingung „name=value“ hinzugefügt.
    Wert Zeichenfolge Optional – muss auch Feldparameter angegeben werden. Wert, nach dem im angegebenen Feldparameter gesucht werden soll.
    Tabelle : 129. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie die Incident-Tabelle für alle Domänen abgefragt wird.

    var rec = new GlideRecord('incident');
    rec.queryNoDomain();
    while (rec.next()) { 
     gs.print(rec.number + ' exists');
    }

    GlideRecord – restoreLocation()

    Legt den aktuellen Datensatz als den Datensatz fest, der mit savelocation() gespeichert wurde. Wenn saveLocation() nicht aufgerufen wurde, wird der aktuelle Datensatz auf den ersten Datensatz des GlideRecord gesetzt.

    Tabelle : 130. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 131. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie Sie den aktuellen Datensatzspeicherort speichern, zum nächsten Datensatz wechseln und dann zum gespeicherten Speicherort zurückkehren.

    function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      now_GR.next();
      var firstID = now_GR.getValue("sys_id");
      now_GR.next();
      var restoreID = now_GR.getValue("sys_id");
      now_GR.saveLocation();
      now_GR.next();
      var lastID = now_GR.getValue("sys_id");
      now_GR.restoreLocation();
      now_GR.next();
      var thisID = now_GR.getValue("sys_id");
      var progress = "first id=" + firstID
        + "\n\t last id=" + lastID
        + "\n\t saved id=" + restoreID
        + "\n\t restored id=" + thisID;
      gs.print("Progress:\n\t" + progress);
    }

    GlideRecord – saveLocation()

    Speichert die aktuelle Zeilennummer, sodass Sie mit der restoreLocation()- Methode zu diesem Speicherort zurückkehren können.

    Tabelle : 132. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 133. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie Sie den aktuellen Datensatzspeicherort speichern, zum nächsten Datensatz wechseln und dann zum gespeicherten Speicherort zurückkehren.

    function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      now_GR.next();
      var firstID = now_GR.getValue("sys_id");
      now_GR.next();
      var restoreID = now_GR.getValue("sys_id");
      now_GR.saveLocation();
      now_GR.next();
      var lastID = now_GR.getValue("sys_id");
      now_GR.restoreLocation();
      now_GR.next();
      var thisID = now_GR.getValue("sys_id");
      var progress = "first id=" + firstID
        + "\n\t last id=" + lastID
        + "\n\t saved id=" + restoreID
        + "\n\t restored id=" + thisID;
      gs.print("Progress:\n\t" + progress);
    }

    GlideRecord – setAbortAction(Boolean b)

    Legt ein Flag fest, um anzugeben, ob die nächste Datenbankaktion (Einfügen, Aktualisieren, Löschen) abgebrochen werden soll.

    Wird in einer onBefore-Business Rule verwendet, um die Ausführung der Datenbankaktion zu verhindern. 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 : 134. Parameter
    Name Typ Beschreibung
    b Boolean „True“, um die nächste Aktion abzubrechen, oder „false“, um die nächste Aktion zuzulassen.
    Tabelle : 135. Ergebnisse
    Typ Beschreibung
    void
    if ((!current.u_date1.nil()) && (!current.u_date2.nil())) {
      var start = current.u_date1.getGlideObject().getNumericValue();
      var end = current.u_date2.getGlideObject().getNumericValue();
      if (start > end) {
        gs.addInfoMessage('start must be before end');
        current.u_date1.setError('start must be before end');
        current.setAbortAction(true);
      }
    }

    Bereichsbezogenes Äquivalent

    Um die setAbortAction()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setAbortAction().

    GlideRecord – setDisplayValue(String name, Object value)

    Legt das angegebene Feld auf den angegebenen Anzeigewert fest.

    Für ein Referenzfeld ist dies der Anzeigewert für die Tabelle. Für ein Datum/eine Uhrzeit ist dies die Uhrzeit in der aktuellen Zeitzone des Aufrufers.

    Tabelle : 136. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des Felds, für das der Anzeigewert festgelegt werden soll.
    Wert Objekt Anzeigewert für das angegebene Feld.
    Tabelle : 137. Ergebnisse
    Typ Beschreibung
    void
    var now_GR = new GlideRecord('incident');
    now_GR.get('46f09e75a9fe198100f4ffd8d366d17b');
    now_GR.setDisplayValue('opened_at','2011-02-13 4:30:00');
    now_GR.update();

    GlideRecord – setForceUpdate(Boolean force)

    Aktualisiert den Datensatz, auch wenn sich Felder nicht geändert haben.

    Tabelle : 138. Parameter
    Name Typ Beschreibung
    force Boolean „True“ für Update, auch wenn sich Felder nicht geändert haben, andernfalls „false“.
    Tabelle : 139. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie Sie die Aktualisierung eines Datensatzes in der Tabelle „itfm_cost_model“ auch ohne Änderungen erzwingen.

    function() {
      gs.log("Update Script: Upgrade_cost_model_data.js started");
      var now_GR = new GlideRecord("itfm_cost_model");
      now_GR.initialize();
      now_GR.addNullQuery("source_table");
      now_GR.query();
      while (now_GR.next()) {
        now_GR.setForceUpdate(true);
        var sourceTable = getSourceTable(now_GR.getValue('clone_from'));
        if(sourceTable){
          now_GR.setValue("source_table", sourceTable);
          now_GR.setWorkflow(false);
          now_GR.update();
        }
      }
    }

    GlideRecord – setLimit(Number limit)

    Legt die maximale Anzahl von Datensätzen fest, die im GlideRecord von einer Abfrage zurückgegeben werden sollen.

    Tabelle : 140. Parameter
    Name Typ Beschreibung
    limit Zahl Grenzwert für Datensätze, abgerufen werden sollen.
    Tabelle : 141. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel wird die Anzahl der in der Abfrage zurückgegebenen Datensätze auf maximal zehn festgelegt.

    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(10);
    now_GR.query();

    Bereichsbezogenes Äquivalent

    Um die setLimit()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setLimit().

    GlideRecord – setLocation(Number rowNumber)

    Legt die aktuelle Zeilenposition auf den angegebenen Wert fest.

    Tabelle : 142. Parameter
    Name Typ Beschreibung
    rowNumber Nummer Zeilennummer, die als aktuelle Zeile festgelegt werden soll.
    Tabelle : 143. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie die Datensatzposition in der Incident-Tabelle festgelegt wird

    verifySetLocation : function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      var recordIDs = new Array();
      while(now_GR.next()) {
      recordIDs.push(now_GR.getValue("sys_id"));
      }
      for (var ix = recordIDs.length - 1; ix >= 0; ix--) {
        now_GR.setLocation(ix);
        Assert.assertEquals(recordIDs[ix], now_GR.getValue("sys_id"),
          "The entry retrieved for the index " + ix + " is not valid");
      }
    }

    GlideRecord – setNewGuid()

    Generiert eine neue GUID und legt sie als eindeutige ID (sys_id) für den aktuellen Datensatz fest.

    Diese Funktion gilt nur für neue Datensätze. Sie können die GUID für einen vorhandenen Datensatz nicht ändern.

    Tabelle : 144. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 145. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys_id des aktuellen Datensatzes.

    In diesem Beispiel wird ein neuer Aufgabendatensatz erstellt und die ID in der Tabelle task_rel_task gespeichert.

    var task = new GlideRecord ('task');
    var tsk_id = task.setNewGuid();
     
    task.description = "Request: " + current.request.number;
    task.description = task.description + "\n" + "Requested by: " + current.request.u_requested_by.name;
    task.description = task.description + "\n" + "Requested for: " + current.request.u_requested_for.name;
    task.description = task.description + "\n" + "Item: " + current.cat_item.name;
     
    var now_GR = new GlideRecord ('task_rel_task');
    //link the incident to the request
    now_GR.parent = current.request;
    now_GR.child = tsk_id;
    now_GR.insert();

    GlideRecord – setNewGuidValue (String guid)

    Generiert eine neue GUID und legt sie beim Einfügen eines neuen Datensatzes als eindeutige ID für den aktuellen Datensatz fest.

    Tabelle : 146. Parameter
    Name Typ Beschreibung
    guid Zeichenfolge Wert für die neue GUID.
    Tabelle : 147. Ergebnisse
    Typ Beschreibung
    void

    In diesem Beispiel wird eine neue GUID generiert und als eindeutige ID für den neu erstellten cmdb_software_instance-Datensatz festgelegt.

    var gobj = new GlideRecord('sys_db_object');
    gobj.addQuery('name','cmdb_software_instance');
    gobj.query();
    if (!gobj.next()) {
      var si = new GlideRecord('cmdb_software_instance');
      si.query();
      var count = 0;
      while (si.next()) {
      if (!si.isValidField('sys_class_name')) {
        var ci = new GlideRecord('cmdb_ci');
        ci.name = si.name;
        ci.setNewGuidValue(si.sys_id);
        ci.sys_class_name = 'cmdb_software_instance';
        ci.insert();
        count++;
      }
    }

    Bereichsbezogenes Äquivalent

    Um die setNewGuidValue()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setNewGuidValue().

    GlideRecord – setQueryReferences(Boolean queryReferences)

    Aktiviert oder deaktiviert die Verwendung des Anzeigenamens des Referenzfelds, wenn ein Referenzfeld abgefragt wird.

    Tabelle : 148. Parameter
    Name Typ Beschreibung
    queryReferences Boolean Kennzeichnung, die angibt, wann die Daten generiert werden sollen.
    Gültige Werte:
    • true: Generiert eine Zeichenfolge mit Anzeigenamen.
    • false: Generiert eine Zeichenfolge von sys_ids.
    Tabelle : 149. Ergebnisse
    Typ Beschreibung
    void
    var grByName = new GlideRecord(this.TEST_TABLE);
    grByName.addQuery("caller_id", userDisplayName);
    grByName.setQueryReferences(true);
    grByName.query();
    if (grByName.hasNext()) {
      while(grByName.next()) {
        gs.print("Incident caller_id=" + grByName.caller_id);
      }
    } else {
      gs.print("NO RESULTS");
    }

    GlideRecord – setUseEngines(Boolean e)

    Deaktiviert oder ermöglicht die Ausführung von Engines (Genehmigungsregeln/Zuweisungsregeln).

    Warnung:
    Das Deaktivieren der Ausführung von -Engines kann erhebliche Auswirkungen auf Ihre ServiceNow® Instanz und ihre Funktionsweise haben. Stellen Sie sicher, dass Sie diese Änderung gründlich testen, bevor Sie sie in der Produktion bereitstellen.
    Tabelle : 150. Parameter
    Name Typ Beschreibung
    e Boolean Kennzeichnung, die angibt, ob die Ausführung von Engines aktiviert oder deaktiviert werden soll.
    Gültige Werte:
    • true: Engines aktivieren
    • false: Engines deaktivieren
    Tabelle : 151. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie Engines und Business Rules deaktiviert werden, bevor eine Abfrage ausgeführt wird.

    function auditOAuthInboundRequestsUsage(){
      var now_GR = new GlideRecord("oauth_credential");
      var oauthClient = now_GR.addJoinQuery("oauth_entity", "peer", "sys_id");
      now_GR.addQuery("type", "access_token");
      now_GR.addQuery("expires", ">", nowDateTime());
      now_GR.addNullQuery("oauth_requestor_profile");
      oauthClient.addCondition("active", "true");
      oauthClient.addCondition("type", "client");
      now_GR.setUseEngines(false);
      now_GR.setWorkflow(false);
      now_GR.query();
      return now_GR.hasNext();
    }

    GlideRecord – setValue(String name, Object value)

    Legt das angegebene Feld auf den angegebenen Wert fest.

    Normalerweise würde ein Skript eine direkte Zuweisung vornehmen, z. B. now_GR.category = value. Wenn der Elementname jedoch in einem Skript 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.

    Wenn der Wertparameter NULL ist, wird der Datensatz nicht aktualisiert, und es wird kein Fehler ausgegeben.
    Hinweis:
    Diese Methode kann nicht für Journalfelder verwendet werden. Verwenden Sie stattdessenGlideElement.setJournalEntry().
    Hinweis:
    Wenn das Plugin Verschlüsselung auf Spaltenebene Enterprise aktiviert ist und die Instanz Zugriff auf den Schlüssel hat, kann diese Methode verschlüsselte Daten in verschlüsselte Felder einfügen. Wenn die Instanz keinen Zugriff auf den Schlüssel hat, gibt diese Methode einen Fehler zurück. Weitere Informationen finden Sie unter Platform Encryption.
    Tabelle : 152. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des Felds, dessen Wert Sie festlegen möchten.
    Wert Objekt Wert, der im angegebenen Feld festgelegt werden soll.
    Tabelle : 153. Ergebnisse
    Typ Beschreibung
    void

    Dieses Beispiel zeigt, wie der Wert des Statusfelds in der Tabelle „planned_task“ festgelegt wird.

    function() {
      var topTask = new GlideRecord('planned_task');
      topTask.setValue('state', -5);
      var childTask = new GlideRecord('planned_task');
      childTask.setValue('state', -5);
      var s = new PlannedTaskStateManagement(childTask, topTask);
      var state = s.manageStateChange(false);
      Assert.assertEquals("-5", state);
    }

    Bereichsbezogenes Äquivalent

    Um die setValue()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setValue().

    GlideRecord – setWorkflow(Boolean e)

    Aktiviert oder deaktiviert die Ausführung von Business Rules, die normalerweise durch nachfolgende Aktionen ausgelöst werden. Wenn der Parameter e auf „false“ festgelegt ist, wird eine Einfügung/Aktualisierung nicht geprüft. Die Prüfung erfolgt nur, wenn der Parameter für einen GlideRecord-Vorgang auf „true“ festgelegt ist.

    Hinweis:
    Die setWorkflow()-Methode wird ignoriert, wenn Sie nachfolgend entweder die Methode deleteProblem() oder deleteMultiple() zum Kaskadieren des Löschvorgangs verwenden.
    Warnung:
    Das Deaktivieren der Ausführung von Business Rules kann erhebliche Auswirkungen auf Ihre ServiceNow® Instanz und deren Funktionsweise haben. Stellen Sie sicher, dass Sie diese Änderung gründlich testen, bevor Sie sie in der Produktion bereitstellen.
    Tabelle : 154. Parameter
    Name Typ Beschreibung
    e Boolean Kennzeichnung, die angibt, ob die Ausführung von Business Rules aktiviert oder deaktiviert werden soll.
    Gültige Werte:
    • true: Business Rules aktivieren
    • false: Business Rules deaktivieren
    Tabelle : 155. Ergebnisse
    Typ Beschreibung
    void
    doit('name1','name2'); 
     
    function doit(username1,username2) { 
     
      var usr1 = new GlideRecord('sys_user');
      var usr2 = new GlideRecord('sys_user');
      var num = 0;
     
      if (usr1.get('user_name',username1) && usr2.get('user_name',username2)) {
        var ref;
        var dict = new GlideRecord('sys_dictionary');
        dict.addQuery('reference','sys_user');
        dict.addQuery('internal_type','reference');
        dict.query();
        while (dict.next()) {
          num = 0;
          ref = new GlideRecord(dict.name.toString());
          ref.addQuery(dict.element,usr1.sys_id);
          ref.query();
          while (ref.next()) {
            ref.setValue(dict.element.toString(),usr2.sys_id); 
            ref.setWorkflow(false);
            ref.update();
            num++;
          }
          if (num > 0) {
            gs.print(dict.element + ' changed from ' + usr1.user_name + 
              ' to ' + usr2.user_name + ' in ' + num + ' ' + dict.name + ' records');
          }
        }
      }
    }

    Bereichsbezogenes Äquivalent

    Um die setWorkflow()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setWorkflow().

    GlideRecord – update(Object reason)

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

    Tabelle : 156. Parameter
    Name Typ Beschreibung
    reason Objekt Optional. Grund für das Update. Der Grund wird im Audit-Datensatz angezeigt.
    Tabelle : 157. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die sys_id des neuen oder aktualisierten Datensatzes. Gibt NULL zurück, wenn das Update fehlschlägt.

    In diesem Beispiel wird ein Datensatz in der Tabelle task_ci aktualisiert.

    var now_GR = new GlideRecord('task_ci');
    now_GR.addQuery();
    now_GR.query();
    var count = now_GR.getRowCount();
    if (count > 0) {
       var allocation = parseInt(10000 / count) / 100;
       while (now_GR.next()) {
          now_GR.u_allocation = allocation;
          now_GR.update();
       }
    }

    Bereichsbezogenes Äquivalent

    Um die update()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: update().

    GlideRecord – updateMultiple()

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

    Informationen zum Hinzufügen von Journaleinträgen finden Sie in der Methode setJournalEntry().

    Die Systemeigenschaft glide.db.forced.chunk.threshold legt den Schwellenwert fest, ab dem das Löschen und Aktualisieren von Blockdatensätzen erzwungen wird. Chunking trägt dazu bei, zu verhindern, dass das Löschen von Nicht-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 setValue()- Methode anstelle von direkten Zuweisungen. Das heißt, verwenden Sie gr.setValue('). <field_name> ', '4')); statt gr.= 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 legen Sie das Feld auf nullfest.

    Tabelle : 158. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 159. Ergebnisse
    Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie der Status aller aktiven Incidents auf 4 – „Warten auf Benutzerinformationen“ aktualisiert wird.

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

    Bereichsbezogenes Äquivalent

    Um die updateMultiple()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: updateMultiple().

    GlideRecord – updateWithReferences(Object reason)

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

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

    Wenn Sie einen Incident verarbeiten, bei dem die Anrufer-ID auf den Verweis auf den sys_user-Datensatz „John Doe“ festgelegt ist, wird der Benutzerdatensatz von John Doe mit dem folgenden Code aktualisiert. Wenn Sie einen Incident verarbeiten, für den keine Aufrufer-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 Aufrufer-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();
    }