1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

List型で限られたユーザー(Group内)だけを出したい時の実装

Last updated at Posted at 2024-08-23

目的:ユーザーの複数指定

ユーザーを指定するとき、単一ユーザーを指定するのにUser型を使用します。
一方で複数ユーザーを指定したいシチュエーションも存在し、その時はList型を使用します。
List型で参照型をsys_userとすることで、ユーザーを複数指定可能です。

制約1.「限定されたユーザー」を指定する際の制約

ただ、この時にはすべてのユーザー(厳密には全てのアクティブユーザー)が選択肢に表示されるのですが、
これでは不便です。システムに落とすときにはある程度限定されたユーザー一覧から表示したいのが要望です。

解決1.「限定されたユーザー」⇒グループメンバーテーブルの使用

この時には例えばある集合(グループ)に存在するユーザーを指定するようにすれば解決します。
具体的には、グループメンバーTable(sys_user_grmember)を参照型に指定します。
そうすれば集合内のユーザーを表示します。

制約2.指定時の初期表示がsysIDである

ただグループメンバー型を実装した場合には、選択肢の表示が初期ではsysIDのみとなります。
これではユーザーの選択による役に立ちません。

解決2.リストレイアウト指定によるユーザー表示

この解決としては列ヘッダーを右クリックし、[リスト レイアウト] を選択して必要な列を追加すると、
それぞれの値を表示できるようになります。
ここでたとえばユーザー名とグループ名を指定することで、
ユーザビリティが向上した複数指定リストが作成できます。

制約3.指定後の表示値がsysIDである

また、もう一つ検討事項が出てきます。
選択後の表示値がsysIDにデフォルト設定ではなります。
これはsysIDではなくユーザー名で表示したいはずです。

解決3.Reference先のTableのDisplay fieldの値の変更

この場合の原因は以下によります。
FormのReference fieldに表示される値は、Reference先のTableのDisplay fieldの値になります。Table定義で、特定のFieldがDisplay指定されていれば、そのField、あるいは、どのFieldもDisplay指定されていなければ、nameやu_nameフィールドがDisplay valueになります。

つまり、sys_user_grmemberのテーブルの列のユーザーの表示をTrueに変更します。
image.png

結論

上記の変更を適用することで、
選択肢に表示ユーザーを限定した複数リストを表示し、かつ選択時と選択後にユーザー名が表示される、利便性の高いユーザー選択が可能となります。

参考資料
参照フィールドに特定のグループのユーザーのみを選択する方法

リスト フィールドにシステム ID が表示されるのはなぜですか?

[ServiceNow] Reference Fieldに表示されるDisplay ValueをUserの選択言語で切り替える

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?