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


---

# GlideQuery : inclus, global

# GlideQuery : inclus, global {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 30 minutes de lecture

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.

L'include de script GlideQuery vous permet d'effectuer les opérations suivantes :  
* Utilisez des objets et des types JavaScript standard pour les requêtes et les résultats.
* Diagnostiquez rapidement les erreurs de requête grâce à des vérifications supplémentaires et effacez les messages d'erreur.
* Simplifiez votre code en évitant les modèles de requêtes passe-partout.
* Évitez les problèmes de performances courants sans avoir besoin d'une connaissance approfondie de GlideRecord.
{#GlideQueryGlobalAPI__ul_mkt_thc_nmb}  
Utilisez l'include de script GlideQuery dans les scripts côté serveur inclus dans le champ d'application ou globaux. Lorsqu'il est utilisé dans une application incluse dans le périmètre, il doit être précédé du périmètre global.

    new global.GlideQuery('sys_user')
    // ...

Cet include de script nécessite le module d'extension GlideQuery \[com.sn_glidequery\].

## Implémentation {#GlideQueryGlobalAPI__section_wqk_wwv_wmb}

Cet include de script fonctionne conjointement avec l'API [de flux](https://servicenow-prod.fluidtopics.net/1eHj5lwzRK2Ma3oTYktiBQ#StreamGlobalAPI "L’API de flux fournit des méthodes pour interagir avec un flux d’éléments tels que des enregistrements. Par exemple, vous pouvez utiliser la méthode forEach() pour mettre à jour l’état de chaque enregistrement dans un flux renvoyé par l’API GlideQuery .") et l'API [facultative](https://servicenow-prod.fluidtopics.net/v3KQfPt~CEd1QIbEnW0pgg#OptionalGlobalAPI "L’API facultative interagit avec un enregistrement unique renvoyé par les API GlideQuery, Stream ou GlideRecord , même s’il n’existe pas. Écrivez des scripts moins susceptibles d’entraîner une erreur en gérant des résultats de requête nuls ou non définis.") dans un Modèle de générateur où la méthode appelle la chaîne, chaque méthode s'appuyant sur le résultat retourné de la méthode précédente. Utilisez des méthodes pour définir les attributs de la requête. Les méthodes ne s'exécutent pas tant que vous n'avez pas appelé une méthode terminal, une méthode qui renvoie un résultat de requête, ce qui vous permet de définir les exigences de la requête avant de l'exécuter.

Si la requête ne renvoie qu'un seul enregistrement, le système enveloppe le résultat dans un objet facultatif. Si la requête renvoie un flux d'enregistrements, le système enveloppe le résultat dans un objet Stream. Ces objets vous permettent de gérer le résultat à l'aide d'un ensemble de méthodes dans chaque API.

Par exemple, ce script effectue une requête sur la table Tâche, regroupe les enregistrements par priorité et renvoie chaque priorité dont le total des réaffectations est supérieur à quatre.{#GlideQueryGlobalAPI__code-ex-desc}  

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });

Sortie :

    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

## Gestion des erreurs {#GlideQueryGlobalAPI__section_kpr_hgc_nmb}

L'include de script GlideQuery lève une erreur lorsque votre requête présente un problème et inclut une explication claire pour vous guider. Cet include de script vérifie les éléments suivants :  
* Champs non valides
* Types de valeurs non valides pour un champ
* Valeurs non valides pour les champs de choix
* Opérateurs de requête non valides
{#GlideQueryGlobalAPI__ul_kpn_wwb_nmb}

Par exemple, l'exemple de code suivant génèrerait une erreur, car le champ interrogé n'existe pas dans la table.  

    new global.GlideQuery('task')
        .where('id', '4717dfe5a9fe198100450448b2404c16') // should be 'sys_id'
        .select('description', 'severity')
        .toArray(100);
      // Error: Unable to find field 'id' in table 'task'. Known fields: active, activity_due, ...

Cet exemple de code génèrerait une erreur, car le type de données de l'un des arguments est incorrect.  

    new global.GlideQuery('task')
        .where('priority', 'one') // priority is an integer (should be 1)
        .select('description', 'severity')
        .toArray(100);
      // Error: Unable to match value ['one'] with field 'priority' in table 'task'. Expecting type 'integer'

## Réutiliser {#GlideQueryGlobalAPI__section_mwz_y2d_smb}

Étant donné que les objets GlideQuery sont immuables, vous pouvez les réutiliser ultérieurement dans d'autres parties de votre code. Par exemple, ce script crée une requête, puis utilise l'objet GlideQuery ultérieurement pour générer un rapport.  

    var highPriorityTasks = new global.GlideQuery('task')
        .where('active', true)
        .where('priority', 1);

    generateReport(highPriorityTasks);
    notifyOwners(highPriorityTasks);
    var avgReassignmentCount = highPriorityTasks
        .avg('reassignment_count')
        .orElse(0)

## Limitations {#GlideQueryGlobalAPI__section_qtg_rxb_nmb}

Le script include GlideQuery ne prend pas en charge :  
* Lire ou écrire sur des tables qui n'autorisent pas l'accès à partir d'autres périmètres.
* Lecture de requêtes codées.
* Les objets GlideDate ou GlideDateTime, qui sont lus comme des chaînes JavaScript.
* Champs de devises FX.
* Mise à jour des types de champ journal.
* Requêtes avec une logique conditionnelle ambiguë. Par exemple, la requête suivante n'est pas claire car le système ne sait pas s'il faut exécuter `(active = vrai ET nom != null) OU last_name = Luddy` ou `active = vrai ET (nom != null OU last_name = Luddy).`

      var user = new global.GlideQuery('sys_user')
        .where('active', true)
        .whereNotNull('name')
        .orWhere('last_name', 'Luddy')
        .selectOne()
        .get()

  Voir la méthode [where()](https://servicenow-prod.fluidtopics.net/W3UzGs6pPMoNChHE_ZtXQA#GQ-where_S_S "Ajoute une clause Where à la requête qui renvoie des valeurs basées sur une condition donnée.") pour comprendre comment imbriquer une requête enfant à la place.
{#GlideQueryGlobalAPI__ul_ctl_mzb_nmb}  
Remarque :  
Étant donné que l'include de script GlideQuery convertit les objets GlideRecord en objets JavaScript standard, l'exécution des requêtes peut prendre plus de temps. Pour réduire les problèmes de performances, évitez de créer des boucles qui itèrent sur un grand nombre d'enregistrements.

## Méthodes intermédiaires et terminales dans GlideQuery {#GlideQueryGlobalAPI__section_sdj_w3s_s5b}

L'include de script GlideQuery utilise deux catégories de méthodes : intermédiaire et terminale. Les méthodes intermédiaires sont les méthodes qui renvoient un [flux](https://servicenow-prod.fluidtopics.net/1eHj5lwzRK2Ma3oTYktiBQ#StreamGlobalAPI "L’API de flux fournit des méthodes pour interagir avec un flux d’éléments tels que des enregistrements. Par exemple, vous pouvez utiliser la méthode forEach() pour mettre à jour l’état de chaque enregistrement dans un flux renvoyé par l’API GlideQuery ."), une API utilisée pour interagir avec un flux d'éléments comme des enregistrements, permettant un style de syntaxe fluide où les appels sont enchaînés. Les méthodes terminales sont les méthodes qui ne renvoient pas de flux et arrêtent donc la chaîne d'appels de méthode Stream .

Dans l'include de script GlideQuery , des méthodes telles que where(),orderBy() et disableWorkflow() sont des méthodes intermédiaires qui renvoient un nouvel objet GlideQuery. De même, les méthodes terminales les plus populaires du script include GlideQuery , select() et selectOne(), sont des méthodes terminales. Ces méthodes sont appelées lorsque GlideQuery a terminé d'être configuré et qu'il est prêt à commencer à traiter les enregistrements. Il est important de garder à l'esprit les différences entre ces deux types de méthodes lors de la configuration des appels à l'include de script GlideQuery en fonction de vos cas d'utilisation spécifiques. Pour plus d'informations sur les méthodes intermédiaires et terminales, consultez l'article [GlideQuery - Traitement de flux Partie 1](https://developer.servicenow.com/blog.do?p=/post/glidequery-p6/).

Les méthodes suivantes sont classées comme intermédiaires :

* aggregate(Chaîne, aggregateType, champ de chaîne)
* disableAutoSysFields()
* disableWorkflow()
* forceUpdate()
* groupBy (champs de chaînes)
* having(String aggregateType, champ de chaîne, opérateur de chaîne, valeur de numéro)
* limit(limite de nombre)
* orderBy(champs de chaînes)
* orderByDesc(String fieldOrAggregate, String field)
* orWhere(String fieldOrQuery, opérateur de chaîne, n'importe quelle valeur)
* ouWhereNotNull(champ de chaîne)
* orWhereNull(champ de chaîne)
* where(String fieldOrQuery, Opérateur de chaîne, N'importe quelle valeur)
* whereNotNull(champ de chaîne)
* whereNull(champ de chaîne)
* withAcls()

{#GlideQueryGlobalAPI__ul_nfz_knc_w5b}

Les méthodes suivantes sont classées comme terminales :

* avg (champ de chaîne)
* count()
* deleteMultiple()
* get(String key, Array selectedFields)
* getBy(Objet cléValeurs, Tableau selectedFields)
* insérer(Objet cléValeurs, Objet selectedFields)
* insertOrUpdate(Object changes, Object selectedFields)
* max(Champ de chaîne)
* min(Champ de chaîne)
* select(champs de chaînes)
* selectOne(champs de chaîne)
* somme(champ de chaîne)
* toGlideRecord()
* mettre à jour(Objet modifié, objet selectedFields)
* updateMultiple(L'objet change)

{#GlideQueryGlobalAPI__ul_d5p_t4c_w5b}  
Remarque :  
parse(String table, String encoded_query) n'est ni intermédiaire ni terminal, mais statique.

## GlideQuery : GlideQuery (table de chaînes) {#ariaid-title2}

Instancie un objet GlideQuery utilisé pour générer et exécuter des requêtes d'enregistrement.
{#GQ-GlideQuery_S_O__table_z3r_skc_nmb__entry__3}

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

{#GQ-GlideQuery_S_O__table_z3r_skc_nmb} {#GQ-GlideQuery_S_O__table_l23_ps3_yr__entry__2}

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

{#GQ-GlideQuery_S_O__table_l23_ps3_yr}  
Cet exemple instancie une requête de la table Utilisateur.

    var query = new global.GlideQuery('sys_user');

## GlideQuery : agrégat(String, aggregateType, champ de chaîne) {#ariaid-title3}

Regroupe un champ à l'aide d'une fonction d'agrégation spécifiée.
Utilisez cette méthode pour construire des requêtes qui s'agrègent sur plusieurs champs ou utilisent plusieurs fonctions d'agrégation, ou si vous devez utiliser la méthode groupBy(). Si vous ne souhaitez regrouper qu'un seul champ avec une seule fonction, et que vous n'avez pas besoin d'utiliser groupBy(), utilisez plutôt l'une de ces méthodes :  
* avg()
* min()
* max()
* count()
{#GQ-aggregate_S_S__ul_fxl_wyl_4mb}
{#GQ-aggregate_S_S__table_thy_rmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| type d'agrégat | Chaîne | Type de fonction d'agrégation à exécuter. Les options incluent : * `min` : renvoie la plus petite valeur de tous les enregistrements correspondants. * `max` : renvoie la valeur la plus élevée de tous les enregistrements correspondants. * `sum` : renvoie la somme de tous les enregistrements correspondants. * `avg` : renvoie la moyenne de tous les enregistrements correspondants. * `count` : renvoie le nombre d'enregistrements correspondants. {#GQ-aggregate_S_S__agg-type-options} |
| champ | Chaîne | Champ sur lequel effectuer l'opération. |
[Tableau 3. Paramètres]

{#GQ-aggregate_S_S__table_thy_rmc_nmb} {#GQ-aggregate_S_S__table_uhy_rmc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 4. Renvoie]

{#GQ-aggregate_S_S__table_uhy_rmc_nmb}  
Ce script effectue une requête sur la table Tâche, regroupe les enregistrements par priorité et renvoie chaque priorité dont le total des réaffectations est supérieur à quatre.

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });

Sortie :

    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

## GlideQuery : avg (champ de chaîne) {#ariaid-title4}

Renvoie la moyenne agrégée d'un champ numérique donné.
Vous ne pouvez utiliser cette méthode que sur les champs des types suivants :

* Entier
* Long
* Nombre à virgule flottante
* Double
* Devise
{#GQ-avg_S__ul_ikp_2wl_qmb}
{#GQ-avg_S__table_lws_hmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ sur lequel effectuer l'opération. |
[Tableau 5. Paramètres]

{#GQ-avg_S__table_lws_hmc_nmb} {#GQ-avg_S__table_mws_hmc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet qui contient la moyenne agrégée du champ donné. |
[Tableau 6. Renvoie]

{#GQ-avg_S__table_mws_hmc_nmb}  
Cet exemple montre comment renvoyer le nombre moyen d'erreurs dans la table cmdb_ci.

    var faults = new global.GlideQuery('cmdb_ci')
        .avg('fault_count')
        .orElse(0);

    gs.info(JSON.stringify(faults));

Sortie :

    0.0037

## GlideQuery : count() {#ariaid-title5}

Renvoie le nombre d'enregistrements qui correspondent à la requête.
{#GQ-count__table_qs4_4mc_nmb__entry__3}

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

{#GQ-count__table_qs4_4mc_nmb} {#GQ-count__table_rs4_4mc_nmb__entry__2}

| Type | Description |
|-|-|
| Numéro | Nombre d'enregistrements qui correspondent à la requête. |
[Tableau 8. Renvoie]

{#GQ-count__table_rs4_4mc_nmb}  
Cet exemple renvoie le nombre d'enregistrements actifs dans la table Utilisateur.

    var userCount = new global.GlideQuery('sys_user')
        .where('active', true)
        .count();

Sortie :

    612

## GlideQuery : deleteMultiple() {#ariaid-title6}

Supprime tous les enregistrements de la table spécifiée par les clauses Where précédentes.
{#GQ-deleteMultiple__table_gyp_nlc_nmb__entry__3}

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

{#GQ-deleteMultiple__table_gyp_nlc_nmb} {#GQ-deleteMultiple__table_hyp_nlc_nmb__entry__2}

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

{#GQ-deleteMultiple__table_hyp_nlc_nmb}  
Cet exemple supprime tous les enregistrements actifs de la table Utilisateur dont le nom de famille est Jeter.

    var query = new global.GlideQuery('sys_user')
        .where('active', true)
        .where('last_name', 'Jeter')
        .deleteMultiple();

## GlideQuery : disableAutoSysFields() {#ariaid-title7}

Désactive la mise à jour des champs système ou des champs dont le nom commence par le préfixe `système` , tels que sys_created_on, sys_updated_on et sys_mod_count. S'applique uniquement à la requête spécifiée.
{#GQ-disableAutoSysFields__table_xnr_wlc_nmb__entry__3}

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

{#GQ-disableAutoSysFields__table_xnr_wlc_nmb} {#GQ-disableAutoSysFields__table_ynr_wlc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 12. Renvoie]

{#GQ-disableAutoSysFields__table_ynr_wlc_nmb}  
Cet exemple ajoute un enregistrement à la table de tâches, mais ne définit pas les champs système. Sans appeler cette méthode, l'exemple ci-dessous mettrait à jour sys_updated_on, sys_mod_count, etc.

    var query = new global.GlideQuery('task')
        .disableAutoSysFields()
        .insert({ description: 'example', priority: 1 });

## GlideQuery : disableWorkflow() {#ariaid-title8}

Désactive toutes les règles métier, tous les flux, tous les workflows ou tous les enregistrements d'audit qui pourraient être exécutés ou créés à la suite de la requête.
{#GQ-disableWorkflow__table_wdb_5lc_nmb__entry__3}

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

{#GQ-disableWorkflow__table_wdb_5lc_nmb} {#GQ-disableWorkflow__table_xdb_5lc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 14. Renvoie]

{#GQ-disableWorkflow__table_xdb_5lc_nmb}  
Cet exemple met à jour plusieurs enregistrements dans la table Tâche sans déclencher de processus business automatiques.

    var query = new global.GlideQuery('task')
        .disableWorkflow()
        .where('active', true)
        .updateMultiple({ priority: 1 });

## GlideQuery : forceUpdate() {#ariaid-title9}

Force la mise à jour de la base de données, même si aucun changement n'est apporté à l'enregistrement. Par exemple, vous pouvez utiliser cette méthode pour forcer l'exécution d'une règle métier.
{#GQ-forceUpdate__table_rqj_zlc_nmb__entry__3}

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

{#GQ-forceUpdate__table_rqj_zlc_nmb} {#GQ-forceUpdate__table_sqj_zlc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 16. Renvoie]

{#GQ-forceUpdate__table_sqj_zlc_nmb}  
Cet exemple force les mises à jour des enregistrements de tâches avec un certain sys_id.

    var forceUpdate = new global.GlideQuery('task')
        .forceUpdate()
        .where('sys_id', taskId)
        .update()

## GlideQuery : obtenir (clé de chaîne, tableau selectedFields) {#ariaid-title10}

Renvoie un enregistrement unique à partir de la requête.
{#GQ-get_S_O__table_u1k_flc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| key | Chaîne | Sys_id de l'enregistrement à renvoyer. |
| selectedFields | Tableau | Facultatif. Champs supplémentaires à retourner dans le résultat. Par défaut : le système renvoie toujours le sys_id. |
[Tableau 17. Paramètres]

{#GQ-get_S_O__table_u1k_flc_nmb} {#GQ-get_S_O__table_v1k_flc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 18. Renvoie]

{#GQ-get_S_O__table_v1k_flc_nmb}  
Exemple qui renvoie un enregistrement basé sur sys_id.

    var user = new global.GlideQuery('sys_user')
        .get('5137153cc611227c000bbd1bd8cd2005', ['first_name', 'last_name']) //Returns an Optional object.
        .orElse({ first_name: 'Default', last_name: 'User' }); //Method in the Optional class to return a default value.

    gs.info(JSON.stringify(user, null, 2));

Sortie :

    {
       "sys_id":"5137153cc611227c000bbd1bd8cd2005",
       "first_name":"Fred",
       "last_name":"Luddy"
    }

## GlideQuery : getBy(Object keyValues, Array selectedFields) {#ariaid-title11}

Renvoie un objet facultatif contenant un seul enregistrement basé sur un ensemble de paires nom-valeur à interroger. Suppose l'opérateur \<\< = \>\> pour chaque paire nom-valeur.
{#GQ-getBy_O_O__table_ift_dlc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Valeurs clés | Objet | Objet où les clés correspondent au nom des champs et où les valeurs correspondent aux valeurs à interroger. |
| selectedFields | Tableau | Facultatif. Champs supplémentaires à retourner dans le résultat. Par défaut : le système renvoie toujours le sys_id. |
[Tableau 19. Paramètres]

{#GQ-getBy_O_O__table_ift_dlc_nmb} {#GQ-getBy_O_O__table_jft_dlc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 20. Renvoie]

{#GQ-getBy_O_O__table_jft_dlc_nmb}  
Exemple qui renvoie un enregistrement en requérant le nom d'un utilisateur.

    var user = new global.GlideQuery('sys_user')
        .getBy({
            first_name: 'Fred',
            last_name: 'Luddy'
        }, ['first_name', 'last_name', 'city', 'active']) // select first_name, last_name, city, active
        .orElse({
            first_name: 'Nobody',
            last_name: 'Found',
            city: 'Nowhere',
            active: false
        });

    gs.info(JSON.stringify(user, null, 2));

Sortie :

    {
       "first_name":"Fred",
       "last_name":"Luddy",
       "city":null,
       "active":true,
       "sys_id":"5137153cc611227c000bbd1bd8cd2005"
    }

## GlideQuery : groupBy (champs de chaîne) {#ariaid-title12}

Regroupe les résultats de la requête par champ ou champs désignés.
Vous devez utiliser cette méthode avec la méthode aggregate().
{#GQ-groupBy_S__table_nww_pmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champs | Chaîne ou tableau de chaînes | Champ(s) sur lesquels regrouper les résultats. |
[Tableau 21. Paramètres]

{#GQ-groupBy_S__table_nww_pmc_nmb} {#GQ-groupBy_S__table_oww_pmc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 22. Renvoie]

{#GQ-groupBy_S__table_oww_pmc_nmb}  
Ce script effectue une requête sur la table Tâche, regroupe les enregistrements par priorité et renvoie chaque priorité dont le total des réaffectations est supérieur à quatre.

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });

Sortie :

    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

## GlideQuery : having(String aggregateType, champ de chaîne, opérateur de chaîne, valeur de numéro) {#ariaid-title13}

Filtre les groupes d'agrégats afin que vous puissiez afficher uniquement les groupes de résultats qui correspondent à une condition spécifiée.
Doit utiliser cette méthode avec les méthodes aggregate() ou groupBy().
{#GQ-having_S_S_S_N__table_jw3_vmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| type d'agrégat | Chaîne | Type de fonction d'agrégation à exécuter. Les options incluent : * `min` : renvoie la plus petite valeur de tous les enregistrements correspondants. * `max` : renvoie la valeur la plus élevée de tous les enregistrements correspondants. * `sum` : renvoie la somme de tous les enregistrements correspondants. * `avg` : renvoie la moyenne de tous les enregistrements correspondants. * `count` : renvoie le nombre d'enregistrements correspondants. {#GQ-having_S_S_S_N__agg-type-options} |
| champ | Chaîne | Champ sur lequel effectuer l'opération. |
| opérateur | Chaîne | Opérateur numérique à utiliser dans l'opération. Les options incluent : * `>` : supérieur à. * `<` : inférieur à. * `>=` : supérieur ou égal à. * `<=` : inférieur ou égal à. * `=` : Égal à. * `!=` : différent de. |
| valide | Numéro | Valeur de nombre à utiliser dans l'opération. |
[Tableau 23. Paramètres]

{#GQ-having_S_S_S_N__table_jw3_vmc_nmb} {#GQ-having_S_S_S_N__table_kw3_vmc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 24. Renvoie]

{#GQ-having_S_S_S_N__table_kw3_vmc_nmb}  
Ce script effectue une requête sur la table Tâche, regroupe les enregistrements par priorité et renvoie chaque priorité dont le total des réaffectations est supérieur à quatre.

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });

Sortie :

    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

## GlideQuery : insérer(Object keyValues, Object selectedFields) {#ariaid-title14}

Insère un enregistrement et renvoie un objet facultatif contenant l'enregistrement.
{#GQ-insert_O_O__table_m5f_hlc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Valeurs clés | Objet | Objet contenant des paires nom-valeur à insérer dans l'enregistrement. Les champs non spécifiés seront nuls. |
| selectedFields | Tableau | Facultatif. Champs supplémentaires à retourner dans le résultat. Par défaut : le système renvoie toujours le sys_id. |
[Tableau 25. Paramètres]

{#GQ-insert_O_O__table_m5f_hlc_nmb} {#GQ-insert_O_O__table_n5f_hlc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 26. Renvoie]

{#GQ-insert_O_O__table_n5f_hlc_nmb}  
Cet exemple montre comment insérer un enregistrement basé sur le prénom et le nom d'un utilisateur.

    var fred = new global.GlideQuery('sys_user')
        .insert({ first_name: 'Fred', last_name: 'Luddy' })
        .get();

    gs.info(JSON.stringify(fred, null, 2));

Sortie :

    {
       "sys_id":"cf16eed0e82a9010f8778bda83d255d2",
       "first_name":"Fred",
       "last_name":"Luddy"
    }

## GlideQuery : insertOrUpdate(Object changes, Object selectedFields) {#ariaid-title15}

Met à jour un enregistrement existant ou insère un nouvel enregistrement s'il n'en existe pas déjà un.
{#GQ-insertOrUpdate_O_O__table_sdt_3lc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Changements | Objet | Objet contenant des paires nom-valeur à mettre à jour ou à insérer dans l'enregistrement. |
| selectedFields | Tableau | Facultatif. Champs supplémentaires à retourner dans le résultat. Par défaut : le système renvoie toujours le sys_id. |
[Tableau 27. Paramètres]

{#GQ-insertOrUpdate_O_O__table_sdt_3lc_nmb} {#GQ-insertOrUpdate_O_O__table_tdt_3lc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 28. Renvoie]

{#GQ-insertOrUpdate_O_O__table_tdt_3lc_nmb}  
Cet exemple montre comment insérer un nouvel enregistrement qui n'existe pas déjà dans le système.

    // insert a new record
    var user = new GlideQuery('sys_user')
        .insertOrUpdate({
            first_name: 'George',
            last_name: 'Griffey'
        })
        .orElse(null);

Cet exemple montre comment mettre à jour un enregistrement existant.

    // update existing record
    var user = new global.GlideQuery('sys_user')
        .insertOrUpdate({
            sys_id: '2d0efd6c73662300bb513198caf6a72e',
            first_name: 'George',
            last_name: 'Griffey' })
        .orElse(null);

## GlideQuery : limit(limite de nombre) {#ariaid-title16}

Limite le nombre d'enregistrements renvoyés dans une requête.
{#GQ-limit_N__table_gvh_2mc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| limite | Numéro | Nombre d'enregistrements à renvoyer. |
[Tableau 29. Paramètres]

{#GQ-limit_N__table_gvh_2mc_nmb} {#GQ-limit_N__table_hvh_2mc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 30. Renvoie]

{#GQ-limit_N__table_hvh_2mc_nmb}  
Cet exemple montre comment limiter les résultats renvoyés à cinq enregistrements.

    var incidents = new global.GlideQuery('incident')
        .limit(5)
        .select('priority', 'description')
        .forEach(function (incident){
            gs.info(JSON.stringify(incident, null, 2));
        });

Sortie :

    *** Script: {
      "priority": 1,
      "description": "User can't get to any of his files on the file server.",
      "sys_id": "9d385017c611228701d22104cc95c371"
    }
    *** Script: {
      "priority": 1,
      "description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
      "sys_id": "e8caedcbc0a80164017df472f39eaed1"
    }
    *** Script: {
      "priority": 1,
      "description": "User forgot their email password.",
      "sys_id": "9d3c1197c611228701cd1d94bc32d76d"
    }
    *** Script: {
      "priority": 1,
      "description": "When I try to print, my whole computer just freezes and stops working.",
      "sys_id": "8d6246c7c0a80164012fb063cecd4ace"
    }
    *** Script: {
      "priority": 3,
      "description": "Unable to login even though login credentials are correct.",
      "sys_id": "a9e30c7dc61122760116894de7bcc7bd"
    }

## GlideQuery : max(champ de chaîne) {#ariaid-title17}

Renvoie le maximum d'agrégat d'un champ donné.
{#GQ-max_S__table_b2q_jmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ sur lequel effectuer l'opération. |
[Tableau 31. Paramètres]

{#GQ-max_S__table_b2q_jmc_nmb} {#GQ-max_S__table_c2q_jmc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 32. Renvoie]

{#GQ-max_S__table_c2q_jmc_nmb}  
Cet exemple montre comment renvoyer la valeur maximale, ou la valeur alphanumérique la plus élevée, d'un champ donné.

    var name = new global.GlideQuery('sys_user')
        .max('last_name')
        .orElse('');

    gs.info(JSON.stringify(name));

Sortie :

    "Zortman"

## GlideQuery : min(champ de chaîne) {#ariaid-title18}

Renvoie le minimum d'agrégat d'un champ donné.
{#GQ-min_S__table_b2q_jmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ sur lequel effectuer l'opération. |
[Tableau 33. Paramètres]

{#GQ-min_S__table_b2q_jmc_nmb} {#GQ-min_S__table_c2q_jmc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 34. Renvoie]

{#GQ-min_S__table_c2q_jmc_nmb}  
Cet exemple montre comment renvoyer la valeur minimale, ou la valeur alphanumérique la plus basse, d'un champ donné.

    var name = new global.GlideQuery('sys_user')
        .min('last_name')
        .orElse('');

    gs.info(JSON.stringify(name));

Sortie :

    "Abel"

## GlideQuery : orderBy (champs de chaîne) {#ariaid-title19}

Trie le résultat renvoyé par ordre croissant selon un champ donné.
{#GQ-orderBy_S__table_gkw_1mc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champs | Chaîne | Champs séparés par des virgules pour trier le résultat par ordre croissant. |
[Tableau 35. Paramètres]

{#GQ-orderBy_S__table_gkw_1mc_nmb} {#GQ-orderBy_S__table_hkw_1mc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 36. Renvoie]

{#GQ-orderBy_S__table_hkw_1mc_nmb}  
Cet exemple montre comment classer les résultats par ordre croissant en fonction du numéro d'enregistrement.

    var query = new global.GlideQuery('incident')
        .orderBy('number')
        .limit(5)
        .select('number', 'description') //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
            gs.info(JSON.stringify(incident, null, 2));
        });

Sortie :

    *** Script: {
      "number": "INC0000001",
      "description": "User can't access email on mail.company.com.",
      "sys_id": "9c573169c611228700193229fff72400"
    }
    *** Script: {
      "number": "INC0000002",
      "description": "User can't get to any of his files on the file server.",
      "sys_id": "9d385017c611228701d22104cc95c371"
    }
    *** Script: {
      "number": "INC0000003",
      "description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
      "sys_id": "e8caedcbc0a80164017df472f39eaed1"
    }
    *** Script: {
      "number": "INC0000004",
      "description": "User forgot their email password.",
      "sys_id": "9d3c1197c611228701cd1d94bc32d76d"
    }
    *** Script: {
      "number": "INC0000005",
      "description": "CPU was 100% busy for more than 10 minutes",
      "sys_id": "e8e875b0c0a80164009dc852b4d677d5"
    }

## GlideQuery : orderByDesc(String fieldOrAggregate, String field) {#ariaid-title20}

Trie le résultat renvoyé par ordre décroissant selon un champ donné.
{#GQ-orderByDesc_S_S__table_yxt_cmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| fieldOrAggregate | Chaîne | Si la requête n'utilise pas la méthode aggregate(), transmettez le champ pour trier les résultats. Si la requête utilise la méthode aggregate(), transmettez le type de fonction d'agrégation à exécuter. Les options incluent : * `min` : renvoie la plus petite valeur de tous les enregistrements correspondants. * `max` : renvoie la valeur la plus élevée de tous les enregistrements correspondants. * `sum` : renvoie la somme de tous les enregistrements correspondants. * `avg` : renvoie la moyenne de tous les enregistrements correspondants. * `count` : renvoie le nombre d'enregistrements correspondants. {#GQ-orderByDesc_S_S__ul_lzt_ggh_pmb} |
| champ | Chaîne | Facultatif. Champ permettant de trier le résultat par ordre décroissant. Requis pour les requêtes utilisant la méthode aggregate(). |
[Tableau 37. Paramètres]

{#GQ-orderByDesc_S_S__table_yxt_cmc_nmb} {#GQ-orderByDesc_S_S__table_zxt_cmc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 38. Renvoie]

{#GQ-orderByDesc_S_S__table_zxt_cmc_nmb}  
Cet exemple montre comment classer le résultat par nombre décroissant.

    var query = new global.GlideQuery('incident')
        .orderByDesc('number')
        .limit(5)
        .select('number', 'description') //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
            gs.info(JSON.stringify(incident, null, 2));
        });

Sortie :

    *** Script: {
      "number": "INC0009009",
      "description": "Unable to access the shared folder. Please provide access.",
      "sys_id": "57af7aec73d423002728660c4cf6a71c"
    }
    *** Script: {
      "number": "INC0009005",
      "description": "Unable to send or receive emails.",
      "sys_id": "ed92e8d173d023002728660c4cf6a7bc"
    }
    *** Script: {
      "number": "INC0009004",
      "description": "While launching the defect tracking base URL, it is redirecting to an error page.",
      "sys_id": "e329de99731423002728660c4cf6a73c"
    }
    *** Script: {
      "number": "INC0009003",
      "description": "Having an issue with users trying to access the company portal app",
      "sys_id": "9fffc328731823002728660c4cf6a742"
    }
    *** Script: {
      "number": "INC0009002",
      "description": "My computer is not detecting the headphone device. It could be an issue with the USB port.",
      "sys_id": "1c832706732023002728660c4cf6a7b9"
    }

Cet exemple montre comment trier un résultat agrégé par la somme des incidents enfants.

    var aggQuery = new GlideQuery('incident')
        .aggregate('sum', 'child_incidents')
        .groupBy('category')
        .orderByDesc('sum', 'child_incidents')
        .select()
        .forEach(function (category){
            gs.info(JSON.stringify(category, null, 2));    
        });

Sortie :

    *** Script: {
      "group": {
        "category": "hardware"
      },
      "sum": {
        "child_incidents": 2
      }
    }
    *** Script: {
      "group": {
        "category": "inquiry"
      },
      "sum": {
        "child_incidents": 1
      }
    }
    *** Script: {
      "group": {
        "category": "software"
      },
      "sum": {
        "child_incidents": 0
      }
    }
    *** Script: {
      "group": {
        "category": ""
      },
      "sum": {
        "child_incidents": null
      }
    }
    *** Script: {
      "group": {
        "category": "database"
      },
      "sum": {
        "child_incidents": null
      }
    }
    *** Script: {
      "group": {
        "category": "network"
      },
      "sum": {
        "child_incidents": null
      }
    }

## GlideQuery - orWhere(String fieldOrQuery, opérateur de chaîne, n'importe quelle valeur) {#ariaid-title21}

Ajoute une clause OR à une requête qui renvoie des valeurs basées sur une condition donnée.
Remarque :  
Faites précéder cette méthode des méthodes where(), whereNull() ou whereNotNull().
{#GQ-orWhere_S_S__table_jf5_vkc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| fieldOrQuery | Chaîne ou [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.") | Champ ou un autre objet GlideQuery utilisé dans la clause where. Si vous transmettez un champ, vous pouvez remonter pas à pas jusqu'à la valeur souhaitée. Par exemple, `<< company.name >>.` |
| opérateur | Chaîne | Facultatif. Opérateur utilisé dans la clause OR. Si vous ne transmettez pas d'argument, le système utilise l'opérateur =. Vous n'avez pas besoin d'inclure une valeur d'espace réservé. |
| valide | N'importe lequel | Valeur utilisée dans la clause OR. |
[Tableau 39. Paramètres]

{#GQ-orWhere_S_S__table_jf5_vkc_nmb} {#GQ-orWhere_S_S__table_kf5_vkc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 40. Renvoie]

{#GQ-orWhere_S_S__table_kf5_vkc_nmb}  
Cet exemple montre comment ajouter une clause OR simple à une requête.

    var query = new global.GlideQuery('sys_user')
       .where('failed_attempts', '>', 0)
       .orWhere('last_login', '<', '2019-04-15')
       .select()
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "sys_id": "005d500b536073005e0addeeff7b12f4"
    }
    *** Script: {
      "sys_id": "d999e5fc77e72300454792718a10611d"
    }
    *** Script: {
      "sys_id": "30ad318577ab2300454792718a10619e"
    }
    *** Script: {
      "sys_id": "4ac73ecd738123002728660c4cf6a72c"
    }
    *** Script: {
      "sys_id": "3883f4c0730123002728660c4cf6a754"
    }
    *** Script: {
      "sys_id": "3988a3ca732023002728660c4cf6a757"
    }
    *** Script: {
      "sys_id": "8ff5b254b33213005e3de13516a8dcf7"
    }

Cet exemple montre comment ajouter une clause `orWhere` qui contient une requête distincte.

    // active = true OR (title = 'Vice President' AND state = 'CA')
    var query = new GlideQuery('sys_user')
       .where('active', true)
       .orWhere(new GlideQuery()
           .where('title', 'Vice President')
           .where('state', 'CA'))
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "name": "ITIL User",
      "sys_id": "681b365ec0a80164000fb0b05854a0cd"
    }
    *** Script: {
      "name": "SOAP Guest",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }
    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }

## GlideQuery : orWhereNotNull (champ de chaîne) {#ariaid-title22}

Ajoute une clause OR qui renvoie les enregistrements qui ne contiennent pas de valeur nulle dans un champ donné.
Remarque :  
Faites précéder cette méthode des méthodes where(), whereNull() ou whereNotNull().
{#GQ-orWhereNotNull_S__table_wpk_zkc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ utilisé dans la requête. |
[Tableau 41. Paramètres]

{#GQ-orWhereNotNull_S__table_wpk_zkc_nmb} {#GQ-orWhereNotNull_S__table_xpk_zkc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 42. Renvoie]

{#GQ-orWhereNotNull_S__table_xpk_zkc_nmb}  
Cet exemple montre comment interroger la table Utilisateur et renvoyer des résultats dans lesquels le prénom ou le nom de famille n'est pas nul.

    var query = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .orWhereNotNull('last_name')
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "name": "ITIL User",
      "sys_id": "681b365ec0a80164000fb0b05854a0cd"
    }
    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "name": "Allyson Gillispie",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }

## GlideQuery : orWhereNull (champ de chaîne) {#ariaid-title23}

Ajoute une clause OU à une requête qui renvoie les enregistrements qui contiennent une valeur nulle dans un champ donné.
Remarque :  
Faites précéder cette méthode des méthodes where(), whereNull() ou whereNotNull().
{#GQ-orWhereNull_S__table_xll_clc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ utilisé dans la requête. |
[Tableau 43. Paramètres]

{#GQ-orWhereNull_S__table_xll_clc_nmb} {#GQ-orWhereNull_S__table_yll_clc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 44. Renvoie]

{#GQ-orWhereNull_S__table_yll_clc_nmb}  
Cet exemple montre comment interroger la table Utilisateur et renvoyer des enregistrements dont le prénom ou le nom est nul.

    var query = new global.GlideQuery('sys_user')
       .whereNull('last_name')
       .orWhereNull('first_name')
       .select('first_name', 'last_name')
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "first_name": "ml.admin",
      "last_name": null,
      "sys_id": "88aad6c5c73003005f1b78d48b9763a5"
    }
    *** Script: {
      "first_name": "Sitemap Scheduler User",
      "last_name": null,
      "sys_id": "85388c25b71011104eed4643ae11a993"
    }
    *** Script: {
      "first_name": null,
      "last_name": "Guest",
      "sys_id": "5136503cc611227c0183e96598c4f706"
    }
    *** Script: {
      "first_name": "ml_report.user",
      "last_name": null,
      "sys_id": "b6bad6c5c73003005f1b78d48b97632a"
    }

## GlideQuery : parse(Table de chaînes, Chaîne encoded_query ) {#ariaid-title24}

Ajoute une requête codée à une nouvelle requête GlideQuery .
Cette méthode ne prend pas en charge tous les opérateurs de requête codée GlideRecord . Les opérateurs suivants sont actuellement pris en charge :  

|-|-|-|-|
| `=` | `RIEN` | `GT_FIELD` | `PAS DANS` |
| `!=` | `ENTRE` | `GT_OR_EQUALS_FIELD` | `DIFFÉRENT DE` |
| `>` | `CONTIENT` | `DANS` | `NSAMEAS (en anglais seulement)` |
| `>=` | `NE CONTIENT PAS` | `INSTANCEOF` | `ACTIVÉ` |
| `<` | `DYNAMIQUE` | `COMME` | `IDENTIQUES` |
| `<=` | `EMPTYSTRING` | `LT_FIELD` | `STARTSWITH` |
|   | `SE TERMINE PAR` | `LT_OR_EQUALS_FIELD` |   |
[ ]

{#GQ-parse_S_S__table_uw4_rcx_brb__entry__3}

| Nom | Type | Description |
|-|-|-|
| table | Chaîne | Table à interroger, telle qu'une tâche ou un incident. |
| encoded_query | Chaîne | [Requête codée](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US) à appliquer aux enregistrements de la table spécifiée. |
[Tableau 45. Paramètres]

{#GQ-parse_S_S__table_uw4_rcx_brb} {#GQ-parse_S_S__table_vw4_rcx_brb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet GlideQuery contenant la requête codée. |
[Tableau 46. Renvoie]

{#GQ-parse_S_S__table_vw4_rcx_brb}  
L'exemple suivant crée un objet GlideQuery qui contient tous les enregistrements actifs de la table de tâches, classés par champ de priorité, renvoyés sous la forme d'un objet Stream contenant uniquement le champ de description.

    GlideQuery.parse('task', 'active=true^ORDERBYpriority') // Pass the encoded query to use to parse the Task records
      .select('description') // Return the records that match the encoded query
      .forEach(doSomething); // Do some processing on each of the returned records

## GlideQuery : select (champs de chaîne) {#ariaid-title25}

Renvoie les résultats de la requête sous la forme d'un objet de flux contenant les champs spécifiés.
Remarque :  
Utilisez une méthode terminale dans la classe Stream pour obtenir le résultat de la requête. Pour plus d'informations, consultez [Flux](https://servicenow-prod.fluidtopics.net/1eHj5lwzRK2Ma3oTYktiBQ#StreamGlobalAPI "L’API de flux fournit des méthodes pour interagir avec un flux d’éléments tels que des enregistrements. Par exemple, vous pouvez utiliser la méthode forEach() pour mettre à jour l’état de chaque enregistrement dans un flux renvoyé par l’API GlideQuery .").

Vous pouvez ajouter un marqueur à un nom de champ pour renvoyer les métadonnées du champ au lieu de la valeur du champ. Par exemple, l'utilisation du nom de champ `company$DISPLAY` renvoie la valeur d'affichage d'un champ de société. Marqueurs possibles :  
* `DISPLAY` : Renvoie la valeur d'affichage d'un champ.
* `CURRENCY_CODE` : renvoie le code de devise d'un champ de devise. Par exemple, `USD.`
* `CURRENCY_DISPLAY` : renvoie la valeur d'affichage de devise d'un champ de devise. Par exemple, `123,45 ¥`.
* `CURRENCY_STRING` : renvoie la chaîne de devise d'un champ de devise. Par exemple, `JPY ; Débloquer le numéro 123.45`.
{#GQ-select_S__ul_u52_b3l_qmb}
{#GQ-select_S__table_ktr_qlc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champs | Chaîne ou tableau de chaînes | Facultatif. Champs à afficher dans le résultat. Vous pouvez fournir n'importe quel nombre de champs en tant qu'arguments, remonter pas à pas vers une valeur souhaitée ou utiliser un marqueur. Par exemple : select('first_name', 'location.city', 'company$DISPLAY'); ou select(['first_name', 'location.city', 'company$DISPLAY']); Par défaut : le système renvoie toujours le sys_id. |
[Tableau 47. Paramètres]

{#GQ-select_S__table_ktr_qlc_nmb} {#GQ-select_S__table_ltr_qlc_nmb__entry__2}

| Type | Description |
|-|-|
| Flux | Objet utilisé pour interagir avec un flux d'éléments tels que des enregistrements. |
[Tableau 48. Renvoie]

{#GQ-select_S__table_ltr_qlc_nmb}  
Cet exemple montre comment sélectionner des champs à afficher à partir de la requête et utiliser `$DISPLAY` pour renvoyer la valeur d'affichage d'un champ.

    var stream = new global.GlideQuery('sys_user')
       .select('first_name', 'last_name', 'company$DISPLAY')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "company$DISPLAY": "",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "first_name": "Alva",
      "last_name": "Pennigton",
      "company$DISPLAY": "ACME North America",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "first_name": "Benchmark",
      "last_name": "Scheduler",
      "company$DISPLAY": "",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "first_name": "Allyson",
      "last_name": "Gillispie",
      "company$DISPLAY": "ACME North America",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }
    *** Script: {
      "first_name": "SOAP",
      "last_name": "Guest",
      "company$DISPLAY": "",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }

## GlideQuery : selectOne(champs de chaîne) {#ariaid-title26}

Renvoie le résultat de la requête sous la forme d'un objet facultatif contenant les champs spécifiés.
Utilisez cette méthode lors du renvoi d'un enregistrement unique ou pour vérifier si un enregistrement existe. Si vous renvoyez plusieurs enregistrements, utilisez la méthode select() pour renvoyer un objet Stream.

Vous pouvez ajouter un marqueur à un nom de champ pour renvoyer les métadonnées du champ au lieu de la valeur du champ. Par exemple, l'utilisation du nom de champ `company$DISPLAY` renvoie la valeur d'affichage d'un champ de société. Marqueurs possibles :  
* `DISPLAY` : Renvoie la valeur d'affichage d'un champ.
* `CURRENCY_CODE` : renvoie le code de devise d'un champ de devise. Par exemple, `USD.`
* `CURRENCY_DISPLAY` : renvoie la valeur d'affichage de devise d'un champ de devise. Par exemple, `123,45 ¥`.
* `CURRENCY_STRING` : renvoie la chaîne de devise d'un champ de devise. Par exemple, `JPY ; Débloquer le numéro 123.45`.
{#GQ-selectOne_S__ul_u52_b3l_qmb}
{#GQ-selectOne_S__table_pw3_slc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champs | Chaîne ou tableau de chaînes | Facultatif. Champs à afficher dans le résultat. Vous pouvez fournir n'importe quel nombre de champs en tant qu'arguments, remonter pas à pas vers une valeur souhaitée ou utiliser un marqueur. Par exemple : selectOne('first_name', 'location.city', 'company$DISPLAY'); ou selectOne(['first_name', 'location.city', 'company$DISPLAY']); Par défaut : le système renvoie toujours le sys_id. |
[Tableau 49. Paramètres]

{#GQ-selectOne_S__table_pw3_slc_nmb} {#GQ-selectOne_S__table_qw3_slc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 50. Renvoie]

{#GQ-selectOne_S__table_qw3_slc_nmb}  
Cet exemple montre comment retourner un seul enregistrement en tant qu'objet facultatif et afficher les champs spécifiés.

    var user = new global.GlideQuery('sys_user')
        .where('zip', '12345')
        .whereNotNull('last_name')
        .selectOne('first_name', 'last_name', 'company$DISPLAY')
        .get();

    gs.info(JSON.stringify(user, null, 2));

Sortie :

    {
       "first_name":"Abel",
       "last_name":"Tuter",
       "company$DISPLAY":"ACME South America",
       "sys_id":"62826bf03710200044e0bfc8bcbe5df1"
    }

## GlideQuery : somme (champ de chaîne) {#ariaid-title27}

Renvoie la somme des agrégats d'un champ numérique donné.
Vous ne pouvez utiliser cette méthode que sur les champs des types suivants :

* Entier
* Long
* Nombre à virgule flottante
* Double
* Devise
{#GQ-sum_S__ul_ikp_2wl_qmb}
{#GQ-sum_S__table_tfz_mmc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ sur lequel effectuer l'opération. |
[Tableau 51. Paramètres]

{#GQ-sum_S__table_tfz_mmc_nmb} {#GQ-sum_S__table_ufz_mmc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 52. Renvoie]

{#GQ-sum_S__table_ufz_mmc_nmb}  
Cet exemple montre comment renvoyer la somme de toutes les erreurs dans la table cmdb_ci.

    var totalFaults = new global.GlideQuery('cmdb_ci')
        .sum('fault_count')
        .orElse(0);

    gs.info(JSON.stringify(totalFaults));

Sortie :

    10

## GlideQuery - toGlideRecord() {#ariaid-title28}

Renvoie un objet GlideRecord qui représente la requête actuelle. Renvoie un objet GlideAggregrate si la requête utilise la méthode GlideQuery.aggregate().
Après avoir transformé la requête, utilisez la méthode query() dans les classes [GlideRecord](https://servicenow-prod.fluidtopics.net/2WySz5FCvQHHbdfx6_dFUg#c_GlideRecordScopedAPI "L’API GlideRecord incluse dans le périmètre d’application est utilisée pour les opérations de base de données.") ou [GlideAggregate](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.") pour interroger la base de données.
{#GQ-toGlideRecord__table_cgy_wmc_nmb__entry__3}

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

{#GQ-toGlideRecord__table_cgy_wmc_nmb} {#GQ-toGlideRecord__table_dgy_wmc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideRecord ou GlideAggregate | Objet GlideRecord qui contient la requête. Si vous avez utilisé la méthode GlideQuery.aggregate(), la méthode renvoie un objet GlideAggregrate à la place. |
[Tableau 54. Renvoie]

{#GQ-toGlideRecord__table_dgy_wmc_nmb}  
Cet exemple montre comment transformer un objet GlideQuery en GlideRecord.

    var userGr = new global.GlideQuery('sys_user')
        .where('active', true)
        .whereNotNull('first_name')
        .limit(10)
        .toGlideRecord();
    userGr.query();

## GlideQuery : mettre à jour (objets modifiés, objet selectedFields) {#ariaid-title29}

Met à jour un enregistrement existant qui correspond aux conditions définies.
Avant d'utiliser cette méthode, appelez la méthode where() pour spécifier les conditions qu'un enregistrement doit remplir pour être mis à jour.
{#GQ-update_O_O__table_cbg_klc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Changements | Objet | Objet contenant les paires nom-valeur à mettre à jour dans l'enregistrement. Les noms doivent correspondre aux champs de la table. |
| selectedFields | Tableau | Facultatif. Champs supplémentaires à retourner dans le résultat. Par défaut : le système renvoie toujours le sys_id. |
[Tableau 55. Paramètres]

{#GQ-update_O_O__table_cbg_klc_nmb} {#GQ-update_O_O__table_dbg_klc_nmb__entry__2}

| Type | Description |
|-|-|
| Facultatif | Objet utilisé pour interagir avec un enregistrement unique. |
[Tableau 56. Renvoie]

{#GQ-update_O_O__table_dbg_klc_nmb}  
Cet exemple montre comment mettre à jour un enregistrement avec de nouvelles valeurs.

    var updateRecord = new global.GlideQuery('sys_user')
        .where('sys_id', '0a826bf03710200044e0bfc8bcbe5d7a')
        .update({ city: 'Los Angeles' });

## GlideQuery : updateMultiple (changements d'objets) {#ariaid-title30}

Met à jour tous les enregistrements existants qui correspondent aux conditions définies. Renvoie le nombre d'enregistrements mis à jour.
Avant d'utiliser cette méthode, appelez la méthode where() pour spécifier les conditions que les enregistrements doivent remplir pour être mis à jour.
{#GQ-updateMultiple_O__table_ywr_llc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Changements | Objet | Objet contenant les paires nom-valeur à mettre à jour dans l'enregistrement. Les noms doivent correspondre aux champs de la table. |
[Tableau 57. Paramètres]

{#GQ-updateMultiple_O__table_ywr_llc_nmb} {#GQ-updateMultiple_O__table_zwr_llc_nmb__entry__2}

| Type | Description |
|-|-|
| Objet | Objet contenant le nombre d'enregistrements qui ont été mis à jour. Les clés sont les suivantes : * `rowCount` : nombre de lignes mises à jour dans la table. {#GQ-updateMultiple_O__ul_epc_mxw_wmb} |
[Tableau 58. Renvoie]

{#GQ-updateMultiple_O__table_zwr_llc_nmb}  
Cet exemple montre comment mettre à jour des enregistrements qui correspondent à des critères définis.

    var update = new global.GlideQuery('sys_user')
        .where('active', false)
        .where('last_name', 'Griffey')
        .updateMultiple({ active: true });

    gs.info(JSON.stringify(update));

Sortie :

    {"rowCount":1}

## GlideQuery - where(String fieldOrQuery, String operator, Any value) {#ariaid-title31}

Ajoute une clause Where à la requête qui renvoie des valeurs basées sur une condition donnée.
Remarque :  
Cette méthode n'est pas précédée des méthodes orWhere(), orWhereNull() ou orWhereNotNull( ).
{#GQ-where_S_S__table_jf5_vkc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| fieldOrQuery | Chaîne ou [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.") | Champ ou un autre objet GlideQuery utilisé dans la clause where. Si vous transmettez un champ, vous pouvez remonter pas à pas jusqu'à la valeur souhaitée. Par exemple, `<< company.name >>.` |
| opérateur | Chaîne | Facultatif. Opérateur utilisé dans la clause where. Si vous ne transmettez pas d'argument, le système utilise l'opérateur =. |
| valide | N'importe lequel | Valeur utilisée dans la clause where. |
[Tableau 59. Paramètres]

{#GQ-where_S_S__table_jf5_vkc_nmb} {#GQ-where_S_S__table_n5k_5kc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 60. Renvoie]

{#GQ-where_S_S__table_n5k_5kc_nmb}  
Cet exemple montre comment renvoyer les enregistrements de la table Utilisateur où actif est vrai et où la dernière connexion de l'utilisateur est ultérieure à une date spécifiée.

    var query = new global.GlideQuery('sys_user')
       .where('active', true)
       .where('last_login', '>', '2018-01-01')
       .limit(5)
       .select()
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "sys_id": "005d500b536073005e0addeeff7b12f4"
    }
    *** Script: {
      "sys_id": "d999e5fc77e72300454792718a10611d"
    }
    *** Script: {
      "sys_id": "30ad318577ab2300454792718a10619e"
    }
    *** Script: {
      "sys_id": "3883f4c0730123002728660c4cf6a754"
    }

Cet exemple montre comment renvoyer les enregistrements de la table Incident où actif est vrai et où la priorité ou la gravité est 1.

    // active = true AND (priority = 1 OR severity = 1)
    var query = new GlideQuery('incident')
        .where('active', true)
        .where(new GlideQuery()
            .where('priority', 1)
            .orWhere('severity', 1))
       .limit(5)
       .select()
       .toArray(5)

    gs.info(JSON.stringify(query, null, 2));

Sortie :

    [
       {
          "sys_id":"b0f31e5673500010c2e7660c4cf6a711"
       },
       {
          "sys_id":"8ff5b254b33213005e3de13516a8dcf7"
       },
       {
          "sys_id":"d999e5fc77e72300454792718a10611d"
       },
       {
          "sys_id":"30ad318577ab2300454792718a10619e"
       },
       {
          "sys_id":"3883f4c0730123002728660c4cf6a754"
       }
    ]

## GlideQuery : whereNotNull (champ de chaîne) {#ariaid-title32}

Renvoie les enregistrements qui ne contiennent pas de valeur Null dans un champ donné.
Remarque :  
Cette méthode n'est pas précédée des méthodes orWhere(), orWhereNull() ou orWhereNotNull( ).
{#GQ-whereNotNull_S__table_bfj_xkc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ utilisé dans la requête. |
[Tableau 61. Paramètres]

{#GQ-whereNotNull_S__table_bfj_xkc_nmb} {#GQ-whereNotNull_S__table_cfj_xkc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 62. Renvoie]

{#GQ-whereNotNull_S__table_cfj_xkc_nmb}  
Cet exemple montre comment interroger la table Utilisateur et renvoyer des résultats lorsque le champ first_name n'est pas nul.

    var query = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "name": "Allyson Gillispie",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }
    *** Script: {
      "name": "SOAP Guest",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }

## GlideQuery : whereNull (champ de chaîne) {#ariaid-title33}

Renvoie les enregistrements qui contiennent une valeur nulle dans un champ donné.
Remarque :  
Cette méthode n'est pas précédée des méthodes orWhere(), orWhereNull() ou orWhereNotNull( ).
{#GQ-whereNull_S__table_cqv_1lc_nmb__entry__3}

| Nom | Type | Description |
|-|-|-|
| champ | Chaîne | Champ utilisé dans la requête. |
[Tableau 63. Paramètres]

{#GQ-whereNull_S__table_cqv_1lc_nmb} {#GQ-whereNull_S__table_dqv_1lc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 64. Renvoie]

{#GQ-whereNull_S__table_dqv_1lc_nmb}  
Cet exemple montre comment interroger la table Utilisateur et renvoyer des enregistrements dont le prénom ou le nom est nul.

    var query = new global.GlideQuery('sys_user')
       .whereNull('last_name')
       .orWhereNull('first_name')
       .select('first_name', 'last_name')
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

Sortie :

    *** Script: {
      "first_name": "ml.admin",
      "last_name": null,
      "sys_id": "88aad6c5c73003005f1b78d48b9763a5"
    }
    *** Script: {
      "first_name": "Sitemap Scheduler User",
      "last_name": null,
      "sys_id": "85388c25b71011104eed4643ae11a993"
    }
    *** Script: {
      "first_name": null,
      "last_name": "Guest",
      "sys_id": "5136503cc611227c0183e96598c4f706"
    }
    *** Script: {
      "first_name": "ml_report.user",
      "last_name": null,
      "sys_id": "b6bad6c5c73003005f1b78d48b97632a"
    }

## GlideQuery : withAcls() {#ariaid-title34}

Exécute la requête à l'aide de l'API GlideRecordSecure pour interroger la base de données en toute sécurité tout en respectant les ACL.
{#GQ-withAcls__table_edy_fmc_nmb__entry__3}

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

{#GQ-withAcls__table_edy_fmc_nmb} {#GQ-withAcls__table_fdy_fmc_nmb__entry__2}

| Type | Description |
|-|-|
| GlideQuery | Objet de requête en cours de construction. |
[Tableau 66. Renvoie]

{#GQ-withAcls__table_fdy_fmc_nmb}  
Cet exemple montre comment exécuter une requête sécurisée à l'aide d'ACL.

    var users = new global.GlideQuery('sys_user')
        .withAcls()
        .limit(5)
        .orderByDesc('first_name')
        .select('first_name')
        .forEach(function (user){
            gs.info(JSON.stringify(user, null, 2));
        });

Sortie :

    *** Script: {
      "first_name": "Zane",
      "sys_id": "16826bf03710200044e0bfc8bcbe5dbc"
    }
    *** Script: {
      "first_name": "Zackary",
      "sys_id": "8a826bf03710200044e0bfc8bcbe5d69"
    }
    *** Script: {
      "first_name": "Yvette",
      "sys_id": "4e826bf03710200044e0bfc8bcbe5d57"
    }
    *** Script: {
      "first_name": "Winnie",
      "sys_id": "f682abf03710200044e0bfc8bcbe5d1d"
    }
    *** Script: {
      "first_name": "Wilmer",
      "sys_id": "42826bf03710200044e0bfc8bcbe5d7b"
    }


