Erstellen Sie geskriptete Filter

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 1 Minute Lesedauer
  • Der Bedingungsgenerator allein kann einige Filter nicht erstellen, z. B. die Anzeige eines Datensatzsatzes, der von einer nicht zugehörigen Tabelle abhängt. Wenn Sie JavaScript kennen, können Sie JavaScript-Funktionen zur Verwendung in erweiterten Filtern erstellen.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Prozedur

    1. Erstellen Sie eine neue Skripteinbindung.
      1. Navigieren zu Alle > Systemdefinition > Skripteinbindungenan.
      2. Klicken Sie auf Neu.
      3. Füllen Sie das Formular aus, und wählen Sie dann aus Übermitteln .
    2. Öffnen Sie die Skripteinbindung und in Skript Erstellen Sie eine JavaScript-Funktion, die ein Array von zurückgibt sys_IDs .
      • Stellen Sie sicher, dass die Funktion denselben Namen wie die Skripteinbindung verwendet.
      • Stellen Sie sicher, dass die Skripteinbindung ist Aktiv Und Vom Client aufrufbar .
    3. Rufen Sie die JavaScript-Funktion über den Bedingungsgenerator auf.
      Weitere Informationen finden Sie unter GlideRecord Abfragen und Skripteinbindungen .
      Hinweis:
      Gruppierte Listen mit einer Skripteinbindung im Filter können zu Langsamkeit führen.

    Beispiel

    Ein Unternehmen bietet intensive Betreuung für eine Gruppe von Kunden. Um diese Services nachzuverfolgen, benötigt der Servicemanager ein allgemeines Journal und Links zu allen Incidents, die von Kunden ausgelöst werden.

    Das Unternehmen erstellt eine Anwendung, Intensivpflege und eine Tabelle [u_intensive_Care]. Die Tabelle enthält zwar ein Referenzfeld für den Kundennamen, es gibt jedoch keinen direkten Link zur Anwendertabelle. Daher kann der Manager keinen Incident-Listenfilter mit dem Bedingungsgenerator für Kunden einrichten, die sich auf Intensivmedizin befinden.

    Die Lösung besteht darin, eine JavaScript-Funktion zu schreiben, die eine GlideRecord-Abfrage verwendet, um ein Array von Anwender-sys_IDs in der Tabelle [u_intensive_Care] zu erstellen, wie im Beispielcode unten gezeigt. Rufen Sie die Funktion über den Bedingungsgenerator in der Incident-Tabelle auf ( [Anrufer] [ist] [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;
    }