ServiceNow の Service Portal を使っていると、
「申請画面を開いた時点で、申請者にログインユーザーを自動で入れたい」
という要件は非常によくあります。
本記事では、 ポータルの申請画面を開いた際に、ログインユーザーを自動的に『申請者欄』へセットする方法を、 初心者の方でも実装できるように分かりやすく解説します。
◼️実現したいこと
- Service Portal の申請画面を開く
- ログインしているユーザー情報を取得
- 申請者欄(User参照)に自動入力されている
毎回ユーザーに選ばせる必要がなくなり、 入力ミス防止・UX向上につながります。
◼️実装の考え方
今回の実装ポイントは以下の3点です。
- 申請者欄は User(sys_user)参照変数を使う
- 画面表示時に処理を行うため Catalog Client Script(onLoad) を使用
- ログインユーザーは g_user.userID で取得
◼️実装手順
●手順①:申請者用の変数を作成する
まずは、申請者を表示・保持するための変数を作成します。
設定例
| 項目 | 設定値 |
|---|---|
| Type | Reference |
| Question | 申請者 |
| Name | applicant |
| Reference table | User [sys_user] |
| Read only | 任意(自動入力のみならON推奨) |
※ Name(内部名) は後続のスクリプトで使用するため、必ず控えておきましょう。
●手順②:Catalog Client Script を作成する
次に、申請画面表示時に自動入力を行う Client Script を作成します。
基本設定
- Type:onLoad
- UI Type:Service Portal(または All)
- Active:true
●手順③:スクリプトを実装する
以下が実装例です。
functiononLoad() {
// ログインユーザーの sys_id を取得
varuserSysId = g_user.userID;
// 申請者変数にセット
g_form.setValue(‘applicant’, userSysId);
}
スクリプト解説
- g_user.userID
- 現在ログインしているユーザーの sys_id
- g_form.setValue()
- カタログ変数に値をセットするAPI
- applicant
- 作成した申請者変数の Name
◼️動作確認
Service Portal から対象の申請画面を開くと、 以下のように申請者欄へ自動的にログインユーザーが表示されます。
- 表示名:ユーザー名
- 実際に保持されている値:sys_id
◼️よくあるつまずきポイント
① 申請者が表示されない
- 変数の Type が Reference になっているか
- Reference table が sys_user になっているか
- スクリプト内の変数名が一致しているか
② 値は入っているが編集させたくない
- 変数設定で Read only = true を指定
◼️応用:requested_for と連動させたい場合
今回の方法は、 あくまで「画面上の申請者変数」への自動セットです。
RITM の requested_for とも連動させたい場合は、
- Flow Designer
- Business Rule
などでバックエンド側の同期処理を追加すると、 より実務向けの実装になります。
まとめ
- Service Portal では Catalog Client Script(onLoad) が最適
- ログインユーザーは g_user.userID で簡単に取得可能
- Reference 変数に sys_id をセットするのがポイント
非常によく使う実装なので、 他のカタログアイテムにもそのまま流用できます。
ServiceNow の小ネタ・実装Tipsとして、ぜひ活用してみてください。
投稿者プロフィール
最新の投稿
お知らせ2025年12月31日ServiceNow 事例|ポータル申請画面で申請者を自動入力する方法
お知らせ2022年11月3日テーブルを作成してみよう!!
お知らせ2022年11月3日ServiceNowとは?
お知らせ2022年10月8日転職へのきっかけ
Comments are closed