【ServiceNowスクリプト事始め】UIポリシー

 クライアント スクリプトと同様に、UI ポリシーはフォームとフォーム フィールドの動作を制御するクライアント側のロジックです。
 UIポリシーを使用すると、特定の条件に基づいてフォーム上のフィールドの表示や非表示、読み取り専用、必須の設定などを動的に変更できます。
 これにより、ユーザーの入力をガイドし、データの整合性を保つことが可能になります。
 クライアント スクリプトとは異なり、UI ポリシーは常にスクリプトを必要とするわけではありません。

UIポリシーの構成

 [System UI]>[UI Policies]モジュールにより表示されたUIポリシーのリストの右上にある[New]ボタンをクリックすると、新しいUIポリシーを構成する画面に遷移します。

Table(テーブル)
  UI ポリシーが適用されるフォーム(テーブル)
Application(アプリケーション)
  UI ポリシーのスコープを識別
Active(アクティブ)
  UIポリシーの有効/無効を制御
Short description(短い説明)
  UI ポリシーの機能についての簡単な説明。リストの表示列となっているため必須項目
Order(順番)
  同じテーブルに複数の UI ポリシーが存在する場合に動作する順序を決定
・Condition(条件フィルター)
  UIポリシーが動作する条件を記述
・Global(チェックボックス)
  チェックするとすべてのフォーム ビューにUIポリシーが適用。ノーチェックの場合、特定のビューのみにUI ポリシーが適用
  (チェックをはずすとビューの選択フィールドが表示)
・On load(チェックボックス)
  チェックするとフォームが読み込まれるとき、およびユーザーがフォーム上の値を変更するときに、UI ポリシー アクションを適用
・Reverse if false(チェックボックス)
  条件が 無効(false) の場合、UI ポリシー アクションの効果を元に戻す
Inherit(チェックボックス)
  指定されたテーブルの拡張するテーブルにこの UI ポリシーを継承

UIポリシーの作成例

 それでは実際にUIポリシーを作ってみましょう。
 ここでは「incidentテーブルにおいて、Channelフィールの値がPhoneの場合、Description(説明)フィールドを必須項目にする」というUIポリシーを作成しましょう。
 [UI Policies]モジュールで[New]をクリックし、以下のような情報を入力します。

Table:incident
Short Description:ChannelがPhoneの場合、Description(説明)を必須項目にする
Condition:Channel is Phone
 ※その他フィールドはデフォルト

 ここでSaveすると(Submitではありません)、以下のような設定画面が最下方に追加されますので、

 [New]をクリックし、条件に合致した場合のAction(これをUIポリシーアクションという)を設定します。

Field name:Description
Mandatory(必須):True
 ※その他フィールドはデフォルト

実際にincidentテーブルで試してみると、Descriptionフィールドは必須項目になりました。

ちなみに[条件] フィールドに値がない場合、条件は true を返し、フォーム上のフィールド値が変更されるたびに UI ポリシー ロジックが実行されます。

(おわり)