About displaying data by 「.list」

Ohki_Yamamoto
Tera Guru

ServiceNowアプリケーションナビゲーターからXXXX.listを実行して、テーブル内のデータのリストを表示します。

この.listコマンドを制御して、特定のユーザーが使用できないようにすることはできますか?

.list以外のテーブル(モジュールなど)を参照できるようにしたいと考えていますが、ACLまたはその他の方法でターゲットテーブルへの参照権限を削除することで、問題のテーブルへの参照を効果的に無効にできます。

これを達成する方法はありますか?

4 REPLIES 4

Hitoshi Ozawa
Giga Sage
Giga Sage

.listを制御することはできませんが、ユーザが表示できるレコードと列はACLで制限することはできます。

「.list以外のテーブル(モジュールなど)」とは具体的にどのようなものでしょうか?

ServiceNowでは多くの要素がテーブルで管理されています。例えばテーブル定義はsys_db_objectテーブルやsys_dictionaryテーブルにあります。

 

ありがとうございます。


>「.list以外のテーブル(モジュールなど)」とは具体的にどのようなものでしょうか?

 ⇒すいません、文章が少しおかしくなっていました。

  実現したいこととしては、

  ・「.list」では参照不可にしたい

  ・アプリケーション内のモジュールから、テーブルのリストを開いた場合は参照可能にしたい

   (参照するユーザによって、表示対象のレコードを出し分ける制御を実施する想定)

  という事です。

 

  このような制御は実現できますでしょうか?

URLを見ていただくと分かると思いますが、例えばユーザテーブルと開くと次のようなURLが開かれます。

nav_to.do?uri=%2Fsys_user_list.do

他のテーブルを開くと次のようになります。

nav_to.do?uri=%2F<テーブル名>_list.do

要するに「テーブル名.list」及び「テーブル名.LIST」は上のURLを開いているだけです。

URLは「テーブル名.list」で開くのとアプリケーションナビゲータで開くのと同じです。同じURLを開いているので「テーブル名.list」だけを禁止することはできません。

「.list」だけでなく、ServiceNowにはURLからだけしか開けない隠し機能があります。

早々にご回答ありがとうございます。

承知致しました。

 

「.list」実行時のURLには、「nav_to.do?」はつきませんが、

「<テーブル名>_list.do」が同じであるため、

実質的に同じ処理が実行されていると理解しています。

 

なお「.list」を実行した際に、上記のURLに読み替えている処理がある認識のため、

その読み替えをさせない方法がないか?と考えておりましたが、

そこの制御は難しいと理解しました。

 

今回の要件のように、

・参照するユーザによって、表示対象のレコードを出し分ける制御を実施したい

・「.list」を使われると全データが見えてしまうので、何かしらで制御したい

という場合は、

どのように制御するのがベストプラクティスと考えられますでしょうか?

 

ACL上でカスタマイズし、表示対象データを制御するのが望ましいでしょうか?

参考までにご教示いただけますと幸いです。