2
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?

ServiceNow Australia新機能触ってみた2 MRVS(複数行変数セット)の変数設定"Hide on grid"

2
Last updated at Posted at 2026-04-26

Service CatalogのAustraliaリリースノートをチェック

前回

に引き続き、AustraliaリリースノートとPDIでの新機能を漁ってテストしてみたの第2弾です。

業務上カタログをかなり扱うので、リリースノートを確認していたところ興味のある記述を見つけたのでその紹介です。

チェックしたドキュメント
Service Catalog release notes

赤枠の個所に目を付けました
image.png

背景 たまたま列数の多いMRVSを業務で扱っていた

これは記事を書くためのストーリー仕立てにするためというわけではなく、マジで業務上MRVSで割と多めの列(12列)のMRVSを含むカタログを設計しており、なんか使えるんじゃないかと思ったのがきっかけです。

まずは機能の動きをお見せした後に考察へ入る構成でお送りいたします。

実際の設定画面

Australia PDIでVariableの設定画面に行くと、設定値画面の右下「Hide on grid」が表示されていますね。
image.png

ここを検証していきます。

使ってみた

では早速カタログの設定画面から確認していきましょう
例によって動作が確認できれば良いので、名前はわかればよい、データ型もテキトー、物理名もそれなりにテキトー、でお送りします。

検証準備

1)検証用にあからさまな名前の変数セットを用意
image.png

2)実際の想定に合わせてとりあえず12列用意
image.png

3)まずはHide on gridをどの変数にも設定しない状態の確認です
image.png

そりゃそうですが設定したすべての列が表示されていますね。

検証

では、実際に今回のテーマであるHide on gridを試します。
今回はVariable G,H,Iを非表示にしてみます。
image.png
これらの Hide on gridを「true」に変更

image.png

その名の通り非表示になりましたね。

何度も名前の通りと言ってしまってあれなのですが、「グリッド上の非表示」を設定するものなので、入力モーダル上はHide on gridを設定した変数も表示されます。
image.png

ここが利用するうえで抑えるポイントになるかなと思います。

触ってみたとしては簡単ですがこんな感じですね。

考察 - どう使うべきか

ここからが実際にこの機能を使うとしたら、というところを少し考えてみたいと思います。
私が今回業務上扱った要件(MustじゃなくてNice have toくらいの要件)は「ほかの変数の条件によってMRVSの表示/非表示を制御したい」でした。
そんなタイミングでこのリリースノートをチェックできたので、なにか使えるか検証した、というのが背景です。

んで、今回の私の要件においては「使えそうなところもあるけど、バッチりハマるわけではない」という感じです。

理由としては、設定画面と動作の検証の結果の通り、Hide on grid は「MRVS gridでは隠すが、入力モーダルでは表示する」が仕様です。
また、このオプション自体は変数そのものの設定であり、動的に条件によって表示/非表示を制御するものではない、というところもあります。
※Hide on grid自体を条件によって変えてしまうと、サーバー側の設定になりますので別のユーザーからの見え方も意図せず変わってしまいます。(他の設定も同様ですが)

入力モーダルの条件による表示制御であれば例えば以下のようなonLoadのカタログクライアントスクリプトを設定すればよいです。

choice が 1 のとき → G, H, I を非表示
choice が 2 のとき → C, D, E を非表示
にするサンプルカタログクライアントスクリプト

Sample Catalog Client Script
  applyConditionalDisplay();
}

function applyConditionalDisplay() {
  var choiceValue = g_service_catalog.parent.getValue('choice');

  resetDisplay();

  if (choiceValue === '1') {
    hideGroupGHI();
  } else if (choiceValue === '2') {
    hideGroupCDE();
  }
}

function resetDisplay() {
  g_form.setDisplay('variable_c', true);
  g_form.setDisplay('variable_d', true);
  g_form.setDisplay('variable_e', true);
  g_form.setDisplay('variable_g', true);
  g_form.setDisplay('variable_h', true);
  g_form.setDisplay('variable_i', true);
}

function hideGroupGHI() {
  g_form.setDisplay('variable_g', false);
  g_form.setDisplay('variable_h', false);
  g_form.setDisplay('variable_i', false);
}

function hideGroupCDE() {
  g_form.setDisplay('variable_c', false);
  g_form.setDisplay('variable_d', false);
  g_form.setDisplay('variable_e', false);
}

まとめ

以上のようなことを踏まえて、「もしHide on gridを使うとしたらこんな感じ」は以下になるなぁと思いました。

(条件によって入力項目の有無が変わる要件がある前提で)
・Grid上は共通項目のみ表示する(それ以外はHide on grid設定する)
・条件の制御は入力モーダル上で動作するカタログクライアントスクリプトで設定する

グリッド上の表示項目が多いものには一定使ってよいのかなと思いました。

列名や入力値の値が一定文字数あると、横スクロールで確認しづらいというのもあると思うので、
項目が多いためGrid表示を見やすく共通項目に絞りたい、入力値はボタン1回押して確認できれば良い
ということであれば、一定有用なものになるかもしれません。

2026/04/26 投稿後追記
記事投稿後に、Xのやりとりで
「(レアケースだが)ユーザー入力をもとに他システム連携するデータ」などにも有用かも
という示唆をいただきました。こういったユースケースにも使えそうですね!
(リプライ感謝です)

↑の件のスレッド↓

image.png
(だいたいこれくらいの文字数で横スクロールになりますね、を作ろうとした画面)

今回Australia側で変数設定側にこの設定が出たことで、今後クライアント側でGridの制御ができるようなスクリプトメソッドも登場かもしれませんね。(隠れて、もうあるとかもありえるな…)

ということでAustralia新機能触ってみたの第2弾をお届けしました。これからも新機能で気になるものがあれば記事にしていきたいと思います!

それでは!

2
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
2
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?