目的:ユーザーの複数指定
ユーザーを指定するとき、単一ユーザーを指定するのに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に変更します。
結論
上記の変更を適用することで、
選択肢に表示ユーザーを限定した複数リストを表示し、かつ選択時と選択後にユーザー名が表示される、利便性の高いユーザー選択が可能となります。
参考資料
参照フィールドに特定のグループのユーザーのみを選択する方法
リスト フィールドにシステム ID が表示されるのはなぜですか?
[ServiceNow] Reference Fieldに表示されるDisplay ValueをUserの選択言語で切り替える