フォーム
Nowプラットフォームでの管理者(一次受付、二次対応者)サイドが業務で使うことを想定した入力フォームです。イメージは下記。

実開発においては、フル機能が提供されている上記フォームから、業務要件に合わせて表示項目を増減させたり、必須入力項目を出したり、バリデーションを行ったりなどの各種制御を施すことが絶対不可欠となる。
ServiceNowの特徴
そして、フォームのそれぞれの項目は別テーブルで管理されている。
ServiceNowのNowプラットフォームを代表する特徴はすべての機能をテーブル単位で格納していることだと個人的に思っている。資産管理の資産情報、インシデント管理のインシデントなどといった固有データ、承認ワークフローなどの非定型データ、ServicePortakなどのUI部品、クライアント・サーバなどのスクリプト、各種機能別のプラグイン、といったありとあらゆるWebアプリケーション開発のすべてがテーブルによって管理されているのは、慣れるまでは癖があるが、慣れたらその一貫性のゆえにありがたくも感じる。
テーブルごとの管理、ということ
上の図においては、一枚フォームですら、
- property
- ui action
- contexual search
- form layout
その他などの多数のテーブルがモジュールとして結合しているが故の表示形式なのである。
前置きはこれくらいにして、本題
今回やることは、不要な表示項目を消すオペレーションです。消す方法は、いろいろありますが(フォームのだしわけ、UIポリシーにスクリプトで制御、ACLで権限を付与しない、部品をActive=Falseで非活性にするなど)
今回はひとつひとつ見ていこうと思います。本質的な対応はACL(Access Control)やViewの作成になるとは思いますが、それ以外の方策を考えます。
1.manage attachmentボタン
system definition > client scriptsを変更することで消すことが可能

g_form.disableAttachments()というメソッドを使用すれば消えます。結果↓

②条件付きで消したい場合
callerの入力値がGuestの場合、attachmentを無効にしたい場合
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
//callerの値によってifconditionで表示を変更しています
var checkValue = g_form.getDisplayBox('caller').value;
if (checkValue == "Guest"){
g_form.disableAttachments();
} else {
g_form.enableAttachments();
}
}
これで動きます。
2.show activity stream ボタン
次はこれを消したい。

消す方法
system property(sys_properties.list)テーブルに、glide.ui.activity_stream.form_buttonという項目があるので(True/False型)、falseに設定する。

3.personalize_form ボタン
次はこれを消したい

消す方法
前の項目同様、system property(sys_properties.list)テーブルに、glide.ui.personalize_formという項目があるので(True/False型)、falseに設定する。
4.more optionボタン

これは1)のattachmentボタンと同様、client scriptにスクリプトを追加することで消すことができます。
DOMで要素を取得して消しましょう。
具体的には、下記のスクリプトを追加します。
$('toggleMoreOptions').hide();
5.followボタン

上記のfollowボタンはsystem property(sys_properties.list)のglide.live_feed.task_header_buttonをlive_feedにすることで消すことができます。
6.UIアクションたち

のUpdate,aaaaa,Resolveなどのボタンたちは、ITSMでの運用上に不可欠なボタンです。ですから、UI ActionをActive=Falseとするのではなく、
上記のExclude設定の効果を見ますと、

確かに消えていますね!UI ActionはView設定のinclude/excludeで行いましょう!
入力フォームのだしわけ
下記の入力フォームの中身は、FormLayoutで編集が可能です

三本線のconfigure>formlayout

下記の画面に遷移するので左右で編集できます!




