GlideQueryCondition : dans le champ d’application

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • L’API GlideQueryCondition incluse dans le périmètre 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.

    Créez 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 la requête. Pour simplifier la création de la requête, créez une requête dans une vue de liste, cliquez avec le bouton droit sur la requête et 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 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 d’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 en savoir plus 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 d’un champ.
    Oper Chaîne Facultatif. L’opérateur de la requête. Si vous ne spécifiez pas d’opérateur, la condition utilise un opérateur égal.
    valide Objet Valeur à interroger.
    Tableau 2. Renvoie
    Type Description
    GlideQueryCondition Référence à un GlideQueryConditon qui a été ajouté à l’enregistrement Glide.
    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());

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

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

    addOrCondition() fonctionne en conjonction avec l’une des méthodes addQuery() pour OU les paramètres de requête spécifiés pour la requête précédemment construite à l’aide d’addQuery().

    addOrCondition() 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 qc.addOrCondition('category', 'software') ;. L’opérateur dans ce cas est supposé être « égal à ».

    Tableau 3. Paramètres
    Nom Type Description
    nom Chaîne Nom de champ
    Oper Chaîne (Facultatif) Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur .
    Nombres:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Chaînes (doit être en majuscules) :
    • =
    • !=
    • DANS
    • STARTSWITH
    • 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é au GlideRecord.
    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addOrCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());
    

    Pour regrouper des instructions ET/OU pour effectuer des requêtes complexes, telles que « Tous les 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.query();