GlideRecord : client

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 9 minutes de lecture
  • L’API GlideRecord fournit des méthodes qui effectuent des opérations de base de données. Cette API permet l’utilisation de certaines fonctionnalités GlideRecord dans les scripts côté client, tels que les scripts clients et les scripts de politique d’interface utilisateur.

    Un GlideRecord contient à la fois des enregistrements et des champs. Les requêtes effectuées avec les méthodes GlideRecord côté client sont exécutées sur le serveur. Par conséquent, une demande est effectuée à partir du navigateur du client pour obtenir les données de l’enregistrement.

    L’API GlideRecord côté client n’est pas prise en charge dans les applications incluses dans le périmètre. Au lieu de cela, créez un include de script et utilisez l’API GlideAJAX , ou utilisez les API REST. En outre, cette API applique des listes de contrôle d’accès (ACL) basées sur les informations d’identification de l’utilisateur exécutant le script. Pour exécuter le code sur le serveur sans ACL, utilisez l’API GlideAjax .

    Côté client GlideRecord : GlideRecord(String tableName)

    Crée une instance de la classe GlideRecord pour la table spécifiée.

    Tableau 1. Paramètres
    Nom Type Description
    tableName Chaîne La table à utiliser.
    var now_GR = new GlideRecord('incident');

    Côté client GlideRecord : addOrderBy(colonne de chaîne)

    Ajoute une colonne pour trier par dans la requête.

    Tableau 2. Paramètres
    Nom Type Description
    colonne Chaîne Colonne selon laquelle classer le jeu de résultats.
    Tableau 3. Renvoie
    Type Description
    nul

    Côté client GlideRecord : addQuery(nom de chaîne, valeur d’objet)

    Ajoute une requête pour renvoyer les enregistrements où le nom de champ spécifié est égal à une valeur spécifiée (ou se trouve dans une liste de valeurs).

    Si vous êtes familier avec SQL, cette méthode est similaire à la clause « where ». Vous pouvez créer une ou plusieurs requêtes pour un seul filtre en appelant cette méthode plusieurs fois ; pour cette méthode, les requêtes sont AND’ed. Une fois que vous avez défini toutes les requêtes souhaitées, appelez pour Côté client GlideRecord : query(nom de chaîne, fonction responseFunction, valeur de chaîne) exécuter la clause de requête spécifiée (filtre).

    Pour effectuer une opération autre que AND, utilisez la méthode addQuery(String name, Object operator, Object value) ou la méthode setEncodedQuery( ).

    Tableau 4. Paramètres
    Nom Type Description
    nom Chaîne Nom du champ à vérifier.
    valide Objet Valeur ou liste de valeurs sur lesquelles effectuer une requête.
    Tableau 5. Renvoie
    Type Description
    nul

    Exemple montrant plusieurs requêtes.

    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')); 
        }
    }

    Exemple montrant comment transmettre un objet de chaîne.

    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')); 
        }
    }

    Côté client GlideRecord : addQuery(nom de chaîne, opérateur d’objet, valeur d’objet)

    Ajoute un filtre pour renvoyer les enregistrements dans lesquels le champ remplit la condition spécifiée (champ, opérateur, valeur).

    Si vous êtes familier avec SQL, cette méthode est similaire à la clause « where ». Vous pouvez créer une ou plusieurs requêtes pour un filtre unique en appelant cette méthode plusieurs fois. Une fois que vous avez défini toutes les requêtes souhaitées, appelez pour Côté client GlideRecord : query(nom de chaîne, fonction responseFunction, valeur de chaîne) exécuter la clause de requête spécifiée (filtre).

    Pour créer des requêtes plus complexes, utilisez la méthode setEncodedQuery( ).

    Tableau 6. Paramètres
    Nom Type Description
    nom Chaîne Nom du champ à vérifier.
    opérateur Objet Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .
    Nombres:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • NON DANS
    • STARTSWITH
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    • INSTANCEDE
    Remarque :
    N’utilisez pas l’opérateur LIKE. Utilisez CONTAINS à la place.
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Tableau 7. Renvoie
    Type Description
    nul

    Exemple montrant comment ajouter plusieurs requêtes à un filtre.

    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')); 
        }
    }

    Exemple montrant comment transmettre un tableau pour vérifier plusieurs conditions dans une seule requête.

    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')); 
      } 
    }

    Côté client GlideRecord : deleteRecord(Fonction responseFunction)

    Supprime l’enregistrement actuel et appelle la fonction de réponse spécifiée une fois terminée.

    Tableau 8. Paramètres
    Nom Type Description
    Fonction de réponse Fonction Fonction de réponse pour le rappel.
    Tableau 9. Renvoie
    Type Description
    Aucun

    Cet exemple supprime un enregistrement, puis appelle la réponse de la fonction de réponse pour consigner un message d’alerte.

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

    Sortie :

    Deleted record sys_id: 99ebb4156fa831005be8883e6b3ee4b9

    Côté client GlideRecord : get(chaîne sys_id)

    Exécute une requête GlideRecord pour un enregistrement avec la sys_id spécifiée. Cette méthode est censée être utilisée pour interroger des enregistrements uniques, de sorte qu’une opération suivante est effectuée avant de renvoyer.

    Tableau 10. Paramètres
    Nom Type Description
    sys_id Chaîne L’sys_id de l’enregistrement à trouver.
    Tableau 11. Renvoie
    Type Description
    Booléen Vrai si un ou plusieurs enregistrements correspondants ont été trouvés. Faux si aucun enregistrement n’a été trouvé.

    Côté client GlideRecord : getEncodedQuery()

    Récupère la condition de requête de l’ensemble de résultats actuel sous forme de chaîne de requête codée.

    Tableau 12. Paramètres
    Nom Type Description
    Aucun
    Tableau 13. Renvoie
    Type Description
    Chaîne Chaîne de requête codée contenant toutes les conditions qui ont été ajoutées à la requête.

    Côté client GlideRecord : getLimit()

    Renvoie la limite d’enregistrements à renvoyer par la requête GlideRecord.

    Tableau 14. Paramètres
    Nom Type Description
    Aucun
    Tableau 15. Renvoie
    Type Description
    Numéro Limite d’enregistrements à renvoyer par la requête GlideRecord.

    Côté client GlideRecord : getTableName()

    Récupère le nom de la table associée à ce GlideRecord.

    Tableau 16. Paramètres
    Nom Type Description
    Aucun
    Tableau 17. Renvoie
    Type Description
    Chaîne Le nom de table
    var item = new GlideRecord('sc_request'); 
    item.addQuery('sys_id', current.request); 
    item.query(itemResponse); 
     
    function itemResponse(item) {
       alert('The table is ' + item.getTableName());
    }

    Côté client GlideRecord : hasNext()

    Détermine s’il existe d’autres enregistrements dans le GlideRecord.

    Tableau 18. Paramètres
    Nom Type Description
    Aucun
    Tableau 19. Renvoie
    Type Description
    Booléen Vrai s’il existe plus d’enregistrements dans le jeu de requêtes.

    Côté client GlideRecord : insert(Fonction responseFunction)

    Insère un nouvel enregistrement à l’aide des valeurs de champ qui ont été définies pour l’enregistrement actuel.

    Tableau 20. Paramètres
    Nom Type Description
    Fonction de réponse Fonction Fonction à exécuter une fois l’enregistrement inséré.
    Tableau 21. Renvoie
    Type Description
    Chaîne Sys_id de l’enregistrement inséré ou nul si l’enregistrement n’a pas été inséré.
    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');
    }

    Côté client GlideRecord : suivant()

    Passe à l’enregistrement suivant dans le GlideRecord.

    Tableau 22. Paramètres
    Nom Type Description
    Aucun
    Tableau 23. Renvoie
    Type Description
    Booléen Faux s’il n’y a plus d’enregistrements dans l’ensemble de requêtes.
    var rec = new GlideRecord('incident');
    rec.query(recResponse);
     
    function recResponse(rec) {
      while (rec.next()) { 
        alert(rec.number + ' exists');
      }
    }

    Côté client GlideRecord : orderBy (colonne String)

    Spécifie une colonne orderBy. Peut être appelé plusieurs fois pour être trié par plusieurs colonnes.

    Tableau 24. Paramètres
    Nom Type Description
    colonne Chaîne Nom de colonne à utiliser pour ordonner l’ensemble de résultats.
    Tableau 25. Renvoie
    Type Description
    nul
    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, '');
      }
    }

    Côté client GlideRecord : query(nom de chaîne, fonction responseFunction, valeur de chaîne)

    Exécute la requête sur le serveur par rapport à la table basée sur le filtre addQuery(). Cette méthode interroge la table GlideRecord ainsi que toutes les références de la table.

    N’effectuez pas d’appels de requête synchrones. L’exécution d’une requête sans fonction de réponse rend l’appel synchrone, ce qui signifie que l’affichage attendra la réponse de la requête avant de continuer.

    Tableau 26. Paramètres
    Nom Type Description
    nom Chaîne Facultatif. Nom d’un champ à interroger.
    Fonction de réponse Fonction Fonction appelée lorsque les résultats de la requête sont disponibles.
    valide Chaîne Facultatif. Valeur du champ à interroger. Toute paire de littéraux est considérée comme une paire de requêtes (champ : valeur).
    Tableau 27. Renvoie
    Type Description
    nul

    Voici un exemple de base avec une fonction de réponse.

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

    L’exemple suivant montre la différence entre la syntaxe synchronus et asynchrone, avec un exemple asynchrone.

    // 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);
            }
            });
            }

    Côté client GlideRecord : setEncodedQuery(String encodedQuery)

    Ajoute une chaîne de requête codée spécifiée à la clause de requête actuelle.

    Cette méthode vous permet de spécifier des filtres complexes (chaînes de requête codées) en un seul appel de requête, contrairement aux autres méthodes addQuery() côté client. Une fois que vous avez défini toutes les requêtes souhaitées, appelez pour Côté client GlideRecord : query(nom de chaîne, fonction responseFunction, valeur de chaîne) exécuter la clause de requête spécifiée (filtre). Pour plus d’informations sur les chaînes de requêtes codées, reportez-vous à la section Chaînes de requêtes codées.

    Si vous appelez cette méthode plusieurs fois avant d’appeler la méthode query(), les requêtes sont ET ensemble.

    Tableau 28. Paramètres
    Nom Type Description
    encodedQuery Chaîne Chaîne de requête codée à ajouter à la clause de requête actuelle.
    Tableau 29. Renvoie
    Type Description
    nul
    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'));
        }
    }
    

    Côté client GlideRecord : setLimit(Number maxQuery)

    Définit la limite du nombre d’enregistrements contenus dans le GlideRecord.

    Tableau 30. Paramètres
    Nom Type Description
    MaxQuery Numéro La limite du nombre d’enregistrements à récupérer.
    Tableau 31. Renvoie
    Type Description
    nul