システムがビューを表示するタイミングを制御する

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:3分
  • アドミニストレーターは、指定したビューにフォームまたはリストを表示する場合の条件を決定するルールを作成できます。アドミニストレーターは、ユーザーロール別にビューを制限することもできます。

    始める前に

    必要なロール:admin

    手順

    1. 移動先 すべて > システム UI > 表示ルール.
    2. [New] をクリックします。
    3. フォームを完了します。
      表 : 1. ビュールールフォーム
      フィールド 入力値
      名前 ルールの識別名を指定します。このフィールドでは大文字と小文字が区別され、ビュー名と正確に一致する必要があります。
      アクティブ 指定した条件に従って表示ルールを適用するには、このオプションを選択します。オフにすると、表示ルールは適用されません。
      詳細 条件ビルダーを使用する代わりにコードベースの条件を指定するには、このオプションを選択します。このオプションを選択すると、[ スクリプト] フィールドが表示され、[ 一致条件]、[ 条件]、および [ビュー ] フィールドが非表示になります。
      一致条件 いずれかまたはすべての条件を満たす必要があるかどうかを選択します。詳細表示ルールを作成すると、このフィールドは非表示になります。
      条件 条件ビルダーを使用して、ビューを適用するタイミングを決定します。詳細表示ルールを作成すると、このフィールドは非表示になります。
      アプリケーション 表示ルールレコードが属するアプリケーションを表示します。
      テーブル この表示ルールが適用されるテーブルを選択します。リストには、表示ルールと同じスコープ内にあるテーブルビューとデータベースビューのみが表示されます
      デバイスタイプ この表示ルールを適用するインターフェイスを選択します。
      表示 ルールを作成するビューの名前を入力します。詳細表示ルールを作成すると、このフィールドは非表示になります。
      スクリプト 特定のビューを表示するタイミングを決定するスクリプトを入力します。このフィールドは、詳細表示ルールを作成する場合にのみ表示されます。
    4. [Submit (送信)] を選択します。

    ロールごとに表示を制限

    スクリプトを使用して、さまざまなロールで使用されるフォームビューを制御できます。

    警告:
    ここに記載されているカスタマイズは、特定のインスタンスで使用するために開発されたものであり、Now Support ではサポートされていません。この方法は現状のまま提供され、実装の前に完全にテストする必要があります。このカスタマイズに関するすべての質問およびコメントは、コミュニティフォーラムに投稿してください。

    名前: ロール別に表示を制限

    タイプ: システム UI > 表示ルール

    テーブル: 任意

    説明:通常、フォームで使用されるビューは、URL またはモジュールのプロパティで sysparm_view パラメーターを指定するか、前のフォームまたはリストからビューを継承することによって制御されます。レコードプロデューサーから参照フィールドフォームを開く場合など、これが当てはまらない場合があります。この場合、ロールに基づいてフォームのビューを制御することができます。このスクリプトでは、現在のテーブルで使用できる ess と呼ばれるビューがあることを前提としています。

    パラメーター:
    • view - 現在のビューの名前を含む文字列。
    • is_list :リストビューかどうかを示すブール値。

    Script :

    (function overrideView(view, is_list) {
    //Force non-itil users to use the ess view
    if (gs.hasRole("itil"))
    {return;}
    if (view.startsWith("ess"))
    {return;}
    // do not change view if it starts with sys_ (e.g. sys_ref_list)
    if (view.startsWith("sys_"))
    {return;}
    answer = "ess"; // set the new view to answer
    })(view, is_list);