---
sourceDocument: Xanadu ServiceNow AI Platform Administration
sourceDocumentLink: https://www.servicenow.com/docs/r/xanadu/platform-administration

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu ServiceNow AI Platform Administration

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# Constrain the assigned to field by role

# Constrain the assigned to field by role {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

This example shows how to use JavaScript and a business rule to restrict the
incident Assigned to field choices to only the users with the
itil_admin role.

## Before you begin

Role required: personalize_dictionary or admin

## About this task

You can also change itil_admin to any other role on a reference field that refers to
the User \[sys_user\] table.

## Procedure

1. Open an incident.
2. In the upper-left corner of the screen, click the form context menu, and then select ConfigureDictionary.
3. In the Reference qual field, enter <kbd class="ph userinput">javascript:"sys_idIN"+getRoledUsers("itil_admin").join(",")</kbd>.
4. Save the record.
5. To see the base system business rule that this JavaScript code calls, navigate to System DefinitionBusiness Rules.
6. Open getRoledUsers.  
   The business rule uses the following JavaScript code.

       // Return an array of sys_ids of the users that have at least one role
       // optional parameters allow the exclusion (NOT IN) of some roles or
       // look for specific roles (IN)
       //
       // optional: queryCondition - 'IN' or 'NOT IN'
       // optional: roleList - a comma separated list of role names
       //
       function getRoledUsers(queryCondition, roleList) {
          var roleListIds;
          if (queryCondition && roleList) {
             roleListIds = getRoleListIds(roleList);
          }

          var users = {};
          var now_GR = new GlideRecord('sys_user_has_role');
          if (roleListIds) {
             now_GR.addQuery('role', queryCondition, roleListIds);
          }
          now_GR.query();
          while (now_GR.next()) {
             users[now_GR.user.toString()] = true;
          }
          
          var ids = [];
          for (var id in users)
             ids.push(id);
             
          return ids;
       }

       // get sys_id's for the named roles
       function getRoleListIds(roleList) {
          var ids = [];
          var now_GR = new GlideRecord('sys_user_role');
          now_GR.addQuery('name','IN',roleList);
          now_GR.query();
          while (now_GR.next()) {
             ids.push(now_GR.sys_id.toString());
          }
          return ids;
       }

*[\>]: and then


