GlideRecord : global

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 105 minutes de lecture
  • L’API GlideRecord est utilisée pour les opérations de base de données.

    L’API GlideRecord est le principal moyen d’interfaçage avec la base de données sur le code côté serveur. Un GlideRecord est un objet qui contient des enregistrements d’une seule table. Utilisez l’API pour instancier un objet GlideRecord et ajouter des paramètres de requête, des filtres, des limites et un classement.

    Pour utiliser cette API et créer des attributs dynamiques, vous devez disposer du rôle dynamic_schema_writer. Pour lire des données dynamiques à l’aide de cette API, vous devez disposer du rôle dynamic_schema_reader.

    Pour plus d’informations sur une classe qui exécute les mêmes fonctions que GlideRecord et applique des ACL, consultez Utilisation de GlideRecordSecure.

    Voir aussi Dynamic Schema.

    Consultez l’article GlideRecord pour plus de détails sur la création et l’exécution de requêtes.

    Pour plus d’informations sur GlideRecordSecure, qui est une classe héritée de GlideRecord qui exécute les mêmes fonctions que GlideRecord et applique également des ACL, consultez les API GlideServer.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Récupérer des valeurs à partir des enregistrements

    Dans la plupart des cas, n’utilisez pas de remontée pas à pas pour obtenir des valeurs à partir d’un enregistrement. La remontée pas à pas récupère l’objet entier au lieu de la valeur du champ. La récupération de l’objet consomme plus de stockage et peut entraîner des résultats indésirables lorsqu’elle est utilisée dans des tableaux ou dans Portail de services.

    Au lieu de récupérer l’objet entier, vous pouvez utiliser l’une des méthodes suivantes pour copier les valeurs de champ :

    Si une remontée pas à pas dans un objet GlideElement est nécessaire, utilisez la méthode toString() pour récupérer les valeurs. Par exemple, vous aurez peut-être besoin de l’sys_id du gestionnaire de l’appelant actuel pour définir un autre champ de référence. L’exemple suivant montre comment obtenir la valeur de la chaîne au lieu de l’objet entier :
    var mgr = current.caller_id.manager.toString();

    Attributs dynamiques

    Cette API contient des méthodes qui ont les mêmes fonctionnalités que les méthodes de schéma dynamique de l’API GlideDynamicAttributeStore : global . Utilisez les méthodes d’attribut dynamique de cette API pour effectuer des actions sur un GlideRecord spécifié. Utilisez les méthodes de l’API GlideDynamicAttributeStore si vous souhaitez définir le même groupe d’attributs dynamiques sur plusieurs enregistrements. À l’aide de cette API, vous pouvez définir un objet GlideDynamicAttributeStore avec les attributs souhaités, puis copier cet objet dans plusieurs GlideRecords à l’aide des différentes méthodes setDynamicAttributeValues().

    GlideRecord : GlideRecord(nom de table de chaîne)

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

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

    GlideRecord : addActiveQuery()

    Ajoute un filtre pour renvoyer les enregistrements actifs.

    Tableau 2. Paramètres
    Nom Type Description
    Néant
    Tableau 3. Renvoie
    Type Description
    GlideQueryCondition Filtrez pour renvoyer les enregistrements actifs.
    var inc = new GlideRecord('incident');
    inc.addActiveQuery();
    inc.query();

    Équivalent dans le champ d’application

    Pour utiliser la méthode addActiveQuery() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addActiveQuery().

    GlideRecord : addDomainQuery(objet glideRecord)

    Modifie le domaine utilisé pour la requête du domaine de l’utilisateur au domaine du GlideRecord fourni.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Cette fonction nécessite le module d’extension Domain Support - Domain Extensions Installer (com.glide.domain.msp_extensions.installer).

    Tableau 4. Paramètres
    Nom Type Description
    glideRecord Objet GlideRecord à partir duquel obtenir le domaine.
    Tableau 5. Renvoie
    Type Description
    nul
    //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);
    }

    Équivalent dans le champ d’application

    Cette méthode n’est pas disponible dans les applications incluses dans le périmètre.

    GlideRecord : addEncodedQuery(Chaîne, booléen, enforceFieldACL)

    Ajoute une requête codée aux autres requêtes qui ont pu être définies.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Remarque :
    Pour appliquer l’accès aux requêtes en fonction de l’utilisateur, utilisez addUserEncodedQuery().
    Tableau 6. Paramètres
    Nom Type Description
    requête Chaîne Une chaîne de requête codée.
    enforceFieldACL Booléen Facultatif. Marqueur indiquant s’il faut appliquer les règles ACL (liste de contrôle d’accès) du champ.
    Valeurs valides :
    • vrai : appliquer les ACL de champ.
    • faux : ne pas appliquer d’ACL de champ.

    Valeur par défaut : false

    Tableau 7. Renvoie
    Type Description
    nul
    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);
     }

    Équivalent dans le champ d’application

    Pour utiliser la méthode addEncodedQuery() dans une application incluse dans le périmètre, utilisez la méthode correspondante : addEncodedQuery().

    GlideRecord : addExtraField(String dotWalkedField)

    Interroge un ou plusieurs champs de remontée pas à pas à partir d’un formulaire ou d’un script en une seule demande.

    La méthode addExtraField() vous permet d’interroger des champs à remontée pas à pas dans une seule demande de base de données, plutôt que d’effectuer plusieurs requêtes par élément à remontée pas à pas dans un formulaire ou un script (ce qui nécessite plusieurs allers-retours vers la base de données).

    Tableau 8. Paramètres
    Nom Type Description
    champ pas à pas Chaîne Nom du champ de type « remontée pas à pas ». Les niveaux des noms de champs sont séparés par des points (points). Par exemple, saisissez la valeur Appelant.Société si vous souhaitez interroger Société > Appelant dans la table Incident [incident].

    Le format de dotWalkedField suit l’ordre de gauche à droite des champs dans un formulaire ou un script parcourable par point.

    Tableau 9. Renvoie
    Type Description
    Néant
    Remarque :
    La méthode addExtraField() n’a pas d’impact sur les résultats de sortie ; La sortie est toujours la même, que vous utilisiez ou non cette méthode dans votre script.
    L’exemple suivant montre comment interroger le champ Nom du contact de cmn_location (référencé à partir du champ de référence « emplacement » dans un champ cmdb_ci).
    Remarque :
    La valeur dotWalkedField dans cet exemple, cmdb_ci.location.contact.name, ressemble à « cmdb_ci fields » => « cmn_location fields » => « sys_user fields » dans l’interface utilisateur lors de la ServiceNow® sélection de champs dans une liste.
    var gliderecord = new GlideRecord("incident");
    gliderecord.addQuery("number", "INC0041457");
    gliderecord.addExtraField("cmdb_ci.location.contact.name");
    gliderecord.query();
    gliderecord.next();
    gs.print(gliderecord.cmdb_ci.location.contact.name);

    La sortie est la même que gs.print(gr.cmdb_ci.location.contact.name) sans utiliser addExtraField(). La méthode addExtraField() optimise l’interrogation des champs de remontée pas à pas. Exemple de sortie :

    Abel Tuter

    GlideRecord : addFunction(Fonction de l’objet)

    Applique un objet GlideDBFunctionBuilder prédéfini à un enregistrement.

    Utilisez la classe incluse dans le périmètre GlideDBFunctionBuilder pour définir une fonction. Une fois la fonction définie, utilisez la méthode addFunction(Object function) pour l’appliquer à un enregistrement.

    Tableau 10. Paramètres
    Nom Type Description
    function Objet Un objet GlideDBFunctionBuilder ou GlideDBCaseStatementBuilder qui définit une opération SQL.
    Tableau 11. Renvoie
    Type Description
    nul
    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));
    

    Sortie :

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

    GlideRecord : addInactiveQuery()

    Ajoute un filtre pour renvoyer les enregistrements inactifs. Le marqueur actif est défini sur faux pour les enregistrements inactifs.

    Tableau 12. Paramètres
    Nom Type Description
    Néant
    Tableau 13. Renvoie
    Type Description
    GlideQueryCondition Enregistrements dans lesquels le marqueur actif est faux.
    var inc = new GlideRecord('incident');
    inc.addInactiveQuery();
    inc.query();

    Équivalent dans le champ d’application

    Dans les applications incluses dans le périmètre, utilisez la méthode incluse dans le périmètre addQuery(« active »,"false »).

    GlideRecord : addJoinQuery(table de chaînes)

    Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table connexe.

    Par exemple, recherchez tous les utilisateurs qui se trouvent dans le groupe de base de données (utilisateurs via sys_user_grmember table). Un autre exemple serait de trouver tous les problèmes qui ont un incident affecté (problèmes via la relation incident.problem_id).

    Il ne s’agit pas d’une véritable jointure de base de données ; addJoinQuery() ajoute plutôt une sous-requête. Ainsi, bien que le jeu de résultats soit limité en fonction de la jointure, les seuls champs auxquels vous avez accès sont ceux de la table de base (ceux qui se trouvent dans la table avec laquelle le GlideRecord a été initialisé).

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 14. Paramètres
    Nom Type Description
    Table Chaîne Nom de la table
    Tableau 15. Renvoie
    Type Description
    GlideQueryCondition Enregistrements dans lesquels les relations correspondent.

    Recherchez les problèmes auxquels un incident est attaché. Cet exemple renvoie les problèmes auxquels des incidents sont associés. Toutefois, il n’extrait pas les valeurs des incidents renvoyés dans le cadre de la requête.

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

    Recherchez les problèmes active=false avec les incidents associés.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode addJoinQuery() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : addJoinQuery().

    GlideRecord : addJoinQuery(Table de chaînes, Chaîne primaryField)

    Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table connexe.

    Par exemple, recherchez tous les utilisateurs qui se trouvent dans le groupe de base de données (utilisateurs via sys_user_grmember table). Un autre exemple serait de trouver tous les problèmes qui ont un incident affecté (problèmes via la relation incident.problem_id).

    Il ne s’agit pas d’une véritable jointure de base de données ; addJoinQuery() ajoute plutôt une sous-requête. Ainsi, bien que le jeu de résultats soit limité en fonction de la jointure, les seuls champs auxquels vous avez accès sont ceux de la table de base (ceux qui se trouvent dans la table avec laquelle le GlideRecord a été initialisé).

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 16. Paramètres
    Nom Type Description
    Table Chaîne Nom de la table
    champ primaire Chaîne Si autre que sys_id, le champ principal.
    Tableau 17. Renvoie
    Type Description
    GlideQueryCondition Enregistrements dans lesquels les relations correspondent.

    Trouvez les problèmes qui ont des incidents en utilisant le champ open_by de la clé de jointure au lieu de la sys_id.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode addJoinQuery() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : addJoinQuery().

    GlideRecord : addJoinQuery(Table de chaînes, Chaîne primaryField, Chaîne jointTableField)

    Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table connexe.

    Par exemple, recherchez tous les utilisateurs qui se trouvent dans le groupe de base de données (utilisateurs via sys_user_grmember table). Un autre exemple serait de trouver tous les problèmes qui ont un incident affecté (problèmes via la relation incident.problem_id).

    Il ne s’agit pas d’une véritable jointure de base de données ; addJoinQuery() ajoute plutôt une sous-requête. Ainsi, bien que le jeu de résultats soit limité en fonction de la jointure, les seuls champs auxquels vous avez accès sont ceux de la table de base (ceux qui se trouvent dans la table avec laquelle le GlideRecord a été initialisé).

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 18. Paramètres
    Nom Type Description
    Table Chaîne Nom de la table
    champ primaire Chaîne Si autre que sys_id, le champ principal.
    joinTableField Chaîne Si autre que sys_id, champ qui relie les tables
    Tableau 19. Renvoie
    Type Description
    GlideQueryCondition Enregistrements dans lesquels les relations correspondent.

    Recherchez les problèmes qui ont des incidents associés lorsque la valeur du champ caller_id d’incident correspond à celle du champ de opened_by de problème.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode addJoinQuery() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : addJoinQuery().

    GlideRecord : addNotNullQuery(nom de champ de chaîne)

    Ajoute un filtre pour renvoyer les enregistrements dans lesquels le champ spécifié n’est pas nul.

    Tableau 20. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom du champ.
    Tableau 21. Renvoie
    Type Description
    GlideQueryCondition GlideQueryCondition des enregistrements dont le champ de paramètre n’est pas nul.
    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
      }

    Équivalent dans le champ d’application

    Pour utiliser la méthode addNotNullQuery() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addNotNullQuery().

    GlideRecord : addNullQuery(nom de champ de chaîne)

    Ajoute un filtre pour renvoyer les enregistrements où le champ spécifié est nul.

    Tableau 22. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom du champ.
    Tableau 23. Renvoie
    Type Description
    GlideQueryCondition GlideQueryCondition des enregistrements où le champ spécifié est nul.
    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
      }

    Équivalent dans le champ d’application

    Pour utiliser la méthode addNullQuery() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addNullQuery().

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

    Permet de créer une demande qui, lorsqu’elle est exécutée, renvoie les lignes de la table spécifiée qui correspondent à la demande.

    Si vous êtes familier avec SQL, cette méthode est similaire à la clause « where ». Vous pouvez effectuer un ou plusieurs appels addQuery() dans une seule requête. Pour cette méthode, les requêtes sont AND’ed. Si l’une des instructions de requête doit être OU, utilisez la classe GlideQueryCondition.

    addQuery() est généralement appelé avec trois paramètres ; champ de table, opérateur et valeur de comparaison. Il peut être appelé avec seulement deux paramètres, champ de table et valeur de comparaison, tels que myObj.addQuery('category','Hardware') ;. Dans ce cas, l’opérateur est supposé être « égal à ».

    Pour plus d’informations sur l’utilisation des requêtes, consultez Interrogation de tables dans un script.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Remarque :
    Pour appliquer l’accès aux requêtes en fonction de l’utilisateur, utilisez addUserQuery().
    Tableau 24. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ de table ou chemin d’accès à un attribut dans un élément de magasin d’attributs dynamiques.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    opérateur Objet Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .
    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • PAS DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    • INSTANCEDE
    Remarque :
    Utilisez CONTAINS au lieu de l’opérateur LIKE.
    Opérateurs de schéma dynamique :
    • =
    • !=
    • <
    • >
    • <=
    • >=
    • ENTRE
    • CONTIENT
    • DOES_NOT_CONTAIN
    • SE TERMINE PAR
    • GT_FIELD
    • GT_OR_EQUALS_FIELD
    • DANS
    • ISEMPTY
    • ISNOTEMPTY
    • IS_NOT_NULL
    • IS_NULL
    • J’AIME
    • LT_FIELD
    • LT_OR_EQUALS_FIELD
    • CORRESPONDANCES
    • NOT_IN
    • NOT_LIKE
    • NOT_MATCHES
    • NSAMEAS
    • SAMEAS
    • COMMENCE PAR
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Tableau 25. Renvoie
    Type Description
    GlideQueryCondition Référence à GlideQueryCondition qui a été ajoutée à GlideRecord.

    L’exemple suivant montre comment appeler cette méthode.

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

    L’exemple suivant montre comment utiliser l’opérateur IN .

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

    L’exemple suivant montre comment appeler cette méthode à l’aide d’attributs dans un magasin d’attributs dynamique.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.addQuery('inc_dynamic_schema->avg_mpg', 'GT_FIELD', 'inc_dynamic_schema2->avg_mpg'); 
    gr_Inc.query();
    while(gr_Inc.next()) {
        gs.info(gr_Inc.number + " Gas Mileage 1: " + gr_Inc.getDynamicAttributeValue('inc_dynamic_schema->avg_mpg') +  " GT_FIELD Gas Mileage 2 :" + gr_Inc.getDynamicAttributeValue('inc_dynamic_schema2->avg_mpg'));
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode addQuery() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : addQuery().

    GlideRecord : addSystemEncodedQuery(Requête de chaîne)

    Ajoute une requête à l’aide d’une chaîne de requête codée. Utilisez cette méthode pour contourner l’accès aux requêtes.

    Utilisez cette méthode lorsque l’accès au niveau du système est prévu, de sorte que l’application de l’ACL de requête soit explicitement contournée pour l’utilisateur. Utilisez addUserEncodedQuery() pour appliquer l’accès aux requêtes.

    Méthodes supplémentaires d’accès au niveau du système qui contournent les vérifications d’ACL de requête :

    Pour plus d’informations sur l’utilisation de cette méthode avec GlideRecordSecure, reportez-vous à la section Application des ACL de requête.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 26. Paramètres
    Nom Type Description
    requête Chaîne Une chaîne de requête codée.
    Tableau 27. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment renvoyer la valeur nombre des 12 premiers incidents avec une valeur de priorité de 1 ou 2.

    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.addSystemEncodedQuery(queryString);
    
    now_GR.setLimit(12);
    now_GR.query();
    
    while (now_GR.next()) {
      gs.info(now_GR.getValue('number'));
    }

    Sortie :

    *** Script: INC0002318
    *** Script: INC0000144
    *** Script: INC0006927
    *** Script: INC0003577
    *** Script: INC0006928
    *** Script: INC0000135
    *** Script: INC0005637
    *** Script: INC0003196
    *** Script: INC0002647
    *** Script: INC0004074
    *** Script: INC0003444
    *** Script: INC0001694

    GlideRecord : addSystemOrderBy(nom de chaîne)

    Spécifie une colonne orderBy. Utilisez cette méthode pour contourner l’accès aux requêtes.

    Utilisez cette méthode lorsque l’accès au niveau du système est prévu, de sorte que l’application de l’ACL de requête soit explicitement contournée pour l’utilisateur. Utilisez addUserOrderBy() pour appliquer l’accès aux requêtes.

    Méthodes supplémentaires d’accès au niveau du système qui contournent les vérifications d’ACL de requête :

    Appelez cette méthode plusieurs fois pour la classer par plusieurs colonnes. Les résultats sont classés par ordre croissant. Pour organiser les enregistrements par ordre décroissant, voir addSystemOrderByDesc().

    Tableau 28. Paramètres
    Nom Type Description
    nom Chaîne Nom de colonne à utiliser pour ordonner les enregistrements dans cet objet GlideRecord.
    Tableau 29. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment trier les enregistrements d’incidents par ordre croissant par description brève.

    var queryString = "priority=1";
    var now_GR = new GlideRecord('incident');
    
    now_GR.addSystemOrderBy('short_description'); // Ascending Order
    now_GR.addSystemEncodedQuery(queryString);
    
    now_GR.setLimit(6);
    now_GR.query();
    
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    Sortie :

    *** Script: Access token revoked
    *** Script: Access token revoked
    *** Script: Account locked, pls reset my password for Linkedin Sales Navigator
    *** Script: Active Directory (AD) synchronization error
    *** Script: Adobe Photoshop & Digital Publishing Instance is down
    *** Script: Application response time is poor when performing any action in ADP Payroll S...

    GlideRecord : addSystemOrderByDesc(nom de chaîne)

    Spécifie une colonne orderBy décroissante. Utilisez cette méthode pour contourner l’accès aux requêtes.

    Utilisez cette méthode lorsque l’accès au niveau du système est prévu, de sorte que l’application de l’ACL de requête soit explicitement contournée pour l’utilisateur. Utilisez addUserOrderByDesc() pour appliquer l’accès aux requêtes.

    Méthodes supplémentaires d’accès au niveau du système qui contournent les vérifications d’ACL de requête :

    Appelez cette méthode plusieurs fois pour la classer par plusieurs colonnes. Les résultats sont classés par ordre décroissant. Pour organiser les enregistrements par ordre croissant, consultez addSystemOrderBy().

    Tableau 30. Paramètres
    Nom Type Description
    nom Chaîne Nom de colonne à utiliser pour ordonner les enregistrements dans un objet GlideRecord.
    Tableau 31. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment trier les enregistrements d’incidents par ordre décroissant par description brève.

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

    Sortie :

    *** Script: Xignite U.S. and Global Real Time Quotes upgrade to the latest version
    *** Script: Xignite Company, Market and Industry News Headlines upgrade to the latest ver...
    *** Script: Workday Talent Management Instance relocation from US datacenter to Hongkong ...
    *** Script: Warning displayed while launching Tableau Server
    *** Script: Warning displayed while launching SAP Financial Accounting
    *** Script: Warning displayed while launching Jive Daily

    GlideRecord : addSystemQuery(nom de chaîne, opérateur d’objet, valeur d’objet)

    Permet de créer une demande qui, lorsqu’elle est exécutée, renvoie les lignes de la table spécifiée correspondant à la demande. Utilisez cette méthode pour contourner l’accès aux requêtes.

    Utilisez cette méthode lorsque l’accès au niveau du système est prévu, de sorte que l’application de l’ACL de requête soit explicitement contournée pour l’utilisateur. Utilisez addUserQuery() pour appliquer l’accès aux requêtes.

    Méthodes supplémentaires d’accès au niveau du système qui contournent les vérifications d’ACL de requête :

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 32. Paramètres
    Nom Type Description
    nom Chaîne Nom du champ de table.
    opérateur Objet Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .
    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • PAS DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    • INSTANCEDE
    Remarque :
    Utilisez CONTAINS au lieu de l’opérateur LIKE.
    Opérateurs de schéma dynamique :
    • =
    • !=
    • <
    • >
    • <=
    • >=
    • ENTRE
    • CONTIENT
    • DOES_NOT_CONTAIN
    • SE TERMINE PAR
    • GT_FIELD
    • GT_OR_EQUALS_FIELD
    • DANS
    • ISEMPTY
    • ISNOTEMPTY
    • IS_NOT_NULL
    • IS_NULL
    • J’AIME
    • LT_FIELD
    • LT_OR_EQUALS_FIELD
    • CORRESPONDANCES
    • NOT_IN
    • NOT_LIKE
    • NOT_MATCHES
    • NSAMEAS
    • SAMEAS
    • COMMENCE PAR
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Tableau 33. Renvoie
    Type Description
    GlideQueryCondition La condition de requête qui a été ajoutée au GlideRecord.

    L’exemple suivant montre comment renvoyer explicitement tous les utilisateurs actifs nommés Fred.

    var rec = new GlideRecord('sys_user');
    rec.addSystemQuery("first_name", "=", "Fred");
    rec.query();
    
    while (rec.next()) {
      gs.info('Active user ' + rec.getValue('last_name'));
    }
    Sortie :
    Active user Luddy
    Active user Kunde

    GlideRecord : addUserEncodedQuery(Requête de chaîne)

    Ajoute une requête à l’aide d’une chaîne de requête codée. Utilisez cette méthode pour appliquer l’accès aux requêtes en fonction de l’utilisateur.

    Cette méthode renvoie uniquement les enregistrements auxquels l’utilisateur actuel a accès en tant que requête (en fonction des ACL).

    Méthodes connexes :

    Pour plus d’informations sur l’utilisation de cette méthode avec GlideRecordSecure, reportez-vous à la section Application des ACL de requête.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 34. Paramètres
    Nom Type Description
    requête Chaîne Une chaîne de requête codée.
    Tableau 35. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment renvoyer la valeur nombre des 12 premiers incidents avec une valeur de priorité de 1 ou 2.

    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.addUserEncodedQuery(queryString);
    
    now_GR.setLimit(12);
    now_GR.query();
    
    while (now_GR.next()) {
      gs.info(now_GR.getValue('number'));
    }

    Sortie :

    *** Script: INC0002318
    *** Script: INC0000144
    *** Script: INC0006927
    *** Script: INC0003577
    *** Script: INC0006928
    *** Script: INC0000135
    *** Script: INC0005637
    *** Script: INC0003196
    *** Script: INC0002647
    *** Script: INC0004074
    *** Script: INC0003444
    *** Script: INC0001694

    GlideRecord : addUserOrderBy(nom de chaîne)

    Spécifie une colonne orderBy. Utilisez cette méthode pour appliquer l’accès aux requêtes en fonction de l’utilisateur.

    Cette méthode renvoie uniquement les enregistrements auxquels l’utilisateur actuel a accès en tant que requête (en fonction des ACL).

    Méthodes connexes :
    • orderBy() fournit la même fonctionnalité sans application d’ACL.
    • addSystemOrderBy() Contourne les vérifications d’accès aux requêtes.
    Méthodes supplémentaires pour appliquer les vérifications ACL de requête :

    Appelez cette méthode plusieurs fois pour la classer par plusieurs colonnes. Les résultats sont classés par ordre croissant. Pour organiser les enregistrements par ordre décroissant, consultez addUserOrderByDesc().

    Tableau 36. Paramètres
    Nom Type Description
    nom Chaîne Nom de colonne à utiliser pour ordonner les enregistrements dans cet objet GlideRecord.
    Tableau 37. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment trier les enregistrements d’incidents par ordre croissant par description brève.

    var queryString = "priority=1";
    var now_GR = new GlideRecord('incident');
    
    now_GR.addUserOrderBy('short_description'); // Ascending Order
    now_GR.addUserEncodedQuery(queryString);
    
    now_GR.setLimit(6);
    now_GR.query();
    
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    Sortie :

    *** Script: Access token revoked
    *** Script: Access token revoked
    *** Script: Account locked, pls reset my password for Linkedin Sales Navigator
    *** Script: Active Directory (AD) synchronization error
    *** Script: Adobe Photoshop & Digital Publishing Instance is down
    *** Script: Application response time is poor when performing any action in ADP Payroll S...

    GlideRecord : addUserOrderByDesc(nom de chaîne)

    Spécifie une colonne orderBy décroissante. Utilisez cette méthode pour appliquer l’accès aux requêtes en fonction de l’utilisateur.

    Cette méthode renvoie uniquement les enregistrements auxquels l’utilisateur actuel a accès en tant que requête (en fonction des ACL).

    Méthodes connexes :
    Méthodes supplémentaires pour appliquer les vérifications ACL de requête :

    Appelez cette méthode plusieurs fois pour la classer par plusieurs colonnes. Les résultats sont classés par ordre décroissant. Pour organiser les enregistrements par ordre croissant, consultez addUserOrderBy().

    Tableau 38. Paramètres
    Nom Type Description
    nom Chaîne Nom de colonne à utiliser pour ordonner les enregistrements dans un objet GlideRecord.
    Tableau 39. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment trier les enregistrements d’incidents par ordre décroissant par description brève.

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

    Sortie :

    *** Script: Xignite U.S. and Global Real Time Quotes upgrade to the latest version
    *** Script: Xignite Company, Market and Industry News Headlines upgrade to the latest ver...
    *** Script: Workday Talent Management Instance relocation from US datacenter to Hongkong ...
    *** Script: Warning displayed while launching Tableau Server
    *** Script: Warning displayed while launching SAP Financial Accounting
    *** Script: Warning displayed while launching Jive Daily

    GlideRecord : addUserQuery(nom de chaîne, opérateur d’objet, valeur d’objet)

    Permet de créer une demande qui, lorsqu’elle est exécutée, renvoie les lignes de la table spécifiée qui correspondent à la demande. L’utilisateur appelant doit avoir accès à l’exécution de l’opération de requête spécifiée sur le champ pour que cette demande soit ajoutée. Utilisez cette méthode pour appliquer l’accès aux requêtes en fonction de l’utilisateur.

    Cette méthode renvoie uniquement les enregistrements auxquels l’utilisateur actuel a accès en tant que requête (en fonction des ACL).

    Méthodes connexes :
    • addQuery() fournit la même fonctionnalité sans application d’ACL.
    • addSystemQuery() Contourne les vérifications d’accès aux requêtes.

    Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, produit une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est supprimée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(), update(), deleteRecord() ou deleteMultiple() sur de mauvais résultats de requête peut entraîner une perte de données.

    Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur true pour que les requêtes avec des requêtes codées non valides ne renvoient aucun enregistrement. Dans certains cas, la requête peut toujours renvoyer des enregistrements dans les résultats de l’API même si glide.invalid_query.returns_no_rows la valeur est définie sur vrai. Cela se produit dans les requêtes où un terme de requête non valide est utilisé avec un opérateur WHERE. Dans de telles requêtes, l’opérateur WHERE ignore le ou les termes non valides, mais interprète et renvoie le reste de l’instruction de requête. Pour plus d’informations sur cette propriété système et sa fonctionnalité, reportez-vous à la section Available system properties.

    Tableau 40. Paramètres
    Nom Type Description
    nom Chaîne Nom du champ de table.
    opérateur Objet Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .
    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • PAS DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    • INSTANCEDE
    Remarque :
    Utilisez CONTAINS au lieu de l’opérateur LIKE.
    Opérateurs de schéma dynamique :
    • =
    • !=
    • <
    • >
    • <=
    • >=
    • ENTRE
    • CONTIENT
    • DOES_NOT_CONTAIN
    • SE TERMINE PAR
    • GT_FIELD
    • GT_OR_EQUALS_FIELD
    • DANS
    • ISEMPTY
    • ISNOTEMPTY
    • IS_NOT_NULL
    • IS_NULL
    • J’AIME
    • LT_FIELD
    • LT_OR_EQUALS_FIELD
    • CORRESPONDANCES
    • NOT_IN
    • NOT_LIKE
    • NOT_MATCHES
    • NSAMEAS
    • SAMEAS
    • COMMENCE PAR
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Tableau 41. Renvoie
    Type Description
    GlideQueryCondition La condition de requête qui a été ajoutée au GlideRecord.

    Ce qui suit montre comment renvoyer uniquement les utilisateurs nommés Fred que l’utilisateur actuel a l’autorisation de voir.

    var rec = new GlideRecord('sys_user');
    rec.addUserQuery("first_name", "=", "Fred");
    rec.query();
    
    while (rec.next()) {
      gs.info('Active user ' + rec.getValue('last_name'));
    }
    Sortie :
    Active user Luddy
    Active user Kunde

    GlideRecord : addValue(champ de chaîne, valeur numérique)

    Fournit des opérations atomiques d’addition et de soustraction sur un champ de nombre spécifié au niveau de la base de données pour l’objet GlideRecord actuel.

    En règle générale, un objet GlideRecord est écrit comme un seul enregistrement dans une base de données. Les valeurs de champ individuelles sont stockées telles qu’elles sont définies. Pour le code qui ajoute une valeur à un champ GlideRecord, il enregistre simplement le champ dans la base de données avec la nouvelle valeur, au lieu de l’incrémenter atomiquement.

    Par exemple, lorsque le code suivant est exécuté, la valeur du champ u_count dans la base de données est 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"   
    Si un autre utilisateur exécute simultanément du code identique, au lieu que les deux opérations ajoutent chacune 1 à u_count, l’effet net est que u_count n’en contient que 2, la mise à jour d’une opération étant réellement perdue.
    Inversement, la méthode addValue() effectue l’addition/soustraction dans la base de données lorsque l’enregistrement est mis à jour en tant qu’opération atomique. Deux opérations exécutées simultanément mettent à jour correctement le champ.
    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 
    Remarque :
    La nouvelle valeur n’est pas relue à partir de la base de données, sauf indication contraire.

    Comme setValue(), les modifications addValue() ne prennent effet dans la base de données qu’après un appel ultérieur à update() ou insert(). Si insert() est appelé, le champ spécifié est initialisé avec le value paramètre passé dans addValue().

    Remarque :
    Si setValue() est appelé pour le champ spécifié avant d’appeler addValue(), la méthode addValue() n’est pas traitée et un message d’erreur est consigné.
    Tableau 42. Paramètres
    Nom Type Description
    Champ Chaîne Nom du champ dans ce GlideRecord à modifier.

    Si le champ associé n’est pas de type numérique, l’opération est ignorée.

    valide Numéro Montant à ajouter à la valeur lorsque l’enregistrement est enregistré. Pour effectuer une opération de soustraction, il suffit de passer une valeur négative.
    Tableau 43. Renvoie
    Type Description
    nul

    Affiche une valeur ajoutée.

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

    Sortie : 2

    Affiche une valeur soustraite.

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

    Sortie : 3

    GlideRecord : applyEncodedQuery(chaîne queryString)

    Définit les valeurs des termes de requête codés spécifiés et les applique au GlideRecord actuel.

    Tableau 44. Paramètres
    Nom Type Description
    queryString Chaîne Requête codée à appliquer au GlideRecord actuel.
    Tableau 45. Renvoie
    Type Description
    Néant

    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(modèle de chaîne)

    Appliquez un enregistrement de modèle de la table de modèles [sys_template] à l’enregistrement actuel. Si le modèle spécifié est introuvable, aucune action n’est entreprise.

    Remarque :
    Cette méthode instancie automatiquement une méthode now_GR.insert() si le champ Modèle enfant connexe suivant est renseigné pour un modèle. Pour plus d’informations, voir Créer des modèles pour les enregistrements de tâches connexes.
    Tableau 46. Paramètres
    Nom Type Description
    modèle Chaîne Nom d’un modèle issu de la table Modèles [sys_template].
    Tableau 47. Renvoie
    Type Description
    nul
    var rec1 = new GlideRecord("incident");
    rec1.initialize();
    rec1.applyTemplate("my_incident_template");
    rec1.insert();

    GlideRecord : autoSysFields(booléen, e)

    Active ou désactive la mise à jour des champs sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by et sys_created_on. Elle est souvent utilisée pour mettre à jour manuellement les valeurs de champ sur un enregistrement tout en laissant les informations historiques inchangées.

    Avertissement :
    Soyez prudent si vous utilisez cette méthode. Lorsque vous utilisez cette méthode, le champ sys_mod_count n’est pas incrémenté et les autres champs sys_ ne sont pas mis à jour. Cela peut interrompre des fonctionnalités telles que le formateur d’activité, les ensembles d’historique, les notifications et les mesures.
    Tableau 48. Paramètres
    Nom Type Description
    e Booléen Si la valeur est définie sur faux, les mises à jour des sys_updated_by, des sys_updated_on, des sys_mod_count, des sys_created_by et des sys_created_on.
    Tableau 49. Renvoie
    Type Description
    nul
    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()

    Détermine si les règles de contrôle d’accès (qui inclut le rôle de l’utilisateur) autorisent l’insertion de nouveaux enregistrements dans cette table.

    Tableau 50. Paramètres
    Nom Type Description
    Néant
    Tableau 51. Renvoie
    Type Description
    Booléen Marqueur indiquant si les rôles de l’utilisateur permettent la création d’enregistrements dans cette table.
    Valeurs possibles :
    • vrai : création autorisée
    • faux : la création n’est pas autorisée

    Cet exemple montre si des enregistrements peuvent être créés sur la table benefit_plan.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode canCreate() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : canCreate().

    GlideRecord : canDelete()

    Détermine si les règles de contrôle d’accès (y compris le rôle de l’utilisateur) autorisent la suppression des enregistrements de cette table.

    Tableau 52. Paramètres
    Nom Type Description
    Néant
    Tableau 53. Renvoie
    Type Description
    Booléen Marqueur indiquant si les rôles de l’utilisateur autorisent la suppression des enregistrements de cette table.
    Valeurs valides :
    • vrai : suppression autorisée
    • faux : la suppression n’est pas autorisée
    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);

    Équivalent dans le champ d’application

    Pour utiliser la méthode canDelete() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : canDelete().

    GlideRecord : canRead()

    Indique si les règles de contrôle d’accès (ACL) autorisent l’utilisateur actuel à lire l’enregistrement actuel dans la table GlideRecord associée. Cette méthode évalue toutes les ACL disponibles pour la ressource spécifique.

    Remarque :
    Vous ne devez pas utiliser cette méthode pour vérifier l’accès au niveau de la table. Un seul appel à cette méthode peut ne pas suffire pour obtenir un résultat de vérification des droits d’accès au niveau de la table. Pour effectuer une vérification d’accès au niveau de la table, utilisez la méthode GlideSecurityManager.hasRightsTo().

    Pour plus d’informations sur les ACL, consultez Ordre d’évaluation des contrôles d’accès.

    Tableau 54. Paramètres
    Nom Type Description
    Néant
    Tableau 55. Renvoie
    Type Description
    Booléen Marqueur indiquant si les rôles de l’utilisateur permettent la lecture de l’enregistrement actuel.
    Valeurs valides :
    • true : lecture autorisée
    • false : la lecture n’est pas autorisée

    Cet exemple montre comment itérer dans la table Incident [incident] et vérifier si l’utilisateur dispose des droits de lecture pour chaque enregistrement.

    var grTable = new GlideRecord('incident');
    grTable.query();
    while (grTable.next()) {
      if (grTable.canRead()) 
    		…
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode canRead() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : canRead().

    GlideRecord : canWrite()

    Détermine si les règles de contrôle d’accès (qui inclut le rôle de l’utilisateur) autorisent les mises à jour des enregistrements de cette table.

    Tableau 56. Paramètres
    Nom Type Description
    Néant
    Tableau 57. Renvoie
    Type Description
    Booléen Marqueur indiquant si les rôles de l’utilisateur autorisent l’écriture d’enregistrements dans cette table.
    Valeurs valides :
    • true : écriture autorisée
    • false : l’écriture n’est pas autorisée

    Cet exemple montre si des enregistrements peuvent être écrits dans la table benefit_plan.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode canWrite() dans une application étendue, utilisez la méthode scoped correspondante : canWrite().

    GlideRecord : changes()

    Détermine si l’un des champs de l’enregistrement a changé.

    Tableau 58. Paramètres
    Nom Type Description
    Néant
    Tableau 59. Renvoie
    Type Description
    Booléen Marqueur indiquant si des changements sont présents dans l’enregistrement spécifié.
    Valeurs possibles :
    • vrai : les champs de l’enregistrement spécifié ont changé.
    • faux : aucun champ n’a changé.

    Cet exemple montre comment vérifier si des changements sont apportés à un enregistrement d’incident.

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

    Équivalent dans le champ d’application

    Pour implémenter cette fonctionnalité dans une application incluse dans le périmètre, ajoutez du code similaire à ce qui suit :

    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 : chooseWindow(Number, firstRow, Number lastRow, Boolean, forceCount)

    Définit une plage de lignes à retourner par les requêtes suivantes.

    Utilisation de setLimit() avec chooseWindow()
    La méthode setLimit() appelle implicitement la méthode chooseWindow() et peut entraîner des résultats inattendus lorsqu’elle est utilisée avec chooseWindow() dans une requête.
    • Si la méthode chooseWindow() est appelée en premier, sa fenêtre d’enregistrement est écrasée par la méthode setLimit( ).
      L’utilisation des lignes suivantes dans une requête renvoie 100 enregistrements commençant à la ligne 1 :
      grIncident.chooseWindow(20,30);
      grIncident.setLimit(100);
    • Si la méthode setLimit() est appelée en premier, la fenêtre définie par chooseWindow() est utilisée et la limite est écrasée.
      L’utilisation des lignes suivantes dans une requête renvoie 10 enregistrements commençant à la ligne 21 :
      grIncident.setLimit(5);
      grIncident.chooseWindow(20,30);
      Remarque :
      L’exécution de query() avec la méthode chooseWindow() déclenche une requête COUNT(*), ce qui peut entraîner des performances lentes sur les tables avec un grand nombre d’enregistrements. Vous pouvez utiliser setLimit() avant chooseWindow() pour ignorer l’exécution de la requête COUNT(*), mais le même avantage en termes de performances est réalisable en utilisant setNoCount().
    Voir aussi :
    Tableau 60. Paramètres
    Nom Type Description
    première ligne Numéro Index de base zéro de la ligne de départ pour la plage, incluse. (Une valeur de 0 renvoie la première ligne.)
    dernière ligne Numéro Index de base zéro de la ligne de fin de la plage, exclusif.

    Par exemple, si firstRow = 1 et lastRow = 5, quatre enregistrements sont renvoyés (2-5).

    forceCount Booléen Facultatif. Marqueur indiquant s’il faut forcer une requête de nombre de lignes. Dans la plupart des implémentations de cet appel, le décompte de lignes est effectué. Il existe des cas isolés, tels que les recherches de texte, où le nombre de lignes n’est pas effectué. La définition de ce marqueur garantit que le nombre de lignes se produit.
    Valeurs valides :
    • vrai : le nombre de lignes se produit toujours.
    • faux : le nombre de lignes se produit en cas d’implémentation dans une exécution normale de la méthode.

    Valeur par défaut : false

    Tableau 61. Renvoie
    Type Description
    nul

    Cet exemple montre comment renvoyer les enregistrements 3 et 4 de la table Incident [incident].

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

    Sortie :

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

    GlideRecord : deleteMultiple()

    Supprime tous les enregistrements qui satisfont à la requête.

    Cette méthode ne supprime pas les pièces jointes.

    La remontée pas à pas n’est pas prise en charge pour cette méthode. Lors de l’utilisation de la fonction deleteMultiple() sur des tables référencées, tous les enregistrements de la table sont supprimés. En outre, lors de l’utilisation de deleteRecord() pour effectuer une suppression en cascade, les appels antérieurs à setWorkflow() sur le même objet GlideRecord sont ignorés.

    N’utilisez pas deleteMultiple() sur les tables avec des champs de devise. Supprimez toujours chaque enregistrement individuellement. De plus, n’utilisez pas cette méthode avec les méthodes chooseWindow() ou setLimit() lorsque vous travaillez avec des tables volumineuses. La méthode setLimit() ne limite pas le nombre d’enregistrements qui sont supprimés avec deleteMultiple(). Tous les enregistrements renvoyés par la requête sont supprimés, quel que soit setLimit().

    La glide.db.forced.chunk.threshold propriété système définit le seuil au-dessus duquel force la suppression et la mise à jour d’enregistrements de blocs. Le découpage permet d’éviter que les suppressions de clés non primaires sur des tables volumineuses ne provoquent des problèmes de réplication. Pour plus d'informations, consultez Available system properties.

    Remarque :
    Lors de l’utilisation de deleteMultiple() pour effectuer une suppression en cascade, les appels antérieurs à setWorkflow() sur le même objet GlideRecord sont ignorés.
    Tableau 62. Paramètres
    Nom Type Description
    Néant
    Tableau 63. Renvoie
    Type Description
    Néant

    Cet exemple montre comment supprimer tous les enregistrements inactifs de la table Incident.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode deleteMultiple() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : deleteMultiple().

    GlideRecord : deleteRecord()

    Supprime un seul enregistrement.

    Tableau 64. Paramètres
    Nom Type Description
    Néant
    Tableau 65. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’enregistrement a été supprimé avec succès.
    Valeurs possibles :
    • vrai : l’enregistrement a été supprimé.
    • faux : aucun enregistrement trouvé à supprimer.

    Cet exemple montre comment supprimer tous les enregistrements inactifs de la table Incident.

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

    Sortie :

    Inactive incident INC0010010 deleted
    Inactive incident INC0010011 deleted

    Cet exemple montre comment supprimer un enregistrement de la table Incident immédiatement après son insertion. Le GlideRecord d’incident doit être rechargé après l’insertion pour pouvoir être supprimé.

    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

    Sortie :

    true

    Équivalent dans le champ d’application

    Pour utiliser la méthode deleteRecord() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : deleteRecord().

    GlideRecord : disableSysIdInOptimization()

    Désactive l’optimisation par défaut qui empêche l’exécution d’une requête de base de données supplémentaire lorsqu’un utilisateur transmet un grand nombre de sys_ids, tels que grIncident.addQuery('sys_id', 'IN', listOf200SysIds).

    Cette méthode affecte uniquement le GlideRecord sur lequel elle est appelée. Pour modifier l’optimisation de la limite de sys_id pour tous les GlideRecords, ajustez la valeur dans la glide.db.first_pass_sys_id_list_size.max propriété système (100 par défaut).

    Si vous n’appelez pas cette méthode ou ajustez la glide.db.first_pass_sys_id_list_size.max propriété système et transmettez une liste contenant plus d’entrées sys_id que défini dans glide.db.first_pass_sys_id_list_size.max, la valeur renvoyée par GlideRecord.getRowCount() peut être incorrecte.

    Tableau 66. Paramètres
    Nom Type Description
    Néant
    Tableau 67. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment utiliser la méthode disableSysIdInOptimiation() pour désactiver l’optimisation de la limite de sys_id lors du passage d’une liste de sys_id d’incidents contenant 200 entrées.

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

    Sortie :

    Rowcount: 200

    GlideRecord : find(String columnName, valeur de chaîne)

    Renvoie la valeur true si un enregistrement a une valeur correspondante dans la colonne spécifiée. S’il est trouvé, il se déplace également vers le premier enregistrement qui correspond, exécutant essentiellement next() jusqu’à ce que l’enregistrement soit renvoyé.

    Remarque :
    Cette méthode crée un enregistrement au lieu de mettre à jour l’enregistrement existant si vous appliquez la méthode update() après avoir modifié GlideRecord. Pour éviter de créer un enregistrement, appelez la méthode next() avant d’appeler find(). Par exemple :
    var existingMaterials = new GlideRecord('u_m2m_material_num_service_instance');
    existingMaterials.addQuery('u_service_instance', serviceInstance.sys_id);
    existingMaterials.query();
    existingMaterials.next(); // This line added to prevent new record creation
    
    existingMaterials.find('u_material_number', 'ca41b9fd37a84200fdc25ca543990ed8');
    
    existingMaterials.u_material_quantity = 5;
    existingMaterials.update("Modify request via catalog");
    Tableau 68. Paramètres
    Nom Type Description
    columnName Chaîne Nom de champ à rechercher.
    valide Chaîne Valeur à vérifier dans le champ spécifié.
    Tableau 69. Renvoie
    Type Description
    Booléen Marqueur indiquant si un enregistrement de la table active a une valeur correspondante dans le champ spécifié.
    Valeurs possibles :
    • vrai : champ correspondant.
    • faux : aucun champ correspondant.

    Cet exemple montre comment trouver un enregistrement dans la table Incident avec « Critique » dans le champ Description brève.

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

    Sortie :

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

    GlideRecord : get(nom de l’objet, valeur d’objet)

    Renvoie l’enregistrement spécifié dans l’objet GlideRecord actuel.

    Cette méthode accepte un ou deux paramètres. Si un seul paramètre est transmis, la méthode suppose qu’il s’agit du sys_id de l’enregistrement souhaité. S’il est introuvable, il essaie alors de faire correspondre la valeur à la valeur d’affichage. Si deux paramètres sont transmis, le premier est le nom de la colonne dans le GlideRecord à rechercher. La seconde est la valeur à rechercher. Si plusieurs enregistrements sont trouvés, utilisez next() pour accéder aux enregistrements supplémentaires.

    Tableau 70. Paramètres
    Nom Type Description
    nom Objet Facultatif. Nom de la colonne GlideRecord instanciée pour rechercher le paramètre spécifié value . Si un seul paramètre est transmis, la méthode suppose que ce paramètre est sys_id.
    valide Objet Valeur à faire correspondre. Pour les champs calculés, la valeur est mise en correspondance telle quelle plutôt que d’exécuter un calcul sur une valeur par défaut scriptée pour un champ de l’enregistrement.
    Tableau 71. Renvoie
    Type Description
    Booléen Indique si l’enregistrement demandé a été localisé.
    Valeurs possibles :
    • vrai : enregistrement trouvé
    • faux : enregistrement introuvable

    Cet exemple permet d’obtenir un enregistrement d’incident en transmettant le sys_id.

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

    Cet exemple permet d’obtenir un enregistrement d’incident en transmettant la colonne de l’enregistrement à rechercher et la valeur à rechercher.

    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

    Équivalent dans le champ d’application

    Pour utiliser la méthode get() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : get().

    GlideRecord : getAttribute(nom de champ de chaîne)

    Renvoie les attributs de dictionnaire dans le champ spécifié.

    Tableau 72. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom de champ pour lequel renvoyer les attributs de dictionnaire
    Tableau 73. Renvoie
    Type Description
    Chaîne Attributs du dictionnaire

    Cet exemple montre comment renvoyer les attributs de dictionnaire pour « tree_picker ».

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode getAttribute() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : getAttribute().

    GlideRecord : getClassDisplayValue()

    Renvoie l’étiquette de la table.

    Tableau 74. Paramètres
    Nom Type Description
    Néant
    Tableau 75. Renvoie
    Type Description
    Chaîne Étiquette qui identifie la table.

    Cet exemple imprime l’étiquette de la table transmise.

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

    Sortie :

    The table label is Incident.

    Équivalent dans le champ d’application

    Pour utiliser la méthode getClassDisplayValue() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getClassDisplayValue().

    GlideRecord : getDisplayValue (nom de chaîne)

    Récupère la valeur d’affichage de l’enregistrement actuel ou la valeur d’affichage d’un attribut dans un magasin d’attributs dynamiques.

    Display values sont manipulés en fonction de la valeur réelle dans la base de données et des paramètres et préférences utilisateur ou système.

    La valeur d’affichage renvoyée dépend du type de champ.
    • Champs de choix : la valeur de base de données peut être un nombre, mais la valeur d’affichage est plus descriptive.
    • Champs de date : la valeur de base de données est au format UTC, tandis que la valeur d’affichage est basée sur le fuseau horaire de l’utilisateur.
    • Texte chiffré : la valeur de base de données est chiffrée, tandis que la valeur affichée n’est pas chiffrée en fonction du contexte de chiffrement de l’utilisateur.
    • Champs de référence : la valeur de base de données est sys_id, mais la valeur d’affichage est le champ d’affichage de l’enregistrement référencé.

    Voir aussi Dynamic Schema.

    Tableau 76. Paramètres
    Nom Type Description
    nom Chaîne Facultatif. Requis uniquement lors de la demande de la valeur d’affichage d’un attribut dynamique.

    Chemin d’accès à un attribut dans un schéma dynamique à récupérer.

    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 77. Renvoie
    Type Description
    Chaîne Valeur d’affichage de l’enregistrement actuel ou de l’élément spécifié.

    Cet exemple écrit la valeur d’affichage d’un enregistrement d’incident spécifié dans le journal.

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

    Sortie :

    INC0000050

    Cet exemple montre comment récupérer la valeur d’affichage d’un attribut dans un élément de magasin d’attributs dynamiques.

    var gr_AppTab = new GlideRecord('application_table'); 
    gr_AppTab.setValue('dyn_att_field->attr', 42); 
    gr_AppTab.setDisplayValue('dyn_att_field->attr2, true);
    gr_AppTab.update();
    gs.info('Attr value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->attr);
    gs.info('Attr2 value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->attr2);

    Sortie :

    Attr value: System error
    Attr2 value: true

    Équivalent dans le champ d’application

    Pour utiliser la méthode getDisplayValue() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getDisplayValue().

    GlideRecord : getDynamicAttribute(String fullPath)

    Retourne l’objet GlideElementDynamicAttribute pour le chemin d’accès au magasin d’attributs dynamiques spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 78. Paramètres
    Nom Type Description
    fullPath Chaîne Chemin d’accès à utiliser pour localiser l’attribut dynamique souhaité.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 79. Renvoie
    Type Description
    Objet Objet GlideElementDynamicAttribute contenant l’attribut dynamique spécifié.

    Si le paramètre n’est fullPath pas valide, renvoie null.

    L’exemple de code suivant montre comment appeler cette méthode.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gr_Inc.getDynamicAttribute('attr_store->color').setValue('Blue');
    gr_Inc.update();
    
    gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gs.info(gr_Inc.getDynamicAttribute('attr_store', 'color'));
    Sortie :
    *** Script: Blue

    GlideRecord : getDynamicAttribute(Chaîne dynamicAttributeField, chaîne attrPath)

    Renvoie un objet GlideElementDynamicAttribute qui contient l’attribut dynamique situé au champ de table spécifié et au chemin d’accès de l’attribut.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 80. Paramètres
    Nom Type Description
    dynamicAttributeField Chaîne Nom du champ dans la table qui contient l’attribut dynamique.
    attrPath Chaîne Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.

    Format : « attr_name »

    attr_name : nom de l’attribut dynamique.

    Table : dans le champ Attribut de la table Attribut dynamique [dynamic_attribute].

    Tableau 81. Renvoie
    Type Description
    Objet Objet GlideElementDynamicAttribute contenant l’attribut dynamique spécifié.

    Si les paramètres ou dynamicAttributeFieldattrPath ne sont pas valides, renvoie la valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gr_Inc.getDynamicAttribute('attr_store', 'color').setValue('Blue');
    gr_Inc.update();
    
    gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gs.info(gr_Inc.getDynamicAttribute('attr_store', 'color'));
    Sortie :
    *** Script: Blue

    GlideRecord : getDynamicAttributeValue (chemin d’accès complet de la chaîne)

    Renvoie la valeur de l’attribut dynamique situé sur un chemin d’accès spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 82. Paramètres
    Nom Type Description
    fullPath Chaîne Chemin d’accès à utiliser pour localiser l’attribut dynamique souhaité.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 83. Renvoie
    Type Description
    Objet Valeur de l’attribut dynamique situé sur le chemin d’accès spécifié.

    Si le fullPath paramètre contient des données non valides ou si la valeur d’attribut spécifiée n’est pas l’un des types de données pris en charge, renvoie une valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->time_of_purchase' incident 'INC0009009' to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();
    
    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store->time_of_purchase'));

    Sortie :

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

    GlideRecord : getDynamicAttributeValue(Chaîne dynamicAttributeField, chaîne attrPath)

    Renvoie la valeur de l’attribut dynamique situé dans un champ spécifié dans la table actuelle et un chemin d’accès d’attribut spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 84. Paramètres
    Nom Type Description
    dynamicAttributeField Chaîne Nom du champ dans la table qui contient l’attribut dynamique.
    attrPath Chaîne Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.

    Format : « attr_name »

    attr_name : nom de l’attribut dynamique.

    Table : dans le champ Attribut de la table Attribut dynamique [dynamic_attribute].

    Tableau 85. Renvoie
    Type Description
    Objet Valeur de l’attribut dynamique situé sur le chemin d’accès spécifié.

    Si les paramètres ou dynamicAttributeFieldattrPath ne sont pas valides, renvoie la valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();
    
    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store', 'time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'time_of_purchase'));

    Sortie :

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

    GlideRecord : getDynamicAttributeDisplayValue (Chemin d’accès complet de la chaîne)

    Renvoie la valeur d’affichage de l’attribut dynamique situé sur le chemin d’accès spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 86. Paramètres
    Nom Type Description
    fullPath Chaîne Chemin d’accès à utiliser pour localiser l’attribut dynamique souhaité.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 87. Renvoie
    Type Description
    Chaîne Valeur d’affichage de l’attribut dynamique situé sur le chemin d’accès spécifié.

    Si le paramètre n’est fullPath pas valide, renvoie null.

    L’exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->time_of_purchase' incident INC0009009 to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();
    
    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store->time_of_purchase'));

    Sortie :

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

    GlideRecord : getDynamicAttributeDisplayValue (chaîne dynamicAttributeField, chaîne attrPath)

    Renvoie la valeur d’affichage de l’attribut dynamique situé dans un champ de table et un chemin d’attribut spécifiés.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 88. Paramètres
    Nom Type Description
    dynamicAttributeField Chaîne Nom du champ dans la table qui contient l’attribut dynamique.
    attrPath Chaîne Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.

    Format : « attr_name »

    attr_name : nom de l’attribut dynamique.

    Table : dans le champ Attribut de la table Attribut dynamique [dynamic_attribute].

    Tableau 89. Renvoie
    Type Description
    Chaîne Valeur d’affichage de l’attribut dynamique situé sur le chemin d’accès spécifié.

    Si les paramètres ou dynamicAttributeFieldattrPath ne sont pas valides, renvoie la valeur null.

    L’exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->time_of_purchase' incident INC0009009 to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();
    
    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store', 'time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'time_of_purchase'));

    Sortie :

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

    GlideRecord : getED()

    Renvoie le descripteur de l’élément.

    Tableau 90. Paramètres
    Nom Type Description
    Néant
    Tableau 91. Renvoie
    Type Description
    GlideElementDescriptor Descripteur de l’élément.

    Cet exemple montre comment récupérer le champ de nom pour un GlideRecord d’incident.

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

    Sortie :

    Table Descriptor is - incident

    Équivalent dans le champ d’application

    Pour utiliser la méthode getED() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : getED().

    GlideRecord : getElement(nom du champ de chaîne)

    Récupère le GlideElement pour un champ spécifié.

    La valeur renvoyée par cette méthode est un objet GlideElement complet. Les résultats sont l’équivalent d’une remontée pas à pas d’une valeur de champ. Par exemple, now_GR.getElement('short_description') fournit le même résultat que nowGR.short_description.

    Dans la plupart des cas, n’utilisez pas de remontée pas à pas pour obtenir des valeurs à partir d’un enregistrement. La remontée pas à pas récupère l’objet entier au lieu de la valeur du champ. La récupération de l’objet consomme plus de stockage et peut entraîner des résultats indésirables lorsqu’elle est utilisée dans des tableaux ou dans Portail de services.

    Au lieu de récupérer l’objet entier, vous pouvez utiliser l’une des méthodes suivantes pour copier les valeurs de champ :

    Si une remontée pas à pas dans un objet GlideElement est nécessaire, utilisez la méthode toString() pour récupérer les valeurs. Par exemple, vous aurez peut-être besoin de l’sys_id du gestionnaire de l’appelant actuel pour définir un autre champ de référence. L’exemple suivant montre comment obtenir la valeur de la chaîne au lieu de l’objet entier :
    var mgr = current.caller_id.manager.toString();

    Voir aussi : GlideElement : toString().

    Tableau 92. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom de colonne pour lequel renvoyer l’objet GlideElement.
    Tableau 93. Renvoie
    Type Description
    Élément GlideÉlément GlideElement pour la colonne spécifiée de l’enregistrement actuel. Chaque objet décrit un champ dans le GlideRecord actuel.

    Cet exemple montre comment obtenir l’objet GlideElement pour une table transmise et les comparer avec les valeurs attendues des métadonnées système.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode getElement() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : getElement().

    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 94. Paramètres
    Nom Type Description
    Néant
    Tableau 95. Renvoie
    Type Description
    Chaîne Une chaîne de requête codée.

    Cet exemple montre comment obtenir la requête codée actuelle à utiliser ultérieurement pour créer un rôle ACL en lecture.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode getEncodedQuery() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getEncodedQuery().

    GlideRecord : getEscapedDisplayValue()

    Récupère la valeur de champ du champ d’affichage de l’enregistrement actuel et ajoute des caractères d’échappement à utiliser dans les scripts Jelly.

    Remarque :
    Pour que cette méthode fonctionne, une valeur d’affichage doit avoir été définie sur la table associée. Pour plus d’informations sur la procédure à suivre, consultez Sélectionner un champ comme valeur d’affichage de la table.
    Tableau 96. Paramètres
    Nom Type Description
    Néant
    Tableau 97. Renvoie
    Type Description
    Chaîne Valeur d’échappement du champ d’affichage de la table actuelle.

    Cet exemple montre comment obtenir la valeur d’affichage d’échappement user_name à partir de la table Utilisateur [sys_user].

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

    Sortie :

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

    GlideRecord : getFields()

    Récupère une liste de tableaux Java des champs de l’enregistrement actuel.

    Tableau 98. Paramètres
    Nom Type Description
    Néant
    Tableau 99. Renvoie
    Type Description
    Java ArrayList Champs dans l’enregistrement actuel
    // 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()

    Récupère l’étiquette du champ.

    Tableau 100. Paramètres
    Nom Type Description
    Néant
    Tableau 101. Renvoie
    Type Description
    Chaîne L’étiquette du champ

    Cet exemple montre comment récupérer l’étiquette d’un champ de question dans la table Élément demandé et imprimer l’étiquette et son nom d’affichage.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode getLabel() dans une application incluse dans le périmètre, utilisez la méthode correspondante : getLabel().

    GlideRecord : getLocation()

    Récupère le numéro de ligne de l’enregistrement actuel dans la table.

    Tableau 104. Paramètres
    Nom Type Description
    Néant
    Tableau 105. Renvoie
    Type Description
    Numéro Numéro de ligne de base zéro de l’enregistrement actuel dans la table.

    Cet exemple montre comment vérifier si un enregistrement de la table Incident n’est pas récupéré correctement en comparant le nombre d’enregistrements au numéro d’emplacement de l’enregistrement.

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

    Sortie :

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

    GlideRecord : getPlural()

    Récupère l’étiquette de pluriel de la table GlideRecord.

    Par exemple, si le nom de la table est « Demande de changement », cette méthode renvoie « Demandes de changement ».

    Tableau 106. Paramètres
    Nom Type Description
    Néant
    Tableau 107. Renvoie
    Type Description
    Chaîne Étiquette pluriel de la table GlideRecord.

    Cet exemple montre les vérifications des valeurs de retour pour getLabel() et getPlural() pour la table Incident.

    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";

    Équivalent dans le champ d’application

    Pour utiliser la méthode getPlural() dans une application incluse dans le champ d’application, utilisez la méthode GlideRecord.getED() pour obtenir le descripteur du champ, puis utilisez la méthode GlideElementDescriptor.getPlural() dans le champ d’application.

    GlideRecord : getRecordClassName()

    Récupère le nom de la classe (table) pour l’enregistrement actuel.

    Tableau 108. Paramètres
    Nom Type Description
    Néant
    Tableau 109. Renvoie
    Type Description
    Chaîne Nom de classe ou de table
    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;
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode getRecordClassName() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getRecordClassName().

    GlideRecord : getRelatedLists()

    Récupère une liste de noms et de valeurs d’affichage des listes connexes associées au GlideRecord actuel.

    Tableau 110. Paramètres
    Nom Type Description
    Néant
    Tableau 111. Renvoie
    Type Description
    Carte de hachage Carte de hachage avec les noms et les valeurs d’affichage des listes connexes.

    Cet exemple montre comment obtenir la liste des noms et afficher les valeurs des listes connexes associées au GlideRecord actuel, les stocker dans un tableau, puis imprimer leurs valeurs.

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

    Récupère une liste de noms et de valeurs d’affichage des tables auxquelles l’enregistrement actuel fait référence.

    Tableau 112. Paramètres
    Nom Type Description
    Néant
    Tableau 113. Renvoie
    Type Description
    Carte de hachage Carte de hachage avec les noms et les valeurs d’affichage des tables connexes.

    Cet exemple montre comment obtenir la liste des noms et des valeurs d’affichage des tables associées au GlideRecord actuel, les stocker dans un tableau, puis imprimer leurs valeurs.

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

    Récupère le nombre de lignes (enregistrements) dans l’objet GlideRecord actuel.

    Remarque :
    GlideRecord renvoie les enregistrements correspondants, il peut donc ne pas être aussi efficace que GlideAggregate lorsque vous n’avez besoin que du nombre d’enregistrements. Si vous avez seulement besoin d’un nombre d’enregistrements et que vous n’itérez pas sur les enregistrements correspondants, utilisez GlideAggregate.
    Récupération du nombre d’enregistrements dans GlideRecord ou GlideAggregate
    Les API GlideRecord getRowCount() et GlideAggregate getAggregate() offrent des informations similaires. Utilisez les critères suivants pour déterminer l’option qui vous convient le mieux.
    • La méthode GlideRecord getRowCount() vous indique combien d’enregistrements ont été renvoyés par une requête avec les enregistrements eux-mêmes. Si vous avez besoin du nombre d’enregistrements dans le jeu de résultats avant ou après l’itération sur le jeu pour effectuer des actions sur les enregistrements, utilisez cette méthode.
    • La méthode GlideAggregate getAggregate() récupère uniquement le nombre d’enregistrements correspondant à la requête, à l’exclusion des enregistrements réels. L’agrégat doit être défini sur l’objet GlideAggregate avant d’émettre la requête.
    Récupération des enregistrements et du nombre avec GlideRecord getRowCount()
    L’exemple suivant montre comment obtenir le nombre total d’incidents actifs avec GlideRecord getRowCount() :
    var incident = new GlideRecord("incident");
    incident.addQuery("active", true);
    incident.query();
     
    gs.info("*** Total number of active incidents: {0}", incident.getRowCount());
    Récupération uniquement du nombre d’enregistrements avec GlideAggregate getAggregate()
    L’exemple suivant montre comment renvoyer uniquement le nombre d’enregistrements. Étant donné que cette méthode n’utilise pas les enregistrements correspondants, il est beaucoup plus efficace d’utiliser une requête agrégée et de renvoyer uniquement le nombre.
    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"));
    Choisir l’option la mieux adaptée à votre solution

    Si vous souhaitez uniquement récupérer le nombre d’enregistrements, la méthode GlideAggregate getAggregate() est la meilleure option. Pour utiliser les enregistrements individuels et récupérer le nombre de résultats, utilisez GlideRecord getRowCount(), car une seule requête fournit cette fonctionnalité.

    Remarque :
    Si vous souhaitez utiliser la méthode getRowCount() lors de l’utilisation de sys_id IN avec plus de 100 valeurs sys_id, telles que grIncident.addQuery('sys_id', 'IN', listOf200SysIds), vous devez :
    • Appelez la méthode disableSysIdInOptimization() sur GlideRecord.
    • Vous pouvez également ajuster la glide.db.first_pass_sys_id_list_size.max propriété système à une valeur supérieure au nombre de sys_ids dans la liste.
    De plus, assurez-vous d’appeler la méthode .next() avant d’appeler la méthode getRowCount( ).
    Tableau 114. Paramètres
    Nom Type Description
    Néant
    Tableau 115. Renvoie
    Type Description
    Numéro Nombre de lignes dans le GlideRecord actuel.

    L’exemple suivant montre comment obtenir le nombre d’incidents à partir de la table Incident [incident].

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

    Sortie :

    Records in incident table: 6920

    L’exemple de code suivant montre comment utiliser la méthode disableSysIdInOptimiation() pour désactiver l’optimisation de la limite de sys_id lors du passage d’une liste de sys_id d’incidents contenant 200 entrées.

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

    Sortie :

    Rowcount: 200

    Équivalent dans le champ d’application

    Pour utiliser la méthode getRowCount() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getRowCount().

    GlideRecord : getRowNumber()

    Récupère le numéro de ligne défini par saveLocation() ou setLocation().

    Pour obtenir le numéro de ligne en cours, utilisez getLocation().

    Tableau 116. Paramètres
    Nom Type Description
    Néant
    Tableau 117. Renvoie
    Type Description
    Numéro Numéro de ligne enregistré.

    Cet exemple montre comment enregistrer l’emplacement d’une ligne dans la table Utilisateurs, puis obtenir ce numéro de ligne.

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

    Sortie :

    Saved row: 5

    GlideRecord : getTableName()

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

    Tableau 118. Paramètres
    Nom Type Description
    Néant
    Tableau 119. Renvoie
    Type Description
    Chaîne Nom de table

    Cet exemple montre comment écrire le nom de la table actuelle dans le journal système.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode getTableName() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getTableName().

    GlideRecord : getUniqueValue()

    Obtient la clé principale de l’enregistrement, qui est généralement la sys_id sauf indication contraire.

    Tableau 120. Paramètres
    Nom Type Description
    Néant
    Tableau 121. Renvoie
    Type Description
    Chaîne Clé primaire unique sous forme de chaîne ou nulle si la clé est nulle.
    var now_GR = new GlideRecord('kb_knowledge');
    now_GR.query();
    now_GR.next();
    var uniqueid = now_GR.getUniqueValue();
    gs.info(uniqueid);

    GlideRecord : getValue(nom de champ de chaîne)

    Récupère la valeur de chaîne d’un champ spécifié ou la valeur de chaîne d’un attribut dans un magasin d’attributs dynamiques.

    Remarque :
    Si le module d’extension Chiffrement de champ Enterprise est activé et que l’instance a accès à la clé, cette méthode renvoie les valeurs en texte clair des champs chiffrés. Si l’instance n’a pas accès à la clé, cette méthode renvoie la valeur chiffrée. Pour plus d’informations, consultez Chiffrement de la plateforme.

    Voir aussi Dynamic Schema.

    Tableau 122. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom du champ dont vous souhaitez récupérer la valeur ou chemin d’accès à un attribut dans un magasin d’attributs dynamiques à récupérer.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 123. Renvoie
    Type Description
    Chaîne Valeur de l’élément spécifié. Renvoie null si le champ est vide ou s’il n’existe pas.
    Remarque :
    Les valeurs booléennes sont renvoyées sous forme de valeurs de chaîne « 0 » et « 1 » au lieu de faux et vrai.

    Cet exemple utilise la méthode getValue() pour obtenir des valeurs de champ dans deux GlideRecords comparés.

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

    Cet exemple montre comment récupérer la valeur d’un attribut dynamique.

    // Update the value of the attribute 'attribute_store->color' to 'Red' on incident INC0009009
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->color', 'Red');
    gr1.update();
    
    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info(gr2.getValue('attribute_store->color'));

    Sortie :

    *** Script: Red

    Équivalent dans le champ d’application

    Pour utiliser la méthode getValue() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getValue().

    GlideRecord : hasAttachments()

    Détermine si le GlideRecord actuel a des pièces jointes.

    Tableau 124. Paramètres
    Nom Type Description
    Néant
    Tableau 125. Renvoie
    Type Description
    Booléen Vrai si l’enregistrement actuel comporte des pièces jointes, faux dans les autres cas.

    Cet exemple vérifie les pièces jointes et crée un lien le cas échéant.

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

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

    Tableau 126. Paramètres
    Nom Type Description
    Néant
    Tableau 127. Renvoie
    Type Description
    Booléen Vrai s’il existe plus d’enregistrements dans l’ensemble de requêtes, sinon faux.

    Cet exemple montre comment appeler différentes fonctions en fonction de la présence d’enregistrements supplémentaires dans le GlideRecord actuel.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode hasNext() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : hasNext().

    GlideRecord : initialize()

    Crée un enregistrement vide dans le GlideRecord actuel qui convient au remplissage avant une insertion.

    Tableau 128. Paramètres
    Nom Type Description
    Néant
    Tableau 129. Renvoie
    Type Description
    nul

    Cet exemple initialise un nouvel enregistrement dans la table to_do, crée un enregistrement puis l’insère dans la table.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode initialize() dans une application scoped, utilisez la méthode scoped correspondante : initialize().

    GlideRecord : insert()

    Insère un nouvel enregistrement avec les valeurs de champ définies pour l’enregistrement actuel.

    Tableau 130. Paramètres
    Nom Type Description
    Néant
    Tableau 131. Renvoie
    Type Description
    Chaîne sys_id de l’enregistrement inséré ou nul si l’enregistrement n’est pas inséré.

    Cet exemple crée un nouvel enregistrement dans la table to_do, définit des valeurs pour certains champs d’enregistrement, puis insère l’enregistrement dans la table.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode insert() dans une application à portée, utilisez la méthode à portée correspondante : insert().

    GlideRecord : insertWithReferences()

    Insère un nouvel enregistrement et insère ou met à jour tous les enregistrements connexes avec les informations fournies.

    Tableau 132. Paramètres
    Nom Type Description
    Néant
    Tableau 133. Renvoie
    Type Description
    Chaîne sys_id de l’enregistrement inséré ou nul si l’enregistrement n’a pas été inséré.

    Si aucune valeur de référence n’est spécifiée (comme ci-dessous), un nouvel enregistrement utilisateur est créé avec les first_name et last_name fournis, et la valeur caller_id est définie sur cet enregistrement de sys_user nouvellement créé. Il en résulte un nouvel enregistrement de sys_user avec les first_name et last_name fournis, et un nouvel enregistrement d’incident avec les short_description et caller_id fournis.

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

    Si une valeur caller_id est spécifiée, cette caller_id est mise à jour avec les first_name et last_name fournis. Il en résulte un enregistrement d’incident nouvellement créé avec des valeurs définies pour short_description et 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)

    Recherche le type\classe de table dans une table.

    Tableau 134. Paramètres
    Nom Type Description
    className Chaîne Nom d’un type ou d’une classe d’enregistrement.
    Tableau 135. Renvoie
    Type Description
    Booléen Vrai si la table est une instance de la classe spécifiée.

    Cet exemple vérifie si le groupe/utilisateur transféré est du type table/classe sys_user.

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

    Détermine si l’enregistrement actuel a été inséré dans la base de données.

    Cette méthode renvoie la valeur true uniquement si la méthode newRecord() a été appelée. Cette méthode est utile pour les ACL scriptées et dans la condition des actions d’interface utilisateur, mais ne doit pas être utilisée dans les scripts en arrière-plan.

    Remarque :
    Cette méthode renvoie la valeur true pour tout nouvel enregistrement au cours d’une règle métier, ou si la méthode newRecord() est utilisée pour initialiser un enregistrement avec des valeurs par défaut et un ID unique (sys_id). Dans tous les autres cas, il renvoie la valeur Faux.
    Tableau 136. Paramètres
    Nom Type Description
    Néant
    Tableau 137. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’enregistrement actuel est nouveau (n’a pas été inséré dans la base de données).
    Valeurs possibles :
    • vrai : l’enregistrement est nouveau.
    • faux : l’enregistrement n’est pas nouveau.

    Cet exemple vérifie si le nouvel enregistrement a été inséré dans la table sys_user.

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

    Détermine si la table GlideRecord actuelle existe.

    Tableau 138. Paramètres
    Nom Type Description
    Néant
    Tableau 139. Renvoie
    Type Description
    Booléen Vrai si la table existe (valide), sinon faux.

    Cet exemple vérifie si la table Incident existe.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode isValid() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : isValid().

    GlideRecord : isValidField(chaîne columnName)

    Détermine si le champ spécifié est défini dans la table GlideRecord actuelle.

    Tableau 140. Paramètres
    Nom Type Description
    columnName Chaîne Nom d’une colonne à vérifier.
    Tableau 141. Renvoie
    Type Description
    Booléen Vrai si le champ est défini dans la table, sinon faux.

    Cet exemple vérifie si le champ sys_class_name existe dans la table cmds_software_instance.

    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++;
        }
      }
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode isValidField() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : isValidField().

    GlideRecord : isValidRecord()

    Détermine si l’enregistrement actuel est valide.

    Tableau 142. Paramètres
    Nom Type Description
    Néant
    Tableau 143. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’enregistrement actuel est valide.
    Valeurs valides :
    • vrai : l’enregistrement est valide.
    • false : au-delà de la fin de l’ensemble d’enregistrements.

    Cet exemple vérifie si l’identificateur d’enregistrement par le sys_id transmis est un enregistrement valide dans la table d’idées.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode isValidRecord() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : isValidRecord().

    GlideRecord : newRecord()

    Crée un GlideRecord, définit les valeurs par défaut des champs et affecte un ID unique à l’enregistrement.

    Tableau 144. Paramètres
    Nom Type Description
    Néant
    Tableau 145. Renvoie
    Type Description
    nul

    Cet exemple vérifie si le nouvel enregistrement a été inséré dans la table sys_user.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode newRecord() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : newRecord().

    GlideRecord : next()

    Passe à l’enregistrement suivant dans le GlideRecord.

    Utilisez cette méthode pour itérer dans les enregistrements renvoyés par une requête GlideRecord.

    Remarque :
    Cette méthode échoue s’il existe un champ dans la table appelé « suivant ». Si c’est le cas, utilisez la méthode _next().
    Remarque :
    La construction if(myObj.next()) ne traite que le premier enregistrement renvoyé.
    Tableau 146. Paramètres
    Nom Type Description
    Néant
    Tableau 147. Renvoie
    Type Description
    Booléen Marqueur indiquant s’il existe un enregistrement « suivant » dans GlideRecord.
    Valeurs valides :
    • vrai : le passage à l’enregistrement suivant a réussi.
    • faux : aucun autre enregistrement dans l’ensemble de résultats.

    Cet exemple montre comment itérer dans la table Incident à l’aide de la méthode next( ).

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode next() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : next().

    GlideRecord : _next()

    Passe à l’enregistrement suivant dans le GlideRecord. Fournit la même fonctionnalité que next(), destinée à être utilisée dans les cas où le GlideRecord comporte une colonne nommée next.

    Tableau 148. Paramètres
    Nom Type Description
    Néant
    Tableau 149. Renvoie
    Type Description
    Booléen Vrai s’il existe plus d’enregistrements dans l’ensemble de requêtes.
    var rec = new GlideRecord('sys_template');
    rec.query();
    while (rec._next()) { 
      gs.print(rec.number + ' exists');
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode _next() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : _next().

    GlideRecord : operation()

    Détermine si une opération est insérer, mettre à jour ou supprimer.

    Connaître l’opération permet d’utiliser current.operation() pour créer une règle métier générique capable de gérer chaque opération de manière unique.

    Pour plus d’informations sur l’utilisation de la variable globale current, reportez-vous à Variables globales dans les règles métier.

    Tableau 150. Paramètres
    Nom Type Description
    Néant
    Tableau 151. Renvoie
    Type Description
    Chaîne L’opération en cours.
    Valeurs possibles :
    • supprimer
    • insérer
    • mettre à jour

    L’exemple suivant montre comment utiliser cette méthode dans une règle métier. La méthode operation() détecte quelle opération a déclenché un événement et effectue une action différente en fonction des opérations de mise à jour et d’insertion.

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

    Cet exemple montre comment utiliser la méthode operation() pour transmettre la valeur de l’opération à la méthode startFlow( ).

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode operation() dans une application de portée, utilisez la méthode de portée correspondante : operation().

    GlideRecord : orderBy(String fieldName)

    Spécifie un nom de champ ou un chemin d’accès à un attribut dans un magasin d’attributs dynamique à utiliser pour ordonner l’ensemble de requêtes. Pour trier par plusieurs champs, appelez cette méthode plusieurs fois avec différentes valeurs de champ.

    Remarque :
    Pour appliquer l’accès aux requêtes en fonction de l’utilisateur, utilisez addUserOrderBy().
    Tableau 152. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom de champ de table, ou chemin d’accès à un attribut dans un magasin d’attributs dynamiques, sur lequel ordonner l’ensemble de requêtes.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 153. Renvoie
    Type Description
    nul

    Cet exemple montre comment classer l’ensemble de requêtes par « commande », puis par « numéro ».

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

    Cet exemple montre comment ordonner l’ensemble de requêtes par un attribut dans un magasin d’attributs dynamiques.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.orderBy('attribute_store->first_name');
    gr_Inc.query();
    
    while(gr_Inc.next()) {
      gs.info("first_name: " + gr_Inc.getValue('attribute_store->first_name'));
    }
    Sortie :
    *** Script: first_name: Alejandro
    *** Script: first_name: Bertie
    *** Script: first_name: Beth
    *** Script: first_name: Bow
    *** Script: first_name: Bud
    *** Script: first_name: Carol
    *** Script: first_name: Charlie
    *** Script: first_name: Christen
    *** Script: first_name: David

    Équivalent dans le champ d’application

    Pour utiliser la méthode orderBy() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : orderBy().

    GlideRecord : orderByDesc(nom de champ de chaîne)

    Spécifie le champ ou un attribut d’un magasin d’attributs dynamiques à utiliser pour classer l’ensemble de requêtes par ordre décroissant.

    Remarque :
    Pour appliquer l’accès aux requêtes en fonction de l’utilisateur, utilisez addUserOrderByDesc().
    Tableau 154. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom de champ de table, ou chemin d’accès à un attribut dans un magasin d’attributs dynamique, sur lequel classer l’ensemble de requêtes par ordre décroissant.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    Tableau 155. Renvoie
    Type Description
    nul

    Cet exemple montre comment trier l’ensemble de requêtes par ordre croissant ou décroissant.

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

    Cet exemple montre comment ordonner l’ensemble de requêtes par un attribut dans un magasin d’attributs dynamiques.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.orderByDesc('attribute_store->first_name');
    gr_Inc.query();
    
    while(gr_Inc.next()) {
      gs.info("first_name: " + gr_Inc.getValue('attribute_store->first_name'));
    }
    Sortie :
    
    *** Script: first_name: David
    *** Script: first_name: Christen
    *** Script: first_name: Charlie
    *** Script: first_name: Carol
    *** Script: first_name: Bud
    *** Script: first_name: Bow
    *** Script: first_name: Beth
    *** Script: first_name: Bertie
    *** Script: first_name: Alejandro

    Équivalent dans le champ d’application

    Pour utiliser la méthode orderByDesc() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : orderByDesc().

    GlideRecord : query(champ de chaîne, valeur de chaîne)

    Exécute une requête sur la table en fonction des filtres spécifiés dans les méthodes de requête telles que addQuery() et addEncodedQuery().

    Cette méthode interroge la table GlideRecord ainsi que toutes les références de la table. Pour plus d’informations, consultez Interrogation de tables dans un script.

    Remarque :
    Cette méthode échoue s’il existe un champ dans la table appelé « requête ». Si c’est le cas, utilisez la méthode _query(). Pour exécuter des requêtes dans une instance séparée par domaine, utilisez la méthode queryNoDomain().

    Consultez l’article GlideRecord pour plus de détails sur la création et l’exécution de requêtes.

    Tableau 156. Paramètres
    Nom Type Description
    nom Chaîne Facultatif : doit également spécifier un paramètre de valeur. Nom du champ dans lequel rechercher la valeur spécifiée dans le paramètre de valeur.
    Remarque :
    Cette méthode est généralement exécutée sans arguments, mais vous pouvez spécifier une paire nom-valeur pour filtrer les enregistrements contenant les valeurs spécifiées. Si les paramètres sont spécifiés, la condition « nom=valeur » est ajoutée à la requête.
    valide Chaîne Facultatif : doit également spécifier un paramètre de champ. Valeur à rechercher dans le paramètre de champ spécifié.
    Tableau 157. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment analyser le dictionnaire système [sys_dictionary] pour les tables comportant un champ de requête.

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

    Sortie :

    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

    Équivalent dans le champ d’application

    Pour utiliser la méthode query() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : query().

    GlideRecord : _query(champ de chaîne, valeur de chaîne)

    Exécute une requête sur la table en fonction des filtres spécifiés dans les méthodes de requête telles que addQuery() et addEncodedQuery(). Cette méthode est destinée à être utilisée sur les tables dans lesquelles il y a une colonne nommée « query », ce qui peut entraîner des erreurs lors de l’exécution de la méthode query().

    Cette méthode interroge la table GlideRecord ainsi que toutes les références de la table. Pour plus d’informations, consultez Interrogation de tables dans un script.

    Consultez l’article GlideRecord pour plus de détails sur la création et l’exécution de requêtes.

    Tableau 158. Paramètres
    Nom Type Description
    nom Chaîne Facultatif : doit également spécifier un paramètre de valeur. Nom du champ dans lequel rechercher la valeur spécifiée dans le paramètre de valeur.
    Remarque :
    Cette méthode est généralement exécutée sans arguments, mais vous pouvez spécifier une paire nom-valeur pour filtrer les enregistrements contenant les valeurs spécifiées. Si les paramètres sont spécifiés, la condition « nom=valeur » est ajoutée à la requête.
    valide Chaîne Facultatif : doit également spécifier un paramètre de champ. Valeur à rechercher dans le paramètre de champ spécifié.
    Tableau 159. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment interroger la table Commentaires de la base de connaissances [kb_feedback] et répertorier les articles de la base de connaissances avec des commentaires incluant Excel.

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

    Sortie :

    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?

    Équivalent dans le champ d’application

    Pour utiliser la méthode _query() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : _query().

    GlideRecord : queryNoDomain(champ de chaîne, valeur de chaîne)

    Utilisé dans les instances séparées par domaine. Semblable à query(), exécute la requête sur la table en fonction des filtres spécifiés par addQuery() et addEncodedQuery(), mais ignore les domaines.

    Cette méthode interroge la table GlideRecord ainsi que toutes les références de la table. Pour plus d’informations, consultez Interrogation de tables dans un script.

    Tableau 160. Paramètres
    Nom Type Description
    nom Chaîne Facultatif : doit également spécifier un paramètre de valeur. Nom du champ dans lequel rechercher la valeur spécifiée dans le paramètre de valeur.
    Remarque :
    Cette méthode est généralement exécutée sans arguments, mais vous pouvez spécifier une paire nom-valeur pour filtrer les enregistrements contenant les valeurs spécifiées. Si les paramètres sont spécifiés, la condition « nom=valeur » est ajoutée à la requête.
    valide Chaîne Facultatif : doit également spécifier un paramètre de champ. Valeur à rechercher dans le paramètre de champ spécifié.
    Tableau 161. Renvoie
    Type Description
    nul

    Cet exemple montre comment interroger la table des incidents pour tous les domaines.

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

    GlideRecord : restoreLocation()

    Définit l’enregistrement actuel comme étant l’enregistrement enregistré avec saveLocation(). Si saveLocation() n’a pas été appelé, l’enregistrement actuel est défini sur le premier enregistrement de GlideRecord.

    Tableau 162. Paramètres
    Nom Type Description
    Néant
    Tableau 163. Renvoie
    Type Description
    nul

    Cet exemple montre comment enregistrer l’emplacement d’enregistrement actuel, passer à l’enregistrement suivant, puis revenir à l’emplacement enregistré.

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

    Enregistre le numéro de ligne actuel afin que vous puissiez revenir à cet emplacement à l’aide de la méthode restoreLocation( ).

    Tableau 164. Paramètres
    Nom Type Description
    Néant
    Tableau 165. Renvoie
    Type Description
    nul

    Cet exemple montre comment enregistrer l’emplacement d’enregistrement actuel, passer à l’enregistrement suivant, puis revenir à l’emplacement enregistré.

    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(booléen b)

    Définit un marqueur pour indiquer si la prochaine action de base de données (insérer, mettre à jour, supprimer) doit être abandonnée.

    Utilisez une règle métier onBefore pour empêcher l’action de base de données. La règle métier continue de s’exécuter après l’appel de setAbortAction(). L’appel de setAbortAction() n’empêche pas les règles métier suivantes de s’exécuter. L’appel de cette méthode empêche uniquement l’action de base de données de se produire.

    Tableau 166. Paramètres
    Nom Type Description
    b Booléen Vrai pour abandonner l’action suivante ou faux pour autoriser l’action suivante.
    Tableau 167. Renvoie
    Type Description
    nul
    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);
      }
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode setAbortAction() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : setAbortAction().

    GlideRecord : setDisplayValue (nom de chaîne, valeur d’objet)

    Définit un champ spécifié, ou un attribut dans un magasin d’attributs dynamiques, sur une valeur d’affichage spécifiée.

    Pour un champ de référence, il s’agit de la valeur d’affichage de la table. Pour une date/heure, il s’agit de l’heure dans le fuseau horaire actuel de l’appelant.

    Tableau 168. Paramètres
    Nom Type Description
    nom Chaîne Nom du champ dans lequel la valeur doit être définie.

    Pour définir un attribut dans un magasin d’attributs dynamique, indiquez le chemin d’accès de l’attribut.

    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    valide Objet Valeur à définir dans l’attribut spécifié.
    Remarque :
    Pour les attributs dynamiques, seuls les types de données suivants sont pris en charge :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 169. Renvoie
    Type Description
    nul

    L’exemple de code suivant montre comment définir une valeur d’affichage dans un enregistrement, puis mettre à jour l’enregistrement.

    var now_GR = new GlideRecord('incident');
    now_GR.get('46f09e75a9fe198100f4ffd8d366d17b');
    now_GR.setDisplayValue('opened_at','2011-02-13 4:30:00');
    now_GR.update();

    L’exemple de code suivant montre comment définir une valeur d’affichage dans un magasin d’attributs dynamiques.

    var gr_AppTab = new GlideRecord('application_table'); 
    gr_AppTab.setValue('dyn_att_field->attr', 42); 
    gr_AppTab.setDisplayValue('dyn_att_field->attr2, true);
    gr_AppTab.update();
    gs.info('Attr value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->attr);
    gs.info('Attr2 value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->attr2);

    GlideRecord : setDynamicAttributeValue(String fullPath, valeur d’objet)

    Définit la valeur de l’attribut dynamique situé sur un chemin d’accès spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 170. Paramètres
    Nom Type Description
    fullPath Chaîne Chemin d’accès à utiliser pour localiser l’attribut dynamique souhaité.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    valide Objet Valeur à laquelle définir l’attribut dynamique spécifié.
    La valeur transmise doit être de l’un des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 171. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’attribut dynamique a été mis à jour.
    Valeurs possibles :
    • vrai : l’attribut dynamique a été mis à jour avec succès.
    • faux : une erreur s’est produite. L’attribut dynamique n’a pas été mis à jour. Vérifiez que le fullPath paramètre contient un chemin d’accès valide à l’attribut souhaité.

    L’exemple de code suivant montre comment appeler cette méthode.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->color","black");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->make","Honda");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->model","CRV");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->luxury",false);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cost",20000);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->avg_mpg",28.4);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->date_purchased", new GlideDateTime());
    gr_Inc.setDynamicAttributeValue("u_attributes->total_miles", 120000.12345);
    gr_Inc.insert();

    GlideRecord : setDynamicAttributeValue (chaîne dynamicAttributeField, chaîne attrPath, valeur d’objet)

    Définit la valeur de l’attribut dynamique situé dans un champ spécifié du GlideRecord actuel et un chemin d’accès d’attribut spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 172. Paramètres
    Nom Type Description
    dynamicAttributeField Chaîne Nom du champ dans la table qui contient l’attribut dynamique.
    attributePath Chaîne Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.

    Format : « attr_name »

    attr_name : nom de l’attribut dynamique.

    Table : dans le champ Attribut de la table Attribut dynamique [dynamic_attribute].

    valide Objet Valeur à laquelle définir l’attribut dynamique spécifié.
    La valeur transmise doit être de l’un des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 173. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’attribut dynamique a été mis à jour.
    Valeurs possibles :
    • vrai : l’attribut dynamique a été mis à jour avec succès.
    • faux : une erreur s’est produite. L’attribut dynamique n’a pas été mis à jour. Vérifiez que les dynamicAttributeField paramètres et attrPath contiennent des données valides.

    L’exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->time_of_purchase' incident INC0009009 to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();
    
    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store', 'time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'time_of_purchase'));

    Sortie :

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

    GlideRecord : setDynamicAttributeDisplayValue (String fullPath, valeur d’objet)

    Définit la valeur d’affichage de l’attribut dynamique situé sur un chemin d’accès spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 174. Paramètres
    Nom Type Description
    fullPath Chaîne Chemin d’accès à utiliser pour localiser l’attribut dynamique dont vous souhaitez mettre à jour la valeur d’affichage.
    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    valide Objet Valeur d’affichage sur laquelle définir l’attribut dynamique spécifié.
    La valeur transmise doit être de l’un des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 175. Renvoie
    Type Description
    Booléen Marqueur indiquant si la valeur d’affichage de l’attribut dynamique a été mise à jour.
    Valeurs possibles :
    • vrai : la valeur d’affichage de l’attribut dynamique a été mise à jour avec succès.
    • faux : une erreur s’est produite. La valeur d’affichage de l’attribut dynamique n’a pas été mise à jour. Vérifiez que le fullPath paramètre contient un chemin d’accès valide à l’attribut souhaité.

    L’exemple de code suivant montre comment appeler cette méthode.

    var grProdTab = new GlideRecord('products_table');
    grProdTab.query();
    grProdTab.next();
    var val = grProdTab.setDynamicAttributeDisplayValue('product_details->date_purchased', '2023-03-31 08:54:26');

    GlideRecord : setDynamicAttributeDisplayValue (chaîne dynamicAttributeField, chaîne attrPath, valeur d’objet)

    Définit la valeur d’affichage de l’attribut dynamique situé dans un champ spécifié du GlideRecord actuel et un chemin d’accès d’attribut spécifié.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 176. Paramètres
    Nom Type Description
    dynamicAttributeField Chaîne Nom du champ dans la table qui contient l’attribut dynamique.
    attrPath Chaîne Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé.

    Format : « attr_name »

    attr_name : nom de l’attribut dynamique.

    Table : dans le champ Attribut de la table Attribut dynamique [dynamic_attribute].

    valide Objet Valeur d’affichage sur laquelle définir l’attribut dynamique spécifié.
    La valeur transmise doit être de l’un des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 177. Renvoie
    Type Description
    Booléen Marqueur indiquant si la valeur d’affichage de l’attribut dynamique a été mise à jour.
    Valeurs possibles :
    • vrai : la valeur d’affichage de l’attribut dynamique a été mise à jour avec succès.
    • faux : une erreur s’est produite. La valeur d’affichage de l’attribut dynamique n’a pas été mise à jour. Vérifiez que les dynamicAttributeField paramètres et attrPath contiennent des données valides.

    L’exemple de code suivant montre comment appeler cette méthode.

    var grProdTab = new GlideRecord('products_table');
    grProdTab.query();
    grProdTab.next();
    var val = grProdTab.setDynamicAttributeDisplayValue('product_details', 'date_purchased', '2023-03-31 08:54:26');

    GlideRecord : setDynamicAttributeValues(String dynamicAttributeField, valeurs GlideDynamicAttributeStore)

    Définit une ou plusieurs valeurs d’attribut dynamique avec les valeurs spécifiées dans l’objet GlideDynamicAttributeStore transmis.

    Cette méthode ne met à jour que les attributs et les valeurs transmis en tant qu’arguments. Les attributs et les valeurs de GlideRecord qui ne sont pas spécifiés ne sont pas affectés par cet appel. Tous les attributs ou valeurs non valides sont ignorés. Consultez les messages du journal pour rechercher d’éventuelles informations sur les erreurs.

    Les attributs dynamiques ont un type de données défini et un sys_id. Pour plus de détails sur les attributs dynamiques, voir Schéma dynamique.

    Tableau 178. Paramètres
    Nom Type Description
    dynamicAttributeField Chaîne Nom du champ dans la table actuelle qui contient le schéma dynamique.
    valeurs Magasin GlideDynamicAttributeStore Objet GlideDynamicAttributeStore contenant les attributs dynamiques à mettre à jour.
    Les valeurs renseignées dans l’objet doivent être des types de données suivants :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne
    Tableau 179. Renvoie
    Type Description
    Néant

    L’exemple de code suivant montre comment appeler cette méthode.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('attribute1', 'Apple');
    das.setDynamicAttributeValue('attribute2', 1234);
    
    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    gr_Inc.next();
    gr_Inc.setDynamicAttributeValues(das);

    GlideRecord : setForceUpdate(force booléenne)

    Met à jour l’enregistrement même si les champs n’ont pas changé.

    Tableau 180. Paramètres
    Nom Type Description
    Forcer Booléen Vrai pour mettre à jour même si les champs n’ont pas changé, sinon faux.
    Tableau 181. Renvoie
    Type Description
    nul

    Cet exemple montre comment forcer la mise à jour d’un enregistrement dans la table itfm_cost_model même sans modifications.

    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(limite de nombre)

    Définit le nombre maximal d’enregistrements à renvoyer dans le GlideRecord à partir d’une requête.

    Utilisation de setLimit() avec chooseWindow()
    La méthode setLimit() appelle implicitement la méthode chooseWindow() et peut entraîner des résultats inattendus lorsqu’elle est utilisée avec chooseWindow() dans une requête.
    • Si la méthode chooseWindow() est appelée en premier, sa fenêtre d’enregistrement est écrasée par la méthode setLimit( ).
      L’utilisation des lignes suivantes dans une requête renvoie 100 enregistrements commençant à la ligne 1 :
      grIncident.chooseWindow(20,30);
      grIncident.setLimit(100);
    • Si la méthode setLimit() est appelée en premier, la fenêtre définie par chooseWindow() est utilisée et la limite est écrasée.
      L’utilisation des lignes suivantes dans une requête renvoie 10 enregistrements commençant à la ligne 21 :
      grIncident.setLimit(5);
      grIncident.chooseWindow(20,30);
      Remarque :
      L’exécution de query() avec la méthode chooseWindow() déclenche une requête COUNT(*), ce qui peut entraîner des performances lentes sur les tables avec un grand nombre d’enregistrements. Vous pouvez utiliser setLimit() avant chooseWindow() pour ignorer l’exécution de la requête COUNT(*), mais le même avantage en termes de performances est réalisable en utilisant setNoCount().
    Voir aussi :
    Tableau 182. Paramètres
    Nom Type Description
    limite Numéro Limite d’enregistrements à extraire.
    Tableau 183. Renvoie
    Type Description
    nul

    Cet exemple définit le nombre d’enregistrements renvoyés dans la requête sur un maximum de dix.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode setLimit() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : setLimit().

    GlideRecord : setLocation(Nombre, numéro, ligne)

    Définit l’emplacement de la ligne actuelle sur la valeur spécifiée.

    Tableau 184. Paramètres
    Nom Type Description
    Numéro de ligne Numéro Numéro de ligne à définir comme ligne actuelle.
    Tableau 185. Renvoie
    Type Description
    nul

    Cet exemple montre comment définir la position de l’enregistrement dans la table Incident

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

    Génère un nouveau GUID et le définit comme ID unique (sys_id) de l’enregistrement actuel.

    Cette fonction s’applique uniquement aux nouveaux enregistrements. Vous ne pouvez pas modifier le GUID d’un enregistrement existant.

    Tableau 186. Paramètres
    Nom Type Description
    Néant
    Tableau 187. Renvoie
    Type Description
    Chaîne Sys_id de l’enregistrement actuel.

    Cet exemple crée un nouvel enregistrement de tâche et stocke l’ID dans la table task_rel_task.

    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 (GUID de chaîne)

    Génère un nouveau GUID et le définit comme ID unique de l’enregistrement actuel, lors de l’insertion d’un nouvel enregistrement.

    Tableau 188. Paramètres
    Nom Type Description
    GUID Chaîne Valeur du nouveau GUID.
    Tableau 189. Renvoie
    Type Description
    nul

    Cet exemple génère un nouveau GUID et le définit comme ID unique pour l’enregistrement de cmdb_software_instance nouvellement créé.

    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++;
      }
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode setNewGuidValue() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : setNewGuidValue().

    GlideRecord : setNoCount()

    Empêche une requête GlideRecord d’exécuter une requête COUNT(*).

    L’exécution de query() avec certaines méthodes déclenche une requête COUNT(*), telle que les méthodes chooseWindow() et getRowCount(). La requête COUNT(*) peut entraîner une lenteur des performances sur les tables d’un million d’enregistrements ou plus. Pour plus d’informations, consultez l’article Amélioration des performances - Supprimer le nombre de paginations [KB0817996] dans la base de connaissances Now Support.
    Remarque :
    La méthode setLimit() arrête également un COUNT(*). L’utilisation de setNoCount() n’est pas nécessaire si la méthode setLimit() est incluse dans la requête.
    Tableau 190. Paramètres
    Nom Type Description
    Néant
    Tableau 191. Renvoie
    Type Description
    nul

    L’exemple de code suivant montre comment utiliser setNoCount() pour ignorer la requête COUNT(*) sur un jeu de requêtes fenêtré à l’aide de la méthode chooseWindow( ).

    var  grIncident = new GlideRecord('incident');
    
    grIncident.chooseWindow(6915, 6920, true);
    grIncident.setNoCount();
    grIncident.query();
    
    while (grIncident.next()) { // Iterate through the returned records
        gs.info('Incident Number: ' + grIncident.number + ', Short Description: ' + grIncident.short_description);
    };

    Sortie :

    Incident Number: INC0006811, Short Description: Request an account to be created for Fidelity 401(k) Plans
    Incident Number: INC0006918, Short Description: Please grant me additional roles in Oracle Fin Collections
    Incident Number: INC0006812, Short Description: Taxware Value-added Tax crashes when I try to launch it
    Incident Number: INC0006919, Short Description: Unable to Access SuccessFactors Learning
    Incident Number: INC0010004, Short Description: Incident for assessment not generating

    Équivalent dans le champ d’application

    Pour utiliser la méthode setNoCount() dans une application de portée, utilisez la méthode de portée correspondante : setNoCount().

    GlideRecord : setQueryReferences(booléen queryReferences)

    Active ou désactive l’utilisation du nom d’affichage du champ de référence lors de l’interrogation d’un champ de référence.

    Tableau 192. Paramètres
    Nom Type Description
    Références de requête Booléen Marqueur indiquant l’heure à laquelle les données doivent être générées.
    Valeurs valides :
    • vrai : générer une chaîne de noms d’affichage.
    • false : générer une chaîne de sys_ids.
    Tableau 193. Renvoie
    Type Description
    nul
    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(booléen e)

    Désactive ou active l’exécution de moteurs (règles d’approbation/règles d’affectation).

    Avertissement :
    La désactivation de l’exécution des moteurs peut avoir un impact significatif sur votre ServiceNow® instance et son fonctionnement. Assurez-vous de tester soigneusement ce changement avant de le déployer en production.
    Tableau 194. Paramètres
    Nom Type Description
    e Booléen Marqueur indiquant s’il faut activer ou désactiver l’exécution de moteurs.
    Valeurs valides :
    • vrai : activer les moteurs
    • false : désactiver les moteurs
    Tableau 195. Renvoie
    Type Description
    nul

    Cet exemple montre comment désactiver les moteurs et les règles métier avant d’exécuter une requête.

    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 (nom de chaîne, valeur d’objet)

    Définit le champ spécifié, ou un attribut d’un magasin d’attributs dynamiques, sur une valeur spécifiée.

    Normalement, un script ferait une affectation directe, par exemple now_GR.catégorie = valeur. Toutefois, si le nom de l’élément est une variable dans un script, vous pouvez utiliser now_GR.setValue(elementName, value). Lors de la définition d’une valeur, assurez-vous que le type de données du champ correspond au type de données de la valeur que vous entrez.

    Si le paramètre value est nul, l’enregistrement n’est pas mis à jour et aucune erreur n’est générée.
    Remarque :
    Cette méthode ne peut pas être utilisée sur les champs de journal. Utilisez plutôt GlideElement.setJournalEntry().
    Remarque :
    Si le module d’extension Chiffrement de champ Enterprise est activé et que l’instance a accès à la clé, cette méthode peut insérer des données chiffrées dans des champs chiffrés. Si l’instance n’a pas accès à la clé, cette méthode renvoie une erreur. Pour plus d’informations, consultez Chiffrement de la plateforme.
    Pas pour l’authentification avec les champs password2
    La méthode setValue() transmet les données password2 sous forme de texte clair, ce qui entraîne une erreur concernant l’attente de données chiffrées. De plus, l’utilisation de la méthode setValue() pour les champs password2 expose des données qui doivent être chiffrées.

    Pour l’authentification password2, utilisez plutôt la méthode setDisplayValue().

    Tableau 196. Paramètres
    Nom Type Description
    nom Chaîne Nom du champ à définir.

    Pour définir des valeurs d’attribut dans un schéma dynamique, utilisez le chemin d’accès à un attribut dans un magasin d’attributs dynamique.

    Format du chemin d’accès de l’attribut : dyn_att_field->attr_name
    • dyn_att_field : nom d’un champ de magasin d’attributs dynamiques dans la table.
    • attr_name : nom de l’attribut dynamique.

      Table : Attribut dynamique [dynamic_attribute]

    Voir aussi Dynamic Schema.
    valide Objet Valeur à définir dans le champ spécifié.
    Remarque :
    Pour un attribut dynamique, seuls les types de données suivants sont pris en charge :
    • Booléen (vrai/faux)
    • Décimal
    • Nombre à virgule flottante
    • Date GlideDate
    • GlideDateTime
    • Entier
    • Chaîne

    Pour spécifier un champ de catégorie dynamique dans un schéma dynamique, utilisez une clé de référence avec l’espace de noms et le nom du champ de catégorie au lieu d’une sys_id. Fournissez la colonne de catégorie comme paramètre de nom, par exemple, grExample.setValue('cat_column_name', 'namespace_name/cat_name'). Pour plus d'informations, consultez Create a dynamic namespace.

    Tableau 197. Renvoie
    Type Description
    Néant

    Cet exemple montre comment définir la valeur du champ d’état dans la table planned_task.

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

    Cet exemple montre comment utiliser cette méthode avec un schéma dynamique. La première utilisation définit la valeur d’une catégorie dynamique à l’aide d’une clé de référence pour définir la valeur. La seconde utilise un chemin d’attribut pour définir la valeur d’un attribut dynamique appelé total_miles.

    var used_car = new GlideRecord('u_product');
    
    // Using setValue() to set the dynamic category column to Car
    // u_product/u_attributes is the namespace and u_car is the category
    used_car.setValue('u_attributes_category', 'u_product/u_attributes/u_car');
    
    // Using setDynamicAttributeValue() to set the dynamic attribute value
    used_car.setDynamicAttributeValue("u_attributes->color","green");
    used_car.setDynamicAttributeValue("u_attributes->make","Toyota");
    used_car.setDynamicAttributeValue("u_attributes->model","Rav4");
    used_car.setDynamicAttributeValue("u_attributes->luxury",false);
    used_car.setDynamicAttributeValue("u_attributes->cost",12500);
    used_car.setDynamicAttributeValue("u_attributes->avg_mpg",24.8);
    used_car.setDynamicAttributeValue("u_attributes->date_purchased", new GlideDateTime());
    
    // Using setValue() to set the dynamic attribute value
    used_car.setValue("u_attributes->total_miles", 120000.12345);
    
    used_car.insert();

    Équivalent dans le champ d’application

    Pour utiliser la méthode setValue() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : setValue().

    GlideRecord : setWorkflow(booléen activé)

    Active ou désactive l’exécution de règles métier qui pourraient normalement être déclenchées par des actions ultérieures.

    Remarque :
    La méthode setWorkflow() est ignorée lors de l’utilisation ultérieure des méthodes deleteProblem() ou deleteMultiple() pour supprimer en cascade.
    Avertissement :
    La désactivation de l’exécution des règles métier peut avoir un impact significatif sur votre ServiceNow® instance et son fonctionnement. Assurez-vous de tester soigneusement ce changement avant de le déployer en production.
    Tableau 198. Paramètres
    Nom Type Description
    activer Booléen Marqueur indiquant s’il faut activer ou désactiver l’exécution des règles métier, des moteurs de script et de l’audit.
    Valeurs valides :
    • vrai : active l’exécution de règles métier, de moteurs de script ou d’audits.
    • faux : désactive l’exécution de règles métier, de moteurs de script ou d’audits.

    Par défaut : true

    Tableau 199. Renvoie
    Type Description
    Néant
    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');
          }
        }
      }
    }

    Équivalent dans le champ d’application

    Pour utiliser la méthode setWorkflow() dans une application incluse dans le champ d’application, utilisez la méthode incluse dans le champ d’application correspondante : setWorkflow().

    GlideRecord : update(Motif de l’objet)

    Met à jour le GlideRecord avec tous les changements qui ont été apportés. Si l’enregistrement n’existe pas, il est inséré.

    Tableau 200. Paramètres
    Nom Type Description
    motif Objet Facultatif. Motif de la mise à jour. Le motif apparaît dans l’enregistrement d’audit.
    Tableau 201. Renvoie
    Type Description
    Chaîne La sys_id de l’enregistrement nouveau ou mis à jour. Renvoie null si la mise à jour échoue.

    Cet exemple met à jour un enregistrement de la table task_ci.

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

    Équivalent dans le champ d’application

    Pour utiliser la méthode update() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : update().

    GlideRecord : updateMultiple()

    Met à jour chaque GlideRecord dans une requête indiquée avec un ensemble spécifié de changements.

    Pour plus d’informations sur l’ajout d’écritures au journal, consultez la méthode setJournalEntry().

    La glide.db.forced.chunk.threshold propriété système définit le seuil au-dessus duquel force la suppression et la mise à jour d’enregistrements de blocs. Le découpage permet d’éviter que les suppressions de clés non primaires sur des tables volumineuses ne provoquent des problèmes de réplication. Pour plus d'informations, consultez Available system properties.

    Remarque :
    Pour garantir les résultats attendus, utilisez la méthode setValue() au lieu d’affectations directes. En d’autres termes, utilisez gr_Now.setValue('<field_name>', '4')) ; au lieu de gr_Now,<field_name> = 4.
    Remarque :
    N’utilisez pas cette méthode avec les méthodes chooseWindow() ou setLimit() lorsque vous travaillez avec des tables volumineuses.

    Cette méthode définit de nouvelles valeurs et n’efface pas les valeurs existantes. Pour effacer une valeur existante, utilisez la méthode setValue() et définissez le champ sur « NULL ». Pour plus d'informations, consultez Définition d’une variable GlideRecord sur « NULL ».

    Tableau 202. Paramètres
    Nom Type Description
    Néant
    Tableau 203. Renvoie
    Type Description
    Néant

    Cet exemple montre comment mettre à jour l’état de tous les incidents actifs sur 4 : « En attente d’infos utilisateur ».

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active', true);
    now_GR.setValue('state',  4);
    now_GR.updateMultiple();
    Cet exemple montre comment effacer les valeurs existantes du champ Description pour les incidents de priorité 1.
    var test = new GlideRecord('incident');
    test.addEncodedQuery('priority=1');
    test.query();
     
    test.setValue('description','NULL');
    test.updateMultiple();

    Équivalent dans le champ d’application

    Pour utiliser la méthode updateMultiple() dans une application incluse dans le champ d’application, utilisez la méthode correspondante : updateMultiple().

    GlideRecord : updateWithReferences(motif de l’objet)

    Met à jour un enregistrement et insère ou met à jour tout enregistrement connexe avec les informations fournies.

    Tableau 204. Paramètres
    Nom Type Description
    motif Objet Motif des mises à jour. Le motif est affiché dans l’enregistrement d’audit.
    Tableau 205. Renvoie
    Type Description
    Chaîne La sys_id de l’enregistrement en cours de mise à jour.

    Dans le cas du traitement d’un incident où l’ID de l’appelant est défini pour référencer sys_user enregistrement « Jean Dupont », le code suivant met à jour l’enregistrement utilisateur de Jean Dupont. Si vous traitez un incident pour lequel aucun ID d’appelant n’est spécifié, le code suivant crée un nouvel enregistrement de sys_user avec les informations fournies (first_name, last_name) et définit la valeur de l’ID de l’appelant sur l’enregistrement de sys_user nouvellement créé.

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