30日間の無料評価版をお試しいただけます。

レポート APIの概要

レポート APIは、レポートの状態を制御します。これには、現在のドリルの状態、並べかえ条件、フィルター値、適用されたその他のレポートインタラクションを含む、現在のレポートの状態に関する情報が含まれます。

レポート APIは、レポートの実際の実行も制御し、レポートの実行時にすべてのインタラクションをYellowfin サーバへ送信します。また、ユーザーアクション、または自動化された開発者アクションによりレポートに対してアクションが実行されると、APIは多数のイベントのトリガーになります。


デフォルトChart IDおよびChart ID

レポートには複数のグラフを含めることができます。各グラフはchartId、およびchartUUIDを持ちます。chartIdは、レポートが編集され、再度公開されるたびに変更されますが、chartUUIDは常に同じです。chartIdを必要とするすべての関数は、同様にchartUUIDも受け付けますが、これは変更されることがないため、chartIdを渡す必要のあるすべての関数で、chartUUIDを使用することを推奨します。

また、レポートで最初に使用可能な「デフォルトグラフ」があります。使用可能なグラフとは、フィールドが割り当てられているグラフのことです。chartIdを必要とする関数にこれが渡されていない場合は、デフォルトグラフが使用されます。

グラフのプロパティを使用することで、レポート上のすべてのグラフにアクセスできます。


フィールドID

レポートには、複数のフィールドが含まれます。これらの各フィールドは、レポートのコンテキスト内で一意のIDを持ちます。このIDは、レポートが編集されても変更されることはありません。getFieldId(fieldName)という関数を使用することで、フィールド名を基に、フィールドIDを取得することができます。fieldIdを受け付ける関数の大部分はフィールド名を受け付けることもでき、渡された名前を基にfieldIdの検索を試みます。

フィールドのプロパティを使用することで、レポート上のすべてのフイールドにアクセスできます。


ドリル

ドリルエニウェア、またはドリルダウンがフィールドに適用された場合、プロセスは次の通りです。

  1. 非公開フィルターとしてドリル値を適用します。
  2. ドリルダウンしていたフィールドを、ドリル先のフィールドに置き換えます。
  3. 新しいフィールドとフィルターを使用してクエリーを実行します。

レポートにはカラム(列)がひとつだけとして、非常にシンプルなドリルの例を挙げます。スキーチームビュー(Yellowfinのチュートリアルコンテンツにバンドル)には、「Agency Type」というフィールドがあり、これには「Agency Name」を子フィールドとしてドリル階層が設定されています。「Agency Type」フィールドにドリルダウンが適用された場合、レポートロジックは、「Agency Name」フィールドへドリルダウンすることを把握しています。


レポートを最初に実行すると、SQLは次のようになります。

SELECT DISTINCT
        "TRAVELAGENCY"."AGENCYTYPE" AS C1
FROM "TRAVELAGENCY"


「Agency」値にドリルダウンが適用されると、SQL内で「Agency Type」が置き換えられ、Agency Typeフィルターも追加されます。

SELECT DISTINCT
        "TRAVELAGENCY"."AGENCYNAME" AS C1
FROM "TRAVELAGENCY"
WHERE (
       "TRAVELAGENCY"."AGENCYTYPE" = 'Agency'
)

ドリルエニウェアも同様に機能しますが、定義済みの「ドリル先」フィールドが無いため、ユーザー(または、APIの呼び出しを使用している場合は開発者)がドリル先のフィールドを定義します。





プロパティのリファレンス

name(名前)

リターン

String

説明

レポートの名前を返します。これは翻訳が有効化され、その言語の翻訳が提供されている場合、ユーザーの使用言語に翻訳されます。


reportUUID(レポートUUID)

リターン

String

説明

レポートのUUIDを返します。


entityUUID(エンティティUUID)

リターン

String

説明

このインスタンスのレポートに固有の識別子です。これは、レポートがダッシュボードに追加されたときに定義されます。それ以外の場合は、nullになります。


filters(フィルター)

リターン

フィルター API

説明

レポートのフィルター APIを返します。このレポートがダッシュボードに含まれている場合は、フィルター APIは、ダッシュボードのフィルター APIと同じになります。


fields(フィールド)

リターン

Array[ReportField]

説明

レポートのフィールドの順序付き配列を返します。


charts(グラフ)

リターン

Object{String, ReportChart}

説明

グラフUUIDによりキー設定された、レポート上のすべてのレポートグラフを含むオブジェクトを返します。


reportKey(レポートキー)

リターン

String

説明

レポートオブジェクトのどのインスタンスを使用するかを正確に識別するために使用されるレポートの一意の識別子です。多くのイベントは、情報の一部としてこれを含みます。





レポートAPI パラメーター

これらのパラメーターは、必要なレポートごとに個別に設定しなくてはいけません。例えば、自動インサイトは通常グラフからトリガーされるため、これらのパラメーターは親レポートのAPIで設定する必要があります。


useDefaultAssistedInsightsPanel(デフォルトの自動インサイトパネルを使用)

デフォルトは、trueになっています。

これは、デフォルトの自動インサイト表示パネルをレンダリングするようにシステムに指定します。displayAssistedInsightsDataがカスタムパネルで上書きされる場合は、falseにする必要があります。

コードモードでは、以下のようになります。

let reportElement = this.apis.canvas.select('Performance by Region');

reportElement.onReportLoad.then(() => {

let reportAPI = reportElement.reportAPI;

reportAPI.useDefaultAssistedInsightsPanel = true;

});


preventDefaultAssistedInsights(デフォルトの自動インサイトの防止)

デフォルトは、falseになっています。

デフォルトの自動インサイトフローを停止することで、必要に応じて、runAssistedInsightsを呼び出すことができます。

