---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideRecord - Global

# GlideRecord - Global {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 86 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 les 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 des ordres.

Pour utiliser cette API afin de 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 en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).

Consultez l'article [GlideRecord](https://developer.servicenow.com/dev.do#!/learn/courses/utah/app_store_learnv2_scripting_utah_scripting_in_servicenow/app_store_learnv2_scripting_utah_server_side_scripting/app_store_learnv2_scripting_utah_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 remplit les mêmes fonctions que GlideRecord et applique également les ACL, consultez les [API GlideServer](https://www.servicenow.com/docs/access?context=p_GlideServerAPIs&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US).

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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).

## Récupérer les valeurs à partir des enregistrements {#c_GlideRecordAPI__section_t45_vmd_npb}

Dans la plupart des cas, n'utilisez pas de remontée pas à pas pour obtenir les valeurs d'un enregistrement. La remontée pas à pas récupère l'ensemble de l'objet au lieu de la valeur du champ. La récupération de l'objet nécessite plus d'espace 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'intégralité de l'objet, vous pouvez utiliser l'une des méthodes suivantes pour copier les valeurs de champ :

* [getValue()](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-getValue_String "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 dynamique.")
* [getDisplayValue()](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-getDisplayValue "Récupère la valeur d’affichage de l’enregistrement actuel ou la valeur d’affichage d’un attribut dans un magasin d’attributs dynamique.")

