...
概要
コンテンツのロードを詳細にコントロールしたり、レポートまたはダッシュボードを適宜呼び出したり、(ユーザー入力に基づいて)表示オプションをダイナミックに設定したりする場合は、独自のスクリプトでAPIを直接呼び出すことができます。
API呼び出しを実行する前に、Javascript APIを含める必要があります:
Code Block |
---|
|
<script src="http://localhost/JsAPI" type="text/javascript"></script>
{code}
versionパラメーターを使用して、特定バージョンのAPIをリクエストすることができます:
{code:javascript} |
versionパラメーターを使用して、特定バージョンのAPIをリクエストすることができます:
Code Block |
---|
|
<script src="http://localhost/JsAPI?version=2.1" type="text/javascript"></script>
{code}
|
ブラウザーがAPIをロードできない場合、レポートまたはダッシュボードをロードするすべての呼び出しが失敗します。APIが正常にロードされたかどうかを検出するには、変数window.yellowfinが使用可能かどうかを確認します:
...
Code Block |
---|
|
<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script type="text/javascript">
if (!window.yellowfin) {
alert('Error loading API');
}
</script>
{code}
h2. サーバー情報
{styleclass: Class=topLink}[ページトップ|#top]
{styleclass}
APIをロードすると、一部のサーバー情報を使用できるようになります:
h3. {expand:title=ここを展開...}
|| || 説明 ||
| {{yellowfin.apiVersion}} | サーバーで使用しているAPIのバージョンです。 |
| {{yellowfin.baseURL}} | サーバー上のAPIに接続するために使用されるベースとなるURLです。 |
| {{yellowfin.serverInfo.releaseVersion}} | サーバーで実行しているYellowfinのリリースバージョンです(例:「6.1」)。 |
| {{yellowfin.serverInfo.buildVersion}} | サーバーで実行しているYellowfinのビルドバージョンです(例:「20120601」)。 |
| {{yellowfin.serverInfo.javaVersion}} | サーバーにインストールされているJavaのバージョンです。 |
| {{yellowfin.serverInfo.operatingSystem}} | サーバーで実行しているオペレーティングシステムです。 |
| {{yellowfin.serverInfo.operatingSystemArch}} | サーバーのオペレーティングシステムアーキテクチャです。 |
| {{yellowfin.serverInfo.operatingSystemVersion}} | サーバーのオペレーティングシステムバージョンです。 |
| {{yellowfin.serverInfo.schemaVersion}} | Yellowfin構成データベースのスキーマバージョンです。 |
{expand}
h3. 例
{code:javascript} |
サーバー情報
APIをロードすると、一部のサーバー情報を使用できるようになります:
Expand |
---|
|
| 説明 |
---|
yellowfin.apiVersion | サーバーで使用しているAPIのバージョンです。 | yellowfin.baseURL | サーバー上のAPIに接続するために使用されるベースとなるURLです。 | yellowfin.serverInfo.releaseVersion | サーバーで実行しているYellowfinのリリースバージョンです(例:「6.1」)。 | yellowfin.serverInfo.buildVersion | サーバーで実行しているYellowfinのビルドバージョンです(例:「20120601」)。 | yellowfin.serverInfo.javaVersion | サーバーにインストールされているJavaのバージョンです。 | yellowfin.serverInfo.operatingSystem | サーバーで実行しているオペレーティングシステムです。 | yellowfin.serverInfo.operatingSystemArch | サーバーのオペレーティングシステムアーキテクチャです。 | yellowfin.serverInfo.operatingSystemVersion | サーバーのオペレーティングシステムバージョンです。 | yellowfin.serverInfo.schemaVersion | Yellowfin構成データベースのスキーマバージョンです。 |
|
例
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>
{code}
h2. レポートのロード
{styleclass: Class=topLink}[ページトップ|#top]
{styleclass}
|
レポートのロード
レポートは、yellowfin.loadReport関数を呼び出してロードします:
...
Code Block |
---|
|
yellowfin.loadReport(options);
{code}
オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているレポートのレポート識別子、レポートをロードするHTML要素のelementId(またはelementそのもの)、およびレポートの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです:
h3. {expand:title= |
オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているレポートのレポート識別子、レポートをロードするHTML要素のelementId(またはelementそのもの)、およびレポートの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです:
...
|
オプション | 説明 |
---|
reportUUID | reportUUID、reportId、wsNameのいずれかが存在する必要があります。 ロードするダッシュボードを識別する固有のIDです。 | reportId | reportUUID、reportId、wsNameのいずれかが存在する必要があります。 ロードするレポートを識別する数値のreportIdです。代わりにreportUUIDパラメーターを使用することをお勧めします。 | wsName | reportUUID、reportId、wsNameのいずれかが存在する必要があります。 ロードするレポートを識別するWebサービス名です。代わりにreportUUIDパラメーターを使用することをお勧めします。 | elementId | elementIdとelementのいずれかが存在する必要があります。 レポートをロードするHTML要素のIDです。 | element | elementIdとelementのいずれかが存在する必要があります。 レポートをロードするHTML要素です。 | showTitle | デフォルト: true falseに設定すると、レポート上部のタイトルバーが省略されます。タイトルバーに含まれるすべての対話型ボタンも省略されます。 | showInfo | デフォルト: true falseに設定すると、タイトルバーの情報ボタンが省略されます。 | showFilters | デフォルト: true falseに設定すると、タイトルバーのフィルターボタンが省略されます。ユーザープロンプトフィルターは表示されません。 | showSections | デフォルト: true falseに設定すると、タイトルバーのセクションボタンが省略されます(タブ形式または複数ページのセクションを使用するレポートの場合)。 | showSeries | デフォルト: true falseに設定すると、タイトルバーのシリーズボタンが省略されます(シリーズ選択オプションを使用するレポートの場合)。 | showPageLinks | デフォルト: true falseに設定すると、タイトルバーの前のページ/次のページボタンが省略されます(複数ページを使用するレポートの場合)。 | showExport | デフォルト: true falseに設定すると、タイトルバーのエクスポートボタンが省略されます。 | height | デフォルト:囲み要素の寸法から自動的に検出します。 レポートの高さを上書きするには、数値を設定します。 | width | デフォルト:囲み要素の寸法から自動的に検出します。 レポートの幅を上書きするには、数値を設定します。 | display | デフォルト: chart tableに設定すると、レポートの初期状態がテーブルで表示されます。 chartに設定すると、レポートの初期状態がグラフで表示されます。 テーブルとグラフの両方が使用可能でないレポートでは無視されます。 | fitTableWidth | デフォルト: true trueに設定すると、レポートを囲み要素の幅に合わせようとします。 | canChangeDisplay | デフォルト: true falseに設定すると、ユーザーがグラフ表示とテーブル表示を切り替えできるボタンが省略されます。 | filters | レポートに渡すフィルター値が格納されているオブジェクトに設定します。 | username | passwordパラメーターと共に設定することで、レポートをロードするときに特定のユーザーとして認証されます。ユーザーは制限されているレポートを表示する前に、ログインの詳細を入力する必要がありません。 | password | usernameパラメーターと共に設定することで、レポートをロードするときに特定のユーザーとして認証されます。 |
|
例
ユニバーサル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}
匿名オプションオブジェクトを使用して同様の処理を行う例を示します:
{code:javascript} |
匿名オプションオブジェクトを使用して同様の処理を行う例を示します:
Code Block |
---|
|
yellowfin.loadReport({
reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63',
elementId: 'myReport',
showFilters: 'false',
showSeries: 'false',
display: 'chart',
fitTableWidth: 'false'
});
{code}
IDではなく要素を直接渡す例を示します:
{code:javascript} |
IDではなく要素を直接渡す例を示します:
Code Block |
---|
|
yellowfin.loadReport({
reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63',
element: document.getElementById('myReport')
});
{code}
h2. レポートフィルターのロード
{styleclass: Class=topLink}[ページトップ|#top]
{styleclass}
|
レポートフィルターのロード
レポートで使用されるフィルターは、yellowfin.reports.loadReportFilters関数を使用してロードすることができます。この関数を使用するには、メインAPIと共にレポートサブAPIをページにロードします:
...
Code Block |
---|
|
<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=reports" type="text/javascript"></script>
{code}
その後loadReportFilters関数を呼び出します:
{code:javascript} |
その後loadReportFilters関数を呼び出します:
Code Block |
---|
|
yellowfin.reports.loadReportFilters(reportId, callback, arg);
{code}
1番目の引数はレポートの固有識別子で、reportUUIDとreportIdのいずれかです。可能な限りreportUUIDを使用することをお勧めします。2番目の引数はコールバック関数で、レポートのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、レポートのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters関数に渡される3番目の引数になります(指定した場合)。
コールバック関数の1番目の引数として返されるフィルターオブジェクトは、レポートで使用されるあらゆるフィルターが格納された配列です。配列の各要素は、そのフィルターに関する情報が格納されたオブジェクトです。これらのフィルターオブジェクトには以下のプロパティがあります:
h3. {expand:title= |
1番目の引数はレポートの固有識別子で、reportUUIDとreportIdのいずれかです。可能な限りreportUUIDを使用することをお勧めします。2番目の引数はコールバック関数で、レポートのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、レポートのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters関数に渡される3番目の引数になります(指定した場合)。
コールバック関数の1番目の引数として返されるフィルターオブジェクトは、レポートで使用されるあらゆるフィルターが格納された配列です。配列の各要素は、そのフィルターに関する情報が格納されたオブジェクトです。これらのフィルターオブジェクトには以下のプロパティがあります:
...
|
プロパティ | 説明 |
---|
filterUUID | フィルターの固有識別子です。 | filterId | フィルターの数値識別子です。 | nativeType | フィルターのネイティブデータタイプです。 | description | フィルターの説明です。 | operator | フィルターで使用される演算子です。 | display | フィルターで使用される表示スタイルです。 | dependencies | レポートの他のフィルターがこのフィルターに従属している場合はtrueに設定します。 | list | フィルターがリストスタイル(複数の値を許可する)の場合はtrueに設定します。 | between | フィルターが範囲スタイル(開始値と終了値が必要)の場合はtrueに設定します。 | listValues | フィルターがドロップダウンリストとして表示される場合は、このプロパティに使用可能なオプションのリストが格納されます。 |
|
例
レポートフィルターをロードしてユーザーに表示する例を示します:
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);
{code}
この関数は、使用可能なフィルターをロードしてloadReport関数に戻し、レポートがページにロードされるときのレポートのフィルター初期値を設定するために使用できます。例:
{code:javascript} |
この関数は、使用可能なフィルターをロードして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') {
filterValues[filters[i].filterUUID] = 6400;
}
}
// set up other options to load the report
var options = {};
options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63';
options.elementId = 'myReport';
// add the filter values
options.filters = filterValues;
// load the report
yellowfin.loadReport(options);
}
yellowfin.reports.loadReportFilters(
'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback);
{code}
loadReport関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます:
{code:javascript} |
loadReport関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます:
Code Block |
---|
|
filterValues[filterUUID] = ['Australia', 'China', 'Italy'];
{code}
フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります:
{code:javascript} |
フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります:
Code Block |
---|
|
filterValues[filterUUID] = [500, 600];
{code}
|
loadReport関数に渡されるoptions.filters要素は、filterUUIDまたはfilterIdでキー設定された値を含む必要があります。可能な限りfilterUUIDを使用することをお勧めします。
...
ダッシュボードのロード
ダッシュボードは、yellowfin.loadDash関数を呼び出してロードします:
...
Code Block |
---|
|
yellowfin.loadDash(options);
{code}
オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているダッシュボードの識別子、ダッシュボードをロードするHTML要素のelementId(またはelementそのもの)、およびダッシュボードの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです:
h3. {expand:title= |
オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているダッシュボードの識別子、ダッシュボードをロードするHTML要素のelementId(またはelementそのもの)、およびダッシュボードの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです:
...
|
オプション | 説明 |
---|
dashUUID | 必須です。 ロードするダッシュボードの固有識別子です。 | elementId | elementIdとelementのいずれかが存在する必要があります。 ダッシュボードをロードするHTML要素のIDです。 | element | elementIdとelementのいずれかが存在する必要があります。 ダッシュボードをロードするHTML要素です。 | showTitle | デフォルト: true falseに設定すると、ダッシュボード上部のタイトルバーが省略されます。タイトルバーに含まれるすべての対話型ボタンも省略されます。 | showInfo | デフォルト: true falseに設定すると、タイトルバーの情報ボタンが省略されます。 | showFilters | デフォルト: true falseに設定すると、タイトルバーのフィルターボタンが省略されます。分析フィルターは表示されません。 | showExport | デフォルト: true falseに設定すると、タイトルバーのエクスポートボタンが省略されます。 | height | デフォルト:ダッシュボード内のレポートの寸法から自動的に設定します。 ダッシュボードの高さを上書きするには、数値を設定します。ダッシュボードのレポートが多くのスペースを必要とする場合は、縦方向のスクロールバーが追加されます。 | width | デフォルト:ログインユーザーの設定またはシステム設定から自動的に設定されます。 ダッシュボードの幅を上書きするには、数値を設定します。 autoに設定すると、囲み要素の幅全体を使用します。 | filters | ダッシュボードに渡すフィルター値が格納されているオブジェクトに設定します。 | username | passwordパラメーターと共に設定することで、ダッシュボードをロードするときに特定のユーザーとして認証されます。ユーザーは制限されているダッシュボードを表示する前に、ログインの詳細を入力する必要がありません。 | password | usernameパラメーターと共に設定することで、ダッシュボードをロードするときに特定のユーザーとして認証されます。 |
|
例
IDで指定された要素にダッシュボードをロードし、初期の表示オプションをいくつか設定する例を示します。
Code Block |
---|
|
var options = {};
options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9';
options.elementId = 'myDash';
options.showFilters = 'false';
options.showExport = 'false';
yellowfin.loadDash(options);
{code}
匿名オプションオブジェクトを使用して同様の処理を行う例を示します:
{code:javascript} |
匿名オプションオブジェクトを使用して同様の処理を行う例を示します:
Code Block |
---|
|
yellowfin.loadDash({
dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
elementId: 'myDash',
showFilters: 'false',
showExport: 'false'
});
{code}
IDではなく要素を直接渡す例を示します:
{code:javascript} |
IDではなく要素を直接渡す例を示します:
Code Block |
---|
|
yellowfin.loadDash({
dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
element: document.getElementById('myDash')
});
{code}
h2. ダッシュボードフィルターのロード
{styleclass: Class=topLink}[ページトップ|#top]
{styleclass}
|
ダッシュボードフィルターのロード
ダッシュボードで使用されるフィルターは、yellowfin.dash.loadDashFilters関数を使用してロードすることができます。この関数を使用するには、メインAPIと共にダッシュボードサブAPIをページにロードします:
...
Code Block |
---|
|
<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=dash" type="text/javascript"></script>
{code}
その後loadDashFilters関数を呼び出します:
{code:javascript} |
その後loadDashFilters関数を呼び出します:
Code Block |
---|
|
yellowfin.dash.loadDashFilters(dashUUID, callback, arg);
{code}
1番目の引数は、ダッシュボードの固有識別子です。2番目はコールバック関数で、ダッシュボードのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、ダッシュボードのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters関数に渡される3番目の引数になります(指定した場合)。
コールバック関数の1番目の引数として返されるフィルターオブジェクトは、ダッシュボードで使用されるあらゆる分析フィルターと、フィルターグループ区切り文字が格納された配列です。配列の各要素は、そのフィルターまたはフィルターグループに関する情報が格納されたオブジェクトです。これらのオブジェクトには以下のプロパティがあります:
h3. {expand:title= |
1番目の引数は、ダッシュボードの固有識別子です。2番目はコールバック関数で、ダッシュボードのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、ダッシュボードのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters関数に渡される3番目の引数になります(指定した場合)。
コールバック関数の1番目の引数として返されるフィルターオブジェクトは、ダッシュボードで使用されるあらゆる分析フィルターと、フィルターグループ区切り文字が格納された配列です。配列の各要素は、そのフィルターまたはフィルターグループに関する情報が格納されたオブジェクトです。これらのオブジェクトには以下のプロパティがあります:
...
|
プロパティ | 説明 |
---|
key | このフィルターまたはフィルターグループの固有キーです。 | type | このオブジェクトがフィルターグループを表す場合はFILTERGROUPに設定します。その他の値は、分析フィルターの種類を示します。 | description | フィルターまたはフィルターグループの説明です。 | groupId | フィルターグループ用:グループの数値識別子です。 | state | フィルターグループ用:グループが現在オープンの場合はOPENに設定します。 | display | フィルター用:フィルターで使用される表示スタイルです。 | dependencies | フィルター用:ダッシュボードの他のフィルターがこのフィルターに従属している場合はtrueに設定します。 | list | フィルター用:フィルターがリストスタイル(複数の値を許可する)の場合はtrueに設定します。 | between | フィルター用:フィルターが範囲スタイル(開始値と終了値が必要)の場合はtrueに設定します。 | listValues | フィルター用:フィルターがドロップダウンリストとして表示される場合は、このプロパティに使用可能なオプションのリストが格納されます。 |
|
例
ダッシュボードフィルターをロードしてユーザーに表示する例を示します:
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);
{code}
この関数は、使用可能なフィルターをロードしてloadDash関数に戻し、ダッシュボードがページにロードされるときのダッシュボードのフィルター初期値を設定するために使用できます:
{code:javascript} |
この関数は、使用可能なフィルターをロードしてloadDash関数に戻し、ダッシュボードがページにロードされるときのダッシュボードのフィルター初期値を設定するために使用できます:
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);
{code}
loadDash関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます:
{code:javascript} |
loadDash関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます:
Code Block |
---|
|
filterValues[key] = ['Australia', 'China', 'Italy'];
{code}
フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります:
{code:javascript} |
フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります:
Code Block |
---|
|
filterValues[key] = [500, 600];
{code}
|
loadDash関数に渡されるoptions.filters要素は、loadDashFilters関数から返されるkeysでキー設定された値を含む必要があります。
...