これは特に、自動インサイトプロセスのUI要素(ローダーなど)をカスタマイズしたいが、グラフのツールチップからプロセスをトリガーする必要がある場合に便利です。

let reportElement = this.apis.canvas.select('Performance by Region');

reportElement.onReportLoad.then(() => {

let reportAPI = reportElement.reportAPI;

reportAPI.preventDefaultAssistedInsights = true;

});




関数のリファレンス

getFieldId(fieldName)(フィールドIDの取得)

リターン

Number

説明

渡されたfieldNameのフィールドIDを返します。一致するフィールドが見つからない場合は、nullを返します。

「Invoiced」フィールドのフィールドIDを取得します。

let fieldId = report.getFieldId('Invoiced');


getFieldName(filedId)(フィールド名の取得)

リターン

String

説明

渡されたfieldIdのフィールド名を返します。一致するフィールドが見つからない場合は、nullを返します。

特定のフィールドがドリルダウンされたことをログに記録します。

report.addListener('drilldown', function(event) {
    console.log(report.getFieldName(event.eventData.fieldId) + " just had a drill value applied to it");
})


getChartId(chartId)(グラフIDの取得)

リターン

Number

説明

渡されたグラフ名、またはグラフUUIDの内部グラフIDを返します。グラフIDが渡された場合は、レポートのデフォルトグラフIDが返されます。一致するグラフが見つからない場合は、nullが返されます。


applySeriesSelection(series, chartId)(シリーズ選択の適用)

リターン

なし

説明

渡されたグラフIDにシリーズ選択を適用します。シリーズ選択は、グラフ上のシリーズフィールドを他のフィールドに置き換えるか、複数のシリーズフィールドをグラフに追加し、同時に描画するかのいずれかの方法で機能します。

この関数をレポートに適用するには、グラフレベルで「シリーズ選択を表示」オプションを有効にしなくてはいけません。以下のイメージを参照してください。


(以下に示すように)シリーズ選択のスタイルオプションが「トップパネル」、または「左パネル」に設定されている場合は、グラフのシリーズ選択は単一選択タイプになります。つまり、一度に選択できるシリーズはひとつだけです。このオプションを有効にした場合は、グラフは渡された配列の最初の値のみを取得します。

プロパティが「シリーズ選択の表示」に設定された場合は、グラフのタイプは、すべての値を使用するかどうかを決定します。

グラフ、またはレポートに存在しないfieldIdがapplySeriesSelection関数に渡された場合は、そのfieldIdは無視され、グラフはデフォルトシリーズ値に戻されます。

パラメーター

Series - Array[Number]

レポートに適用するフィールドIDの配列です。

chartId - String, Number

シリーズ選択を適用するグラフIDです。グラフIDが渡されない場合は、デフォルトグラフIDが使用されます。

デフォルトグラフのシリーズ選択に複数のフィールドを追加します。

let fieldsToAdd = ['Invoiced', 'Cost', 'Profit'];
report.applySeriesSelection(fieldsToAdd );


フィールドIDを使用して適用します。

report.applySeriesSelection(5);


フィールド名を使用して適用します。

report.applySeriesSelection('Invoiced');


createReportElement(elementOptions)(レポート要素の作成)

リターン

HTML要素

このメソッドは、組み込まれたAPI内にのみ存在します。これは、ダッシュボードコードモード内で使用することができません。

これは、レポートのビジュアライゼーションをレンダリングするelement(要素)を作成し、返します。element(要素)がelementOptionsの一部として渡される場合、新しいレポートelement(要素)はこれが作成されると同時に追加されます。

希望のエクスペリエンスを正確に構築をするために、リクエストと一緒に渡すことのできるオプションがいくつかあります。

BaseAPI.loadereportが使用するすべての関数(reportId, instanceNameおよびfilterValuesを除く)をcreateReportElementと合わせて使用することもできます。

例1:複数のグラフを持つレポートをロードし、キャンバス表示ではなく、これらすべてを個別のelement(要素)にレンダリングします。

HTML:

<div id=”reportContainer”></div>

CSS:

div.reportContainer app-report {

     width:500px;

     height:500px;

}

JS:

let reportUUID = ‘a-report-uuid’;

