Créer des filtres par script

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 1 minute de lecture
  • Le créateur de condition 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 script include.
      1. Accédez à la Définition du système > Includes de script.
      2. Cliquez sur Nouveau.
      3. Renseignez le formulaire, puis sélectionnez Soumettre.
    2. Ouvrez le script include 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 le script include.
      • Assurez-vous que le script include est actif et que le client peut l’appeler.
    3. Appelez la fonction JavaScript à partir du créateur de condition.
      Pour plus d’informations, consultez Requêtes GlideRecord et Script Includes.

    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 condition 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 créateur de condition 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;
    }