スクリプト: パフォーマンスアナリティクス

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:7分
  • パフォーマンスアナリティクスは、パフォーマンスアナリティクスデータのクエリのためのスクリプトと API で使用するための、いくつかのスクリプト オブジェクトを提供しています。スクリプトは、ブレークダウンマッピングとして、またはインジケーターから値を計算するために機能します。

    スクリプトに関するヒント

    • 一般に、スクリプトは、 score_start 変数と score_end 変数を使用して、日付処理による経過時間などのインジケーターをサポートする場合にのみ使用してください。
    • 不要なフィールドを制限します。ドット連結フィールドを追加するたびに、クエリに結合が追加されます。
    • パフォーマンスを向上させるために、手動ブレークダウンを データベースビュー に置き換えるようにしてください。
    • 一般的な関数にはスクリプトインクルードを使用するようにしてください。詳細については、「スクリプトインクルード」を参照してください。
    • レポートに必要な方法でデータが構造化されていない場合は、スクリプトを作成する代わりに運用テーブルに「レポートフィールド」を追加してみてください。詳細については、この コミュニティの投稿を参照してください。
    • パフォーマンスアナリティクススコアまたはスナップショットテーブルにクエリを実行するバックグラウンドスクリプトを実行している場合、そのアプリケーションに対する適切なロールがない限り、スコープ対象のアプリケーションに関するデータにアクセスすることはできません。
    警告:
    パフォーマンスアナリティクス スクリプトまたは式インジケーターで GlideRecords または GlideAggregates を使用しないでください。必要なものを取得するためにこれらの操作を使用する必要がある場合もありますが、これらはコストがかかり、数十万回実行する可能性があります。使用する前に、代替が存在しないことを確認してください。

    ブレークダウンマッピングとインジケータースクリプト

    ブレークダウンマッピングスクリプトは、通常、ブレークダウン要素のsys_idまたはスコアをバケットに入れる整数のいずれかを返します。インジケータースクリプトは、1 つ以上のフィールドから計算されたスコアを返します。同じスクリプトで、ブレークダウンマッピングスクリプトとしてもインジケータースクリプトとしても機能します。

    ブレークダウンスクリプト

    たとえば、インシデントテーブルの opened_at フィールドを使用する Incident.Age.Days スクリプトについて考えてみます。このスクリプトは、インシデント経過時間範囲 (日数) バケットグループ をブレークダウンソースとして使用する経過時間ブレークダウンのブレークダウンマッピングとして機能します。

    var diff=function(x,y){return y.dateNumericValue() - x.dateNumericValue();};
    var days=function(x,y){return diff(x,y)/(24*60*60*1000);};
    days(current.opened_at, score_end);

    この例では、 current.opened_at 現在評価されているレコードが開かれたときのタイムスタンプを取得します。score_end スクリプト変数データコレクターから取得され、収集される期間にバインドされます。たとえば、月次インジケーターを収集している場合、 score_end は月末です。ここでは、インシデントがオープンされたときのタイムスタンプが収集期間の終了のタイムスタンプから減算され、結果が日数に変換されます。

    この例には、このスクリプトの [フィールド] フィールドで指定されている Incident.opened_at フィールドが含まれています。フィールドフィールドで定義せずにscore_startscore_endを使用できます。

    パフォーマンス分析でのスクリプトの作成

    スクリプトを作成するには、まず、スクリプトを適用するファクト テーブルを選択し、明示的にフィールドを選択します。

    始める前に

    必要なロール:admin、pa_adminパフォーマンスアナリティクステーブル内のスコープ対象アプリケーションのデータにアクセスするには、そのアプリケーションの適切な admin ロールも必要です。

    手順

    1. 移動先 すべて > パフォーマンスアナリティクス > スクリプト をクリックし、[ 新規] をクリックします。
    2. スクリプトにわかりやすい 名前を付けます。
    3. スクリプトが適用される ファクトテーブル を選択します。
      同じファクトテーブルを使用するインジケーターのみが、このスクリプトを使用できます。
    4. スクリプトで使用するファクトテーブル のフィールドを選択します (存在する場合)。
      ラベルでフィールドを選択します。
    5. スクリプトを記述します。
      スクリプトは、次の関係と制限に準拠する必要があります。
      • このフォームとスクリプト変数で選択したフィールドのみを含めることができます。詳細については、パフォーマンスアナリティクス変数に関するセクションを参照してください。
      • スクリプトでフィールドを使用する場合は、列名を使用します。必要に応じて、ファクトテーブルで列名を検索します。
      • データベースビューのフィールドを使用する場合は、プリフィックスを含める必要があります。たとえば、incident_sla データベースビューには、接頭辞 taskslatable が付いた task_sla テーブルが含まれます。Task_slaには business_duration 列が含まれます。incident_slaデータベースビューのbusiness_durationフィールドを使用するには、 taskslatable_business_durationとして書き込みます。データベースビューにアクセスできない場合は、システムアドミニストレーターにプレフィックスを探すように依頼してください。

    次のタスク

    スクリプトを作成したら、そのスクリプトを使用するブレークダウンマッピングまたはインジケーターを作成します。ブレークダウンマッピングまたはインジケーターフォームを開くには、ブレークダウンマッピングタブまたはインジケータータブのいずれかで [新規 ] をクリックします。このスクリプトを使用するブレークダウンマッピングとインジケーターが、これらのタブに一覧表示されます。

    パフォーマンスアナリティクス の変数

    いくつかの変数は、 パフォーマンスアナリティクス スクリプトと式インジケーターで使用できます。

    パフォーマンスアナリティクススクリプトと式では、次の変数を使用できます。

    • score_start:最初のインジケータースコア収集日の最初の 1 秒。スクリプトの場合、時間は、収集ジョブの実行ユーザーのタイムゾーンとデータベースのタイムゾーン (GMT) の差に基づいて計算されます。式の場合、時間は、式を実行したユーザーのタイムゾーンと GMT の差に基づいて計算されます。ユーザーは、ダッシュボードウィジェットまたは アナリティクスハブで式インジケーターを表示して式を実行します。
    • score_end:最後のインジケータースコア収集の 1 日の最後の 1 秒。時間は score_startの場合と同じ方法で計算されます。
    • pa: アナリティクスハブ 属性とメソッドのセットを提供する式変数で、スクリプトでは使用できません。

    スクリプトでは、スコア収集の開始変数と終了変数は GlideElementGlideObject オブジェクトです。これらの変数から GlideDateTime オブジェクトを取得するには、次の例のように getGlideObject() を呼び出します。 gs.log("Score main = " + score_end.getGlideObject().getDayOfWeek());

    式では、スコア収集の開始変数と終了変数は既に GlideDateTime オブジェクトです。したがって、次の例のように、 getGlideObject() を呼び出すことなく変数を直接使用できます。 gs.log("Score main = " + score_end.getDayOfWeek());

    開始変数と終了変数の値は、収集される期間にバインドされます。たとえば、月次インジケーターを収集している場合、 score_end は月末です。

    score_startscore_endの値は、関連するユーザーのタイムゾーンに基づいて計算されます。パフォーマンスアナリティクススクリプトの場合、これは収集ジョブの実行タイムゾーンです。式の場合、これは、ダッシュボードウィジェットまたは アナリティクスハブで式インジケーターを表示するユーザーのタイムゾーンです。したがって、異なるタイムゾーンのユーザーは、式の score_startscore_end の日付が異なる場合があります。