yellowfin.loadReport({

    reportId: reportUUID

}).then(report => {

     let charts = report.charts;

     Object.values(charts).forEach(chart => {

         report.createReportElement({

              element: document.querySelector(‘#reportContainer’),

              displayType: ‘CHART’, //Tell the report to render as a chart

              chartUUID: chart.uuid, //Tell the report which chart you wish to render

              displayToolbar: false //Tell the report not to render any toolbar

         });

     });

});

これは、コンテナ内の各グラフに500×500のレンダーを作成します。


例2:レポートをロードし、そのキャンバスとテーブルをレンダリングします。

HTML:

<div id=”reportContainer”></div>

CSS:

div.reportContainer app-report {

     width:500px;

     height:500px;

}

JS:

let reportUUID = ‘a-report-uuid’;

yellowfin.loadReport({

    reportId: reportUUID

}).then(report => {

    report.createReportElement({

         element: document.querySelector(‘#reportContainer’),

         displayType: ‘CANVAS’, //Tell the report to render as a chart

         displayToolbar: false //Tell the report not to render any toolbar

    });

    report.createReportElement({

         element: document.querySelector(‘#reportContainer’),

         displayType: ‘REPORT’, //Tell the report to render as a chart

         displayToolbar: false //Tell the report not to render any toolbar        

    });

});

インタラクション

インタラクションオブジェクトは、特定のレポートのビジュアライゼーションでどのインタラクションを利用可能にするかを定義します。これにより、Yellowfin レンダラーに対して、そのビジュアライゼーション内でユーザーが使用できる機能を指定できます。

同じレポートを表す複数のelement(要素)があり、インタラクションを無効にしたい場合、表示しているすべてのelement(要素)でこれを無効にする必要があります。例えば、最初のelement(要素)のドリルダウンを無効にしてから、二番目のelement(要素)のドリルダウンを無効にしなかった場合、ユーザーは依然として二番目のelement(要素)のドリルダウンを実行できます。

デフォルトでは、明示的にfalseに設定されていないインタラクションはすべて有効と見なされ、レポートで許可されている場合は表示されます。


animation

グラフのアニメーションを無効にできます。

annotations

アノテーションを無効にできます。

brushing

ブラッシング機能を無効にできます。

drillAnywhere

ドリルエニウェア機能を無効にできます。

drillBreadcrumbs

パンくずリスト機能を無効にできます。

drillDown

ドリルダウン機能を無効にできます。

drillThrough

ドリルスルー機能を無効にできます。

unitSelection

単位選択機能を無効にできます。

timeSlider

タイムスライダー機能を無効にできます。

seriesSelection

シリーズ選択機能を無効にできます。

annotations

注釈機能を無効にできます。

creatReportElement関数を使用してレポート上のすべてのユーザーインタラクションを無効にするには、以下を参照してください。

report.createReportElement({

     interactions: {

            animation: false,

annotations: false,

brushing: false,

drillBreadcrumbs: false,

drillDown: false,

 drillAnywhere: false,

drillThrough: false,

unitSelection: false,

timeSlider: false,

seriesSelection: false,

     }

});


sortAscending(fieldId)(昇順に並べかえ)

リターン

なし

説明

渡されたフィールドに昇順の並べかえを適用します。渡されたフィールドIDが、レポート上のフィールドと一致しない場合、並べかえは適用されません。

パラメーター

fieldId: Number, String

並べかえるフィールドのフィールドID、または名前です。


sortDescending(fieldId)(降順に並べかえ)

リターン

なし

説明

渡されたフィールドに降順の並べかえを適用します。渡されたフィールドIDが、レポート上のフィールドと一致しない場合、並べかえは適用されません。

パラメーター

fieldId: Number, String

並べかえるフィールドのフィールドID、または名前です。


runReport()(レポートの実行)

リターン

なし

説明

レポートの現在の状態を適用してレポートを実行します。runReport関数が短期間に複数回トリガーされる場合、レポート実行リクエストは、一度だけサーバに送信されます。

レポートの実行が終了した後、5秒ごとにレポートを再実行します。

//Add a listener for the reportComplete event
report.addListener('reportComplete', () => {
         //Add a 5000ms delay before triggering runReport again
        setTimeout(() => {
                report.runReport();
        }, 5000)
});

report.runReport();


runAssistedInsights(自動インサイトの実行)

リターン

Promise

説明

自動インサイトプロセスを開始します。これにより、一時的な自動インサイトレポートが生成され、レポートデータを使用してPromiseが解決されます。assistedinsigntsCompleted イベントも同じデータでトリガーされます。

新規自動インサイトレポートは、オプションが同じ場合でも、これが呼び出されるたびに生成されます。これを手動で呼び出す場合は、前の呼び出しが返されるまで、重複したリクエストや複数のリクエストを行わないようにすることを推奨します。

この関数に必要な形式でデータを生成する最も簡単な方法は、既存のグラフで自動インサイトプロセスをトリガーし、assistedInsigntsRequestedByChart イベントからeventDataを使用することです。

パラメーター

Options{object}

  • loader{DOM 要素}(オプション設定)。自動インサイトプロセスの進行中にレンダリングするカスタムローダーです。これは、必要に応じて自動的にページに追加され、自動インサイトデータが返されると削除されます。これが提供されない場合は、デフォルトローダーがレンダリングされます。
  • reportTitle{String}(オプション設定)。一時的な自動インサイトレポートのレポート名です。これが提供されない場合は、デフォルトのレポート名が生成されます。


options objectには、自動インサイトプロセスに次のデータを必要とします。必要なデータ以外にも、グラフや分析のタイプに応じて変数が変化します。

必要なデータ:

  • type{String} - 自動インサイトの分析タイプを指定します。「compare」、または「explain」のいずれかになります(下記参照)
  • metricField
  • metricDescription
  • categoryField
  • value1{String またはNumber}: 実際に分析で使用される値です。


「explain」String タイプ

オプション設定:

  • dateValue
  • timeSeries
  • discreteTimeSeries
  • granularity


「compare」String タイプ

追加で必要な値:

  • categoryFieldId
  • categoryKey
  • value2{String またはNumber}: 自動インサイトの比較分析で使用される二番目の値です。
  • valueOneFormatted(デフォルトローダーを使用している場合のみ):ユーザーに表示されるvalue oneの説明です(例:Australia)。
  • valueTwoFormatted(デフォルトローダーを使用している場合のみ必要):ユーザーに表示されるvalue twoの説明です。


オプション設定:

  • timeSeries
  • discreteTimeSeries
  • timeGranularity


グラフのデータを使用してrunAssistedInsightsを呼び出す方法については、assistedInsightsRequestedByChart イベントリファレンスを参照してください。

手動での呼び出し:

let assistedInsightsData = {    

    categoryField: 60629,

    categoryFieldId: 1, 

    categoryKey: "61039",

    dashboardName: "Sales Performance",

    dashboardUUID: "e7409ff2-f846-44e1-a603-b78ec51b20b9",

    metricDescription: "KPI",

    metricField: 60686,

    reportTitle: "Comparing KPI for Europe to Asia",

    parentReportId: 61035,

    sourceId: 54700,

    type: "compare",

    value1: "Europe",

    value2: "Asia",

    valueOneFormatted: "Europe",

    valueTwoFormatted: "Asia",

    viewId: 60543

};

reportAPI.runAssistedInsights(assistedInsightsData);


openComaprePanel(value, comparableValues, metricDescription)(比較パネルのオープン)

リターン

なし

説明

自動インサイトの比較分析で使用する二番目の値を選択するためのパネルをレンダリングします。

この関数を上書きすることで、ユーザーは独自の比較パネルを実装することができます。上書きしない場合は、デフォルトのパネルがレンダリングされます。どちらの場合でも、二番目の値が選択されることで、compareValuesSelected イベントがトリガーされます。このイベントとともに渡されるデータについては、compareValuesSelected イベントリファレンスを参照してください。

グラフのツールチップから比較がトリガーされたときに、ひとつの値のみが選択されている場合、openComaprePanelの呼び出しは、デフォルトの自動インサイトフローにより自動的に制御されます。preventDefaultAssistedInsightsがtrueに設定され、runAssistedInsightsを呼び出している場合、openComaprePanelも手動で呼び出す必要があります。


パラメーター

  • value{Object}: 比較分析の最初の値を含むvalueObjectです。
    • これらは、次のいずれかの形式になります。value/rawValueは分析で使用される値を示し、description/formattedValueはユーザーに表示される値の説明を示します。

{

    value: “EU”, 

    description: “Europe”

}

{

    rawValue: "EU", 

    formattedValue: "Europe"

}

assistedInsightsRequestedByChart イベントから自動インサイトデータを抽出している場合、valueはeventDataのvalue 1に対応し、comparableValuesはpossibleValuesに対応します。

  • comparableValues{Array}: 比較分析の二番目の値として使用される可能性のある値を含むvalueObjectsの配列です。
    • 次の形式である必要があります。

[{

    value: “AUS”, 

    description: “Australia”

}, 

{

    value: “NA”, 

    description: “North America”

}]

  • metricDescription{String}(オプション設定):使用されるメトリック(数値)(例:KPI)の説明です。これはUI目的で、デフォルトの比較パネルに情報を追加するためだけに使用されます。


reportAPI.addListener('assistedInsightsRequestedByChart', event => {

let runAssistedInsightsData = event.eventData;

if (runAssistedInsightsData.type === 'compare' && runAssistedInsightsData.value2 == null) {

reportAPI.openComparePanel(runAssistedInsightsData.value1, runAssistedInsightsData.possibleValues, runAssistedInsightsData.metricDescription);

}

});


displayAssistedInsightsData(assistedInsightsData)(自動インサイトデータの表示)

リターン

なし

説明

ページ上に自動インサイトデータをレンダリングします。

この関数を上書きすることで、データがレンダリングされる方法をカスタマイズできます。そのためには、レポートAPIでuseDefaultAssistedInsightsPanelをfalseに設定します。

独自の表示パネルをレンダリングする場合は、データが不要になったら(通常は表示パネルが閉じられたら)、deleteTemporaryAssistedInsightsReportを呼び出すことを推奨します。これは、一時的な自動インサイトレポートに関連するすべてのデータを削除します。デフォルトの表示パネルは、自動的にこれを制御します。

let runAssistedInsightsPromise = reportAPI.runAssistedInsights(data);

runAssistedInsightsPromise.then(assistedInsightsData => {

// Display the report results

reportAPI.displayAssistedInsightsData(assistedInsightsData);

});


cancelAssistedInsights(assistedInsightsUUID)(自動インサイトのキャンセル)

リターン

なし

説明

自動インサイトプロセスが完了し、データが返される前に、そのプロセスをキャンセルします。

これはカスタムローダーをレンダリングする際に、時間がかかりすぎる場合、ユーザーがプロセスをキャンセルできるため便利です。

これには、自動インサイトジョブのUUIDが必要です。これは、assistedInsightsProgress イベントがトリガーされたときに、eventDataとして渡されます。

reportAPI.addListener(‘assistedInsightsInProgress’, event => {

let assistedInsightsTaskUUID = event.eventData;

reportAPI.cancelAssistedInsights(assistedInsightsTaskUUID);

});


deleteTemporaryAssistedInsightsReport(assistedInsightsReportId)(一時的な自動インサイトレポートの削除)

リターン

なし

説明

自動インサイトに対して生成された一時レポートを削除します。これは、デフォルトのYellowfin表示パネルが閉じられると自動的に呼び出されますが、カスタム表示パネルをレンダリングしている場合は、データが不要になった際にこれを呼び出すことを推奨します。


パラメーター

  • assistedInsightsReportId{Number}: 一時的な自動インサイトレポートのIDです。runAssistedInsights promiseが解決されたとき、またはassistedInsightsCompleted イベントがトリガーされたときに渡されるデータに返されます。


let runAssistedInsightsPromise = reportAPI.runAssistedInsights(data);

runAssistedInsightsPromise.then(assistedInsightsData => {

let reportId = assistedInsightsData.assistedInsightsReportId;

reportAPI.deleteTemporaryAssistedInsightsReport(reportId);

});

registerOutputType(outputOptions, callback)(出力タイプの登録)

リターン

Number

説明

レポートにレポート出力タイプを登録することで、開発者はレポートから追加情報を取得できます。登録した出力の一意の識別子を返しますが、これを使用することで不要になったoutputTypeリクエストをレポートから削除できます。

出力タイプのコールバック関数は、レポートがサーバからそのデータを返すたびに呼び出されますが、reportCompleteイベントがトリガーされる前に呼び出されます。

Yellowfin 9.2以降では、レポートデータセットを出力タイプとしてリクエストできます。

データセット

レポートのデータセットを返します。

オプション

この出力タイプに定義できるオプションはありません。

コールバックパラメーター

データセット

二次元配列です。配列の各項目は、次の値を含むオブジェクトになります。

  • rawValue:データベースから取得する場合の値です。
  • formattedValue:参照コード、またはフォーマッターが適用された後の値です。
  • htmlFormattedValue:HTMLページに挿入する準備ができた値です。


デフォルトで参照コードとして書式設定されているフィールド「Gender」の場合、データオブジェクトは次のようになります。

{
         rawValue: 'FEMALE', //In the SkiTeam database the Gender code is all caps
         formattedValue: 'Female', //After it has been formatted as a refcode it becomes a more readable version
         htmlFormattedValue: 'Female' //For this case, they are exactly the same.
}


formattedValueとhtmlFormattedValueの違い

多くの場合、formattedValueとhtmlFormattedValueに違いは見られません。いくつかのフォーマッターはHTMLタグを出力するため、そこに違いが現れます。例えば次のレポートでは、「Gender As Link」フィールドは、「URLへリンク」フォーマッターを使用して書式設定されており、テーブルに挿入されるアンカータグを生成します。


上記のロウ(行)のデータセットは、次のようになります。

[{
         formattedValue: "Female"
         htmlFormattedValue: "Female"
         rawValue: "FEMALE"
},
{
        formattedValue: "FEMALE"
         htmlFormattedValue: "<a href="localhost:8080/myTestSite/FEMALE" target="_blank" rel="nofollow noopener noreferrer">FEMALE</a>"
         rawValue: "FEMALE"
}]

htmlFormattedValueは実際のアンカータグを含み、formattedValueがユーザーに表示されます。

パラメーター

outputOptions: String, Object

登録する出力タイプについての情報を含むObject、またはStringです。Stringが渡される場合、その特定の出力タイプにデフォルトオプションが使用されます。

callback: Function

出力タイプが完了したときに呼び出される関数です。このコールバックに渡されるパラメーターオブジェクトは、登録された出力タイプに応じて異なります。

データセットの出力タイプを登録し、データセットを出力します。

report.registerOutputType('dataset', function(reportDataset) {
         console.log(reportDataset);
});

または、outputInformationオブジェクトを使用してデータセットを登録しても、同様の結果を達成できます。

report.registerOutputType({ resultType: 'dataset' }, function(reportDataset) {
         console.log(reportDataset);
});


removeOutputType(outputKey)(出力タイプの削除)

リターン

なし

説明

渡されたoutputKeyに関連するレポート出力タイプとコールバックの登録を解除します。これにより、Yellowfinサーバは、その出力リクエストに情報を返さなくなります。

パラメーター

outputKey: Number

登録を解除するoutputKeyです。

データセットタイプを登録し、これが完了した後にレポートから出力タイプを削除します。

let outputId = report.registerOutputType('dataset', function(data) {
         console.log(data);
        report.removeOutputType(outputId);
});


reset()(リセット)

リターン

なし

説明

レポートからすべてのレポートインタラクション(ドリル、並べかえ、タイムスライダーなど)をクリアし、レポートを実行します。フィルターオブジェクトが複数のレポートにリンクされている可能性があるため、レポートに関連付けられているフィルターはリセットされません。そのため、このレポートに特化したフィルターをリセットすることで、他のレポートに誤った影響を与える可能性があります。レポートを完全にリセットする場合は、この関数と合わせてfilter.resetFiltersToDefault()、またはfilters.clear()を使用します。

レポートインタラクションをリセットするが、フィルターはリセットしないリセットボタンを追加します。

let resetButton = document.querySelector('div#resetReportButton');
resetButton.addEventListener('click', function(e) {
        report.reset();
});

Add a reset button that can reset the reports interactions and its filters back to their default values

let resetButton = document.querySelector('div#resetReportButton');
resetButton.addEventListener('click', function(e) {
        report.reset();
        report.filters.resetFiltersToDefault();
});


isDrillAnywhere()(ドリルエニウェア)

リターン

Boolean

説明

レポートが「ドリルエニウェア」タイプのレポートとして定義されているかどうかを返します。これは、レポート作成中に「分析スタイル」オプションを「ドリルエニウェア」に設定した場合に当てはまります。


isDrillDown()(ドリルダウン)

リターン

Boolean

説明

レポートが「ドリルダウン」タイプのレポートとして定義されているかどうかを返します。これは、レポート作成中に「分析スタイル」オプションを「ドリルダウン」に設定した場合に当てはまります。


isDrillDownApplied()(ドリルダウンの適用)

リターン

Boolean

説明

レポートがドリルダウンされたかどうかを返します。これは、レポート上のいずれかのドリルダウンフィールドがドリルダウンされた場合に当てはまります。

console.log(report.isDrillDownApplied()); //Will return "false" as no drilling has been applied
report.drill(1, 'Agency');
console.log(report.isDrillDownApplied()); //Will now return "true" now that has drill down has been applied


isDrillAnywhereApplied()(ドリルエニウェアの適用)

リターン

Boolean

説明

レポートにドリルエニウェアが適用されたかどうかを返します。


drill(fieldId, value, toField)(ドリル)

リターン

なし

説明

渡された値と合わせて、渡されたフィールドIDにドリルを適用します。

「ドリルエニウェア」レポートの場合、toFieldは、fieldIdフィールドを置き換えるフィールドを決定するために使用されます。「ドリルダウン」レポートの場合は、ビューレベルで既に定義されているドリルの内部階層があるので、toFieldは無視されます。

ドリルが成功すると、「ドリルダウン」、または「ドリルエニウェア」イベントがトリガーされます。

パラメーター

fieldId: Number, String

ドリル先のフィールドです。

value: Number, String

ドリル値として適用する値です。

toField: Number

ドリル先のフィールドのビューフィールドテンプレートIDです。ドリルエニウェアレポートでのみ使用されます。

フィールドIDを使用して、「Agency Type」フィールドの値「Agency」をドリルダウンにします。

report.drill(1, 'Agency');


または、フィールド名をフィールドIDパラメーターに使用することもできます。

report.drill('Agency Type', 'Agency');


drillUpLevels(fieldId, levels)(ドリルアップレベル)

リターン

なし

説明

渡されたfieldIdのドリルアップレベルです。ドリルしているフィールドが既に階層の最上位である場合、それ以上のアクションは実行されません。

例えば、「ツアー地域」>「ツアー国」>ツアー名」フィールドを使用します。ツアー名レベルまでドリルダウンして、report.drillUpLevels(fieldId, 1)を呼び出す場合、ツアー国レベルに戻ります。

report.drillUpLevels(fieldId, 5)を呼び出す場合は、実際の階層の合計よりも大きいので、これはフィールド上のドリルをリセットし、ツアー地域レベルまで戻ります。

パラメーター

field: Number, String

ドリルアップする先のフィールドです。

levels: Number

ドリルアップする階層の数です。

fieldId 1の単一レベルをドリルアップします。

report.drillUpLevels(1, 1);


drillUpOneLevel()(1レベル上にドリルアップ)

リターン

なし

説明

レポート内でドリル可能なすべてのフィールドを1レベル上にドリルアップします。

レポート全体をひとつ上のレベルにドリルアップするボタンを作成します。

let drillUpButton = document.querySelector('div#drillUp');
drillUpButton.addEventListener('click', function() {
         report.drillUpOneLevel();
});


drillReset(fieldId)(ドリルのリセット)

リターン

なし

説明

渡されたfieldId上のドリルをリセットします。field Idが渡されない場合、レポート全体のドリルの状態がリセットされます。

パラメーター

fieldId: Number, String

ドリルをリセットするフィールドです。

レポート全体のドリルをリセットします。

report.drillReset();


名前を使用して「Agency Region」フィールドのドリルをリセットします。

report.drillReset('Agency Region');


フィールドIDを使用して「Agency Region」フィールドのドリルをリセットします。

report.drillReset(1);


timeSlider(from, to, chartId)(タイムスライダー)

リターン

なし

説明

渡されたグラフのタイムスライダーにfromとtoを適用します。グラフIDが渡されない場合、レポートのデフォルトグラフが使用されます。これはレポートを実行し、適用された時系列値を使用してグラフを再生成します。

パラメーター

from: Number

タイムスライダーの下限値をミリ秒単位で指定します。

to: Number

タイムスライダーの上限値をミリ秒単位で指定します。

chartId: Number, String

タイムスライダー値を適用するグラフIDです。

August 2014(2014年8月)からNovember 2014(2014年11月)の間の日付を表示するようにタイムスライダーを設定します。

//Create the date objects for the days we care about and get their time values
let fromDate = new Date('2014-08-01').getTime();
let toDate = new Date('2014-11-01').getTime();
report.timeslider(fromDate, toDate);

//Set the slider value based on the ChartUUID
let fromDate = new Date('2014-08-01').getTime();
let toDate = new Date('2014-11-01').getTime();
report.timeslider(fromDate, toDate, '0b808dd1-2114-42bc-a358-5fe7bf2ec052');


unitSelection(unit, chartId)(単位選択)

リターン

なし

説明

渡されたグラフに時間単位選択を適用します。グラフIDが渡されない場合、代わりにレポートのデフォルトグラフが使用されます。オプションを機能させるために、グラフの単位選択表示を有効にしなくてはいけません。

パラメーター

unit: String

グラフに適用する時間粒度です。選択肢は、次の通りです。

  • MILLSECOND(ミリ秒)
  • SECOND(秒)
  • MINUTE(分)
  • HOUR(時間)
  • DAY(日)
  • WEEK(週)
  • MONTH(月)
  • YEAR(年)

レポートのデフォルトグラフに「MONTH(月)」を適用します。

report.unitSelection(‘MONTH’); //No chart Id passed so the default chart will be used

let chartUUID = ‘b779c293-a8ac-44cb-82f5-0c64da385333’;


report.unitSelection(‘MONTH’, chartUUID ); //Apply with a specific chart uuid 

let chartName = ‘Chart One’;


report.unitSelection(‘MONTH’, chartName); //Pass the chart name to determine which chart to use


convertDrillDownToArray()&convertDrillAnywhereToArray()(ドリルダウンを配列に変換およびドリルエニウェアを配列に変換)

リターン

Array[Object]

説明

レポートに現在適用されているドリルの状態の配列を返します。

配列の各オブジェクトは、次の情報を含みます。

  • fieldId:ドリルした階層を示す番号です。
  • reportId:現在のレポートのIDです。
  • reportKey:レポートに固有のキーです。
  • reportUUID:レポートの公開UUIDです。
  • templateId:現在いるフィールドのビューレベルテンプレートIDです。
  • value:このステージのドリルに適用される値です。


配列を繰り返し処理する場合、フィールド上のすべてのドリルオブジェクトが順番にドリルされます。つまり、ドリルダウン可能なフィールドが2つあり、両方ともドリルされている場合、配列内の最初のN値は、最初のフィールドに関連付けられます。ここでNは、そのフィールドがドリルされた距離を表します。配列の残りの部分は、二番目のフィールドのドリル値で構成されます。

次のドリル階層を持つレポートの場合

代理店地域>代理店国

ツアー地域>ツアー国>ツアー名

代理店地域は、1レベルドリルダウンできます。ツアー地域は2レベルドリルダウンできます。両方とも完全にドリルダウンされている場合、配列には3つのエントリーが含まれます。最初は「代理店地域」に関連し、二番目は「ツアー地域」に関連し、三番目はツアー地域の子フィールドである「ツアー国」に関連します。





イベントのリファレンス

すべてのレポートイベントは、次のプロパティを含むオブジェクト使用してトリガーされます。

  • eventData:特定のイベントのデータです。これは、トリガーされるイベントに応じて異なります。各イベントを参照して、イベントデータオブジェクトに何が含まれているのかを確認します。
  • matadeta:イベントがトリガーされたレポートに関する次のような基礎的なデータを含むオブジェクトです。
    • reportId:内部レポートIDです。
    • reportUUID:レポートのUUIDです。
    • reportKey:このインスタンスのレポートに一意の識別子です。
  • eventName:実際にトリガーされるイベントの名前です。


seriesSelection(シリーズ選択)

説明

シリーズ選択がレポートに適用されることでトリガーされます。

パラメーター

イベントデータ

  • series:(Array[Number])このシリーズ選択イベントに適用されたフィールドIDの配列です。これには、レポート上に実際存在するフィールドのみを含める必要があります。
  • chartId:シリーズ選択を適用するグラフIDです。


sort(並べかえ)

説明

レポートが並べかえられることでトリガーされます。

パラメーター

イベントデータ

  • fieldId:並べかえが適用されたフィールドです。
  • sortDirection:フィールドを並べかえる方向です。「ASCENDING(昇順)」、または「DESCENDING(降順)」になります。


reportStart(レポート開始)

説明

レポートが新しいデータセットを取得するために、サーバにリクエストを送信することでトリガーされます。

パラメーター

イベントデータはありません。


reportComplete(レポートの完了)

説明

レポートがサーバから返され、registerOutputType関数に登録されているすべてのコールバックが解決された後に呼び出されます。

パラメーター

イベントデータは、レポート実行からの複数の出力結果を含みます。

イベントデータの例

{ //Example Empty Dataset
          8399975157147:  [//A random ID for the output type
                  [] //Report Dataset data
        ]
}


assistedInsightsRequestedByChart(グラフからの自動インサイトリクエスト)

説明

グラフのツールチップから自動インサイトを要求したときにトリガーされます。

特定の自動インサイトレポートを生成するために使用されるデータを抽出したい場合や、useDefaultAssistedInsightsPanelがfalseに設定され、runAssistedInsightsを呼び出している場合に便利です。


パラメーター

eventDataオブジェクトには、自動インサイトの実行に必要なすべての情報が含まれており、手動で呼び出している場合は、runAssistedInsightsに直接渡すことができます。このコンテンツは、自動インサイトのタイプやグラフに応じて異なります。

eventData

  • categoryField
  • categoryFieldId(オプション設定)
  • categoryKey(オプション設定)
  • dashboardName: ダッシュボードの名前です。
  • dashboardUUID: ダッシュボードのUUIDです。
  • metricDescription
  • metricField
  • parentReportId: グラフが属するレポートのIDです。
  • possibleValues(オプション設定):value 1との比較分析で使用できる値を表すオブジェクトの一覧です。
  • reportKey:グラフが属するレポートのキーです。
  • sourceId:parentReportに使用されるデータソースのIDです。
  • type:自動インサイト分析のタイプです(「explain」、または「compare」のいずれかです)
  • value1:分析に使用される値です。
  • value2(オプション設定):比較分析に使用される二番目の値です。
  • viewId:parentReportに使用されるビューのIDです。


reportAPI.addListener('assistedInsightsRequestedByChart', chartData => {

// This already contains all of the data we need to run Assisted Insights so we don’t need to make any additional changes to it

let newData = Object.assign({}, chartData.eventData);

let promise = this.reportAPI.runAssistedInsights(newData);

});


assistedInsightsStarted(自動インサイトの開始)

説明

runAssistedInsightsが呼び出された際にトリガーされます。

パラメーター

なし

reportAPI.addListener(assistedInsightsStarted, () => {

console.log(“Assisted Insights has started”);

};


compareValuesSelected(選択された値の比較)

説明

比較分析に二番目の値が選択されたときにトリガーされます。

パラメーター

eventData

  • value1{String、またはNumber}: 「実際の」value oneです。これが分析に使用されます。openComparePanelに渡されるvalue/rawValueに相当します。
  • valueOneFormatted{String、またはNumber}: ユーザーに表示されるvalue oneの説明です。openComparePanelに渡されるdescription/formattedValueに相当します。
  • value2{String、またはNumber}: 「実際の」value twoです。これが分析nに使用されます。openComparePanelに渡されるvalue/rawValueに相当します。
  • valueTwoFormatted{String、またはNumber}: ユーザーに表示されるvalue twoの説明です。openComparePanelに渡されるdescription/formattedValueに相当します。

this.reportAPI.addListener('compareValuesSelected', event => {

let comparisonValues = event.eventData;

// Combine them with the existing Assisted Insights data

let allData = Object.assign({}, assistedInsightsData, comparisonValues);

// Generate the assisted insights report

reportAPI.runAssistedInsights(allData);

});


assistedInsightsInProgress(進行中の自動インサイト)

説明

自動インサイトバックグラウンドタスクが最初に開始されたときにトリガーされます。

パラメーター

eventData

  • 自動インサイトバックグラウンドタスクのUUIDです。これは、完了前にタスクをキャンセルするときに、cancelAssistedInsightsに渡すことができます。

注意:タスクUUIDは、バックグラウンドタスクのUUIDを参照します。これは、runAssistedInsights promiseが解決されたとき、またはassistedInsightsCompleted イベントがトリガーされたときに返される自動インサイトレポートIDとは異なります。

reportAPI.addListener(‘assistedInsightsInProgress’, event => {

let assistedInsightsTaskUUID = event.eventData;

reportAPI.cancelAssistedInsights(assistedInsightsTaskUUID);

});


assistedInsightsUpdate(自動インサイトの更新)

説明

自動インサイトタスクの進行中にトリガーされます。タスクの現在の状態を更新します。

パラメーター

eventData

  • progressText{String}: 自動インサイトタスクの現在の進捗に関する更新を翻訳した文字列です。カスタムローダーでユーザーに更新をレンダリングする場合に便利です。
  • state{String}: バックグラウンドタスクの現在の状態です。待機、実行中、完了のいずれかになります。

reportAPI.addListener(‘assistedInsightUpdate’, event => {

let progressData = event.eventData;

let customLoader = document.getElementById("myCustomLoader").

customLoader.innerHTML(progressData.progressText);

});


assistedInsightsCompleted(自動インサイトの完了)

説明

runAssistedInsightsprocess全体が終了した場合にトリガーされます。

注意:これは、runAssistedInsights promiseが解決されることで追加されます。どちらも同じデータを返します。

パラメーター

eventData

  • assistedInsightsReportId{Number}: 一時的な自動インサイトレポートのIDです。これは、deleteTemporaryAssistedInsightsReportの呼び出しに必要です。
  • chartData{Object}: 表示パネルにレンダリングされる自動インサイトデータオブジェクトを含むオブジェクトです。
    • assistedInsightsImage{base64 String}: 自動インサイトグラフのイメージです。
    • assistedInsightsZoomedImage{base64 String}: 自動インサイトグラフの拡大イメージです。
    • chartId{Number}: グラフのIDです。
    • narratives{Array}: 自動インサイトの結果の概要を示す書式設定されたテキストです。

reportAPI.addListener('assistedInsightsCompleted', data => {

// Display the report results

reportAPI.displayAssistedInsightsData(data.eventData);

});


assistedInsightsCancelled(自動インサイトのキャンセル)

説明

cancelAssistedInsightsがキャンセルされた場合にトリガーされます。

パラメーター

eventData

キャンセルされたタスクのUUIDです。

reportAPI.addListener(‘assistedInsightsCancelled’, event => {

console.log(“Task ” + event.eventData + “ has been cancelled”);

});


assistedInsightsError(自動インサイトのエラー)

説明

自動インサイトプロセスの完了を何かが妨げている場合にトリガーされます。

パラメーター

eventData

  • getMessageText{function}: エラーが発生したことを示す一般的なエラーメッセージです。

reportAPI.addListener(‘assistedInsightsError’, event => {

console.log(event.eventData.getMessageText());

});


assistedInsightsExceptionError(自動インサイトの例外エラー)

説明

自動インサイトの処理中に例外が発生した場合にトリガーされます。

パラメーター

eventData

  • errorMessage: 分析が完了できなかったことを示す一般的なエラーメッセージです。

reportAPI.addListener(‘assistedInsightsExceptionError’, event => {

console.log(event.eventData.errorMessage);

});


drilldown(ドリルダウン)

説明

レポート上の任意のフィールドにドリルダウンが適用されるたびにトリガーされます。

パラメーター

イベントデータは次を含みます。

  • fieldId:ドリル先のフィールドです。
  • added:(Array)適用された値についての情報を含むオブジェクトの配列です。
  • drillState:(Array)レポート全体のドリルの状態を含む配列です。convertDrillDownToArrayを参照してください。


drillanywhere(ドリルエニウェア)

説明

レポート上の任意のフィールドに「ドリルエニウェア」が適用されるたびにトリガーされます。

パラメーター

イベントデータは次を含みます。

  • added:(Array)このドリルイベントに追加されたドリルオブジェクトの配列です。
  • drillState:(Array)レポート全体のドリルの状態です。convertDrillAnywhereToArrayを参照してください。


drillUp(ドリルアップ)

説明

レポートがドリルアップされるたびにトリガーされます。これは、「ドリルエニウェア」、および「ドリルダウン」両方のレポートをトリガーします。

パラメーター

  • removed:(Array)このドリルイベントから削除されたドリルオブジェクトの配列です。
  • drillState:(Array)レポート全体のドリルの状態です。convertDrillAnywhereToArray、またはconvertDrillDownToArrayを参照してください。



reportRunAlreadyInProgress(レポート既に進行中)

説明

レポートが既に実行されている際、いずれかのプロセスによってレポートの実行を開始しようとする際にトリガーされます。

report.addEventListener("reportRunAlreadyInProgress", function() {
alert("report is already running");
});



resetDrill(ドリルのリセット)

説明

フィールドのドリルの状態がリセットされるか、レポート全体のドリルの状態がリセットされるとトリガーされます。これは、ドリルエニウェア、およびドリルダウン両方のレポートをトリガーします。

パラメーター

  • removed:(Array)ドリルイベント内から削除されるドリルオブジェクトの配列です。
  • drillState:(Array)レポート全体のドリルの状態です。convertDrillAnywhereToArray、またはconvertDrillDownToArrayを参照してください。


reset(リセット)

説明

レポートリセット関数が呼び出されることでトリガーされます。

パラメーター

イベントデータはありません。


slider(スライダー)

説明

グラフのタイムスライダー値が変更されるとトリガーされます。

パラメーター

イベントデータ

  • from:(Number)スライダー値の下限です。
  • To:(Number)スライダー値の上限です。
  • chartId:(Number)スライダーが変更されたグラフです。


unitSelection(単位選択)

説明

グラフの「単位選択」が変更されることでトリガーされます。

パラメーター

イベントデータ

  • unit:(String)グラフに適用される単位です。
  • chartId:(Number)単位選択を適用するグラフです。



  • No labels