【技術】フォームを切り替えて、ユーザーがより使いやすい画面を提供する

社内業務に関するシステムを一元化して運用・管理できるクラウドサービス「ServiceNow」。
株式会社KYOSOでは、これまでの豊富な運用経験をもとに、ServiceNowの企画立案から運用・保守、内製化までトータルでサポートしています。

このブログでは、申請書の状況やユーザーが持つ役割に応じて、フォーム上に表示する項目を増減させることで、よりわかりやすい入力画面を提供する方法をご紹介します。

目的

申請書のステータスや閲覧するユーザーが持つ役割(Role/権限)により、フォーム上に表示する項目を増減させ、よりわかりやすい入力画面を提供する。

方法・手段

  • フォームに含まれる特定のフィールド(例えばステータス)の値に応じて、表示するフォームビューを切り替えるため、表示ルール[View Rules]を使用します。

前提条件:ServiceNowの環境

  • 作成 ・・・ PDI
  • バージョン ・・・ Tokyo
  • 操作 ・・・ System Administrator (admin)

実装手順

1. UIビューを作成する

  1. [System UI] > [Views]を開く
  2. [New]ボタンで新規作成する
    • Name : 内部的な名前。英数字のみが無難。
    • Title : ビューの切替などで表示される文字列。(Nameと同じにしておく方がわかりやすい)
  1. Submitする

2. フォームビューを作成する

  1. 設定したいテーブルのレコードを開く
  2. ≡(ハンバーガーメニュー) > [Configure] > [Form Design] または [Form Layout]を開く
  1. [Form Design]の場合
    画面上部のビュー設定欄で[New]を選択し、1で作成したUIビューのNameを入力
  1. 表示したい項目を設定して[Save]する

3. 表示ルールを作成する

  1. [System UI] > [View Rules]を開く
  2. [New]ボタンで新規作成する
    • Name : 名前
    • Table : フォームを設定したいテーブル
      • ※アプリケーションスコープを設定している場合、指定できる[Table]はアプリケーションスコープ内のものに限られます
    • Device Type : Browser
    • Match conditions : All
    • View : 1で作成したUIビューのNameを入力
    • Conditions : フォームを設定する条件
      • 例では「[Approval](フィールド)が[Approved](値)になっている」場合を条件として設定
  1. [Submit]する

結果の確認

  • 指定した[Table]のレコードを表示する際、[Conditions]に合致した場合に、指定した[View]が適用される。
    (=ルールが適用された状態)
  • ルールが適用されるとタイトル部分には「View:~~~*」と表示され、自分でビューを変更した場合と違い、末尾に*が付与されている。
    View部分にマウスオーバーすると、View forced by a View Ruleとポップアップ表示される。
  • ルールが適用されている場合、≡(ハンバーガーメニュー)で[View]は表示されない。
    つまり、ユーザー側ではビューの変更ができない。
    これはURLに「&sysparm_view_forced=true」が設定されているため。
  • ルールによりビューが適用されたレコードから、画面右上のPrevous record(↑) または Next record(↓) で他のレコードに移動した場合、移動先でもビューが適用されたままになる。
    ただしルールの適用外であればView名の末尾に*はなく、ビューの変更が可能。(≡(ハンバーガーメニュー)に[View]が表示される)

さいごに

今回ご紹介した表示ルールを活用することで、承認時に必要な項目だけを表示させたり、権限を持たないユーザーにも最低限の情報だけは開示したりといった運用が可能となります。

最後まで閲覧いただき、ありがとうございました。
あなたにとって有益な情報を提供できたのであれば、大変嬉しく思います。


参考

なお、Qiitaにも同様の投稿をしています。

投稿者プロフィール

シロボシアカモエビ
シロボシアカモエビ
2022年よりServiceNow業務に着任。案件のリードを担当しています。
以前はインフラ運用に従事していました。

保有資格
- ServiceNow Certified System Administrator
- ServiceNow Certified Application Developer
- ServiceNow Certified Implementation Specialist - Strategic Portfolio Management
- ServiceNow Certified Implementation Specialist - Application Portfolio Management
TOP