{#c_GlideRecordAPI__gr-api-dot-walk-global-rec-lnx}  
S'il est nécessaire de remonter pas à pas dans un objet GlideElement, utilisez la méthode toString() pour récupérer les valeurs. Par exemple, vous aurez peut-être besoin que le gestionnaire de l'appelant actuel sys_id 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 {#c_GlideRecordAPI__section_qss_t53_1cc}

Il existe des méthodes dans cette API qui ont les mêmes fonctionnalités que les méthodes de schéma dynamique dans l'API [GlideDynamicAttributeStore : global](https://servicenow-prod.fluidtopics.net/BBuuWEHqgBnnfFVKDbxaIw#GlideDynamicAttStoreAPI "L’API GlideDynamicAttributeStore permet d’accéder à un nouveau type de données de magasin d’attributs dynamiques intégré, similaire à d’autres types de données tels que chaîne, date ou date/heure.") . Utilisez les méthodes d'attributs dynamiques 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 créer un objet GlideDynamicAttributeStore avec les attributs souhaités, puis copier cet objet dans plusieurs GlideRecords à l'aide des différentes méthodes setDynamicAttributeValues().
Voir aussi :

* [Agrégat Glide](https://servicenow-prod.fluidtopics.net/uSSFwxxiABXOqv3vsSQCQw#c_GlideAggregateAPI "L’API GlideAggregate permet de créer des requêtes d’agrégation de base de données.")
* [GlideElement (en anglais seulement)](https://servicenow-prod.fluidtopics.net/_Np8wuXGQIwxB8xMzo8~qA#c_GlideElementAPI "L’API GlideElement fournit un certain nombre de méthodes de script pratiques pour traiter les champs et leurs valeurs. Les méthodes GlideElement sont disponibles pour les champs de l’enregistrement Glide actuel.")
* [GlideQuery](https://servicenow-prod.fluidtopics.net/W3UzGs6pPMoNChHE_ZtXQA#GlideQueryGlobalAPI "Le script include GlideQuery est une alternative à l’API GlideRecord pour effectuer des opérations CRUD sur les données d’enregistrement à partir de scripts côté serveur.")
{#c_GlideRecordAPI__ul_mky_nkd_npb}

## GlideRecord : GlideRecord(String tableName) {#ariaid-title2}

Crée une instance de la classe GlideRecord pour la table spécifiée.
{#r_GlideRecord-GlideRecord_S__table_v1n_btj_3v__entry__3}

| Nom | Type | Description |
|-|-|-|
| tableName | Chaîne | Table à utiliser. |
[Tableau 1. Paramètres]

{#r_GlideRecord-GlideRecord_S__table_v1n_btj_3v}  

    var now_GR = new GlideRecord('incident');

## GlideRecord : addActiveQuery() {#ariaid-title3}

Ajoute un filtre pour renvoyer les enregistrements actifs.
{#r_GlideRecord-AddActiveQuery__table_bk4_zkp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 2. Paramètres]

{#r_GlideRecord-AddActiveQuery__table_bk4_zkp_dt} {#r_GlideRecord-AddActiveQuery__table_ck4_zkp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Filtrez pour renvoyer les enregistrements actifs. |
[Tableau 3. Renvoie]

{#r_GlideRecord-AddActiveQuery__table_ck4_zkp_dt}  

    var inc = new GlideRecord('incident');
    inc.addActiveQuery();
    inc.query();

### Équivalent dans le champ d'application {#r_GlideRecord-AddActiveQuery__section_t1r_lbs_mcb}

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().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-addActiveQuery "Ajoute un filtre pour renvoyer les enregistrements actifs.")

## GlideRecord : addDomainQuery(Object glideRecord) {#ariaid-title4}

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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).

Cette fonction nécessite le module d'extension Domain Support - Domain Extensions Installer (com.glide.domain.msp_extensions.installer).
{#r_GlideRecord-AddDomainQuery_Object__table_ukh_fmp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| glideRecord | Objet | GlideRecord à partir duquel obtenir le domaine. |
[Tableau 4. Paramètres]

{#r_GlideRecord-AddDomainQuery_Object__table_ukh_fmp_dt} {#r_GlideRecord-AddDomainQuery_Object__table_vkh_fmp_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 5. Renvoie]

{#r_GlideRecord-AddDomainQuery_Object__table_vkh_fmp_dt}  

    //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 {#r_GlideRecord-AddDomainQuery_Object__section_bct_nbs_mcb}

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

## GlideRecord : addEncodedQuery(Requête de chaîne, booléen enforceFieldACL) {#ariaid-title5}

Ajoute une requête codée à d'autres requêtes qui peuvent avoir été 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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-AddEncodedQuery_String__table_j3p_mlp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| requête | Chaîne | [Chaîne de requête codée](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US). |
| enforceFieldACL | Booléen | Facultatif. Marqueur indiquant s'il faut appliquer les règles ACL (Liste de contrôle d'accès) de champ. Valeurs valides : * vrai : Appliquer les ACL de champ. * faux : ne pas appliquer les ACL de champ. {#r_GlideRecord-AddEncodedQuery_String__ul_ml3_mpk_wbc} Valeur par défaut : false |
[Tableau 6. Paramètres]

{#r_GlideRecord-AddEncodedQuery_String__table_j3p_mlp_dt} {#r_GlideRecord-AddEncodedQuery_String__table_k3p_mlp_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 7. Renvoie]

{#r_GlideRecord-AddEncodedQuery_String__table_k3p_mlp_dt}  

    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 {#r_GlideRecord-AddEncodedQuery_String__section_un1_qbs_mcb}

Pour utiliser la méthode addEncodedQuery() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [addEncodedQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddEncodedQuery_String "Ajoute une requête codée à d’autres requêtes qui peuvent avoir été définies.")

## GlideRecord : addExtraField(String dotWalkedField) {#ariaid-title6}

Interroge un ou plusieurs champs de remontée pas à pas à partir d'un formulaire ou d'un script dans une seule demande.
La méthode addExtraField() vous permet d'interroger des champs de type \<\< remontée pas à pas \>\> dans une seule requête de base de données, plutôt que d'effectuer plusieurs requêtes par élément de remontée pas à pas dans un formulaire ou un script (ce qui nécessite plusieurs allers-retours vers la base de données).
{#GlideRecord-addExtraField_S__table_ctk_qcx_hzb__entry__3}

| Nom | Type | Description |
|-|-|-|
| dotWalkedField (en anglais seulement) | Chaîne | Nom du champ de remontée pas à pas. Les niveaux des noms de champs sont séparés par des points (points). Par exemple, entrez la valeur `Appelant.Société` si vous souhaitez interroger l'icône 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 points. |
[Tableau 8. Paramètres]

{#GlideRecord-addExtraField_S__table_ctk_qcx_hzb} {#GlideRecord-addExtraField_S__table_dtk_qcx_hzb__entry__2}

| Type | Description |
|-|-|
| Aucun | Remarque : La méthode addExtraField() n'a pas d'impact sur les résultats de sortie ; Le résultat est toujours le même, que vous utilisiez ou non cette méthode dans votre script. |
[Tableau 9. Renvoie]

{#GlideRecord-addExtraField_S__table_dtk_qcx_hzb}  
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 sélection de champs dans une ServiceNow® 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 identique à `gs.print(gr.cmdb_ci.location.contact.name)` sans utiliser addExtraField(). La méthode addExtraField() optimise l'interrogation des champs de type \<\< remontée pas à pas \>\>. Exemple de sortie :

    Abel Tuter

## GlideRecord : addFunction(fonction d'objet) {#ariaid-title7}

Applique un objet GlideDBFunctionBuilder prédéfini à un enregistrement.
Utilisez la classe délimitée GlideDBFunctionBuilder pour définir une fonction. Une fois la fonction définie, utilisez la méthode addFunction(Object function) pour l'appliquer à un enregistrement.
{#r_GlideRecord-addFunction_Object__table_mkh_dnk_kbb__entry__3}

| Nom | Type | Description |
|-|-|-|
| function | Objet | Objet GlideDBFunctionBuilder ou GlideDBCaseStatementBuilder qui définit une opération SQL. |
[Tableau 10. Paramètres]

{#r_GlideRecord-addFunction_Object__table_mkh_dnk_kbb} {#r_GlideRecord-addFunction_Object__table_nkh_dnk_kbb__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 11. Renvoie]

{#r_GlideRecord-addFunction_Object__table_nkh_dnk_kbb}  

    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() {#ariaid-title8}

Ajoute un filtre pour renvoyer les enregistrements inactifs. Les enregistrements inactifs ont le marqueur actif défini sur faux.
{#r_GlideRecord-AddInactiveQuery__table_jhb_fnp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 12. Paramètres]

{#r_GlideRecord-AddInactiveQuery__table_jhb_fnp_dt} {#r_GlideRecord-AddInactiveQuery__table_khb_fnp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Enregistrements où le marqueur actif est faux. |
[Tableau 13. Renvoie]

{#r_GlideRecord-AddInactiveQuery__table_khb_fnp_dt}  

    var inc = new GlideRecord('incident');
    inc.addInactiveQuery();
    inc.query();

### Équivalent dans le champ d'application {#r_GlideRecord-AddInactiveQuery__section_rx1_sbs_mcb}

Dans les applications incluses dans le périmètre, utilisez la méthode incluse dans le périmètre [addQuery(\<\< active \>\>,"false \>\>)](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddQuery_String_Object "Créez une requête de recherche et renvoyez les lignes qui correspondent à la demande.").

## GlideRecord : addJoinQuery(Table de chaînes) {#ariaid-title9}

Ajoute un filtre pour renvoyer les enregistrements basés sur 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 ; au lieu de cela, addJoinQuery() ajoute 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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-AddJoinQuery_String__table_lvg_wnp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| table | Chaîne | Nom de la table |
[Tableau 14. Paramètres]

{#r_GlideRecord-AddJoinQuery_String__table_lvg_wnp_dt} {#r_GlideRecord-AddJoinQuery_String__table_mvg_wnp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Enregistrements dans lesquels les relations correspondent. |
[Tableau 15. Renvoie]

{#r_GlideRecord-AddJoinQuery_String__table_mvg_wnp_dt}  
Rechercher les problèmes qui ont un incident joint. Cet exemple renvoie les problèmes qui ont des incidents associés. Toutefois, il n'extraira pas de valeurs des incidents qui sont renvoyés dans le cadre de la requête.

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

Rechercher 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 {#r_GlideRecord-AddJoinQuery_String__section_l1h_vbs_mcb}

Pour utiliser la méthode addJoinQuery() dans une application incluse dans le périmètre, utilisez la méthode correspondante incluse dans le périmètre : [addJoinQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddJoinQuery_String_Object_Object "Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table associée au GlideRecord actuel.")

## GlideRecord : addJoinQuery(String table, String primaryField) {#ariaid-title10}

Ajoute un filtre pour renvoyer les enregistrements basés sur 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 ; au lieu de cela, addJoinQuery() ajoute 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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-AddJoinQuery_String_String__table_es5_y4p_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| table | Chaîne | Nom de la table |
| champ primaire | Chaîne | S'il n'y a pas sys_id, le champ primaire. |
[Tableau 16. Paramètres]

{#r_GlideRecord-AddJoinQuery_String_String__table_es5_y4p_dt} {#r_GlideRecord-AddJoinQuery_String_String__table_fs5_y4p_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Enregistrements dans lesquels les relations correspondent. |
[Tableau 17. Renvoie]

{#r_GlideRecord-AddJoinQuery_String_String__table_fs5_y4p_dt}  
Recherchez les problèmes qui présentent des incidents en utilisant le champ open_by de la clé de jointure au lieu du 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 périmètre, utilisez la méthode correspondante incluse dans le périmètre : [addJoinQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddJoinQuery_String_Object_Object "Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table associée au GlideRecord actuel.")

## GlideRecord : addJoinQuery(Table de chaînes, Chaîne primaryField, Chaîne joinTableField) {#ariaid-title11}

Ajoute un filtre pour renvoyer les enregistrements basés sur 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 ; au lieu de cela, addJoinQuery() ajoute 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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-AddJoinQuery_String_String_String__table_x3f_rpp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| table | Chaîne | Nom de la table |
| champ primaire | Chaîne | S'il n'y a pas sys_id, le champ primaire. |
| joinTableField | Chaîne | S'il n'y a pas sys_id, champ qui joint les tables |
[Tableau 18. Paramètres]

{#r_GlideRecord-AddJoinQuery_String_String_String__table_x3f_rpp_dt} {#r_GlideRecord-AddJoinQuery_String_String_String__table_y3f_rpp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Enregistrements dans lesquels les relations correspondent. |
[Tableau 19. Renvoie]

{#r_GlideRecord-AddJoinQuery_String_String_String__table_y3f_rpp_dt}  
Recherchez les problèmes qui ont des incidents associés lorsque la valeur du champ de 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 {#r_GlideRecord-AddJoinQuery_String_String_String__section_tjh_zbs_mcb}

Pour utiliser la méthode addJoinQuery() dans une application incluse dans le périmètre, utilisez la méthode correspondante incluse dans le périmètre : [addJoinQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddJoinQuery_String_Object_Object "Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table associée au GlideRecord actuel.")

## GlideRecord : addNotNullQuery(String fieldName) {#ariaid-title12}

Ajoute un filtre pour renvoyer les enregistrements où le champ spécifié n'est pas nul.
{#r_GlideRecord-AddNotNullQuery_String__table_qkf_3tp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Nom du champ. |
[Tableau 20. Paramètres]

{#r_GlideRecord-AddNotNullQuery_String__table_qkf_3tp_dt} {#r_GlideRecord-AddNotNullQuery_String__table_rkf_3tp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | GlideQueryCondition des enregistrements où le champ de paramètre n'est pas nul. |
[Tableau 21. Renvoie]

{#r_GlideRecord-AddNotNullQuery_String__table_rkf_3tp_dt}  

    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 {#r_GlideRecord-AddNotNullQuery_String__section_kh3_bcs_mcb}

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().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddNotNullQuery_String "Filtre qui spécifie les enregistrements dans lesquels la valeur du champ transmis dans le paramètre n’est pas nulle.")

## GlideRecord : addNullQuery(String fieldName) {#ariaid-title13}

Ajoute un filtre pour renvoyer les enregistrements où le champ spécifié est nul.
{#r_GlideRecord-AddNullQuery_String__table_jm5_vtp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Nom du champ. |
[Tableau 22. Paramètres]

{#r_GlideRecord-AddNullQuery_String__table_jm5_vtp_dt} {#r_GlideRecord-AddNullQuery_String__table_km5_vtp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | GlideQueryCondition des enregistrements pour lesquels le champ spécifié est nul. |
[Tableau 23. Renvoie]

{#r_GlideRecord-AddNullQuery_String__table_km5_vtp_dt}  

    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 {#r_GlideRecord-AddNullQuery_String__section_n33_dcs_mcb}

Pour utiliser la méthode addNullQuery() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [addNullQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddNullQuery_String "Ajoute un filtre pour renvoyer les enregistrements pour lesquels la valeur du champ spécifié est nulle.")

## GlideRecord : addQuery(nom de chaîne, opérateur d'objet, valeur d'objet) {#ariaid-title14}

Permet de générer une demande qui, une fois 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 faire un ou plusieurs appels addQuery() en une seule requête. Pour cette méthode, les requêtes sont AND. Si l'une des instructions de requête doit être émise avec un OU, utilisez la classe [GlideQueryCondition](https://servicenow-prod.fluidtopics.net/ekAEMy24fQqNXp4uWuJIgA#c_GlideQueryConditionAPI "L’API GlideQueryCondition fournit des conditions AND ou OR supplémentaires qui peuvent être ajoutées à la condition actuelle, ce qui vous permet de créer des requêtes complexes.").

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, le champ de table et la 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](https://www.servicenow.com/docs/access?context=c_UsingGlideRecordToQueryTables&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US).

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, telle que 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 la requête est abandonné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 des résultats de requête incorrects peut entraîner une perte de données.

Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai 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 elle 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 toujours le reste de l'instruction de requête. Pour plus d'informations sur cette propriété système et ses fonctionnalités, reportez-vous à la section [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-AddQuery_String_Object_Object__table_ix2_hvp_dt__entry__3}

| 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 dynamique. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
| opérateur | Objet | Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de <var class="keyword varname">valeur</var> . Nombres: * = * != * \> * \>= * \< * \<= {#r_GlideRecord-AddQuery_String_Object_Object__ul_qyb_rbt_3y} Chaînes (doit être en majuscules) : * = * != * DANS * PAS DANS * STARTSWITH * SE TERMINE PAR * CONTIENT * NE CONTIENT PAS * INSTANCEOF {#r_GlideRecord-AddQuery_String_Object_Object__ul_egz_vbt_3y} Remarque : Utilisez CONTAINS au lieu de l'opérateur LIKE. Opérateurs de schémas dynamiques : * = * != * \< * \> * \<= * \>= * ENTRE * CONTIENT * DOES_NOT_CONTAIN * SE TERMINE PAR * GT_FIELD * GT_OR_EQUALS_FIELD * DANS * EST VIDE * ISNOTEMPTY * IS_NOT_NULL * IS_NULL * COMME * LT_FIELD * LT_OR_EQUALS_FIELD * ALLUMETTES * NOT_IN * NOT_LIKE * NOT_MATCHES * NSAMEAS (en anglais seulement) * IDENTIQUES * STARTSWITH |
| valide | Objet | Valeur sur laquelle poser une question (non sensible à la casse). |
[Tableau 24. Paramètres]

{#r_GlideRecord-AddQuery_String_Object_Object__table_ix2_hvp_dt} {#r_GlideRecord-AddQuery_String_Object_Object__table_jx2_hvp_dt__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Référence à GlideQueryCondition qui a été ajoutée au GlideRecord. |
[Tableau 25. Renvoie]

{#r_GlideRecord-AddQuery_String_Object_Object__table_jx2_hvp_dt}  
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 pour utiliser des attributs dans un magasin d'attributs dynamique.

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

### Équivalent dans le champ d'application {#r_GlideRecord-AddQuery_String_Object_Object__section_swp_3cs_mcb}

Pour utiliser la méthode addQuery() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [addQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordAddQuery_String_String_Object "Permet de créer une demande qui, une fois exécutée, renvoie les lignes de la table spécifiée qui correspondent à la demande.")

## GlideRecord : addValue(champ de chaîne, valeur de numéro) {#ariaid-title15}

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 ont été 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, plutôt que 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 un 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 en fait 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 lue à partir de la base de données, sauf si cela est explicitement fait.

Comme setValue(), les modifications de 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 enregistré.
{#GlideRecord-addValue_S_N__table_h43_tjt_hlb__entry__3}

| 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 26. Paramètres]

{#GlideRecord-addValue_S_N__table_h43_tjt_hlb} {#GlideRecord-addValue_S_N__table_i43_tjt_hlb__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 27. Renvoie]

{#GlideRecord-addValue_S_N__table_i43_tjt_hlb}  
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(String, queryString) {#ariaid-title16}

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

| Nom | Type | Description |
|-|-|-|
| Chaîne de requête | Chaîne | Requête codée à appliquer au GlideRecord actuel. |
[Tableau 28. Paramètres]

{#GlideRecord-applyEncodedQuery_S__table_p5j_nfg_rmb} {#GlideRecord-applyEncodedQuery_S__table_q5j_nfg_rmb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 29. Renvoie]

{#GlideRecord-applyEncodedQuery_S__table_q5j_nfg_rmb}  
<br />

    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) {#ariaid-title17}

Appliquez un enregistrement de modèle à partir 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 en savoir plus, reportez-vous [à la section Créer des modèles pour les enregistrements de tâches connexes](https://www.servicenow.com/docs/access?context=create-templates-for-related-task-records&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-applyTemplate_String__table_r2n_mlw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| modèle | Chaîne | Nom d'un modèle dans la table Modèles \[sys_template\]. |
[Tableau 30. Paramètres]

{#r_GlideRecord-applyTemplate_String__table_r2n_mlw_dt} {#r_GlideRecord-applyTemplate_String__table_s2n_mlw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 31. Renvoie]

{#r_GlideRecord-applyTemplate_String__table_s2n_mlw_dt}  

    var rec1 = new GlideRecord("incident");
    rec1.initialize();
    rec1.applyTemplate("my_incident_template");
    rec1.insert();

## GlideRecord : autoSysFields(Boolean e) {#ariaid-title18}

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. Cette option est souvent utilisée pour mettre à jour manuellement les valeurs de champ d'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 perturber les fonctionnalités, y compris, mais sans s'y limiter, le formateur d'activité, les ensembles d'historique, les notifications et les mesures.
{#r_GlideRecord-autoSysFields_Boolean__table_t32_tfw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| e | Booléen | Si la valeur est fausse, les mises à jour vers sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by et sys_created_on sont désactivées. |
[Tableau 32. Paramètres]

{#r_GlideRecord-autoSysFields_Boolean__table_t32_tfw_dt} {#r_GlideRecord-autoSysFields_Boolean__table_u32_tfw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 33. Renvoie]

{#r_GlideRecord-autoSysFields_Boolean__table_u32_tfw_dt}  

    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() {#ariaid-title19}

Détermine si les règles de contrôle d'accès (qui incluent le rôle de l'utilisateur) autorisent l'insertion de nouveaux enregistrements dans cette table.
{#r_GlideRecord-CanCreate__table_qyz_pwp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 34. Paramètres]

{#r_GlideRecord-CanCreate__table_qyz_pwp_dt} {#r_GlideRecord-CanCreate__table_ryz_pwp_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si les rôles de l'utilisateur autorisent la création d'enregistrements dans cette table. Valeurs possibles : * true : création autorisée * false : la création n'est pas autorisée {#r_GlideRecord-CanCreate__ul_vtm_pf2_t3b} |
[Tableau 35. Renvoie]

{#r_GlideRecord-CanCreate__table_ryz_pwp_dt}  
Cet exemple indique si des enregistrements peuvent être créés dans 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 périmètre, utilisez la méthode correspondante dans le périmètre : [canCreate().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordCanCreate "Détermine si les règles de contrôle d’accès, qui incluent les rôles de l’utilisateur, autorisent l’insertion de nouveaux enregistrements dans cette table.")

## GlideRecord : canDelete() {#ariaid-title20}

Détermine si les règles de contrôle d'accès (qui incluent le rôle de l'utilisateur) autorisent la suppression des enregistrements de cette table.
{#r_GlideRecord-CanDelete__table_kmz_zwp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 36. Paramètres]

{#r_GlideRecord-CanDelete__table_kmz_zwp_dt} {#r_GlideRecord-CanDelete__table_lmz_zwp_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si les rôles de l'utilisateur autorisent la suppression d'enregistrements dans cette table. Valeurs valides : * true : suppression autorisée * false : la suppression n'est pas autorisée {#r_GlideRecord-CanDelete__ul_vtm_pf2_t3b} |
[Tableau 37. Renvoie]

{#r_GlideRecord-CanDelete__table_lmz_zwp_dt}  

    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 {#r_GlideRecord-CanDelete__section_itl_mcs_mcb}

Pour utiliser la méthode canDelete() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [canDelete().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordCanDelete "Détermine si les règles de contrôle d’accès, qui incluent les rôles de l’utilisateur, autorisent la suppression d’enregistrements dans cette table.")

## GlideRecord : canRead() {#ariaid-title21}

Détermine si les règles de contrôle d'accès (ACL) autorisent la lecture des enregistrements de cette table. Cette méthode évalue tous les types d'ACL, tels que les rôles d'utilisateur, les ACL scriptés, les ACL avec des conditions scriptées, etc.
{#r_GlideRecord-CanRead__table_c3g_4xp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 38. Paramètres]

{#r_GlideRecord-CanRead__table_c3g_4xp_dt} {#r_GlideRecord-CanRead__table_d3g_4xp_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si les rôles de l'utilisateur autorisent la lecture des enregistrements de cette table. Valeurs valides : * true : lecture autorisée * faux : la lecture n'est pas autorisée {#r_GlideRecord-CanRead__ul_vtm_pf2_t3b} |
[Tableau 39. Renvoie]

{#r_GlideRecord-CanRead__table_d3g_4xp_dt}  
Cet exemple indique si les enregistrements peuvent être lus à partir de la table benefit_plan.

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

### Équivalent dans le champ d'application

Pour utiliser la méthode canRead() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [canRead().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordCanRead "Détermine si les règles de contrôle d’accès (ACL) autorisent la lecture des enregistrements de cette table. Cette méthode évalue tous les types d’ACL, tels que les rôles d’utilisateur, les ACL scriptés, les ACL avec des conditions scriptées, etc.")

## GlideRecord : canWrite() {#ariaid-title22}

Détermine si les règles de contrôle d'accès (qui incluent le rôle de l'utilisateur) autorisent les mises à jour des enregistrements de cette table.
{#r_GlideRecord-CanWrite__table_srp_xxp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 40. Paramètres]

{#r_GlideRecord-CanWrite__table_srp_xxp_dt} {#r_GlideRecord-CanWrite__table_trp_xxp_dt__entry__2}

| 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 {#r_GlideRecord-CanWrite__ul_vtm_pf2_t3b} |
[Tableau 41. Renvoie]

{#r_GlideRecord-CanWrite__table_trp_xxp_dt}  
Cet exemple montre si les 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 incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [canWrite().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordCanWrite "Détermine si les règles de contrôle d’accès, qui incluent les rôles de l’utilisateur, autorisent la modification des enregistrements de cette table.")

## GlideRecord : changes() {#ariaid-title23}

Détermine si l'un des champs de l'enregistrement a changé.
{#r_GlideRecord-Changes__table_ofg_gyp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 42. Paramètres]

{#r_GlideRecord-Changes__table_ofg_gyp_dt} {#r_GlideRecord-Changes__table_pfg_gyp_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant s'il y a des changements dans l'enregistrement spécifié. Valeurs possibles : * vrai : les champs de l'enregistrement spécifié ont changé. * false : aucun champ n'a changé. {#r_GlideRecord-Changes__ul_cqj_2fx_z4b} |
[Tableau 43. Renvoie]

{#r_GlideRecord-Changes__table_pfg_gyp_dt}  
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 un 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 : deleteMultiple() {#ariaid-title24}

Supprime tous les enregistrements qui répondent à 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. De plus, lors de l'utilisation de deleteRecord() pour supprimer 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, quelle que soit la fonction setLimit().

La propriété système glide.db.forced.chunk.threshold définit le seuil au-dessus duquel forcer la suppression et la mise à jour des enregistrements de blocs. Le découpage permet d'éviter que des suppressions de clés non primaires sur d'énormes tables n'entraînent des problèmes de réplication. Pour plus d'informations, consultez [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-deleteMultiple__table_ck5_g1x_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 44. Paramètres]

{#r_GlideRecord-deleteMultiple__table_ck5_g1x_dt} {#r_GlideRecord-deleteMultiple__table_dk5_g1x_dt__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 45. Renvoie]

{#r_GlideRecord-deleteMultiple__table_dk5_g1x_dt}  
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 {#r_GlideRecord-deleteMultiple__section_gy3_zcs_mcb}

Pour utiliser la méthode deleteMultiple() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : [deleteMultiple().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordDeleteMultiple "Supprime tous les enregistrements qui répondent à la requête.")

## GlideRecord : deleteRecord() {#ariaid-title25}

Supprime un seul enregistrement.
Remarque :  
Lors de l'utilisation de deleteMultiple() pour une suppression en cascade, les appels préalables à setWorkflow() sur le même objet GlideRecord sont ignorés.
{#r_GlideRecord-deleteRecord__table_xqy_s1x_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 46. Paramètres]

{#r_GlideRecord-deleteRecord__table_xqy_s1x_dt} {#r_GlideRecord-deleteRecord__table_yqy_s1x_dt__entry__2}

| 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 à supprimer n'a été trouvé. {#r_GlideRecord-deleteRecord__ul_hkn_5bj_s3b} |
[Tableau 47. Renvoie]

{#r_GlideRecord-deleteRecord__table_yqy_s1x_dt}  
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. L'incident GlideRecord doit être rechargé après l'insertion avant de 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 {#r_GlideRecord-deleteRecord__section_h4z_1ds_mcb}

Pour utiliser la méthode deleteRecord() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [deleteRecord().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordDeleteRecord "Supprime l’enregistrement actuel.")

## GlideRecord : find(String columnName, valeur de chaîne) {#ariaid-title26}

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 retourné.
{#r_GlideRecord-Find_String_String__table_k1m_qyp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| columnName | Chaîne | Nom de champ à rechercher. |
| valide | Chaîne | Valeur à vérifier dans le champ spécifié. |
[Tableau 48. Paramètres]

{#r_GlideRecord-Find_String_String__table_k1m_qyp_dt} {#r_GlideRecord-Find_String_String__table_l1m_qyp_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si un enregistrement dans la table actuelle a une valeur correspondante dans le champ spécifié. Valeurs possibles : * vrai : champ correspondant. * faux : aucun champ correspondant. |
[Tableau 49. Renvoie]

{#r_GlideRecord-Find_String_String__table_l1m_qyp_dt}  
Cet exemple montre comment trouver un enregistrement dans la table Incident avec \<\< Critique \>\> dans le champ Brève description.

    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 : obtenir (nom de l'objet, valeur de l'objet) {#ariaid-title27}

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 de l'sys_id de l'enregistrement souhaité. S'il est introuvable, il tente alors de faire correspondre la valeur à la valeur affichée. 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.
{#r_GlideRecord-get_Object_Object__table_bwp_pcr_dt__entry__3}

| 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. |
[Tableau 50. Paramètres]

{#r_GlideRecord-get_Object_Object__table_bwp_pcr_dt} {#r_GlideRecord-get_Object_Object__table_cwp_pcr_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Indique si l'enregistrement demandé a été localisé. Valeurs possibles : * true : l'enregistrement a été trouvé * false : l'enregistrement n'a pas été trouvé {#r_GlideRecord-get_Object_Object__ul_ngs_clw_qfb} |
[Tableau 51. Renvoie]

{#r_GlideRecord-get_Object_Object__table_cwp_pcr_dt}  
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 {#r_GlideRecord-get_Object_Object__section_rcl_s2s_mcb}

Pour utiliser la méthode get() dans une application incluse dans le périmètre, utilisez la méthode correspondante incluse dans le périmètre : [get().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGet_Object_Object "Renvoie l’enregistrement spécifié dans l’objet GlideRecord actuel.")

## GlideRecord : getAttribute(String fieldName) {#ariaid-title28}

Renvoie les attributs de dictionnaire sur le champ spécifié.
{#r_GlideRecord-getAttribute_String__table_b2b_jdr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Nom de champ pour lequel retourner les attributs de dictionnaire |
[Tableau 52. Paramètres]

{#r_GlideRecord-getAttribute_String__table_b2b_jdr_dt} {#r_GlideRecord-getAttribute_String__table_c2b_jdr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Attributs du dictionnaire |
[Tableau 53. Renvoie]

{#r_GlideRecord-getAttribute_String__table_c2b_jdr_dt}  
Cet exemple montre comment retourner 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 {#r_GlideRecord-getAttribute_String__section_bmb_dds_mcb}

Pour utiliser la méthode getAttribute() dans une application incluse dans le périmètre, utilisez la méthode correspondante incluse dans le périmètre : [getAttribute().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-getAttribute_S "Renvoie les attributs de dictionnaire pour le champ spécifié.")

## GlideRecord : getClassDisplayValue() {#ariaid-title29}

Renvoie l'étiquette de la table.
{#r_GlideRecord-getClassDisplayValue__table_ltd_ydr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 54. Paramètres]

{#r_GlideRecord-getClassDisplayValue__table_ltd_ydr_dt} {#r_GlideRecord-getClassDisplayValue__table_mtd_ydr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Étiquette qui identifie la table. |
[Tableau 55. Renvoie]

{#r_GlideRecord-getClassDisplayValue__table_mtd_ydr_dt}  
Cet exemple affiche 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 correspondante dans le périmètre : [getClassDisplayValue().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-getClassDisplayValue "Renvoie l’étiquette de la table actuelle.")

## GlideRecord : getDisplayValue (nom de chaîne) {#ariaid-title30}

Récupère la valeur d'affichage de l'enregistrement actuel ou la valeur d'affichage d'un attribut dans un magasin d'attributs dynamique.
[Display values](https://www.servicenow.com/docs/access?context=c_DisplayValues&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US) sont manipulés en fonction de la valeur réelle de la base de données et des paramètres et préférences de l'utilisateur ou du 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 d'affichage 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é.
{#r_GlideRecord-getDisplayValue__ul_ok1_cbv_hsb}

Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-getDisplayValue__table_kps_f2r_dt__entry__3}

| 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 dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
[Tableau 56. Paramètres]

{#r_GlideRecord-getDisplayValue__table_kps_f2r_dt} {#r_GlideRecord-getDisplayValue__table_lps_f2r_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Valeur d'affichage de l'enregistrement actuel ou de l'élément spécifié. |
[Tableau 57. Renvoie]

{#r_GlideRecord-getDisplayValue__table_lps_f2r_dt}  
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 dynamique.

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

Sortie :

    Attr value: System error
    Attr2 value: true

### Équivalent dans le champ d'application {#r_GlideRecord-getDisplayValue__section_j51_nds_mcb}

Pour utiliser la méthode getDisplayValue() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [getDisplayValue().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetDisplayValue "Récupère la valeur d’affichage de l’enregistrement actuel.")

## GlideRecord : getDynamicAttribute(String fullPath) {#ariaid-title31}

Renvoie l'objet GlideElementDynamicAttribute pour le chemin d'accès du magasin d'attributs dynamiques spécifié.
Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#GR-getDynamicAttribute_S__table_rgk_h1x_1bc__entry__3}

| Nom | Type | Description |
|-|-|-|
| fullPath (en anglais seulement) | Chaîne | Chemin d'accès à utiliser pour localiser l'attribut dynamique souhaité. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
[Tableau 58. Paramètres]

{#GR-getDynamicAttribute_S__table_rgk_h1x_1bc} {#GR-getDynamicAttribute_S__table_sgk_h1x_1bc__entry__2}

| Type | Description |
|-|-|
| Objet | GlideElementDynamicAttribute contenant l'attribut dynamique spécifié. Si le paramètre n'est fullPath pas valide, renvoie null. |
[Tableau 59. Renvoie]

{#GR-getDynamicAttribute_S__table_sgk_h1x_1bc}  
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->car->color').setValue('Blue');
    gr_Inc.update();

    gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gs.info(gr_Inc.getDynamicAttribute('attr_store', 'car->color'));

Sortie :

    *** Script: Blue

## GlideRecord : getDynamicAttribute(String dynamicAttributeField, String groupAttrPath) {#ariaid-title32}

Renvoie un objet GlideElementDynamicAttribute qui contient l'attribut dynamique situé dans la table, le champ et le chemin d'accès de l'attribut spécifiés.
{#GR-getDynamicAttribute_S_S__table_yzz_p1x_1bc__entry__3}{#GR-getDynamicAttribute_S_S__DynS-dynamicAttributeField-entry}

| Nom | Type | Description |
|-|-|-|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l'attribut dynamique. |
| groupAttrPath (en anglais seulement) | Chaîne | Chemin d'accès de l'attribut à utiliser pour localiser l'attribut de schéma dynamique associé. Format : `<< group_name->attr_name >>` * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ Nom de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\] ou dans le champ Groupe de la table Attribut dynamique \[dynamic_attribute\]. * `attr_name` : nom de l'attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique \[dynamic_attribute\]. Par exemple : `<< car->color >>` |
[Tableau 60. Paramètres]

{#GR-getDynamicAttribute_S_S__table_yzz_p1x_1bc} {#GR-getDynamicAttribute_S_S__table_zzz_p1x_1bc__entry__2}

| Type | Description |
|-|-|
| Objet | GlideElementDynamicAttribute contenant l'attribut dynamique spécifié. Si les paramètres ou dynamicAttributeFieldgroupAttrPath ne sont pas valides, renvoie null. |
[Tableau 61. Renvoie]

{#GR-getDynamicAttribute_S_S__table_zzz_p1x_1bc}  
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->car->color').setValue('Blue');
    gr_Inc.update();

    gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gs.info(gr_Inc.getDynamicAttribute('attr_store', 'car->color'));

Sortie :

    *** Script: Blue

## GlideRecord : getDynamicAttributeValue(String fullPath) {#ariaid-title33}

Renvoie la valeur de l'attribut dynamique situé sur un chemin spécifié.
{#GR-getDynamicAttributeValue_S__table_oh3_x1x_1bc__entry__3}

| Nom | Type | Description |
|-|-|-|
| fullPath (en anglais seulement) | Chaîne | Chemin d'accès à utiliser pour localiser l'attribut dynamique souhaité. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
[Tableau 62. Paramètres]

{#GR-getDynamicAttributeValue_S__table_oh3_x1x_1bc} {#GR-getDynamicAttributeValue_S__table_ph3_x1x_1bc__entry__2}

| Type | Description |
|-|-|
| Objet | Valeur de l'attribut dynamique situé sur le chemin 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 null. |
[Tableau 63. Renvoie]

{#GR-getDynamicAttributeValue_S__table_ph3_x1x_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->car->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->car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store->car->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(String dynamicAttributeField, String groupAttrPath) {#ariaid-title34}

Renvoie la valeur de l'attribut dynamique situé à un champ spécifié dans la table actuelle et un chemin d'accès d'attribut spécifié.
{#GR-getDynamicAttributeValue_S_S__table_n1f_fbx_1bc__entry__3}{#GR-getDynamicAttributeValue_S_S__DynS-dynamicAttributeField-entry}

| Nom | Type | Description |
|-|-|-|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l'attribut dynamique. |
| groupAttrPath (en anglais seulement) | Chaîne | Chemin d'accès de l'attribut à utiliser pour localiser l'attribut de schéma dynamique associé. Format : `<< group_name->attr_name >>` * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ Nom de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\] ou dans le champ Groupe de la table Attribut dynamique \[dynamic_attribute\]. * `attr_name` : nom de l'attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique \[dynamic_attribute\]. Par exemple : `<< car->color >>` |
[Tableau 64. Paramètres]

{#GR-getDynamicAttributeValue_S_S__table_n1f_fbx_1bc} {#GR-getDynamicAttributeValue_S_S__table_o1f_fbx_1bc__entry__2}

| Type | Description |
|-|-|
| Objet | Valeur de l'attribut dynamique situé sur le chemin spécifié. Si les paramètres ou dynamicAttributeFieldgroupAttrPath ne sont pas valides, renvoie null. |
[Tableau 65. Renvoie]

{#GR-getDynamicAttributeValue_S_S__table_o1f_fbx_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'car->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', 'car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'car->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(String fullPath) {#ariaid-title35}

Renvoie la valeur d'affichage de l'attribut dynamique situé sur le chemin spécifié.
{#GR-getDynAttributeDisplayValue_S__table_nht_nbx_1bc__entry__3}

| Nom | Type | Description |
|-|-|-|
| fullPath (en anglais seulement) | Chaîne | Chemin d'accès à utiliser pour localiser l'attribut dynamique souhaité. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
[Tableau 66. Paramètres]

{#GR-getDynAttributeDisplayValue_S__table_nht_nbx_1bc} {#GR-getDynAttributeDisplayValue_S__table_oht_nbx_1bc__entry__2}

| Type | Description |
|-|-|
| Chaîne | Affichez la valeur de l'attribut dynamique situé sur le chemin spécifié. Si le paramètre n'est fullPath pas valide, renvoie null. |
[Tableau 67. Renvoie]

{#GR-getDynAttributeDisplayValue_S__table_oht_nbx_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->car->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 Purcahse Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store->car->time_of_purchase'));
    gs.info("Time of Purcahse DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store->car->time_of_purchase'));

Sortie :

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

## GlideRecord : getDynamicAttributeDisplayValue(String dynamicAttributeField, String groupAttrPath) {#ariaid-title36}

Renvoie la valeur d'affichage de l'attribut dynamique situé dans un champ de table et un chemin d'accès d'attribut spécifiés.
{#GR-getDynAttributeDisplayValue_S_S__table_vm3_wbx_1bc__entry__3}{#GR-getDynAttributeDisplayValue_S_S__DynS-dynamicAttributeField-entry}

| Nom | Type | Description |
|-|-|-|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l'attribut dynamique. |
| groupAttrPath (en anglais seulement) | Chaîne | Chemin d'accès de l'attribut à utiliser pour localiser l'attribut de schéma dynamique associé. Format : `<< group_name->attr_name >>` * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ Nom de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\] ou dans le champ Groupe de la table Attribut dynamique \[dynamic_attribute\]. * `attr_name` : nom de l'attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique \[dynamic_attribute\]. Par exemple : `<< car->color >>` |
[Tableau 68. Paramètres]

{#GR-getDynAttributeDisplayValue_S_S__table_vm3_wbx_1bc} {#GR-getDynAttributeDisplayValue_S_S__table_wm3_wbx_1bc__entry__2}

| Type | Description |
|-|-|
| Chaîne | Affichez la valeur de l'attribut dynamique situé sur le chemin spécifié. Si les paramètres ou dynamicAttributeFieldgroupAttrPath ne sont pas valides, renvoie null. |
[Tableau 69. Renvoie]

{#GR-getDynAttributeDisplayValue_S_S__table_wm3_wbx_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'car->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', 'car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'car->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() {#ariaid-title37}

Renvoie le descripteur de l'élément.
{#r_GlideRecord-getED__table_ppq_p2r_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 70. Paramètres]

{#r_GlideRecord-getED__table_ppq_p2r_dt} {#r_GlideRecord-getED__table_qpq_p2r_dt__entry__2}

| Type | Description |
|-|-|
| GlideElementDescriptor | Descripteur de l'élément. |
[Tableau 71. Renvoie]

{#r_GlideRecord-getED__table_qpq_p2r_dt}  
Cet exemple montre comment récupérer le champ nom d'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 {#r_GlideRecord-getED__section_vj2_pds_mcb}

Pour utiliser la méthode getED() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [getED().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-getED "Renvoie le descripteur de l’élément.")

## GlideRecord : getElement(String fieldName) {#ariaid-title38}

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 les valeurs d'un enregistrement. La remontée pas à pas récupère l'ensemble de l'objet au lieu de la valeur du champ. La récupération de l'objet nécessite plus d'espace 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'intégralité de l'objet, vous pouvez utiliser l'une des méthodes suivantes pour copier les valeurs de champ :  
* [getValue()](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-getValue_String "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 dynamique.")
* [getDisplayValue()](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-getDisplayValue "Récupère la valeur d’affichage de l’enregistrement actuel ou la valeur d’affichage d’un attribut dans un magasin d’attributs dynamique.")
{#r_GlideRecord-getElement_String__gr-api-dot-walk-global-rec-lnx}  
S'il est nécessaire de remonter pas à pas dans un objet GlideElement, utilisez la méthode toString() pour récupérer les valeurs. Par exemple, vous aurez peut-être besoin que le gestionnaire de l'appelant actuel sys_id 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()](https://servicenow-prod.fluidtopics.net/_Np8wuXGQIwxB8xMzo8~qA#r_GlideElement-toString "Convertit la valeur du champ en chaîne.").
{#r_GlideRecord-getElement_String__id_rmz_rpn_mpb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Nom de colonne pour lequel renvoyer l'objet GlideElement. |
[Tableau 72. Paramètres]

{#r_GlideRecord-getElement_String__id_rmz_rpn_mpb} {#r_GlideRecord-getElement_String__table_yxw_bfr_dt__entry__2}

| Type | Description |
|-|-|
| GlideElement (en anglais seulement) | GlideElement pour la colonne spécifiée de l'enregistrement actuel. Chaque objet décrit un champ dans le GlideRecord actuel. |
[Tableau 73. Renvoie]

{#r_GlideRecord-getElement_String__table_yxw_bfr_dt}  
Cet exemple montre comment obtenir l'objet GlideElement pour une table transmise et les comparer avec les valeurs de métadonnées système attendues.

    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 périmètre, utilisez la méthode correspondante incluse dans le périmètre : [getElement().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetElement_String "Récupère l’objet GlideElement pour le champ spécifié.")

## GlideRecord : getEncodedQuery() {#ariaid-title39}

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.
Pour plus [d'informations, consultez Chaînes de requêtes codées](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US) .{#r_GlideRecord-getEncodedQuery_Boolean__link_encoded_query_strings}
{#r_GlideRecord-getEncodedQuery_Boolean__table_ng2_mfr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 74. Paramètres]

{#r_GlideRecord-getEncodedQuery_Boolean__table_ng2_mfr_dt} {#r_GlideRecord-getEncodedQuery_Boolean__table_og2_mfr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne |   |
[Tableau 75. Renvoie]

{#r_GlideRecord-getEncodedQuery_Boolean__table_og2_mfr_dt}  
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 correspondante dans le périmètre : [getEncodedQuery().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetEncodedQuery "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.")

## GlideRecord : getEscapedDisplayValue() {#ariaid-title40}

Récupère la valeur de champ pour le 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, [reportez-vous à la rubrique Sélectionner un champ comme valeur d'affichage de table](https://www.servicenow.com/docs/access?context=t_SelectTheDisplayValue&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). {#r_GlideRecord-getEscapedDisplayValue__table_xcp_5fr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 76. Paramètres]

{#r_GlideRecord-getEscapedDisplayValue__table_xcp_5fr_dt} {#r_GlideRecord-getEscapedDisplayValue__table_ycp_5fr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Valeur d'échappement du champ d'affichage de la table actuelle. |
[Tableau 77. Renvoie]

{#r_GlideRecord-getEscapedDisplayValue__table_ycp_5fr_dt}  
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() {#ariaid-title41}

Récupère un tableau JavaListe de champs dans l'enregistrement actuel.
{#r_GlideRecord-getFields__table_yzn_fgr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 78. Paramètres]

{#r_GlideRecord-getFields__table_yzn_fgr_dt} {#r_GlideRecord-getFields__table_zzn_fgr_dt__entry__2}

| Type | Description |
|-|-|
| TableauList Java | Champs de l'enregistrement actuel |
[Tableau 79. Renvoie]

{#r_GlideRecord-getFields__table_zzn_fgr_dt}  

    // 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() {#ariaid-title42}

Récupère l'étiquette du champ.
{#r_GlideRecord-getLabel__table_ajl_sgr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 80. Paramètres]

{#r_GlideRecord-getLabel__table_ajl_sgr_dt} {#r_GlideRecord-getLabel__table_bjl_sgr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Étiquette du champ |
[Tableau 81. Renvoie]

{#r_GlideRecord-getLabel__table_bjl_sgr_dt}  
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 {#r_GlideRecord-getLabel__section_bdc_d2s_mcb}

Pour utiliser la méthode getLabel() dans une application incluse dans le périmètre, utilisez la méthode correspondante incluse dans le périmètre : [getLabel().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-getLabel "Renvoie l’étiquette du champ.")

## GlideRecord : getLink(booléen noStack) {#ariaid-title43}

Récupère le lien de l'enregistrement actuel.
{#r_GlideRecord-getLink_Boolean__table_evz_2hr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| noStack (en anglais seulement) | Booléen | Marqueur indiquant s'il faut ajouter le lien généré à la fin de l'URL. Par exemple : `&sysparm_stack=[tablename]_list.do ? sysparm_query=active=true`. Valeurs valides : * vrai : ajouter un lien. * faux : ne pas ajouter de lien. {#r_GlideRecord-getLink_Boolean__ul_jwg_kmt_ymb} Valeur par défaut : false |
[Tableau 82. Paramètres]

{#r_GlideRecord-getLink_Boolean__table_evz_2hr_dt} {#r_GlideRecord-getLink_Boolean__table_fvz_2hr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | URL de l'enregistrement actuel. |
[Tableau 83. Renvoie]

{#r_GlideRecord-getLink_Boolean__table_fvz_2hr_dt}  
Cet exemple recherche les pièces jointes et ajoute le lien s'il y en a.

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

### Équivalent dans le champ d'application {#r_GlideRecord-getLink_Boolean__section_qvr_f2s_mcb}

Pour utiliser la méthode getLink() dans une application incluse dans le périmètre, utilisez la méthode correspondante incluse dans le périmètre : [getLink().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetLink_Boolean "Récupère le lien vers l’enregistrement actuel.")

## GlideRecord : getLocation() {#ariaid-title44}

Récupère le numéro de ligne de l'enregistrement actuel dans la table.
{#r_GlideRecord-getLocation_Boolean__table_hzq_whr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 84. Paramètres]

{#r_GlideRecord-getLocation_Boolean__table_hzq_whr_dt} {#r_GlideRecord-getLocation_Boolean__table_izq_whr_dt__entry__2}

| Type | Description |
|-|-|
| Numéro | Numéro de ligne de base zéro de l'enregistrement actuel dans la table. |
[Tableau 85. Renvoie]

{#r_GlideRecord-getLocation_Boolean__table_izq_whr_dt}  
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() {#ariaid-title45}

Récupère l'étiquette pluriel de la table GlideRecord.
Par exemple, si le nom de la table est \<\< Demande de changement \>\>, cette méthode renvoie \<\< Demandes de changement \>\>.
{#r_GlideRecord-getPlural__table_pfl_g3r_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 86. Paramètres]

{#r_GlideRecord-getPlural__table_pfl_g3r_dt} {#r_GlideRecord-getPlural__table_qfl_g3r_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | L'étiquette pluriel de la table GlideRecord. |
[Tableau 87. Renvoie]

{#r_GlideRecord-getPlural__table_qfl_g3r_dt}  
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 {#r_GlideRecord-getPlural__section_itl_mcs_mcb}

Pour utiliser la méthode getPlural() dans une application incluse dans le périmètre, utilisez la méthode [GlideRecord.getED()](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-getED "Renvoie le descripteur de l’élément.") incluse dans le périmètre pour obtenir le descripteur du champ, puis utilisez la méthode [GlideElementDescriptor.getPlural()](https://servicenow-prod.fluidtopics.net/Q0m4o5B8IhYvtgUcaFmo2A#r_SGED-getPlural "Renvoie l’étiquette pluriel de l’élément.") incluse dans le périmètre.

## GlideRecord : getRecordClassName() {#ariaid-title46}

Récupère le nom de la classe (table) de l'enregistrement actuel.
{#r_GlideRecord-getRecordClassName__table_dxr_r3r_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 88. Paramètres]

{#r_GlideRecord-getRecordClassName__table_dxr_r3r_dt} {#r_GlideRecord-getRecordClassName__table_exr_r3r_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Nom de classe ou de table |
[Tableau 89. Renvoie]

{#r_GlideRecord-getRecordClassName__table_exr_r3r_dt}  

    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 {#r_GlideRecord-getRecordClassName__section_nrs_h2s_mcb}

Pour utiliser la méthode getRecordClassName() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [getRecordClassName().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetRecordClassName "Récupère le nom de classe de l’enregistrement actuel.")

## GlideRecord : getRelatedLists() {#ariaid-title47}

Récupère une liste de noms et de valeurs d'affichage des listes connexes associées au GlideRecord actuel.
{#r_GlideRecord-getRelatedLists_Boolean__table_f2p_3jr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 90. Paramètres]

{#r_GlideRecord-getRelatedLists_Boolean__table_f2p_3jr_dt} {#r_GlideRecord-getRelatedLists_Boolean__table_g2p_3jr_dt__entry__2}

| Type | Description |
|-|-|
| Carte de hachage | Carte de hachage avec les noms et les valeurs d'affichage des listes associées. |
[Tableau 91. Renvoie]

{#r_GlideRecord-getRelatedLists_Boolean__table_g2p_3jr_dt}  
Cet exemple montre comment obtenir la liste des noms et des valeurs d'affichage des listes associées au GlideRecord actuel, les stocker dans un tableau, puis afficher 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() {#ariaid-title48}

Récupère une liste de noms et de valeurs d'affichage des tables auxquelles l'enregistrement actuel fait référence.
{#r_GlideRecord-getRelatedTables_Boolean__table_lwm_vjr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 92. Paramètres]

{#r_GlideRecord-getRelatedTables_Boolean__table_lwm_vjr_dt} {#r_GlideRecord-getRelatedTables_Boolean__table_mwm_vjr_dt__entry__2}

| Type | Description |
|-|-|
| Carte de hachage | Carte de hachage avec les noms et valeurs d'affichage des tables connexes. |
[Tableau 93. Renvoie]

{#r_GlideRecord-getRelatedTables_Boolean__table_mwm_vjr_dt}  
Cet exemple montre comment obtenir la liste des noms et des valeurs d'affichage des tables liées au GlideRecord actuel, les stocker dans un tableau, puis afficher 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() {#ariaid-title49}

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 n'avez besoin que d'un nombre d'enregistrements et que vous n'itérez pas sur les enregistrements correspondants, utilisez GlideAggregate.  

Récupération des enregistrements de numéro dans GlideRecord ou GlideAggregate
:   Les API GlideRecord getRowCount() et [GlideAggregate getAggregate()](https://servicenow-prod.fluidtopics.net/btm5_kHR0FeGrwYJm0pc4A#c_GlideAggregateScopedAPI "L’API GlideAggregate permet de créer des requêtes d’agrégation de base de données.") offrent des informations similaires. Utilisez les critères suivants pour déterminer l'option qui vous convient le mieux.

    * La méthode getRowCount() de GlideRecord vous indique combien d'enregistrements ont été renvoyés à partir d'une requête ainsi que les enregistrements eux-mêmes. Si vous avez besoin du nombre d'enregistrements dans le jeu de résultats avant ou après avoir itéré sur le jeu pour effectuer des actions sur les enregistrements, utilisez cette méthode.
    * La méthode getAggregate() GlideAggregate récupère uniquement un 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_GlideRecord-getRowCount__ul_wdq_fmn_nyb}
:   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 d'agrégat 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 récupérer uniquement le nombre d'enregistrements, la méthode getAggregate() de GlideAggregate 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é.
{#r_GlideRecord-getRowCount__table_dxv_hkr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 94. Paramètres]

{#r_GlideRecord-getRowCount__table_dxv_hkr_dt} {#r_GlideRecord-getRowCount__table_exv_hkr_dt__entry__2}

| Type | Description |
|-|-|
| Numéro | Nombre de lignes dans le GlideRecord actuel. |
[Tableau 95. Renvoie]

{#r_GlideRecord-getRowCount__table_exv_hkr_dt}  
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

### É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 correspondante dans le périmètre : [getRowCount().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetRowCount "Récupère le nombre de lignes (enregistrements) dans l’objet GlideRecord actuel.")

## GlideRecord : getRowNumber() {#ariaid-title50}

Récupère le numéro de ligne défini par saveLocation() ou setLocation().
Pour obtenir le numéro de ligne actuel, utilisez getLocation().
{#r_GlideRecord-getRowNumber__table_m4c_pkr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 96. Paramètres]

{#r_GlideRecord-getRowNumber__table_m4c_pkr_dt} {#r_GlideRecord-getRowNumber__table_n4c_pkr_dt__entry__2}

| Type | Description |
|-|-|
| Numéro | Numéro de ligne enregistré. |
[Tableau 97. Renvoie]

{#r_GlideRecord-getRowNumber__table_n4c_pkr_dt}  
Cet exemple montre comment enregistrer un emplacement de 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() {#ariaid-title51}

Récupère le nom de table associé à ce GlideRecord.
{#r_GlideRecord-getTableName__table_hcx_wkr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 98. Paramètres]

{#r_GlideRecord-getTableName__table_hcx_wkr_dt} {#r_GlideRecord-getTableName__table_icx_wkr_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Nom de table |
[Tableau 99. Renvoie]

{#r_GlideRecord-getTableName__table_icx_wkr_dt}  
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 {#r_GlideRecord-getTableName__section_hfr_42s_mcb}

Pour utiliser la méthode getTableName() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [getTableName().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetTableName "Récupère le nom de la table associée au GlideRecord.")

## GlideRecord : getUniqueValue() {#ariaid-title52}

Obtient la clé primaire de l'enregistrement, qui est généralement le sys_id sauf indication contraire.
{#GlideRecord-getUniqueValue_S__table_t5k_btb_2r__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 100. Paramètres]

{#GlideRecord-getUniqueValue_S__table_t5k_btb_2r} {#GlideRecord-getUniqueValue_S__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Chaîne | Clé primaire unique sous forme de chaîne ou null si la clé est nulle. |
[Tableau 101. Renvoie]

{#GlideRecord-getUniqueValue_S__table_qpt_3f5_jq}  

    var now_GR = new GlideRecord('kb_knowledge');
    now_GR.query();
    now_GR.next();
    var uniqueid = now_GR.getUniqueValue();
    gs.info(uniqueid);

## GlideRecord : getValue(String fieldName) {#ariaid-title53}

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 dynamique.
Remarque :  
Si le module d'extension Entreprise de Chiffrement au niveau des colonnes est activé et que l'instance a accès à la clé, cette méthode renvoie les valeurs en clair à partir 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](https://www.servicenow.com/docs/access?context=now-platform-encryption&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US).

Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
{#r_GlideRecord-getValue_String__table_ev2_flr_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Le nom du champ dont vous souhaitez récupérer la valeur ou le chemin d'accès à un attribut dans un magasin d'attributs dynamiques à récupérer. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
[Tableau 102. Paramètres]

{#r_GlideRecord-getValue_String__table_ev2_flr_dt} {#r_GlideRecord-getValue_String__table_fv2_flr_dt__entry__2}

| 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 renvoient des valeurs de chaîne <kbd class="ph userinput">« 0 »</kbd> et <kbd class="ph userinput">« 1 »</kbd> au lieu de fausses et vraies. |
[Tableau 103. Renvoie]

{#r_GlideRecord-getValue_String__table_fv2_flr_dt}  
Cet exemple utilise la méthode getValue() pour obtenir des valeurs de champ dans deux GlideRecords qui sont 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->car->color' to 'Red' on incident `INC0009009`
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->car->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->car->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 correspondante incluse dans le périmètre : [getValue().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordGetValue_String "Récupère la valeur de chaîne d’un élément sous-jacent dans un champ.")

## GlideRecord : hasAttachments() {#ariaid-title54}

Détermine si le GlideRecord actuel a des pièces jointes.
{#r_GlideRecord-hasAttachments__table_dz4_fzp_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 104. Paramètres]

{#r_GlideRecord-hasAttachments__table_dz4_fzp_dt} {#r_GlideRecord-hasAttachments__table_ez4_fzp_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Vrai si l'enregistrement actuel a des pièces jointes, faux dans les autres cas. |
[Tableau 105. Renvoie]

{#r_GlideRecord-hasAttachments__table_ez4_fzp_dt}  
Cet exemple recherche les pièces jointes et crée un lien s'il y en a.

    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() {#ariaid-title55}

Détermine s'il existe d'autres enregistrements dans le GlideRecord.
{#r_GlideRecord-hasNext__table_fn3_cnq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 106. Paramètres]

{#r_GlideRecord-hasNext__table_fn3_cnq_dt} {#r_GlideRecord-hasNext__table_gn3_cnq_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Vrai s'il existe d'autres enregistrements dans l'ensemble de requêtes, sinon faux. |
[Tableau 107. Renvoie]

{#r_GlideRecord-hasNext__table_gn3_cnq_dt}  
Cet exemple montre comment appeler différentes fonctions en fonction de la présence ou non 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 {#r_GlideRecord-hasNext__section_qb3_y2s_mcb}

Pour utiliser la méthode hasNext() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [hasNext().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordHasNext "Détermine s’il existe d’autres enregistrements dans l’objet GlideRecord.")

## GlideRecord : initialize() {#ariaid-title56}

Crée un enregistrement vide dans le GlideRecord actuel qui convient au remplissage avant une insertion.
{#r_GlideRecord-initialize__table_t1p_myw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 108. Paramètres]

{#r_GlideRecord-initialize__table_t1p_myw_dt} {#r_GlideRecord-initialize__table_u1p_myw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 109. Renvoie]

{#r_GlideRecord-initialize__table_u1p_myw_dt}  
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 {#r_GlideRecord-initialize__section_j1j_1fs_mcb}

Pour utiliser la méthode initialize() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : [initialize().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordInitialize "Crée un enregistrement vide adapté au remplissage avant une insertion.")

## GlideRecord : insérer() {#ariaid-title57}

Insère un nouvel enregistrement avec les valeurs de champ qui ont été définies pour l'enregistrement actuel.
{#r_GlideRecord-insert__table_t3h_vyw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 110. Paramètres]

{#r_GlideRecord-insert__table_t3h_vyw_dt} {#r_GlideRecord-insert__table_u3h_vyw_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | sys_id de l'enregistrement inséré ou nul si l'enregistrement n'est pas inséré. |
[Tableau 111. Renvoie]

{#r_GlideRecord-insert__table_u3h_vyw_dt}  
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 {#r_GlideRecord-insert__section_dkx_cfs_mcb}

Pour utiliser la méthode insert() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : [insert().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordInsert "Insère un nouvel enregistrement à l’aide des valeurs de champ qui ont été définies pour l’enregistrement actuel.")

## GlideRecord : insertWithReferences() {#ariaid-title58}

Insère un nouvel enregistrement et insère ou met à jour tout enregistrement connexe avec les informations fournies.
{#r_GlideRecord-insertWithReferences__table_scr_fzw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 112. Paramètres]

{#r_GlideRecord-insertWithReferences__table_scr_fzw_dt} {#r_GlideRecord-insertWithReferences__table_tcr_fzw_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | sys_id de l'enregistrement inséré ou nul si l'enregistrement n'a pas été inséré. |
[Tableau 113. Renvoie]

{#r_GlideRecord-insertWithReferences__table_tcr_fzw_dt}  
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 les 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, ainsi qu'un nouvel enregistrement d'incident avec les short_description et les 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) {#ariaid-title59}

Vérifie une table pour le type\\classe de table.
{#r_GlideRecord-instanceOf_String__table_s5n_qnq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Nom de classe | Chaîne | Nom d'un type ou d'une classe d'enregistrement. |
[Tableau 114. Paramètres]

{#r_GlideRecord-instanceOf_String__table_s5n_qnq_dt} {#r_GlideRecord-instanceOf_String__table_t5n_qnq_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Vrai si la table est une instance de la classe spécifiée. |
[Tableau 115. Renvoie]

{#r_GlideRecord-instanceOf_String__table_t5n_qnq_dt}  
Cet exemple vérifie si le groupe/utilisateur transmis 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() {#ariaid-title60}

Détermine si l'enregistrement actuel a été inséré dans la base de données.
Cette méthode renvoie true uniquement si la méthode newRecord() a été appelée. Cette méthode est utile pour les ACL scriptés 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 retourne 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, elle renvoie false.
{#r_GlideRecord-isNewRecord__table_vbn_g4q_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 116. Paramètres]

{#r_GlideRecord-isNewRecord__table_vbn_g4q_dt} {#r_GlideRecord-isNewRecord__table_wbn_g4q_dt__entry__2}

| 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 : * true : l'enregistrement est nouveau. * false : l'enregistrement n'est pas nouveau. {#r_GlideRecord-isNewRecord__ul_cqj_2fx_z4b} |
[Tableau 117. Renvoie]

{#r_GlideRecord-isNewRecord__table_wbn_g4q_dt}  
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() {#ariaid-title61}

Détermine si la table GlideRecord actuelle existe.
{#r_GlideRecord-isValid__table_twy_x4q_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 118. Paramètres]

{#r_GlideRecord-isValid__table_twy_x4q_dt} {#r_GlideRecord-isValid__table_uwy_x4q_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Vrai si la table existe (valide), sinon faux. |
[Tableau 119. Renvoie]

{#r_GlideRecord-isValid__table_uwy_x4q_dt}  
Cet exemple vérifie si la table Incident existe.

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

### Équivalent dans le champ d'application {#r_GlideRecord-isValid__section_ipl_hfs_mcb}

Pour utiliser la méthode isValid() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : [isValid().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordIsValid "Détermine si la table actuelle est valide ou si l’enregistrement a bien été récupéré.")

## GlideRecord : isValidField(String columnName) {#ariaid-title62}

Détermine si le champ spécifié est défini dans la table GlideRecord actuelle.
{#r_GlideRecord-isValidField_String__table_hkx_vpq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| columnName | Chaîne | Nom d'une colonne à vérifier. |
[Tableau 120. Paramètres]

{#r_GlideRecord-isValidField_String__table_hkx_vpq_dt} {#r_GlideRecord-isValidField_String__table_ikx_vpq_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Vrai si le champ est défini dans la table, sinon faux. |
[Tableau 121. Renvoie]

{#r_GlideRecord-isValidField_String__table_ikx_vpq_dt}  
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 périmètre, utilisez la méthode incluse dans le périmètre correspondante : [isValidField().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordIsValidField "Détermine si le champ spécifié est défini dans la table actuelle.")

## GlideRecord : isValidRecord() {#ariaid-title63}

Détermine si l'enregistrement actuel est valide.
{#r_GlideRecord-isValidRecord__table_ld5_3qq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 122. Paramètres]

{#r_GlideRecord-isValidRecord__table_ld5_3qq_dt} {#r_GlideRecord-isValidRecord__table_md5_3qq_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si l'enregistrement actuel est valide. Valeurs valides : * true : l'enregistrement est valide. * false : au-delà de la fin de l'ensemble d'enregistrements. {#r_GlideRecord-isValidRecord__ul_dqt_bxs_1nb} |
[Tableau 123. Renvoie]

{#r_GlideRecord-isValidRecord__table_md5_3qq_dt}  
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 correspondante dans le périmètre : [isValidRecord().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordIsValidRecord "Détermine si un enregistrement a réellement été renvoyé par l’opération requête/obtention d’enregistrement.")

## GlideRecord : newRecord() {#ariaid-title64}

Crée un GlideRecord, définit les valeurs par défaut des champs et affecte un ID unique à l'enregistrement.
{#r_GlideRecord-newRecord__table_pzw_yzw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 124. Paramètres]

{#r_GlideRecord-newRecord__table_pzw_yzw_dt} {#r_GlideRecord-newRecord__table_qzw_yzw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 125. Renvoie]

{#r_GlideRecord-newRecord__table_qzw_yzw_dt}  
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 périmètre, utilisez la méthode correspondante dans le périmètre : [newRecord().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordNewRecord "Crée un nouvel enregistrement GlideRecord, définit les valeurs par défaut pour les champs et affecte un ID unique à l’enregistrement.")

## GlideRecord : suivant() {#ariaid-title65}

Passe à l'enregistrement suivant dans le GlideRecord.
Utilisez cette méthode pour parcourir 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().](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_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 a une colonne nommée next.")  
Remarque :  
La construction `if(myObj.next())` ne traite que le premier enregistrement renvoyé.
{#r_GlideRecord-next__table_s2n_yqq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 126. Paramètres]

{#r_GlideRecord-next__table_s2n_yqq_dt} {#r_GlideRecord-next__table_t2n_yqq_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant s'il existe un enregistrement \<\< suivant \>\> dans le GlideRecord. Valeurs valides : * vrai : le passage à l'enregistrement suivant a réussi. * faux : plus aucun enregistrement dans l'ensemble de résultats. {#r_GlideRecord-next__ul_anq_km4_s3b} |
[Tableau 127. Renvoie]

{#r_GlideRecord-next__table_t2n_yqq_dt}  
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 {#r_GlideRecord-next__section_by3_qfs_mcb}

Pour utiliser la méthode next() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le champ d'application : [next().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordNext "Passe à l’enregistrement suivant dans l’objet GlideRecord.")

## GlideRecord : _next() {#ariaid-title66}

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 a une colonne nommée next.
{#r_GlideRecord-_next__table_nwr_3rq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 128. Paramètres]

{#r_GlideRecord-_next__table_nwr_3rq_dt} {#r_GlideRecord-_next__table_owr_3rq_dt__entry__2}

| Type | Description |
|-|-|
| Booléen | Vrai s'il existe d'autres enregistrements dans l'ensemble de requêtes. |
[Tableau 129. Renvoie]

{#r_GlideRecord-_next__table_owr_3rq_dt}  

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

### Équivalent dans le champ d'application {#r_GlideRecord-_next__section_ucp_vcs_mcb}

Pour utiliser la méthode _next() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [_next().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-_next "Passe à l’enregistrement suivant dans le GlideRecord. Fournit les mêmes fonctionnalités que next(), utilisez cette méthode si le GlideRecord a une colonne nommée next.")

## GlideRecord : opération() {#ariaid-title67}

Détermine si une opération est insérer, mettre à jour ou supprimer.
La connaissance de 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 actuelle, consultez [Variables globales dans les règles métier](https://www.servicenow.com/docs/access?context=c_BusinessRules&version=xanadu&pubname=xanadu-application-development&section=c_UsingPredefinedGlobalVariables&ft:locale=en-US).
{#r_GlideRecord-operation__table_a3h_wrq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 130. Paramètres]

{#r_GlideRecord-operation__table_a3h_wrq_dt} {#r_GlideRecord-operation__gr-operation-returns__entry__2}

| Type | Description |
|-|-|
| Chaîne | L'opération en cours. Valeurs possibles : * supprimer * insérer * mettre à jour {#r_GlideRecord-operation__ul_bnp_xs3_bpb} |
[Tableau 131. Renvoie]

{#r_GlideRecord-operation__gr-operation-returns}  
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 passer la valeur de l'opération dans 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 incluse dans le périmètre, utilisez la méthode correspondante dans le champ d'application : [operation().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordOperation "Détermine si une opération est insérer, mettre à jour ou supprimer.")

## GlideRecord : orderBy(String fieldName) {#ariaid-title68}

Spécifie un nom de champ, ou un chemin d'accès à un attribut dans un magasin d'attributs dynamique, à utiliser pour trier le jeu de requêtes. Pour effectuer un tri par plusieurs champs, appelez cette méthode plusieurs fois avec des valeurs de champ différentes.
{#r_GlideRecord-orderBy_String__table_rr5_fsq_dt__entry__3}

| 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 ordonner le jeu de requêtes. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tableau 132. Paramètres]

{#r_GlideRecord-orderBy_String__table_rr5_fsq_dt} {#r_GlideRecord-orderBy_String__table_sr5_fsq_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 133. Renvoie]

{#r_GlideRecord-orderBy_String__table_sr5_fsq_dt}  
Cet exemple montre comment trier le jeu de requêtes par \<\< ordre \>\> 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 classer la requête définie par un attribut dans un magasin d'attributs dynamique.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.orderBy('attribute_store->caller_id->first_name');
    gr_Inc.query();

    while(gr_Inc.next()) {
      gs.info("first_name: " + gr_Inc.getValue('attribute_store->caller_id->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 {#r_GlideRecord-orderBy_String__section_slw_vfs_mcb}

Pour utiliser la méthode orderBy() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [orderBy().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordOrderBy_String "Spécifie une colonne orderBy.")

## GlideRecord : orderByDesc(String, fieldName) {#ariaid-title69}

Spécifie le champ, ou un attribut dans un magasin d'attributs dynamique, à utiliser pour trier le jeu de requêtes par ordre décroissant.
{#r_GlideRecord-orderByDesc_String__table_yht_ysq_dt__entry__3}

| 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 trier l'ensemble de requêtes par ordre décroissant. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tableau 134. Paramètres]

{#r_GlideRecord-orderByDesc_String__table_yht_ysq_dt} {#r_GlideRecord-orderByDesc_String__table_zht_ysq_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 135. Renvoie]

{#r_GlideRecord-orderByDesc_String__table_zht_ysq_dt}  
Cet exemple montre comment trier l'ensemble de requêtes dans l'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 classer la requête définie par un attribut dans un magasin d'attributs dynamique.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.orderByDesc('attribute_store->caller_id->first_name');
    gr_Inc.query();

    while(gr_Inc.next()) {
      gs.info("first_name: " + gr_Inc.getValue('attribute_store->caller_id->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 périmètre, utilisez la méthode correspondante dans le périmètre : [orderByDesc().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordOrderByDesc_String "Spécifie une colonne orderBy décroissante.")

## GlideRecord : requête (champ de chaîne, valeur de chaîne) {#ariaid-title70}

Exécute une requête sur la table en fonction des filtres spécifiés par des 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](https://servicenow-prod.fluidtopics.net/6iURyC0fU4q_DqfYMmSxOg#c_UsingGlideRecordToQueryTables "À l’aide des méthodes de l’API GlideRecord, vous pouvez renvoyer tous les enregistrements d’une table, renvoyer des enregistrements d’une table qui satisfont à des conditions spécifiques ou renvoyer des enregistrements qui incluent une chaîne à partir d’une seule table ou de plusieurs tables dans un groupe d’index de texte.").  
Remarque :  
Cette méthode échoue s'il existe un champ dans la table appelé \<\< query \>\>. Si c'est le cas, utilisez la méthode [_query().](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-_query_Object_Object "Exécute une requête sur la table en fonction des filtres spécifiés par des 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().") Pour exécuter des requêtes dans une instance séparée par domaine, utilisez la méthode [queryNoDomain().](https://servicenow-prod.fluidtopics.net/cg986w0IhAlYk2dRuHcT4Q#r_GlideRecord-queryNoDomain_Object_Object "Utilisé dans les instances séparées par domaine. Similaire à query(), exécute la requête sur la table en fonction des filtres spécifiés par addQuery() et addEncodedQuery(), mais ignore les domaines.")

Consultez l'article [GlideRecord](https://developer.servicenow.com/dev.do#!/learn/courses/utah/app_store_learnv2_scripting_utah_scripting_in_servicenow/app_store_learnv2_scripting_utah_server_side_scripting/app_store_learnv2_scripting_utah_gliderecord) pour plus de détails sur la création et l'exécution de requêtes.  
Voir aussi :

* [GlideAggregate - Global](https://servicenow-prod.fluidtopics.net/uSSFwxxiABXOqv3vsSQCQw#c_GlideAggregateAPI "L’API GlideAggregate permet de créer des requêtes d’agrégation de base de données.")
* [GlideQuery()](https://servicenow-prod.fluidtopics.net/W3UzGs6pPMoNChHE_ZtXQA#GlideQueryGlobalAPI "Le script include GlideQuery est une alternative à l’API GlideRecord pour effectuer des opérations CRUD sur les données d’enregistrement à partir de scripts côté serveur."){#r_GlideRecord-query_Object_Object__gr-api-global-link2gquery-api}
{#r_GlideRecord-query_Object_Object__gr-api-global-link2gquery-api}
* [GlideQueryCondition : global](https://servicenow-prod.fluidtopics.net/ekAEMy24fQqNXp4uWuJIgA#c_GlideQueryConditionAPI "L’API GlideQueryCondition fournit des conditions AND ou OR supplémentaires qui peuvent être ajoutées à la condition actuelle, ce qui vous permet de créer des requêtes complexes.")
{#r_GlideRecord-query_Object_Object__ul_qcl_14d_lpb}
{#r_GlideRecord-query_Object_Object__id_g13_kwd_lpb__entry__3}

| 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 136. Paramètres]

{#r_GlideRecord-query_Object_Object__id_g13_kwd_lpb} {#r_GlideRecord-query_Object_Object__table_qsd_ntq_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 137. Renvoie]

{#r_GlideRecord-query_Object_Object__table_qsd_ntq_dt}  
L'exemple suivant montre comment analyser le dictionnaire système \[sys_dictionary\] à la recherche de tables avec 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 {#r_GlideRecord-query_Object_Object__section_xt2_zfs_mcb}

Pour utiliser la méthode query() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [query().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordQuery_Object_Object "Exécute une requête sur la table en fonction des filtres spécifiés par des méthodes de requête telles que addQuery() et addEncodedQuery().")

## GlideRecord : _query(champ de chaîne, valeur de chaîne) {#ariaid-title71}

Exécute une requête sur la table en fonction des filtres spécifiés par des 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](https://servicenow-prod.fluidtopics.net/6iURyC0fU4q_DqfYMmSxOg#c_UsingGlideRecordToQueryTables "À l’aide des méthodes de l’API GlideRecord, vous pouvez renvoyer tous les enregistrements d’une table, renvoyer des enregistrements d’une table qui satisfont à des conditions spécifiques ou renvoyer des enregistrements qui incluent une chaîne à partir d’une seule table ou de plusieurs tables dans un groupe d’index de texte.").

Consultez l'article [GlideRecord](https://developer.servicenow.com/dev.do#!/learn/courses/utah/app_store_learnv2_scripting_utah_scripting_in_servicenow/app_store_learnv2_scripting_utah_server_side_scripting/app_store_learnv2_scripting_utah_gliderecord) pour plus de détails sur la création et l'exécution de requêtes.  
Voir aussi :

* [GlideAggregate - Global](https://servicenow-prod.fluidtopics.net/uSSFwxxiABXOqv3vsSQCQw#c_GlideAggregateAPI "L’API GlideAggregate permet de créer des requêtes d’agrégation de base de données.")
* [GlideQuery()](https://servicenow-prod.fluidtopics.net/W3UzGs6pPMoNChHE_ZtXQA#GlideQueryGlobalAPI "Le script include GlideQuery est une alternative à l’API GlideRecord pour effectuer des opérations CRUD sur les données d’enregistrement à partir de scripts côté serveur."){#r_GlideRecord-_query_Object_Object__gr-api-global-link2gquery-api}
{#r_GlideRecord-_query_Object_Object__gr-api-global-link2gquery-api}
* [GlideQueryCondition : global](https://servicenow-prod.fluidtopics.net/ekAEMy24fQqNXp4uWuJIgA#c_GlideQueryConditionAPI "L’API GlideQueryCondition fournit des conditions AND ou OR supplémentaires qui peuvent être ajoutées à la condition actuelle, ce qui vous permet de créer des requêtes complexes.")
{#r_GlideRecord-_query_Object_Object__ul_qcl_14d_lpb}
{#r_GlideRecord-_query_Object_Object__id_z1c_ptd_lpb__entry__3}

| 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 138. Paramètres]

{#r_GlideRecord-_query_Object_Object__id_z1c_ptd_lpb} {#r_GlideRecord-_query_Object_Object__table_dvc_s5q_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 139. Renvoie]

{#r_GlideRecord-_query_Object_Object__table_dvc_s5q_dt}  
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 qui incluent 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 {#r_GlideRecord-_query_Object_Object__section_u4j_xcs_mcb}

Pour utiliser la méthode _query() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [_query().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#SGR-_query_O_O "Exécute une requête sur la table en fonction des filtres spécifiés par des 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().")

## GlideRecord : queryNoDomain(champ de chaîne, valeur de chaîne) {#ariaid-title72}

Utilisé dans les instances séparées par domaine. Similaire à 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](https://servicenow-prod.fluidtopics.net/6iURyC0fU4q_DqfYMmSxOg#c_UsingGlideRecordToQueryTables "À l’aide des méthodes de l’API GlideRecord, vous pouvez renvoyer tous les enregistrements d’une table, renvoyer des enregistrements d’une table qui satisfont à des conditions spécifiques ou renvoyer des enregistrements qui incluent une chaîne à partir d’une seule table ou de plusieurs tables dans un groupe d’index de texte.").
{#r_GlideRecord-queryNoDomain_Object_Object__id_n1d_1jk_lpb__entry__3}

| 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 140. Paramètres]

{#r_GlideRecord-queryNoDomain_Object_Object__id_n1d_1jk_lpb} {#r_GlideRecord-queryNoDomain_Object_Object__table_w2k_25q_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 141. Renvoie]

{#r_GlideRecord-queryNoDomain_Object_Object__table_w2k_25q_dt}  
Cet exemple montre comment interroger la table d'incidents pour tous les domaines.

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

## GlideRecord : restoreLocation() {#ariaid-title73}

Définit l'enregistrement actuel comme étant l'enregistrement qui a été enregistré avec saveLocation(). Si saveLocation() n'a pas été appelé, l'enregistrement actuel est défini sur le premier enregistrement du GlideRecord.
{#r_GlideRecord-restoreLocation_Boolean__table_vgz_jvq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 142. Paramètres]

{#r_GlideRecord-restoreLocation_Boolean__table_vgz_jvq_dt} {#r_GlideRecord-restoreLocation_Boolean__table_wgz_jvq_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 143. Renvoie]

{#r_GlideRecord-restoreLocation_Boolean__table_wgz_jvq_dt}  
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() {#ariaid-title74}

Enregistre le numéro de ligne actuel afin que vous puissiez revenir à cet emplacement à l'aide de la méthode restoreLocation().
{#r_GlideRecord-saveLocation__table_xpb_zvq_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 144. Paramètres]

{#r_GlideRecord-saveLocation__table_xpb_zvq_dt} {#r_GlideRecord-saveLocation__table_ypb_zvq_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 145. Renvoie]

{#r_GlideRecord-saveLocation__table_ypb_zvq_dt}  
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) {#ariaid-title75}

Définit un marqueur indiquant si la prochaine action de base de données (insérer, mettre à jour, supprimer) doit être abandonnée.
À utiliser dans une règle métier `onBefore` pour empêcher l'exécution de 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 l'exécution des règles métier suivantes. L'appel de cette méthode empêche uniquement l'action de base de données de se produire.
{#r_GlideRecord-setAbortAction_Boolean__table_dch_kgw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| b | Booléen | Vrai pour abandonner l'action suivante ou faux pour autoriser l'action suivante. |
[Tableau 146. Paramètres]

{#r_GlideRecord-setAbortAction_Boolean__table_dch_kgw_dt} {#r_GlideRecord-setAbortAction_Boolean__table_ech_kgw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 147. Renvoie]

{#r_GlideRecord-setAbortAction_Boolean__table_ech_kgw_dt}  

    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 {#r_GlideRecord-setAbortAction_Boolean__section_qbn_bgs_mcb}

Pour utiliser la méthode setAbortAction() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [setAbortAction().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordSetAbortAction_Boolean "Définit un marqueur indiquant si la prochaine action de base de données (insérer, mettre à jour, supprimer) doit être abandonnée. Ceci est souvent utilisé dans les règles métier.")

## GlideRecord : setDisplayValue(nom de chaîne, valeur de l'objet) {#ariaid-title76}

Définit un champ spécifié, ou un attribut dans un magasin d'attributs dynamique, 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.
{#r_GlideRecord-setDisplayValue_String_Object__table_ijf_wgw_dt__entry__3}{#r_GlideRecord-setDisplayValue_String_Object__DynS-name-entry}{#r_GlideRecord-setDisplayValue_String_Object__DynS-value-entry}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Nom du champ dont vous souhaitez définir la valeur ou le chemin d'accès à un attribut dans un magasin d'attributs dynamique. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
| 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 Glide * GlideDateTime * Entier * Chaîne |
[Tableau 148. Paramètres]

{#r_GlideRecord-setDisplayValue_String_Object__table_ijf_wgw_dt} {#r_GlideRecord-setDisplayValue_String_Object__table_jjf_wgw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 149. Renvoie]

{#r_GlideRecord-setDisplayValue_String_Object__table_jjf_wgw_dt}  
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 dynamique.

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

## GlideRecord : setDynamicAttributeValue(String fullPath, valeur de l'objet) {#ariaid-title77}

Définit la valeur de l'attribut dynamique situé sur un chemin spécifié.
{#GR-setDynamicAttributeValue_S_O__table_ynk_tdx_1bc__entry__3}

| Nom | Type | Description |
|-|-|-|
| fullPath (en anglais seulement) | Chaîne | Chemin d'accès à utiliser pour localiser l'attribut dynamique souhaité. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
| valide | Objet | Valeur à laquelle attribuer l'attribut dynamique spécifié. La valeur transmise doit appartenir à l'un des types de données suivants : * Booléen (vrai/faux) * Décimal * Nombre à virgule flottante * Date Glide * GlideDateTime * Entier * Chaîne {#GR-setDynamicAttributeValue_S_O__DynS-valid_data_types-ul} |
[Tableau 150. Paramètres]

{#GR-setDynamicAttributeValue_S_O__table_ynk_tdx_1bc} {#GR-setDynamicAttributeValue_S_O__table_znk_tdx_1bc__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si l'attribut dynamique a été mis à jour avec succès. 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é. |
[Tableau 151. Renvoie]

{#GR-setDynamicAttributeValue_S_O__table_znk_tdx_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setValue('inc_dynamic_groups', '78db044fc4b44210f8770961513dd7fe'); //Sysid of cars dimensions group
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->color","black");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->make","Honda");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->model","CRV");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->luxury",false);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->cost",20000);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->avg_mpg",28.4);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->date_purchased", new GlideDateTime());
    gr_Inc.setValue("inc_dynamic_schema->cars->total_miles", 10000.12345);
    gr_Inc.insert();

## GlideRecord : setDynamicAttributeValue(String dynamicAttributeField, String groupAttrPath, Object value) {#ariaid-title78}

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é.
{#GR-setDynamicAttributeValue_S_S_O__table_l12_f2x_1bc__entry__3}{#GR-setDynamicAttributeValue_S_S_O__DynS-dynamicAttributeField-entry}

| Nom | Type | Description |
|-|-|-|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l'attribut dynamique. |
| attributePath | Chaîne | Chemin d'accès de l'attribut à utiliser pour localiser l'attribut de schéma dynamique associé. Format : `<< group_name->attr_name >>` * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ Nom de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\] ou dans le champ Groupe de la table Attribut dynamique \[dynamic_attribute\]. * `attr_name` : nom de l'attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique \[dynamic_attribute\]. Par exemple : `<< car->color >>` |
| valide | Objet | Valeur à laquelle attribuer l'attribut dynamique spécifié. La valeur transmise doit appartenir à l'un des types de données suivants : * Booléen (vrai/faux) * Décimal * Nombre à virgule flottante * Date Glide * GlideDateTime * Entier * Chaîne {#GR-setDynamicAttributeValue_S_S_O__DynS-valid_data_types-ul} |
[Tableau 152. Paramètres]

{#GR-setDynamicAttributeValue_S_S_O__table_l12_f2x_1bc} {#GR-setDynamicAttributeValue_S_S_O__table_m12_f2x_1bc__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si l'attribut dynamique a été mis à jour avec succès. 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 paramètres et groupAttrPath contiennent des dynamicAttributeField données valides. |
[Tableau 153. Renvoie]

{#GR-setDynamicAttributeValue_S_S_O__table_m12_f2x_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'car->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', 'car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'car->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 de l'objet) {#ariaid-title79}

Définit la valeur d'affichage de l'attribut dynamique situé sur un chemin spécifié.
{#GR-setDynAttributeDisplayValue_S_O__table_g4h_s2x_1bc__entry__3}

| Nom | Type | Description |
|-|-|-|
| fullPath (en anglais seulement) | Chaîne | Chemin d'accès à utiliser pour localiser l'attribut dynamique dont vous souhaitez mettre à jour la valeur d'affichage. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. |
| valide | Objet | Valeur d'affichage à laquelle attribuer l'attribut dynamique spécifié. La valeur transmise doit appartenir à l'un des types de données suivants : * Booléen (vrai/faux) * Décimal * Nombre à virgule flottante * Date Glide * GlideDateTime * Entier * Chaîne {#GR-setDynAttributeDisplayValue_S_O__DynS-valid_data_types-ul} |
[Tableau 154. Paramètres]

{#GR-setDynAttributeDisplayValue_S_O__table_g4h_s2x_1bc} {#GR-setDynAttributeDisplayValue_S_O__table_h4h_s2x_1bc__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si la valeur d'affichage de l'attribut dynamique a été mise à jour avec succès. Valeurs possibles : * true : 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é. |
[Tableau 155. Renvoie]

{#GR-setDynAttributeDisplayValue_S_O__table_h4h_s2x_1bc}  
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->cars->date_purchased', '2023-03-31 08:54:26');

## GlideRecord : setDynamicAttributeDisplayValue(String dynamicAttributeField, String groupAttrPath, Object value) {#ariaid-title80}

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é.
{#GR-setDynAttributeDisplayValue_S_S_O__table_l1k_1fx_1bc__entry__3}{#GR-setDynAttributeDisplayValue_S_S_O__DynS-dynamicAttributeField-entry}

| Nom | Type | Description |
|-|-|-|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l'attribut dynamique. |
| groupAttrPath (en anglais seulement) | Chaîne | Chemin d'accès de l'attribut à utiliser pour localiser l'attribut de schéma dynamique associé. Format : `<< group_name->attr_name >>` * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ Nom de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\] ou dans le champ Groupe de la table Attribut dynamique \[dynamic_attribute\]. * `attr_name` : nom de l'attribut dynamique au sein du groupe dynamique. Situé dans le champ Nom de la table Attribut dynamique \[dynamic_attribute\]. Par exemple : `<< car->color >>` |
| valide | Objet | Valeur d'affichage à laquelle attribuer l'attribut dynamique spécifié. La valeur transmise doit appartenir à l'un des types de données suivants : * Booléen (vrai/faux) * Décimal * Nombre à virgule flottante * Date Glide * GlideDateTime * Entier * Chaîne {#GR-setDynAttributeDisplayValue_S_S_O__DynS-valid_data_types-ul} |
[Tableau 156. Paramètres]

{#GR-setDynAttributeDisplayValue_S_S_O__table_l1k_1fx_1bc} {#GR-setDynAttributeDisplayValue_S_S_O__table_m1k_1fx_1bc__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant si la valeur d'affichage de l'attribut dynamique a été mise à jour avec succès. Valeurs possibles : * true : 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 paramètres et groupAttrPath contiennent des dynamicAttributeField données valides. |
[Tableau 157. Renvoie]

{#GR-setDynAttributeDisplayValue_S_S_O__table_m1k_1fx_1bc}  
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', 'cars->date_purchased', '2023-03-31 08:54:26');

## GlideRecord : setDynamicAttributeValues(String dynamicAttributeField, valeurs GlideDynamicAttributeStore) {#ariaid-title81}

Définit une ou plusieurs valeurs d'attribut dynamique avec des valeurs spécifiées dans l'objet GlideDynamicAttributeStore transmis.
Cette méthode met uniquement à jour les attributs et les valeurs transmis en tant qu'arguments. Les attributs et les valeurs du GlideRecord qui ne sont pas spécifiés ne sont pas affectés par cet appel. Tous les groupes, attributs ou valeurs non valides sont ignorés. Consultez les messages du journal pour connaître d'éventuelles informations sur les erreurs.
{#GR-setDynAttributeValues_S_O__table_r5l_4fx_1bc__entry__3}

| Nom | Type | Description |
|-|-|-|
| dynamicAttributeField | Chaîne | Nom du champ dans la table actuelle qui contient le [schéma dynamique](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
| valeurs | [GlideDynamicAttributeStore](https://servicenow-prod.fluidtopics.net/BBuuWEHqgBnnfFVKDbxaIw#GlideDynamicAttStoreAPI "L’API GlideDynamicAttributeStore permet d’accéder à un nouveau type de données de magasin d’attributs dynamiques intégré, similaire à d’autres types de données tels que chaîne, date ou date/heure.") | Objet GlideDynamicAttributeStore qui contient 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 Glide * GlideDateTime * Entier * Chaîne {#GR-setDynAttributeValues_S_O__ul_qjm_bc2_bbc} |
[Tableau 158. Paramètres]

{#GR-setDynAttributeValues_S_O__table_r5l_4fx_1bc} {#GR-setDynAttributeValues_S_O__table_s5l_4fx_1bc__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 159. Renvoie]

{#GR-setDynAttributeValues_S_O__table_s5l_4fx_1bc}  
L'exemple de code suivant montre comment appeler cette méthode.

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('group->attribute1', 'Apple');
    das.setDynamicAttributeValue('group->attribute2', 1234);

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    gr_Inc.next();
    gr_Inc.setDynamicAttributeValues(das);

## GlideRecord : setForceUpdate(force booléenne) {#ariaid-title82}

Met à jour l'enregistrement même si les champs n'ont pas changé.
{#r_GlideRecord-setForceUpdate_Boolean__table_eds_lhw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| force | Booléen | Vrai pour mettre à jour même si les champs n'ont pas changé, sinon faux. |
[Tableau 160. Paramètres]

{#r_GlideRecord-setForceUpdate_Boolean__table_eds_lhw_dt} {#r_GlideRecord-setForceUpdate_Boolean__table_fds_lhw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 161. Renvoie]

{#r_GlideRecord-setForceUpdate_Boolean__table_fds_lhw_dt}  
Cet exemple montre comment forcer la mise à jour d'un enregistrement de 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) {#ariaid-title83}

Définit le nombre maximal d'enregistrements à renvoyer dans le GlideRecord à partir d'une requête.
{#r_GlideRecord-setLimit_Number__table_pcb_whw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| limite | Numéro | Limite pour les enregistrements à extraire. |
[Tableau 162. Paramètres]

{#r_GlideRecord-setLimit_Number__table_pcb_whw_dt} {#r_GlideRecord-setLimit_Number__table_qcb_whw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 163. Renvoie]

{#r_GlideRecord-setLimit_Number__table_qcb_whw_dt}  
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 {#r_GlideRecord-setLimit_Number__section_vrk_dgs_mcb}

Pour utiliser la méthode setLimit() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [setLimit().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordSetLimit_Number "Définit la limite du nombre d’enregistrements extraits par la requête GlideRecord.")

## GlideRecord : setLocation(Number rowNumber) {#ariaid-title84}

Définit l'emplacement de ligne actuel sur la valeur spécifiée.
{#r_GlideRecord-setLocation_Number__table_tjd_j3w_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Numéro de ligne | Numéro | Numéro de ligne à définir comme ligne actuelle. |
[Tableau 164. Paramètres]

{#r_GlideRecord-setLocation_Number__table_tjd_j3w_dt} {#r_GlideRecord-setLocation_Number__table_ujd_j3w_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 165. Renvoie]

{#r_GlideRecord-setLocation_Number__table_ujd_j3w_dt}  
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() {#ariaid-title85}

Génère un nouveau GUID et le définit comme ID unique (sys_id) pour l'enregistrement actuel.
Cette fonction s'applique uniquement aux nouveaux enregistrements. Vous ne pouvez pas modifier le GUID d'un enregistrement existant.
{#r_GlideRecord-setNewGuid__table_mjn_r3w_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 166. Paramètres]

{#r_GlideRecord-setNewGuid__table_mjn_r3w_dt} {#r_GlideRecord-setNewGuid__table_njn_r3w_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | Sys_id de l'enregistrement actuel. |
[Tableau 167. Renvoie]

{#r_GlideRecord-setNewGuid__table_njn_r3w_dt}  
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) {#ariaid-title86}

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.
{#r_GlideRecord-setNewGuidValue_String__table_qgt_1jw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| guid | Chaîne | Valeur du nouveau GUID. |
[Tableau 168. Paramètres]

{#r_GlideRecord-setNewGuidValue_String__table_qgt_1jw_dt} {#r_GlideRecord-setNewGuidValue_String__table_rgt_1jw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 169. Renvoie]

{#r_GlideRecord-setNewGuidValue_String__table_rgt_1jw_dt}  
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 correspondante dans le périmètre : [setNewGuidValue().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordSetNewGuidValue_String "Définit la valeur sys_id de l’enregistrement actuel.")

## GlideRecord : setQueryReferences(Boolean queryReferences) {#ariaid-title87}

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.
{#r_GlideRecord-setQueryReferences_Boolean__table_zyr_ljw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| Références requeryReference | Booléen | Marqueur indiquant l'heure des données à générer. Valeurs valides : * true : générer une chaîne de noms d'affichage. * false : générer une chaîne de sys_ids. {#r_GlideRecord-setQueryReferences_Boolean__ul_mts_315_1nb} |
[Tableau 170. Paramètres]

{#r_GlideRecord-setQueryReferences_Boolean__table_zyr_ljw_dt} {#r_GlideRecord-setQueryReferences_Boolean__table_azr_ljw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 171. Renvoie]

{#r_GlideRecord-setQueryReferences_Boolean__table_azr_ljw_dt}  

    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) {#ariaid-title88}

Désactive ou active l'exécution de n'importe quel moteur (règles d'approbation/règles d'affectation).
Avertissement :  
La désactivation du fonctionnement des moteurs peut avoir un impact significatif sur votre ServiceNow® instance et son fonctionnement. Assurez-vous de tester minutieusement ce changement avant de le déployer en production.
{#r_GlideRecord-setUseEngines_Boolean__table_gdy_vjw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| e | Booléen | Marqueur indiquant s'il faut activer ou désactiver le fonctionnement d'un moteur. Valeurs valides : * true : activer les moteurs * false : désactiver les moteurs {#r_GlideRecord-setUseEngines_Boolean__ul_rb1_bwx_zqb} |
[Tableau 172. Paramètres]

{#r_GlideRecord-setUseEngines_Boolean__table_gdy_vjw_dt} {#r_GlideRecord-setUseEngines_Boolean__table_hdy_vjw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 173. Renvoie]

{#r_GlideRecord-setUseEngines_Boolean__table_hdy_vjw_dt}  
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 de l'objet) {#ariaid-title89}

Définit le champ spécifié, ou un attribut dans un magasin d'attributs dynamique, sur une valeur spécifiée.
Normalement, un script effectue une affectation directe, par exemple `now_GR.category = value`. Toutefois, si dans un script le nom de l'élément est une variable, 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 saisie.  
Si le paramètre de valeur 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 journaux. Utilisez [GlideElement.setJournalEntry()](https://servicenow-prod.fluidtopics.net/_Np8wuXGQIwxB8xMzo8~qA#c_GlideElementAPI "L’API GlideElement fournit un certain nombre de méthodes de script pratiques pour traiter les champs et leurs valeurs. Les méthodes GlideElement sont disponibles pour les champs de l’enregistrement Glide actuel.") à la place.  
Remarque :  
Si le module d'extension Entreprise de Chiffrement au niveau des colonnes 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](https://www.servicenow.com/docs/access?context=now-platform-encryption&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US).
{#r_GlideRecord-setValue_String_Object__table_yps_2kw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Nom du champ dont vous souhaitez définir la valeur ou le chemin d'accès à un attribut dans un magasin d'attributs dynamique. Format du chemin dynamique : `dyn_att_field->group_name->attribute_name` * `dyn_att_field` : nom d'un champ de magasin d'attributs dynamiques dans la table. * `group_name` : nom du groupe auquel l'attribut est associé. Situé dans le champ group_name de la table Groupe d'attributs dynamiques \[dynamic_attribute_group\]. * `attr_name` : nom de l'attribut dynamique. Situé dans le champ d'attribut de la table Attribut dynamique \[dynamic_attribute\]. Pour en savoir plus sur les attributs dynamiques, reportez-vous à la section [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
| 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 Glide * GlideDateTime * Entier * Chaîne {#r_GlideRecord-setValue_String_Object__ul_wrx_cb2_bbc} |
[Tableau 174. Paramètres]

{#r_GlideRecord-setValue_String_Object__table_yps_2kw_dt} {#r_GlideRecord-setValue_String_Object__table_zps_2kw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 175. Renvoie]

{#r_GlideRecord-setValue_String_Object__table_zps_2kw_dt}  
Cet exemple montre comment définir la valeur du champ É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 définir la valeur d'un attribut dynamique.

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setValue('inc_dynamic_groups', '78db044fc4b44210f8770961513dd7fe'); //Sysid of cars dimensions group
    gr_Inc.setValue("inc_dynamic_schema->cars->color", "black");
    gr_Inc.setValue("inc_dynamic_schema->cars->make", "Honda"); 
    gr_Inc.setValue("inc_dynamic_schema->cars->model", "CRV");
    gr_Inc.setValue("inc_dynamic_schema->cars->luxury", false); 
    gr_Inc.setValue("inc_dynamic_schema->cars->cost", 25000);
    gr_Inc.setValue("inc_dynamic_schema->cars->avg_mpg", 28.4);
    gr_Inc.setValue("inc_dynamic_schema->cars->date_purchased", new GlideDateTime());
    gr_Inc.setValue("inc_dynamic_schema->cars->total_miles", 10000.12345);
    gr_Inc.insert();

### Équivalent dans le champ d'application

Pour utiliser la méthode setValue() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [setValue().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordSetValue_String_Object "Définit la valeur du champ avec le nom spécifié sur la valeur spécifiée.")

## GlideRecord : setWorkflow(Boolean e) {#ariaid-title90}

Active ou désactive l'exécution de règles métier qui pourraient normalement être déclenchées par les actions suivantes. Si le e paramètre est défini sur faux, une insertion/mise à jour ne fait pas l'objet d'un audit. L'audit se produit uniquement lorsque le paramètre est défini sur vrai pour une opération GlideRecord.
Remarque :  
La méthode setWorkflow() est ignorée lors de l'utilisation ultérieure des méthodes deleteProblem() ou deleteMultiple() pour effectuer une suppression 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 minutieusement ce changement avant de le déployer en production.
{#r_GlideRecord-setWorkFlow_Boolean__table_xdz_skw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| e | Booléen | Marqueur indiquant s'il faut activer ou désactiver l'exécution des règles métier. Valeurs valides : * true : activer les règles métier * false : désactiver les règles métier {#r_GlideRecord-setWorkFlow_Boolean__ul_rb1_bwx_zqb} |
[Tableau 176. Paramètres]

{#r_GlideRecord-setWorkFlow_Boolean__table_xdz_skw_dt} {#r_GlideRecord-setWorkFlow_Boolean__table_ydz_skw_dt__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 177. Renvoie]

{#r_GlideRecord-setWorkFlow_Boolean__table_ydz_skw_dt}  

    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 {#r_GlideRecord-setWorkFlow_Boolean__section_hhf_4gs_mcb}

Pour utiliser la méthode setWorkflow() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [setWorkflow().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordSetWorkflow_Boolean "Active ou désactive l’exécution des règles métier, des moteurs de script et de l’audit.")

## GlideRecord : mettre à jour (motif de l'objet) {#ariaid-title91}

Met à jour le GlideRecord avec toutes les modifications apportées. Si l'enregistrement n'existe pas, il est inséré.
{#r_GlideRecord-update_Object__table_ovg_wlw_dt__entry__3}

| Nom | Type | Description |
|-|-|-|
| motif | Objet | Facultatif. Raison de la mise à jour. Le motif apparaît dans l'enregistrement d'audit. |
[Tableau 178. Paramètres]

{#r_GlideRecord-update_Object__table_ovg_wlw_dt} {#r_GlideRecord-update_Object__table_pvg_wlw_dt__entry__2}

| Type | Description |
|-|-|
| Chaîne | sys_id du nouvel enregistrement ou de l'enregistrement de mise à jour. Renvoie null si la mise à jour échoue. |
[Tableau 179. Renvoie]

{#r_GlideRecord-update_Object__table_pvg_wlw_dt}  
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 {#r_GlideRecord-update_Object__section_hmx_sgs_mcb}

Pour utiliser la méthode update() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le champ d'application : [update().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordUpdate_String "Met à jour le GlideRecord avec toutes les modifications apportées. Si l’enregistrement n’existe pas déjà, il est inséré.")

## GlideRecord : updateMultiple() {#ariaid-title92}

Met à jour chaque GlideRecord dans une requête déclarée avec un ensemble spécifié de changements.
Pour plus d'informations sur l'ajout d'entrées de journal, reportez-vous à la méthode [setJournalEntry().](https://servicenow-prod.fluidtopics.net/_Np8wuXGQIwxB8xMzo8~qA#r_GlideElement-setJournalEntry_Object_String "Ajoute une entrée de journal et un auteur en tant que note de travail ou champ de commentaire.")

La propriété système glide.db.forced.chunk.threshold définit le seuil au-dessus duquel forcer la suppression et la mise à jour des enregistrements de blocs. Le découpage permet d'éviter que des suppressions de clés non primaires sur d'énormes tables n'entraînent des problèmes de réplication. Pour plus d'informations, consultez [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).
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.
{#r_GlideRecord-updateMultiple__table_qwk_ysb_2r__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 180. Paramètres]

{#r_GlideRecord-updateMultiple__table_qwk_ysb_2r} {#r_GlideRecord-updateMultiple__table_fj2_htb_2r__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 181. Renvoie]

{#r_GlideRecord-updateMultiple__table_fj2_htb_2r}  
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();

### Équivalent dans le champ d'application {#r_GlideRecord-updateMultiple__section_ncr_rgs_mcb}

Pour utiliser la méthode updateMultiple() dans une application incluse dans le périmètre, utilisez la méthode correspondante dans le périmètre : [updateMultiple().](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#r_ScopedGlideRecordUpdateMultiple "Met à jour chaque GlideRecord dans une requête déclarée avec un ensemble spécifié de changements.")

## GlideRecord : updateWithReferences(motif de l'objet) {#ariaid-title93}

Met à jour un enregistrement et insère ou met à jour tout enregistrement connexe avec les informations fournies.
{#r_GlideRecord-updateWithReferences_Object__id_ltp_jfd_3zb__entry__3}

| Nom | Type | Description |
|-|-|-|
| motif | Objet | Raison des mises à jour. Le motif est affiché dans l'enregistrement d'audit. |
[Tableau 182. Paramètres]

{#r_GlideRecord-updateWithReferences_Object__id_ltp_jfd_3zb} {#r_GlideRecord-updateWithReferences_Object__id_r1d_kfd_3zb__entry__2}

| Type | Description |
|-|-|
| Chaîne | sys_id de l'enregistrement en cours de mise à jour. |
[Tableau 183. Renvoie]

{#r_GlideRecord-updateWithReferences_Object__id_r1d_kfd_3zb}  
Si vous traitez un incident où l'ID de l'appelant est défini pour référencer sys_user'enregistrement \<\< John Doe \>\>, le code suivant met à jour l'enregistrement utilisateur de John Doe. Dans le cas du traitement d'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 d'ID d'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();
    }


