---
sourceDocument: Xanadu Now Platform の管理
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/platform-administration

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu Now Platform の管理

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# アサイン先フィールドをロールで制限する

# アサイン先フィールドをロールで制限する {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：2分

この例では、JavaScript とビジネスルールを使用して、インシデントの \[アサイン先\] フィールドの選択肢を itil_admin ロールを持つユーザーのみに制限する方法を示しています。

## 始める前に

必要なロール：personalize_dictionary または admin

## このタスクについて

ユーザー \[sys_user\] テーブルを参照する参照フィールドで、itil_admin を他の任意のロールに変更することもできます。

## 手順

1. インシデントを開きます。
2. 画面の左上隅にあるフォームのコンテキストメニューをクリックし、 Configure (構成)ディクショナリ.
3. \[参照修飾子\] フィールドに「<kbd class="ph userinput">javascript:"sys_idIN"+getRoledUsers("itil_admin").join(",")</kbd>」と入力します。
4. レコードを保存します。
5. この JavaScript コードが呼び出すベースシステムビジネスルールを表示するには、 システム定義ビジネスルール.
6. getRoledUsers を開きます。  
   ビジネスルールでは、次の JavaScript コードを使用します。

       // 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;
       }


