Créer des filtres par script

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 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 les filtres avancés.

    Avant de commencer

    Rôle requis : administrateur

    Procédure

    1. Créer un nouveau script include.
      1. Accédez à la 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 d’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 l’appeler.
    3. Appelez la fonction JavaScript à partir du générateur de conditions.
      Pour plus d’informations, consultez Requêtes GlideRecord et Includes de script.

    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 soulevés par les clients.

    L’entreprise crée une application, Soins intensifs, et une table, [u_intensive_care]. Bien que la table contienne un champ de référence pour le nom du client, il n’existe aucun lien direct vers la table utilisateur. Par conséquent, le gestionnaire ne peut pas configurer un filtre de liste d’incidents à l’aide du créateur de conditions pour les clients en soins intensifs.

    La solution consiste à écrire une fonction JavaScript qui utilise une requête GlideRecord pour créer un tableau d’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  = [ ];
        gr  = new GlideRecord ( 'u_intensive_care' );
        now_GR. query ( ); 
        while (now_GR. next ( ) ) {
            arrUsers. push (now_GR. u_customer. toString ( ) ); 
        }
        return arrUsers;
    }