Page History
...
Table of Contents | ||
---|---|---|
|
...
概要
Styleclass | ||
---|---|---|
| ||
If you want to have more control over the loading of content, call reports or dashboards on demand, or set display options dynamically (based on user input), you can call the API directly from your own script.
The Javascript API must be included before any API calls can be made:
コンテンツのロードを詳細にコントロールしたり、レポートまたはダッシュボードを適宜呼び出したり、(ユーザー入力に基づいて)表示オプションをダイナミックに設定したりする場合は、独自のスクリプトでAPIを直接呼び出すことができます。
API呼び出しを実行する前に、Javascript APIを含める必要があります:
Code Block | |||
---|---|---|---|
| |||
Code Block | |||
| |||
<script src="http://localhost/JsAPI" type="text/javascript"></script> |
A specific version of the API may be requested using the version
parameter:version
パラメーターを使用して、特定バージョンのAPIをリクエストすることができます:
Code Block | ||||
---|---|---|---|---|
| ||||
<script src="http://localhost/JsAPI?version=2.1" type="text/javascript"></script> |
If the browser is unable to load the API, any calls to load reports or dashboards will fail. If you wish to detect whether the API has loaded successfully, you should check the variable window.yellowfin
is available:
ブラウザーがAPIをロードできない場合、レポートまたはダッシュボードをロードするすべての呼び出しが失敗します。APIが正常にロードされたかどうかを検出するには、変数window.yellowfin
が使用可能かどうかを確認します:
Code Block | |||
---|---|---|---|
| |||
Code Block | |||
| |||
<script src="http://localhost/JsAPI" type="text/javascript"></script> <script type="text/javascript"> if (!window.yellowfin) { alert('Error loading API'); } </script> |
...
サーバー情報
Styleclass | ||
---|---|---|
| ||
APIをロードすると、一部のサーバー情報を使用できるようになります:After loading the API, some server information is made available:
Expand | |
---|---|
|
...
| |
|
...
|
...
|
...
The base URL used to connect to the API on the server
|
...
|
...
|
...
|
...
The Operating System running on the server
|
...
|
...
|
...
|
...
The schema version of the Yellowfin configuration database
|
例
...
Code Block | ||||
---|---|---|---|---|
| ||||
<script src="http://localhost/JsAPI" type="text/javascript"></script> <script type="text/javascript"> if (window.yellowfin) { alert('Yellowfin API loaded. Version: ' + yellowfin.apiVersion); } </script> |
...
レポートのロード
Styleclass | ||
---|---|---|
| ||
レポートは、A report is loaded by calling the yellowfin.loadReport
function:関数を呼び出してロードします:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadReport(options); |
Options are passed to the function as a Javascript object. These include a report identifier for the report you are loading, the elementId of the HTML element in which to load the report (or the element itself), and other options that alter the way the report is displayed. The available options are:
Expand | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
|
Examples
This example loads a report into an element specified by its universal id, setting some initial display options:
...
var options = {};
options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63';
options.elementId = 'myReport';
options.showFilters = 'false';
options.showSeries = 'false';
options.display = 'chart';
options.fitTableWidth = 'false';
yellowfin.loadReport(options);
オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているレポートのレポート識別子、レポートをロードするHTML要素のelementId(またはelementそのもの)、およびレポートの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです:
Expand | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
|
例
ユニバーサルIDで指定された要素にレポートをロードし、初期の表示オプションをいくつか設定する例を示します:
Code Block | ||||
---|---|---|---|---|
| ||||
var options = {};
options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63';
options.elementId = 'myReport';
options.showFilters = 'false';
options.showSeries = 'false';
options.display = 'chart';
options.fitTableWidth = 'false';
yellowfin.loadReport(options);
|
匿名オプションオブジェクトを使用して同様の処理を行う例を示します:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadReport({
reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63',
elementId: 'myReport',
showFilters: 'false',
showSeries: 'false',
display: 'chart',
fitTableWidth: 'false'
});
|
IDではなく要素を直接渡す例を示します:This example does the same thing with an anonymous options object:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadReport({ reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', elementIdelement: document.getElementById('myReport', showFilters: 'false', showSeries: 'false', display: 'chart', fitTableWidth: 'false' }); ) }); |
レポートフィルターのロード
Styleclass | ||
---|---|---|
| ||
レポートで使用されるフィルターは、yellowfin.reports.loadReportFilters
関数を使用してロードすることができます。この関数を使用するには、メインAPIと共にレポートサブAPIをページにロードします:This example passes the element directly rather than just its id:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadReport({
reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63',
element: document.getElementById('myReport')
});
|
Loading Report Filters
Styleclass | ||
---|---|---|
| ||
Filters used by a report can be loaded by calling the yellowfin.reports.loadReportFilters
function. To use this function, load the reports sub-API into your page along with the main API:
...
<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=reports" type="text/javascript"></script>
<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=reports" type="text/javascript"></script>
|
その後loadReportFilters
関数を呼び出します:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.reports.loadReportFilters(reportId, callback, arg);
|
1番目の引数はレポートの固有識別子で、reportUUID
とreportId
のいずれかです。可能な限りreportUUID
を使用することをお勧めします。2番目の引数はコールバック関数で、レポートのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、レポートのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters
関数に渡される3番目の引数になります(指定した場合)。
コールバック関数の1番目の引数として返されるフィルターオブジェクトは、レポートで使用されるあらゆるフィルターが格納された配列です。配列の各要素は、そのフィルターに関する情報が格納されたオブジェクトです。これらのフィルターオブジェクトには以下のプロパティがあります:
Expand | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
例
レポートフィルターをロードしてユーザーに表示する例を示します:
Code Block | ||||
---|---|---|---|---|
| ||||
function filterCallback(filters) {
for (var i = 0; i < filters.length; i++) {
alert('Filter ' + filters[i].description + ' (' +
filters[i].filterUUID + '), display style: ' +
filters[i].display);
}
}
yellowfin.reports.loadReportFilters(
'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback);
|
この関数は、使用可能なフィルターをロードしてloadReport
関数に戻し、レポートがページにロードされるときのレポートのフィルター初期値を設定するために使用できます。例:
Code Block | ||||
---|---|---|---|---|
| ||||
function filterCallback(filters) {
var filterValues = {};
for (var i = 0; i < filters.length; i++) {
if (filters[i].description == 'Country') {
filterValues[filters[i].filterUUID] = 'Australia';
} else if (filters[i].description == 'Start Date') {
filterValues[filters[i].filterUUID] = '2011-01-01';
} else if (filters[i].description == 'Invoiced Amount' |
Then call the loadReportFilters
function:
...
yellowfin.reports.loadReportFilters(reportId, callback, arg);
The first argument is the unique identifier for the report, which may either be a reportUUID
or a reportId
. We recommend using the reportUUID
where possible. The second argument is a callback function that will be called by the API when the filters for the report have been loaded. The first argument to the callback function will be the list of filters in the report. The second argument to the callback function will be the third argument supplied to the loadReportFilters
function (if specified).
The filters object returned as the first argument to the callback function is an array containing any filters used in the report. Each element in the array is an object containing information about that filter. These filter objects contain the properties:
Expand | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
Examples
This example loads the report filters and displayed them to the user:
Code Block | ||
---|---|---|
javascript | javascript | function filterCallback(filters) { for (var i = 0; i < filters.length; i++) {filterValues[filters[i].filterUUID] = 6400; alert('Filter ' + filters[i].description + ' (' + filters[i].filterUUID + '), display style: ' + filters[i].display); } } yellowfin.reports.loadReportFilters( } } // set up other options to load the report var options = {}; options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); |
This function can be used to load the available filters, and then pass them back to the loadReport
function to set up initial filter values for the report when it is loaded into the page. For example:
Code Block | ||
---|---|---|
javascript | javascript | function filterCallback(filters) { var filterValues = {}; options.elementId = 'myReport'; // add the filter values options.filters = filterValues; for// (varload ithe =report 0; i < filters.length; i++) { if (filters[i].description == 'Country') { filterValues[filters[i].filterUUID] = 'Australia'; } else if (filters[i].description == 'Start Date') { filterValues[filters[i].filterUUID] = '2011-01-01'; } else if (filters[i].description == 'Invoiced Amount') { filterValues[filters[i].filterUUID] = 6400; } } // set up other options to load the report yellowfin.loadReport(options); } yellowfin.reports.loadReportFilters( 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); |
loadReport
関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます:
Code Block | ||||
---|---|---|---|---|
| ||||
filterValues[filterUUID] = ['Australia', 'China', 'Italy'];
|
フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります:
Code Block | ||||
---|---|---|---|---|
| ||||
filterValues[filterUUID] = [500, 600];
|
loadReport
関数に渡されるoptions.filters
要素は、filterUUID
またはfilterId
でキー設定された値を含む必要があります。可能な限りfilterUUID
を使用することをお勧めします。
ダッシュボードのロード
Styleclass | ||
---|---|---|
| ||
ダッシュボードは、yellowfin.loadDash
関数を呼び出してロードします:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadDash(options);
|
オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているダッシュボードの識別子、ダッシュボードをロードするHTML要素のelementId(またはelementそのもの)、およびダッシュボードの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです:
Expand | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
|
例
IDで指定された要素にダッシュボードをロードし、初期の表示オプションをいくつか設定する例を示します。
Code Block | ||||
---|---|---|---|---|
| ||||
var options = {}; options.reportUUIDdashUUID = 'e5e5aaf33b0b6c9a-c3b89dfb-4f9b41f0-8280b85a-e21e4d848e63eb17bb8aeeb9'; options.elementId = 'myReportmyDash'; options.showFilters // add the filter values options.filters = filterValues; // load the report yellowfin.loadReport= 'false'; options.showExport = 'false'; yellowfin.loadDash(options); } yellowfin.reports.loadReportFilters( 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); |
Filter values passed to the loadReport
function should be specified as simple values as above. If the filter is a list style, multiple values can be set using an array:
...
filterValues[filterUUID] = ['Australia', 'China', 'Italy'];
匿名オプションオブジェクトを使用して同様の処理を行う例を示します:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadDash({
dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
elementId: 'myDash',
showFilters: 'false',
showExport: 'false'
});
|
IDではなく要素を直接渡す例を示します:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.loadDash({
dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
element: document.getElementById('myDash')
});
|
ダッシュボードフィルターのロード
Styleclass | ||
---|---|---|
| ||
ダッシュボードで使用されるフィルターは、yellowfin.dash.loadDashFilters
関数を使用してロードすることができます。この関数を使用するには、メインAPIと共にダッシュボードサブAPIをページにロードします:If the filter is a between style, the start and end values should be set using an array:
Code Block | ||||
---|---|---|---|---|
| ||||
filterValues[filterUUID]<script src= [500, 600]; |
The options.filters
element passed to the loadReport
function should contain values keyed either by filterUUID
or filterId
. We recommend using filterUUID
where possible.
Loading a Dashboard
Styleclass | ||
---|---|---|
| ||
A dashboard is loaded by calling the yellowfin.loadDash
function:
...
yellowfin.loadDash(options);
Options are passed to the function as a Javascript object. These include an identifier for the dashboard you are loading, the elementId of the HTML element in which to load the dashboard (or the element itself), and other options that alter the way the dashboard is displayed. The available options are:
Expand | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
|
Examples
This example loads a dashboard into an element specified by its id, setting some initial display options.
...
var options = {};
options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9';
options.elementId = 'myDash';
options.showFilters = 'false';
options.showExport = 'false';
yellowfin.loadDash(options);
This example does the same thing with an anonymous options object:
...
yellowfin.loadDash({
dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
elementId: 'myDash',
showFilters: 'false',
showExport: 'false'
});
This example passes the element directly, rather than just its id:
...
yellowfin.loadDash({
dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
element: document.getElementById('myDash')
});
Loading Dashboard Filters
Styleclass | ||
---|---|---|
| ||
Filters used by a dashboard can be loaded by calling the yellowfin.dash.loadDashFilters
function. To use this function, load the dashboard sub-API into your page along with the main API:
...
<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=dash" type="text/javascript"></script>
"http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=dash" type="text/javascript"></script>
|
その後loadDashFilters
関数を呼び出します:
Code Block | ||||
---|---|---|---|---|
| ||||
yellowfin.dash.loadDashFilters(dashUUID, callback, arg);
|
1番目の引数は、ダッシュボードの固有識別子です。2番目はコールバック関数で、ダッシュボードのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、ダッシュボードのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters
関数に渡される3番目の引数になります(指定した場合)。
コールバック関数の1番目の引数として返されるフィルターオブジェクトは、ダッシュボードで使用されるあらゆる分析フィルターと、フィルターグループ区切り文字が格納された配列です。配列の各要素は、そのフィルターまたはフィルターグループに関する情報が格納されたオブジェクトです。これらのオブジェクトには以下のプロパティがあります:
Expand | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
例
Then call the loadDashFilters
function:
...
yellowfin.dash.loadDashFilters(dashUUID, callback, arg);
The first argument is the unique identifier for the dashboard. The second is a callback function that will be called by the API when the filters for the dashboard have been loaded. The first argument to the callback function will be the list of filters in the dashboard. The second argument to the callback function will be the third argument supplied to the loadReportFilters
function (if specified).
The filters object returned as the first argument to the callback function is an array containing any analytical filters used in the dashboard, as well as filter group separators. Each element in the array is an object containing information about that filter or filter group. These objects contain the properties:
Expand | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
Examples
This example loads the dashboard filters and displays them to the user:
Code Block | ||||
---|---|---|---|---|
| ||||
function filterCallback(filters) { for (var i = 0; i < filters.length; i++) { alert('Filter ' + filters[i].description + ' (' + filters[i].key + '), display style: ' + filters[i].display); } } yellowfin.reports.loadReportFilters(1234, filterCallback); filterCallback); |
この関数は、使用可能なフィルターをロードしてloadDash
関数に戻し、ダッシュボードがページにロードされるときのダッシュボードのフィルター初期値を設定するために使用できます:This function can be used to load the available filters, and then pass them back to the loadDash
function to set up initial filter values for the dashboard when it is loaded into the page:
Code Block | ||||
---|---|---|---|---|
| ||||
function filterCallback(filters) { var filterValues = {}; for (var i = 0; i < filters.length; i++) { if (filters[i].description == 'Country') { filterValues[filters[i].key] = 'Australia'; } else if (filters[i].description == 'Start Date') { filterValues[filters[i].key] = '2011-01-01'; } else if (filters[i].description == 'Invoiced Amount') { filterValues[filters[i].key] = 6400; } } // set up other options to load the dashboard var options = {}; options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9'; options.elementId = 'myDash'; // add the filter values options.filters = filterValues; // load the dashboard yellowfin.loadDash(options); } yellowfin.dash.loadDashFilters('3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', filterCallback); ); |
loadDash
関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます:Filter values passed to the loadDash
function should be specified as simple values as above. If the filter is a list style, multiple values can be set using an array:
Code Block | ||||
---|---|---|---|---|
| ||||
filterValues[key] = ['Australia', 'China', 'Italy']; |
If the filter is a between style, the start and end values should be set using an array:フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります:
Code Block | ||||
---|---|---|---|---|
| ||||
filterValues[key] = [500, 600]; |
The loadDash
関数に渡されるoptions.filters
element passed to the loadDash
function should contain values keyed by the keys
returned from the loadDashFilters
function.要素は、loadDashFilters
関数から返されるkeys
でキー設定された値を含む必要があります。
horizontalrule |
---|
Styleclass | ||
---|---|---|
| ||