Thank you for your feedback.
Form temporarily unavailable. Please try again or contact docfeedback@servicenow.com to submit your comments.
Versions
  • London
  • Kingston
  • Jakarta
  • Istanbul
  • Helsinki
  • Geneva
  • Store
Close

Create scripted filters

Create scripted filters

The condition builder alone cannot create some filters, such as displaying a record set that is dependent on an unrelated table. You can create JavaScript functions for use in advanced filters if you have a knowledge of JavaScript.

Before you begin

Role required: admin

Procedure

  1. Create a new script include.
  2. In the Script field of the script include, create a JavaScript function that returns an array of sys_ids.
    • Ensure that the function uses the same name as the script include.
    • Ensure that the script include is Active and Client callable.
  3. Call the JavaScript function from the condition builder.
    For more information, see GlideRecord queries and Script includes.

Example

A company provides intensive care for a group of customers. To track these services, the service manager needs a high-level journal and links to all incidents that the customers raise.

The company creates a new application, Intensive Care, and a table, [u_intensive_care]. While the table contains a reference field for the customer name, there is no direct link to the user table. Thus, the manager cannot set up an incident list filter using the condition builder for customers who are under intensive care.

The solution is to write a JavaScript function that uses a GlideRecord query to build an array of user sys_ids in the [u_intensive_care] table, as shown in the sample code below. Call the function from the condition builder in the Incident table ([Caller] [is] [javascript:myFunction()]).
function myFunction ( ) { 
    var arrUsers  = [ ];
    gr  = new GlideRecord ( 'u_intensive_care' );
    gr. query ( ); 
    while (gr. next ( ) ) {
        arrUsers. push (gr. u_customer. toString ( ) ); 
    }
    return arrUsers;
}