GlideQueryCondition : global

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 12 minutes de lecture
  • Cette API fournit des conditions AND ou OR qui peuvent être ajoutées à la condition actuelle, ce qui vous permet de créer des requêtes complexes.

    Vous pouvez utiliser cette API pour créer des requêtes complexes telles que :
    category='hardware' OR category='software' AND priority='2' AND priority='1'

    Dans le cas d’addCondition(), un ET implicite est ajouté.

    Cette classe n’a pas de constructeur. Un objet GlideQueryCondition est renvoyé par les méthodes suivantes :
    • addActiveQuery()
    • addInactiveQuery()
    • addJoinQuery()
    • addNotNullQuery()
    • addNullQuery()
    • addQuery()

    S’il existe un ensemble complexe de requêtes AND et OR , une seule requête codée contenant toutes les conditions simplifie la création de requêtes. Pour simplifier la création de requête, créez une requête dans une vue de liste, cliquez avec le bouton droit sur la requête, puis sélectionnez Copier la requête. Il crée une chaîne de requête codée unique pour renvoyer votre ensemble de résultats. Utilisez cette chaîne comme paramètre dans un appel addEncodedQuery().

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

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

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

    Ajoute une condition ET à la condition actuelle.

    Tableau 1. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    exploiteur Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .

    Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.

    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Remarque :
    Tous les tableaux transmis doivent contenir un minimum de deux éléments. Les tableaux à élément unique ne sont pas pris en charge.
    Tableau 2. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à GlideRecord.

    L’exemple suivant montre comment ajouter une condition AND à une requête.

    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());

    Sortie :

    category=Hardware^ORcategory=Network^number=INC0000003

    Équivalent dans le champ d’application

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

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

    Ajoute une condition OU à deux ou trois paramètres à une GlideQueryCondition existante.

    Cette méthode fonctionne conjointement avec GlideRecord addQuery() vers OU les paramètres de requête spécifiés de la requête précédemment construite à l’aide d’addQuery().

    addOrCondition() peut être appelé avec seulement deux paramètres, champ table et valeur de comparaison, tels que qc.addOrCondition('category', 'software') ;. Dans ce cas, l’opérateur est supposé être « égal à ».

    Tableau 3. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    exploiteur Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .

    Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.

    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Remarque :
    Tous les tableaux transmis doivent contenir un minimum de deux éléments. Les tableaux à élément unique ne sont pas pris en charge.
    Tableau 4. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à GlideRecord.

    L’exemple suivant montre comment ajouter une condition OU à une requête.

    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addOrCondition('category', 'Network');
    now_GR.addQuery('number','INC0000004');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());

    Sortie :

    category=Hardware^ORcategory=Network^number=INC0000004

    Pour regrouper des instructions ET/OU pour effectuer des requêtes complexes, telles que l’obtention de 10 incidents avec un (état inférieur à 3 OU supérieur à 5) ET (la priorité est 1 OU la priorité est 5).

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addQuery('state', '<', 3);
    q1.addOrCondition('state', '>', 5);
    var q2 = myObj.addQuery('priority', 1);
    q2.addOrCondition('priority', 5);
    myObj.setLimit(10);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    Sortie :

    Incident: INC0000001 State: 7 Priority: 1
    Incident: INC0000004 State: 7 Priority: 1
    Incident: INC0000012 State: 7 Priority: 5
    Incident: INC0000013 State: 7 Priority: 1
    Incident: INC0000024 State: 7 Priority: 5
    Incident: INC0000028 State: 7 Priority: 5
    Incident: INC0000031 State: 2 Priority: 1
    Incident: INC0000057 State: 7 Priority: 5
    Incident: INC0000057 State: 2 Priority: 5
    Incident: INC0000058 State: 7 Priority: 5

    Équivalent dans le champ d’application

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

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

    Ajoute une condition ET à la condition actuelle. Utilisez cette méthode pour contourner l’accès aux requêtes.

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

    Méthodes supplémentaires d’accès au niveau du système qui contournent les vérifications d’ACL de requête :
    Tableau 5. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    exploiteur Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .

    Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.

    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Remarque :
    Tous les tableaux transmis doivent contenir un minimum de deux éléments. Les tableaux à élément unique ne sont pas pris en charge.
    Tableau 6. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à GlideRecord.

    Pour regrouper les instructions ET afin d’effectuer des requêtes complexes, telles que l’obtention de 20 incidents avec un (état inférieur à 3 ET non 2) et (la priorité est supérieure à 1 ET la priorité n’est pas 5).

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addSystemQuery('state', '<', 3);
    q1.addSystemCondition('state', '!=', 2);
    var q2 = myObj.addSystemQuery('priority', '>', 1);
    q2.addSystemCondition('priority', '!=', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    Sortie :

    Incident: INC0011238 State: 1 Priority: 4
    Incident: INC0010127 State: 1 Priority: 2
    Incident: INC0010143 State: 1 Priority: 2
    Incident: INC0011760 State: 1 Priority: 2
    Incident: INC0010708 State: 1 Priority: 3
    Incident: INC0013048 State: 1 Priority: 4
    Incident: INC0010658 State: 1 Priority: 2
    Incident: INC0012021 State: 1 Priority: 3
    Incident: INC0013308 State: 1 Priority: 4
    Incident: INC0010155 State: 1 Priority: 3
    Incident: INC0013312 State: 1 Priority: 4
    Incident: INC0013049 State: 1 Priority: 3
    Incident: INC0010068 State: 1 Priority: 4
    Incident: INC0010135 State: 1 Priority: 2
    Incident: INC0010132 State: 1 Priority: 4
    Incident: INC0010700 State: 1 Priority: 3
    Incident: INC0013311 State: 1 Priority: 2
    Incident: INC0011758 State: 1 Priority: 4
    Incident: INC0012278 State: 1 Priority: 3
    Incident: INC0013306 State: 1 Priority: 4

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

    Ajoute une condition OU à deux ou trois paramètres à une GlideQueryCondition existante. Utilisez cette méthode pour contourner l’accès aux requêtes.

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

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

    La méthode addSystemOrCondition() fonctionne avec la méthode GlideRecord addSystemQuery() pour OU les paramètres de requête spécifiés pour la requête précédemment construite à l’aide de addSystemQuery().

    Tableau 7. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    exploiteur Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .

    Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.

    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Remarque :
    Tous les tableaux transmis doivent contenir un minimum de deux éléments. Les tableaux à élément unique ne sont pas pris en charge.
    Tableau 8. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à GlideRecord.

    Pour regrouper des instructions ET/OU pour effectuer des requêtes complexes, telles que l’obtention de 20 incidents avec un (état inférieur à 3 OU supérieur à 5) ET (la priorité est 1 OU la priorité est 5).

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addSystemQuery('state', '<', 3);
    q1.addSystemOrCondition('state', '>', 5);
    var q2 = myObj.addSystemQuery('priority', 1);
    q2.addSystemOrCondition('priority', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    Sortie :

    Incident: INC0000001 State: 7 Priority: 1
    Incident: INC0000004 State: 7 Priority: 1
    Incident: INC0000012 State: 7 Priority: 5
    Incident: INC0000013 State: 7 Priority: 1
    Incident: INC0000024 State: 7 Priority: 5
    Incident: INC0000028 State: 7 Priority: 5
    Incident: INC0000031 State: 2 Priority: 1
    Incident: INC0000057 State: 7 Priority: 5
    Incident: INC0000057 State: 2 Priority: 5
    Incident: INC0000058 State: 7 Priority: 5
    Incident: INC0000058 State: 2 Priority: 5
    Incident: INC0000059 State: 7 Priority: 5
    Incident: INC0000060 State: 7 Priority: 5
    Incident: INC0000061 State: 7 Priority: 5
    Incident: INC0000062 State: 7 Priority: 5
    Incident: INC0000064 State: 7 Priority: 5
    Incident: INC0000065 State: 7 Priority: 5
    Incident: INC0000066 State: 7 Priority: 5
    Incident: INC0000069 State: 7 Priority: 5
    Incident: INC0000072 State: 7 Priority: 5

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

    Ajoute une condition ET à la condition actuelle. Utilisez cette méthode pour appliquer l’accès aux requêtes en fonction de l’utilisateur.

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

    Méthodes connexes :
    Tableau 9. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    exploiteur Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .

    Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.

    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Remarque :
    Tous les tableaux transmis doivent contenir un minimum de deux éléments. Les tableaux à élément unique ne sont pas pris en charge.
    Tableau 10. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à GlideRecord.

    Pour regrouper les instructions ET afin d’effectuer des requêtes complexes, telles que l’obtention de 20 incidents avec un (état inférieur à 3 ET non 2) et (la priorité est supérieure à 1 ET la priorité n’est pas 5).

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addUserQuery('state', '<', 3);
    q1.addUserCondition('state', '!=', 2);
    var q2 = myObj.addUserQuery('priority', '>', 1);
    q2.addUserCondition('priority', '!=', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    Sortie :

    Incident: INC0011238 State: 1 Priority: 4
    Incident: INC0010127 State: 1 Priority: 2
    Incident: INC0010143 State: 1 Priority: 2
    Incident: INC0011760 State: 1 Priority: 2
    Incident: INC0010708 State: 1 Priority: 3
    Incident: INC0013048 State: 1 Priority: 4
    Incident: INC0010658 State: 1 Priority: 2
    Incident: INC0012021 State: 1 Priority: 3
    Incident: INC0013308 State: 1 Priority: 4
    Incident: INC0010155 State: 1 Priority: 3
    Incident: INC0013312 State: 1 Priority: 4
    Incident: INC0013049 State: 1 Priority: 3
    Incident: INC0010068 State: 1 Priority: 4
    Incident: INC0010135 State: 1 Priority: 2
    Incident: INC0010132 State: 1 Priority: 4
    Incident: INC0010700 State: 1 Priority: 3
    Incident: INC0013311 State: 1 Priority: 2
    Incident: INC0011758 State: 1 Priority: 4
    Incident: INC0012278 State: 1 Priority: 3
    Incident: INC0013306 State: 1 Priority: 4

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

    Ajoute une condition OU à deux ou trois paramètres à une GlideQueryCondition existante. Utilisez cette méthode pour appliquer l’accès aux requêtes en fonction de l’utilisateur.

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

    La méthode addUserOrCondition() fonctionne avec la méthode GlideRecord addUserQuery() pour OU les paramètres de requête spécifiés pour la requête précédemment construite à l’aide d’addUserQuery().

    Méthodes connexes :
    Tableau 11. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    exploiteur Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .

    Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.

    Chiffres :
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • COMMENCE PAR
    • SE TERMINE PAR
    • CONTIENT
    • NE CONTIENT PAS
    valide Objet Valeur sur laquelle effectuer une requête (insensible à la casse).
    Remarque :
    Tous les tableaux transmis doivent contenir un minimum de deux éléments. Les tableaux à élément unique ne sont pas pris en charge.
    Tableau 12. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à GlideRecord.

    Pour regrouper des instructions ET/OU pour effectuer des requêtes complexes, telles que l’obtention de 20 incidents avec un (état inférieur à 3 OU supérieur à 5) ET (la priorité est 1 OU la priorité est 5).

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addUserQuery('state', '<', 3);
    q1.addUserOrCondition('state', '>', 5);
    var q2 = myObj.addUserQuery('priority', 1);
    q2.addUserOrCondition('priority', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    Sortie :

    Incident: INC0000001 State: 7 Priority: 1
    Incident: INC0000004 State: 7 Priority: 1
    Incident: INC0000012 State: 7 Priority: 5
    Incident: INC0000013 State: 7 Priority: 1
    Incident: INC0000024 State: 7 Priority: 5
    Incident: INC0000028 State: 7 Priority: 5
    Incident: INC0000031 State: 2 Priority: 1
    Incident: INC0000057 State: 7 Priority: 5
    Incident: INC0000057 State: 2 Priority: 5
    Incident: INC0000058 State: 7 Priority: 5
    Incident: INC0000058 State: 2 Priority: 5
    Incident: INC0000059 State: 7 Priority: 5
    Incident: INC0000060 State: 7 Priority: 5
    Incident: INC0000061 State: 7 Priority: 5
    Incident: INC0000062 State: 7 Priority: 5
    Incident: INC0000064 State: 7 Priority: 5
    Incident: INC0000065 State: 7 Priority: 5
    Incident: INC0000066 State: 7 Priority: 5
    Incident: INC0000069 State: 7 Priority: 5
    Incident: INC0000072 State: 7 Priority: 5