はじめに
ServiceNowのFormでは、Context MenuのExportから、対象レコードの情報をPDFで出力することができます。
しかし、Userのような機微な情報は、PDF化を禁止したいという要望もあるかもしれません。
ここでは、sys_userテーブルを対象に、admin以外は、Context MenuのExportを非表示にする方法を取り上げます。
UI Macroの設定
FormのコンテキストメニューはUI Macroで制御されています。
All > System UI > UI Macrosから、「context_form_header」を開きます。
XMLの102行目に以下のコードを見つけてください。
(環境によっては位置が異なるかもしれません。)
XML
gcm.addMenu("${gs.getMessage('Export')}", mExport, "context_exportmenu");
この行を、次のようにif文でネストします。
ref変数には、OOTBで対象のTable名が格納されています。
今回はこれを活用して、「admin以外はsys_userのFormのExportを表示しない」という要件を実現しています。
XML
<j2:if test="$[${gs.hasRole('admin')} || ${ref != 'sys_user'}]">
gcm.addMenu("${gs.getMessage('Export')}", mExport, "context_exportmenu");
</j2:if>