※本投稿は過去に弊社のHatena blog MKIが解説するServiceNow開発blog に掲載した内容を再編集したものです。
みなさんはServiceNowでレポートを作るときにレポートに出力したいフィールドがテーブルに存在せずに困ったことはないでしょうか?
たとえば、レポート対象のテーブルに開始日と終了日の日付フィールドがあるとします。レポートには、開始から終了に要した日数を出力したいが、テーブルにはこのフィールドが存在しないため、テーブルにカスタムフィールドを追加した、というような経験はないでしょうか?
こんなちょっとした問題に対応するための新機能が少し前のQuebecリリースで追加されていたのでご紹介します。
Function Field
レポートの作成画面にいつのまにか下図の赤枠のような項目が追加されていることにお気づきでしょうか?
ボタンを押してみると、下図のようなモーダルウィンドウが開きます。
Labelには追加したいフィールドの名前、Return Typeにはそのフィールドに表示する値の型を入力します。
そして、その値を生成する関数をDefinition欄で定義します。
定義に際しては以下の2種類の入力補助機能を利用できます。
- Add Operation
- Add Field
前者は下図のように、利用できる関数とそのヘルプが表示されます。(Excelの関数によく似ています)
後者は関数の引数として使用するフィールドの物理名の入力を補助してくれます。
Add Fieldの項目にセレクタが表示されるので選択。
下図は入力補助を使って作成した関数です。
Actual StartとActual Endの期間を出力する関数です。
関数を定義しているフィールドの下に「Syntax is correct for this function」と表示されているので、関数が正しく機能することがわかります。
Saveボタンを押して関数を保存したら、作成したフィールドをレポートに表示してみます。
図の赤枠の箇所に関数フィールドを表示しました。二つの日時の差を期間として表示することができました。