GlideRecord : Client

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 8 Minuten Lesedauer
  • Die GlideRecord- API stellt Methoden bereit, die Datenbankvorgänge ausführen. Diese API ermöglicht die Verwendung einiger GlideRecord-Funktionen in clientseitigen Skripts, z. B. Client-Skripts und UI-Richtlinienskripts.

    Ein GlideRecord enthält sowohl Datensätze als auch Felder. Mit clientseitigen GlideRecord -Methoden erstellte Abfragen werden auf dem Server ausgeführt. Daher wird vom Client-Browser eine Anforderung zum Abrufen der Datensatzdaten gestellt.

    Die clientseitige GlideRecord-API wird in bereichsbezogenen Anwendungen nicht unterstützt. Erstellen Sie stattdessen eine Skripteinbindung, und verwenden Sie die GlideAJAX- API oder die REST APIs. Darüber hinaus wendet diese API Zugriffssteuerungslisten (ACLs) basierend auf den Anmeldeinformationen des Benutzers an, der das Skript ausführt. Um den Code auf dem Server ohne ACLs auszuführen, verwenden Sie die GlideAjax- API.

    Client side GlideRecord – GlideRecord(String tableName)

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

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

    Client side GlideRecord – addOrderBy(String column)

    Fügt eine Spalte zum Sortieren in der Abfrage hinzu.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    column Zeichenfolge Spalte, nach der der Ergebnissatz sortiert werden soll.
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    void

    Client side GlideRecord – addQuery(String name, Object value)

    Fügt eine Abfrage hinzu, um Datensätze zurückzugeben, bei denen der angegebene Feldname einem angegebenen Wert entspricht (oder sich in einer Liste von Werten befindet).

    Wenn Sie mit SQL vertraut sind, ähnelt diese Methode der „where“ -Klausel. Sie können eine oder mehrere Abfragen für einen einzelnen Filter erstellen, indem Sie diese Methode mehrmals aufrufen. Bei dieser Methode werden die Abfragen mit UND verknüpft. Wenn Sie alle gewünschten Abfragen definiert haben, rufen Sie Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert) auf, um die angegebene Abfrageklausel (den Filter) auszuführen.

    Um einen anderen Vorgang als AND auszuführen, verwenden Sie entweder die Methode addQuery(Zeichenfolgenname , Objektoperator, Objektwert) oder die Methode setEncodedQuery().

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des zu überprüfenden Felds.
    Wert Objekt Wert oder Liste der Werte, nach denen abgefragt werden soll.
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    void

    Beispiel für mehrere Abfragen

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('priority', 4); // Priority is 4 – Low and,
    now_GR.addQuery('state', 3); // State is On Hold
    now_GR.query(response);
     
    function response(result) {
        while(result.next()) {
           // Print all INC with priority 4 – Low AND state is On Hold
            console.log(result.getValue('number')); 
        }
    }

    Beispiel für die Übergabe eines Zeichenfolgenobjekts

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('short_description', new String('USB device not working')); // string object
    now_GR.addQuery('priority', 4); //number
    now_GR.query(response);
     
    function response(result) {
        while(result.next()) {
           // Print all INC with priority 4 – Low AND short description contains 'USB device not working'
            console.log(result.getValue('number')); 
        }
    }

    Client side GlideRecord – addQuery(String name, Object operator, Object value)

    Fügt einen Filter hinzu, um Datensätze zurückzugeben, bei denen das Feld die angegebene Bedingung erfüllt (Feld, Operator, Wert).

    Wenn Sie mit SQL vertraut sind, ähnelt diese Methode der „where“ -Klausel. Sie können eine oder mehrere Abfragen für einen einzelnen Filter erstellen, indem Sie diese Methode mehrmals aufrufen. Wenn Sie alle gewünschten Abfragen definiert haben, rufen Sie Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert) auf, um die angegebene Abfrageklausel (den Filter) auszuführen.

    Um komplexere Abfragen zu erstellen, verwenden Sie die Methode setEncodedQuery().

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Name des zu überprüfenden Felds.
    operator Objekt Abfrageoperator. Die verfügbaren Werte sind vom Datentyp des value-Parameters abhängig.
    Zahlen:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Zeichenfolgen (in Großbuchstaben):
    • =
    • !=
    • IN
    • NOT IN
    • STARTSWITH
    • ENDSWITH
    • CONTAINS
    • DOES NOT CONTAIN
    • INSTANCEOF
    Hinweis:
    Verwenden Sie nicht den LIKE-Operator. Verwenden Sie stattdessen CONTAINS.
    Wert Objekt Wert, nach dem abgefragt werden soll (Groß- und Kleinschreibung wird nicht berücksichtigt).
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    void

    Beispiel, das zeigt, wie einem Filter mehrere Abfragen hinzugefügt werden.

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('priority', '<=', 2); // Priority is 2 or higher and,
    now_GR.addQuery('short_description', 'CONTAINS', 'crash'); // Short description contains the word crash
    now_GR.query(response);
     
    function response(result) {
        while(result.next()) {
           // Print all INC with priority of 2 or higher AND short description contains "crash"
            console.log(result.getValue('number')); 
        }
    }

    Beispiel für die Übergabe eines Arrays, um mehrere Bedingungen in einer einzigen Abfrage zu überprüfen.

    var priorities = [4,2]; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.addQuery('priority', 'IN', priorities); 
    now_GR.query(response); 
    
    function response(result) {
      while(result.next()) {
        console.log(result.getValue('number')); 
      } 
    }

    Client side GlideRecord – deleteRecord(Function responseFunction)

    Löscht den aktuellen Datensatz und ruft nach Abschluss die angegebene Antwortfunktion auf.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    responseFunction Funktion Antwortfunktion für den Rückruf.
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    Keine

    In diesem Beispiel wird ein -Datensatz gelöscht und anschließend die Antwortfunktion aufgerufen, um eine Warnmeldung zu protokollieren.

    var recordGR = new GlideRecord('incident');
    if (recordGR.get('99ebb4156fa831005be8883e6b3ee4b9')) {
      recordGR.deleteRecord(response);
    }
    
    function response(result) {
      alert('Deleted record sys_id: ' + result.getValue('sys_id'));
    }

    Ausgabe:

    Deleted record sys_id: 99ebb4156fa831005be8883e6b3ee4b9

    Client- seitiger GlideRecord – get(String sys_id)

    Führt eine GlideRecord-Abfrage für einen Datensatz mit der angegebenen sys_id aus. Es wird erwartet, dass diese Methode für die Abfrage einzelner Datensätze verwendet wird. Daher wird vor dem Zurückkehren ein next-Vorgang durchgeführt.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    sys_id Zeichenfolge Die sys_id des zu suchenden Datensatzes.
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn ein oder mehrere übereinstimmende Datensätze gefunden wurden. „False“, wenn keine Datensätze gefunden wurden.

    Client side GlideRecord – getEncodedQuery()

    Ruft die Abfragebedingung des aktuellen Ergebnissatzes als codierte Abfragezeichenfolge ab.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Codierte Abfragezeichenfolge, die alle Bedingungen enthält, die der Abfrage hinzugefügt wurden.

    Client side GlideRecord – getLimit()

    Gibt den Grenzwert für Datensätze zurück, die von der GlideRecord-Abfrage zurückgegeben werden sollen.

    Tabelle : 14. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 15. Ergebnisse
    Typ Beschreibung
    Zahl Grenzwert für Datensätze, die von der GlideRecord-Abfrage zurückgegeben werden sollen.

    Client side GlideRecord – getTableName()

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

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 17. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der Tabellenname
    var item = new GlideRecord('sc_request'); 
    item.addQuery('sys_id', current.request); 
    item.query(itemResponse); 
     
    function itemResponse(item) {
       alert('The table is ' + item.getTableName());
    }

    Client side GlideRecord – hasNext()

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

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 19. Ergebnisse
    Typ Beschreibung
    Boolean „True“, wenn der Abfragesatz mehr Datensätze enthält.

    Client side GlideRecord – insert(Function responseFunction)

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

    Tabelle : 20. Parameter
    Name Typ Beschreibung
    responseFunction Funktion Funktion, die ausgeführt werden soll, sobald der Datensatz eingefügt wurde.
    Tabelle : 21. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys_id des eingefügten Datensatzes oder null, wenn der Datensatz nicht eingefügt wurde.
    var now_GR = new GlideRecord('incident');
    now_GR.short_description = 'Learn about GlideRecord';
    var recResponse = now_GR.insert(handleResponse);
    
    function handleResponse(recResponse, answer) {
    // Answer will be the sys_id of the created record or null
    alert('Newly created sys_id is - ' + answer + ' exists');
    }

    Client side GlideRecord – next()

    Geht zum nächsten Datensatz im GlideRecord.

    Tabelle : 22. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 23. Ergebnisse
    Typ Beschreibung
    Boolean „False“, wenn der Abfragesatz keine weiteren Datensätze enthält.
    var rec = new GlideRecord('incident');
    rec.query(recResponse);
     
    function recResponse(rec) {
      while (rec.next()) { 
        alert(rec.number + ' exists');
      }
    }

    Client side GlideRecord – orderBy(String column)

    Gibt eine orderBy-Spalte an. Kann mehr als einmal aufgerufen werden, um nach mehreren Spalten zu sortieren.

    Tabelle : 24. Parameter
    Name Typ Beschreibung
    column Zeichenfolge Spaltenname, der zum Sortieren des Ergebnissatzes verwendet werden soll.
    Tabelle : 25. Ergebnisse
    Typ Beschreibung
    void
    function UpdateProjectWBS(project) {
      var count = 0;
      var child = new GlideRecord('pm_project_task');
      child.addQuery('parent', project.sys_id);
      child.orderBy('order');
      child.orderBy('number');
      child.query(childResponse);
      g_form.addInfoMessage(count + ' Project Tasks updated');
    }
     
    function childResponse(child) {
      var len = child.getRowCount().toString().length;
      var seq = 0;
      while (child.next()) {
        count += UpdateProjectTaskWBS(child, 1, ++seq, len, '');
      }
    }

    Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert)

    Führt die Abfrage an den Server für die Tabelle basierend auf dem Filter „addQuery()“ aus. Diese Methode fragt die GlideRecord-Tabelle sowie etwaige Verweise auf die Tabelle ab.

    Führen Sie keine synchronen Abfrageaufrufe durch. Wenn Sie eine Abfrage ohne Antwortfunktion ausführen, wird der Anruf synchronisiert. Das heißt, die Anzeige wartet auf die Abfrageantwort, bevor Sie fortfahren.

    Tabelle : 26. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Optional. Der Name eines abzufragenden Felds.
    responseFunction Funktion Die Funktion, die aufgerufen wird, wenn die Abfrageergebnisse verfügbar sind.
    Wert Zeichenfolge Optional. Der Feldwert, nach dem abgefragt werden soll. Jedes Literalpaar wird als Abfragepaar betrachtet (Feld: Wert).
    Tabelle : 27. Ergebnisse
    Typ Beschreibung
    void

    Im Folgenden finden Sie ein einfaches Beispiel mit einer Antwortfunktion.

    var rec = new GlideRecord('incident');
    rec.query(recResponse);
     
    function recResponse(rec) {
      while (rec.next()) { 
       alert(rec.number + ' exists');
      } 
    }

    Das folgende Beispiel zeigt den Unterschied zwischen synchroner und asynchroner Syntax anhand eines asynchronen Beispiels.

    // synchronous call syntax (no response function): DO NOT USE
            query();
            
            // asynchronous call syntax
            // performs query with current conditions, calls responseFunction when done
            query(responseFunction)
            
            // synchronous call syntax (no response function): DO NOT USE
            // adds "category=hardware" to current query conditions and performs query
            query('category', 'hardware')
            
            // asynchronous call syntax
            // adds "category=hardware" to current query conditions, performs query, and calls responseFunction when done
            query('category', 'hardware', responseFunction)
            
            // asynchronous call example
            // adds "user_name=abel.tuter" to current query conditions, performs query, and calls defined response function when done
            function onLoad() {
            var now_GR = new GlideRecord("sys_user");
            now_GR.query("user_name", "abel.tuter", function(now_GR) {
            if (now_GR.next()) {
            alert("You can access fields by name from the client API, just like in the server API:\n now_GR.name = " + now_GR.name);
            alert("You can also access fields using getValue():\n now_GR.getValue(\"email\") = " + now_GR.getValue("email"));
            if (now_GR.getDisplayValue) {
            alert("In Service Portal, Mobile, and Agent Workspace, you can access a field's display value:\n now_GR.getDisplayValue(\"company\") = " + now_GR.getDisplayValue("company"));
            } else {
            alert("On the desktop, you cannot access a field's display value, but can get its sys_id:\n now_GR.company = " + now_GR.company);
            }
            alert("You cannot dot-walk in the client API:\n now_GR.company.name = " + now_GR.company.name);
            }
            });
            }

    Clientseitiges GlideRecord – setEncodedQuery(String encodedQuery)

    Fügt der aktuellen Abfrageklausel eine angegebene codierte Abfragezeichenfolge hinzu.

    Mit dieser Methode können Sie im Gegensatz zu anderen clientseitigen addQuery()- Methoden komplexe Filter (codierte Abfragezeichenfolgen) in einem einzigen Abfrageaufruf angeben. Wenn Sie alle gewünschten Abfragen definiert haben, rufen Sie Clientseitiges GlideRecord – Abfrage (Zeichenfolgenname, Funktionsantwortfunktion, Zeichenfolgenwert) auf, um die angegebene Abfrageklausel (den Filter) auszuführen. Weitere Informationen zu codierten Abfragezeichenfolgen finden Sie unter Codierte Abfragezeichenfolgen.

    Wenn Sie diese Methode mehrmals vor der Abfragemethode () aufrufen, werden die Abfragen UND-verknüpft.

    Tabelle : 28. Parameter
    Name Typ Beschreibung
    encodedQuery Zeichenfolge Codierte Abfragezeichenfolge, die der aktuellen Abfrageklausel hinzugefügt werden soll.
    Tabelle : 29. Ergebnisse
    Typ Beschreibung
    void
    var now_GR = new GlideRecord('incident');
    now_GR.setEncodedQuery('priority=4^ORstate=3');
    now_GR.query(response);
     
    function response(result) {
        while(result.next()) {
            console.log(result.getValue('number'));
        }
    }
    

    Client side GlideRecord – setLimit(Number maxQuery)

    Legt den Grenzwert für die Anzahl der Datensätze im GlideRecord fest.

    Tabelle : 30. Parameter
    Name Typ Beschreibung
    maxQuery Zahl Grenzwert für die Anzahl der abzurufenden Datensätze.
    Tabelle : 31. Ergebnisse
    Typ Beschreibung
    void