Control when the system displays a view

Control when the system displays a view

Administrators can create rules that determine the conditions for when the system
should display a form or list in a specified view. Administrators can also restrict views by
user role.

Before you begin

Role required: admin

About this task

To create a view rule to control when the system displays
a specified view:

Procedure

Navigate to System UI > View Rules.

Click New.

Complete the form.

Table 1. View rule form

Field

Input value

Name

Specify an identifying name for the rule. This field is
case-sensitive and must match exactly the view name.

Active

Select this option to apply the view rule according to
the conditions you specified. If unchecked, the view rule is
not be applied.

Advanced

Select this option to specify a code-based condition
instead of using the condition builder. Selecting this
option displays the Script field and
hides the Match conditions,
Conditions, and
View fields.

Match Conditions

Select whether Any or
All of the conditions must be
met. The system hides this field when you create an advanced
View Rule.

Conditions

Use the condition builder to determine when the view is
applied. The system hides this field when you create an
advanced View Rule.

Application

Displays the application to which the View Rule record
belongs.

Table

Select the table on which this view rule is applied. The
list shows only tables and database views that are in the
same scope as the view rule

Device type

Select which interface this view rule applies to.

View

Enter the name of the View you are creating a rule for.
The system hides this field when you create an advanced View
Rule.

Script

Enter a script to determine when to display a particular
view. The system only displays this field when you create an
advanced View Rule.

Click Submit.

Restrict view by role

You can use a script to control the form view used by different roles.

Caution: The customization described here was
developed for use in specific instances, and is not supported by ServiceNow Customer Support. This method is provided as-is and should
be tested thoroughly before implementation. Post all questions and comments regarding this
customization to our community forum.

Name:Restrict View by Role

Type:System UI > View Rules

Table:Any

Description: Generally the view used on a form is controlled by either specifying
the sysparm_view parameter in the url or module properties, or by
inheriting the view from the previous form or list. Sometimes this does not apply, such as
when opening a referenced field form from a record producer. In this case, you may want to
control the view of the form based on roles. This script assumes there is a view called
ess available to the current table.

Parameters:

view - A string containing the name of the current view.

is_list - A Boolean value indicating whether this is a list
view.

Script:

(function overrideView(view, is_list) {
//Force non-itil users to use the ess view
if (gs.hasRole("itil"))
{return;}
if (view.startsWith("ess"))
{return;}
// do not change view if it starts with sys_ (e.g. sys_ref_list)
if (view.startsWith("sys_"))
{return;}
answer = "ess"; // set the new view to answer
})(view, is_list);