Créer des filtres par script

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 1 minute de lecture
  • Le créateur de conditions seul ne peut pas créer certains filtres, tels que l’affichage d’un ensemble d’enregistrements qui dépend d’une table non liée. Si vous connaissez JavaScript, vous pouvez créer des fonctions JavaScript à utiliser dans des filtres avancés.

    Avant de commencer

    Rôle requis : admin

    Procédure

    1. Créez un nouveau script include.
      1. Accédez à la Tout > Définition du système > Includes de script.
      2. Cliquez sur Nouveau.
      3. Remplissez le formulaire, puis sélectionnez Soumettre.
    2. Ouvrez l’include de script et, dans le champ Script , créez une fonction JavaScript qui renvoie un tableau de sys_ids.
      • Assurez-vous que la fonction utilise le même nom que l’include de script.
      • Assurez-vous que l’include de script est actif et que le client peut être appelé.
    3. Appelez la fonction JavaScript à partir du générateur de conditions.
      Pour plus d’informations, consultez Requêtes GlideRecord et Includes de script.
      Remarque :
      Les listes groupées avec un script include dans le filtre peuvent entraîner des lenteurs.

    Exemple

    Une entreprise fournit des soins intensifs à un groupe de clients. Pour suivre ces services, le gestionnaire de service a besoin d’un journal de haut niveau et de liens vers tous les incidents signalés par les clients.

    L’entreprise crée une application, Intensive Care, et une table, [u_intensive_care]. Bien que la table contienne un champ de référence pour le nom du client, il n’y a pas de lien direct vers la table utilisateur. Ainsi, le gestionnaire ne peut pas configurer un filtre de liste d’incidents à l’aide du générateur de conditions pour les clients qui sont en soins intensifs.

    La solution consiste à écrire une fonction JavaScript qui utilise une requête GlideRecord pour créer un tableau de sys_ids utilisateur dans la table [u_intensive_care], comme indiqué dans l’exemple de code ci-dessous. Appelez la fonction à partir du générateur de conditions dans la table Incident ([Caller] [is] [javascript :myFunction()]).
    function myFunction(){ 
        var arrUsers = [];
        var gr = new GlideRecord('u_intensive_care');
        gr.query(); 
        while(gr.next()){
            arrUsers.push(gr.u_customer.toString()); 
        }
        return arrUsers;
    }