動的 JavaScript フィルター
指定した値の代わりにレポート可視化の基準の一部として構成できる動的な条件を JavaScript で作成します。
動的な条件ステートメントを使用してレポートを作成するには、フィルターの条件値ステートメントに JavaScript URL を配置します。JavaScript コマンドをフィールドに直接入力できますが、複数のステートメントより長いスクリプトの場合は、スクリプトを専用のレコードに配置する必要があります。次に、レポート条件の値フィールドでそのレコードから関数を呼び出します。
動的 JavaScript フィルターを追加する
レポート可視化のフィルター基準の一部として、評価用の動的 JavaScript ステートメントを追加します。
始める前に
必要なロール:itil、report_user、report_group、report_global、report_admin、または admin。意味のあるレポートを作成するには、レポートするデータにアクセスする権利が必要です。
このタスクについて
JavaScript フィルターは、1 行のステートメントでも、長いスクリプトでもかまいません。長い JavaScript ステートメントの場合は、正しい形式とデータタイプを返し、レポートでフィルタリングする特定のデータに準拠し、クライアントコール可能なスクリプトインクルードを作成します。詳細については、「スクリプトインクルード」を参照してください。
手順
- 移動先 すべて > レポート > 表示/実行.
- 動的フィルターを追加するレポート可視化を開きます。
-
フィルターアイコン ()
を選択して、条件ビルダーを展開します。
-
フィルター条件を作成します。
これらのフィールドタイプと演算子の組み合わせにより、動的な JavaScript ステートメントを指定できます。注:
- 「between」演算子は、同じまたは異なる JavaScript URL をサポートできる 2 つのフィールドを提供します。
- 「is」演算子は、予想される型のデータ要素の配列を返すことができます。この場合、演算子は "is one of" 演算子として扱われます。
フィールドタイプ 許可された演算子 想定される戻り値のデータ型 Sys ID (GUID) "is"、"is not"、"is one of"、"starts with"、"ends with"、"contains"、"does not contain"、"between"、"greater than or is"、"less than or is"。 sys_id値の全部または一部のテキスト表現。 "is one of" 演算子の場合、想定される戻り値の型は、sys_id値のコンマ区切りリストか、結果に含める必要がある各sys_idを含む配列のいずれかになります。
フリーテキスト文字列 "is"、"is not"、"is one of"、"starts with"、"ends with"、"contains"、"does not contain"、"between"、"greater than or is"、"less than or is" 1 つ以上のテキスト文字。「is one of」演算子の場合、想定される結果は、文字列値のカンマ区切りリストか、「is one of」検索値フィールドに含める各値を含む配列のいずれかになります。 参照 "starts with"、"ends with"、"contains"、"does not contain" テーブルまたはデータソースのこのフィールドにある値の一部または値の一部を表す 1 つ以上のテキスト文字。 文字列 (別のテーブルを参照) 「含む」、「次で始まる」、「次で終わる」、「含まれない」 テーブルまたはデータソースのこのフィールドにある値の一部または値の一部を表す 1 つ以上のテキスト文字。 ユーザー入力 「次の値に等しい」、「次の値と異なる」 テーブルまたはデータソース内のこのフィールドのレコードの完全な値を表すことができるテキスト文字。 テーブル名 "is"、"is not"、"is one of"、"starts with"、"ends with"、"contains"、"does not contain"、"between"、"greater than or is"、"less than or is" システム内のテーブル名の全体または部分をテキストで表現したもの。"is one of" 演算子の場合、想定される戻り値の型は、テーブル名値のコンマ区切りリスト、または結果に含める必要がある各テーブル名を含む配列のいずれかです。 テンプレート値 「次の値に等しい」、「次の値と異なる」 インスタンスで見つかったテンプレートに従って値を実行するテキスト文字。 ドメイン ID "starts with"、"ends with"、"contains"、"does not contain" テーブルまたはデータソースのドメインフィールドにある値の一部または値の一部を表す 1 つ以上のテキスト文字。 ユーザーロール 「次の値に等しい」、「次の値と異なる」 ユーザーロールの文字列値のテキスト表現。 ドメインパス "starts with"、"ends with"、"contains"、"does not contain"、"is"、"is not"、"is one of"、"less than or is"、"greater than or is"、"between" テーブルまたはデータソースのこのフィールドにある値の一部または値の一部を表す 1 つ以上のテキスト文字。「is one of」演算子の場合、コンマで区切られたテキスト値のリスト、または含める必要のある各値を含むアレイオブジェクトのいずれか。 翻訳されたテキスト "is"、"is not"、"is one of"、"starts with"、"ends with"、"contains"、"does not contain"、"between"、"greater than or is"、"less than or is" テキスト値。 "is one of" 演算子の場合、想定される戻り値の型は、コンマで区切られたテキスト値のリストまたはテキスト値の配列のいずれかです。
翻訳 (変換) 済みフィールド HTML 「次の値を含む」、「次の値を含まない」 このレポート基準で選択されたフィールドのデータに対応する可能性のあるテキスト値。 HTML テンプレート Email スクリプト 「次の値を含む」、「次の値を含まない」 [メールスクリプト] フィールドに含める必要がある (または含めない) 値を表すテキスト値。 スクリプト (平文) 「次の値を含む」、「次の値を含まない」 [スクリプト] フィールドに含める必要がある (または含めない) 値を表すテキスト値。 スクリプト (サーバー側) スクリプト 短いテーブル名 「次の値に等しい」、「次の値と異なる」 テキスト値 (40 文字未満)。 "is one of" 演算子の場合、想定される戻り値の型は、コンマで区切られたテキスト値のリストか、短いテーブル名を表す各テキスト文字を含む配列です。
フィールド名 "is"、"is not"、"is one of"、"starts with"、"ends with"、"contains"、"does not contain"、"between"、"greater than or is"、"less than or is" フィールド名値の全体または部分をテキストで表現したもの。 "is one of" 演算子の場合、想定される戻り値の型は、フィールド名値のコンマ区切りリストか、結果に含める必要がある各フィールド名を含む配列のいずれかになります。
-
フィールドタイプと演算子を選択し、JavaScript ステートメントを入力します。
- 1 行の JavaScript ステートメントの場合は、
javascript:<JavaScript_Statement>;という形式を使用します。 - スクリプトインクルードを呼び出す JavaScript ステートメントの場合は、
javascript:new <Record_Name>().<Function_Name>();という形式を使用します。ここでRecord_Nameはスクリプトインクルードのレコード名に対応し、Function_Nameはフィルターで比較された値を返すスクリプトインクルード内の関数です。
注:Javascript URL には、計算を実行して結果を返す関数に渡される 1 つ以上のパラメーターを含めることもできます。たとえば、スクリプトインクルードレコードに 2 つのパラメーターを渡す JavaScript 関数は、javascript:new TextJSFilter().getGroupIDs("Professional Services","Sales");のように記述できます。 - 1 行の JavaScript ステートメントの場合は、
次のタスク
必要な JavaScript ステートメントと条件を追加し、レポートの残りの部分を構成したら、レポートをテストして、期待した結果が返され、表示されることを確認します。