ダッシュボードは、(サブタブとして知られる)ひとつ以上のページの集合です。サブタブはエンティティの集合です。ダッシュボード内のコンテキストのエンティティは、サブタブに配置されるものです。これはレポートやフィルター一覧、キャンバスに配置される任意のオブジェクト(図形、テキスト、ボタン、イメージなど)です。
そのため、ダッシュボードの基礎的な構造は以下のようになります。
サブタブ、レポート、フィルターには数多くの固有のプロパティがあり、リファレンスガイドでこれを確認できます。
前述したように、ダッシュボード内のコンテキストのエンティティは、サブタブに配置されるものです。これはレポートやフィルター一覧、キャンバスに配置される任意のオブジェクト(図形、テキストなど)です。
ダッシュボードの作成中に、エンティティがダッシュボードに追加されると、固有の識別子が割り当てられます。これは、ダッシュボード API内でダッシュボードのエンティティに内部的に使用される識別子です。
レポートでは、この固有IDを使用することで、ダッシュボードに同じレポートを複数追加し、異なるフィルターを適用できるため非常に重要です。これがなければ、同じレポートの2つのバージョンがあった場合に、フィルターの適用、またはレポートのドリル時に、どちらのレポートを参照すればよいのか分かりません。
ダッシュボード上のフィルター APIには、ダッシュボード上で有効化されたすべてのユーザープロンプトフィルターが含まれます。これには、現在表示されていないフィルターも含まれます。
フィルターパネルは、エンドユーザーに表示されるものです。これはフィルター API内のフィルターオブジェクトを使用して、ユーザーに表示されるものを生成します。
DOM操作を使用することなく、フィルターパネルを操作することはできません。しかし開発者は、フィルター APIを通して、これらのパネル内でフィルターを操作することができます。
getAllReports()関数を使用することで、すべてのレポートとそのエンティティIDを確認することができます。これは、以下を含むオブジェクトの配列を返します。
これらすべてのレポートは、サブタブが表示されると、ダッシュボードにより自動的にロードされます。
Yellowfin プレゼントは、Yellowfin ダッシュボードから構築されています。そのため、ダッシュボード APIのすべての関数は、プレゼンテーションに適用しても機能します。プレゼンテーションの使用中に次のスライドへ移動する場合は、「nextSubTab()」関数を呼び出すか、五番目のスライドへ移動する場合は、moveToTabAtPosition(4)を使用します。
リターン
String
説明
ダッシュボードのUUIDを返します。
リターン
説明
ダッシュボードのフィルター APIを返します。
リターン
String
説明
ダッシュボード名を返します。これは、翻訳が有効化され、その言語の翻訳が提供されている場合、ユーザーの使用言語に翻訳されます。
リターン
String
説明
ダッシュボードの説明を返します。これは、翻訳が有効化され、その言語の翻訳が提供されている場合、ユーザーの使用言語に翻訳されます。
リターン
Number
説明
ユーザーが現在閲覧しているサブタブのサブタブIDを返します。
リターン
String
説明
このダッシュボードへの直接リンクを返します。例:
http://localhost:8080/RunDashboard.i4?dashUUID=1e68d9cc-fa5a-44e2-816d-782aa40ceeae&primaryOrg=1&clientOrg=1 |
これは、このダッシュボードに直接アクセスするシンプルなリンクであり、フィルターは含まれていません。
このダッシュボードへの直接埋め込みリンクを返します。例:
<script type="text/javascript" src="http://localhost:8080/JsAPI/v3?dashUUID=1e68d9cc-fa5a-44e2-816d-782aa40ceeae"></script> |
リターン
Promise
説明
ダッシュボードのコンテキスト内にレポートをロードします。promiseを解決して、レポートオブジェクトにパラメーターとして渡しますが、自動的には表示されません。
レポートUUID/エンティティUUIDの組み合わせが既にダッシュボードにロードされている場合は、関連するレポートオブジェクトでpromiseを即座に解決します。
レポートがダッシュボードの一部として設定され、フィルターリンクやインタラクションリンクが適用されている場合は、これらのリンクを自動的に適用します。
レポートがダッシュボードに関連していない場合は、ロードされますが、自動的にフィルターを使用することができません。
パラメーター
Options - Object
次を含めなくてはいけません。
リターン
説明
現在選択されているタブのサブタブオブジェクトを返します。ダッシュボードに現在選択されているサブタブが無い場合は(これは、最初のロード時に時たま起こります)、最初のサブタブが返されます。
例
let subTab = dashboard.getCurrentSubTab(); console.log(subTab.name); |
リターン
説明
渡された位置のサブタブオブジェクトを返します。この位置は0から始まります。
位置の値がタブの数と異なる場合は、nullが返されます。
パラメーター
position: Number
例
四番目のサブタブを取得し、これを検証して、その名前を表示します。
let subTab = getSubTabByPosition(4); if(subTab) { console.log(subTab.name); } |
リターン
説明
渡されたサブタブIDのサブタブオブジェクトを返します。サブタブ名が渡された場合は、対応するタブIDへの変換を試みます。
一致するIDが見つからない場合は、nullが返されます。
パラメーター
subTabId: String
例
//Get sub tab by Id let subTab = dashboard.getSubTab(123456); //Get subTab by name let subTab = dashboard.getSubTab('Campaign Summary'); |
リターン
なし
説明
ダッシュボードの現在のタブを、順番に次のタブへ変更します。ユーザーの観点から、これは現在のタブの右のタブへ移動します。
ダッシュボードが現在最後のタブを表示している場合は、最初のタブに移動します。
例
「次へ」ボタンをクリックした後に、新しいタブへ移動します。
document.querySelector('div#nextTabButton').addEventListener('click', function(e) { dashboard.nextSubTab(); }); |
10秒ごとに新しいタブへと移動します。
setInterval(function() { dashboard.nextSubTab(); }, 10000); |
リターン
なし
説明
ダッシュボードの現在のタブを、順番に前のタブへ変更します。ユーザーの観点から、これは現在のタブの左のタブへ移動します。
ダッシュボードが現在最初のタブを表示している場合は、最後のタブに移動します。
例
「前へ」ボタンをクリックした後に、新しいタブへ移動します。
document.querySelector('div#previousTabButton').addEventListener('click', function(e) { dashboard.previousSubTab(); }); |
10秒ごとに新しいタブへと移動します。
setInterval(function() { dashboard.previousSubTab(); }, 10000); |
リターン
Number
説明
サブタブの位置を返します。一致するサブタブが無い場合は、nullが返されます。ソートインデックスは、0から始まります。
パラメーター
subTabId: Number, String
位置を検索したいサブタブのID、または名前です。
例
名前を使用してサブタブの位置を取得します。
let subTabPosition = dashboard.findSubTabOrder('Campaign Summary') |
IDを使用してサブタブの位置を取得します。
let subTabPosition = dashboard.findSubTabOrder(123456); |
リターン
なし
説明
ダッシュボードの現在のタブを、渡されたIDと一致するサブタブへ移動します。名前が渡された場合は、一致するIDへの変換を試みます。一致するタブが無い場合は、何も起きません。
タブが変更されたら、ダッシュボード APIによりtabChanged(タブ変更)イベントが発生します。
パラメーター
subTabId: String
移動するサブタブのUUID、または名前です。
例
「Campaign Summary」タブへ移動します。
dashboard.moveToTab('Campaign Summary'); |
UUID「28c595a5-c097-445c-ac9d-cbd4c415a667」を使用してタブへ移動します。
dashboard.moveToTab(‘28c595a5-c097-445c-ac9d-cbd4c415a667’); |
リターン
なし
説明
ダッシュボードの現在のサブタブを一致する位置のサブタブへ変更します。一致するタブが無い場合は、何も起きません。サブタブ位置が指定可能な範囲に含まれない場合は(例:ダッシュボード上のサブタブ数)、何も起きません。
タブが変更されたら、ダッシュボード APIによるtabChanged(タブ変更)イベントが発生します。
パラメーター
position: Number
移動するタブの並び順です。ソートインデックスは、0から始まります。
例
最初のサブタブへ移動します。
dashboard.moveToTabAtPosition(0); |
最後のサブタブへ移動します。
dashboard.moveToTabAtPosition(dashboard.getSubtabs().length - 1); |
リターン
Boolean
説明
ダッシュボードが有効化されたユーザープロンプトフィルターを持つ場合は、trueを返します。持たない場合は、falseを返します。
例
let hasFilters = dashboard.hasFilters(); if(hasFilters) { console.log("this dashboard has modifiable filters"); } |
リターン
なし
説明
ダッシュボード上のすべてのレポートを再実行します。これにより、すべてのレポートがサーバから新しいデータセットを取得します。
これは、ライブデータを使用して作業をしているときに、ページからのアクションにより、一部のレポートの背後にあるデータセットが更新される場合に有効です。
これを使用して、同じフィルターセットでレポートを再実行できます。
例
dashboard.refresh(); |
リターン
なし
説明
ダッシュボード上のすべてのレポートをリセットしてデフォルトの状態に戻し、すべてのフィルターをデフォルト値に戻します。
これは、レポートに適用されたすべてのブラッシングやドリル機能、フィルターリンクをリセットします。
現在のタブ上のレポートのみが再実行されます。
リターン
なし
説明
渡されたレポートUUIDに関連するレポートの出力ページへブラウザを移動します。レポートが見つからない場合は、「Report Can't be Found(レポートは見つかりませんでした)」ページが表示されます。
パラメーター
reportUUID: String
移動するレポートの公開UUIDです。
制限
これは、ダッシュボードコードモード内でのみ機能します。
リターン
String
説明
ダッシュボードの埋め込みリンクを現在の状態で正確に取得します。URLには、適用されたフィルターやブックマークが含まれます。
これは、ダッシュボードの基本状態(例:フィルター、またはブックマークのリファレンスを含まない)でのリンクを含むexternalApiUrl プロパティとは異なります。
リターン
Array[SubTab]
説明
ダッシュボードに関連づけられているすべてのサブタブを配列で返します。
例
すべてのサブタブ名とUUIDを順番に出力します。
let subTabs = dashboard.getSubTabs(); subTabs.forEach(subTab => { console.log(subTab.name + " : " + subTab.uuid); }); |
リターン
Array[Object]
説明
レポートUUID、ダッシュボードに割り当てられたエンティティUUID、およびレポートが配置されたサブタブを含むオブジェクトの配列を返します。
ダッシュボード上にレポートが無い場合は、空の配列が返されます。
例
この関数を使用することで、ダッシュボード上にある特定のレポートのすべてのインスタンスを検索できます。
let reportToFind = 'af67e527-81d3-47fc-81ce-dfc506a61dd2'; let dashboardReports = dashboard.getAllReports(); let dashboardReport= dashboardReports.find(reportInfo => { return reportInfo.reportUUID === reportToFind; }); if(dashboardReport) { //We found that report now we can load the report object. If the report has already been loaded by the dashboard this will just give us that version of the report dashboard.loadReport({ reportId: reportInfo.reportUUID, entityUUID: reportInfo.entityUUID }).then(report => { //Now we've fetched the report. }); } |
リターン
なし
説明
ダッシュボードに含まれるすべてのサブタブを順番に繰り返します。この関数には、反復ごとにサブタブオブジェクトが渡されます。
例
ダッシュボード上のすべてのサブタブの名前およびUUIDを出力します。
dashboard.forEach(subTab => { console.log(subTab.name + " : " + subTab.uuid); }); |
説明
現在のサブタブ、またはスライドが変更されるたびに呼び出されます。
パラメーター
イベント
以下を含みます。
例
dashboard.addEventListener('tabChanged', function(event) { let newTab = event.currentSubTab; console.log('We have just moved to the ' + newTab.name + ' tab'); }); |
dashboard.addEventListener('tabChanged', function(event) { let lastTab = dashboards.getSubTab(event.previousSubTabId); console.log('Moved from ' + lastTab.name); }) |