---
sourceDocument: Xanadu プラットフォームアナリティクス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/now-intelligence

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu プラットフォームアナリティクス

ft:clusterId :

    - par

bundleId :

    - par

workflow :

    - Platform


---

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

# スクリプト： パフォーマンスアナリティクス {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：7分

パフォーマンスアナリティクスは、パフォーマンスアナリティクスデータのクエリのためのスクリプトと API で使用するための、いくつかのスクリプト オブジェクトを提供しています。このスクリプトはブレークダウンマッピングとして機能するか、インジケーターから値を計算します。

## スクリプトに関するヒント {#pa-scripts__section_ysl_gw2_nsb}

* 一般に、スクリプトは、 `score_start` 変数と `score_end` 変数を使用して、日付処理を伴う経過時間などのインジケーターをサポートする場合にのみ使用します。
* 不要なフィールドを制限します。追加のドット連結フィールドを含めるたびに、クエリに追加の結合が追加されます。
* パフォーマンスを向上させるために、手動によるブレークダウンをデータベースビューに置き換えてみてください。
* 一般的な関数にはスクリプトインクルードを使用してください。詳細については、「[スクリプトインクルード](https://www.servicenow.com/docs/access?context=c_ScriptIncludes&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US)」を参照してください。
* データがレポートに必要な構造になっていない場合は、スクリプトを作成する代わりに、運用テーブルに「レポートフィールド」を追加してみてください。詳細については、この [コミュニティの投稿](https://community.servicenow.com/community?id=community_blog&sys_id=2f99990fdbee5b00fece0b55ca9619fb)を参照してください。
* パフォーマンスアナリティクススコアまたはスナップショットテーブルを照会するバックグラウンドスクリプトを実行している場合、アプリケーションに適切なロールがないかぎり、スコープ対象のアプリケーションに関するデータにアクセスすることはできません。

{#pa-scripts__ul_mcf_gws_yjb}  
警告:  
パフォーマンスアナリティクス スクリプトまたは式インジケーターで GlideRecords または GlideAggregates を使用しないでください。必要なものを取得するためにこれらの操作を使用する必要がある場合もありますが、これらはコストがかかり、数十万回実行する可能性があります。使用する前に、代替が存在しないことを確認してください。

## ブレークダウンマッピングとインジケータースクリプト {#pa-scripts__section_bdq_kw2_nsb}

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

## ブレークダウンスクリプト {#pa-scripts__section_krh_nw2_nsb}

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

    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` [スクリプト変数](https://servicenow-prod.fluidtopics.net/Jxx0dzmtTB89keDdeGe1JA#pa-scripts "パフォーマンスアナリティクスは、パフォーマンスアナリティクスデータのクエリのためのスクリプトと API で使用するための、いくつかのスクリプト オブジェクトを提供しています。このスクリプトはブレークダウンマッピングとして機能するか、インジケーターから値を計算します。")はデータコレクターから取得され、収集される期間にバインドされます。たとえば、月次インジケーターが収集されている場合、 `score_end` は月末です。ここでは、インシデントがオープンされたときのタイムスタンプが、収集期間の終わりのタイムスタンプから減算され、結果が日に変換されます。

この例には、このスクリプトの \[フィールド\] フィールドで指定されている `Incident.opened_at` フィールドが含まれています。`score_start`と`score_end`は、\[フィールド\] フィールドで定義せずに使用できます。
**関連タスク**   

* [ブレークダウン レコードでのブレークダウンマッピングの作成](https://servicenow-prod.fluidtopics.net/Ag8TdMrnPr3PZLtBaWF0Iw "インジケーター ソースのどのフィールドがブレークダウン ソースを参照しているかを指定します。適切なフィールドがない場合は、インジケーター ソースをクエリするためのスクリプトを指定します。")  
**関連情報**   

* [サーバースコープ API リスト](https://developer.servicenow.com/dev.do#!/reference/api/tokyo/server)

## パフォーマンス分析でのスクリプトの作成 {#ariaid-title2}

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

### 始める前に

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

### 手順

1. 移動先 すべてPerformance Analytics (パフォーマンスアナリティクス)スクリプト をクリックし、\[ New\] をクリックします。
2. スクリプトにわかりやすい \[名前\] を付けます。
3. スクリプトを適用する \[ファクトテーブル\] を選択します。  
   これと同じファクト テーブルを使用するインジケーターのみが、このスクリプトを使用できます。
4. スクリプトで使用されるファクト テーブルの \[フィールド\] がある場合は、選択します。  
   フィールドはラベルで選択します。
5. スクリプトを記述します。  
   スクリプトは、次の関係と制限に従う必要があります。
   * このフォームとスクリプト変数で選択されているフィールドのみを含めることができます。詳細については、パフォーマンスアナリティクス変数に関するセクションを参照してください。
   * スクリプトでフィールドを使用する場合は、列名を使用します。必要に応じて、ファクト テーブルの列名をルックアップします。
   * データベース ビューのフィールドを使用する場合は、プリフィックスを含める必要があります。たとえば、incident_sla データベース ビューには、taskslatable というプリフィックスを持つ task_sla テーブルが含まれています。task_sla には、business_duration 列が含まれています。incident_sla データベースビューから business_duration フィールドを使用するには、 taskslatable_business_duration として記述します。データベース ビューにアクセスできない場合は、システム管理者にプリフィックスの検索を依頼してください。
   {#create-script-pa__ul_h32_xzl_sbb}

### 次のタスク

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

## パフォーマンスアナリティクス の変数 {#ariaid-title3}

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

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

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

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

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

* [ユーザーのタイムゾーンが異なることによるscore_start/終了の変更](https://servicenow-prod.fluidtopics.net/LGJG4OwqQdIzTuGyXrKJ~w "式インジケーターの場合、変数 score_start および score_end の値は、式を実行しているユーザーのタイムゾーンに基づいて計算されます。異なるタイムゾーンのユーザーが同じ計算式を実行すると、 score_start と score_end の値が変わります。")  
**関連タスク**   

* [数式のアナリティクスメソッドを取得する](https://servicenow-prod.fluidtopics.net/ZLmWgmi3WGg25Xbh7pW_5A "アナリティクスハブから計算された値を数式に挿入するには、数式のメソッドを使用します。")  
**関連情報**   

* [GlideDateTime - スコープ指定](https://developer.servicenow.com/app.do#!/api_doc?v=paris&id=c_GlideDateTimeScoped)

