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

概要

コンテンツをロード詳細に制御したり、必要に応じてレポートやダッシュボードを呼び出したり、表示オプションをユーザー入力に基づき動的に設定したりする場合は、独自のスクリプトからAPIを直接呼び出すことができます。

どのAPIを呼び出すよりも前に、Javascript APIを含めなくてはいけません。

<script src="http://localhost/JsAPI" type="text/javascript"></script>

バージョンパラメーターを使用することで、特定のバージョンのAPIが要求されることがあります。

<script src="http://localhost/JsAPI?version=2.1" type="text/javascript"></script>

APIのロードにブラウザを使用することができない場合、レポートやダッシュボードをロードするすべての呼び出しが失敗します。APIが正常にロードされるか検出したい場合、変数window.yellowfin が使用可能かどうかを確認します。

<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script type="text/javascript">
if (!window.yellowfin) {
   alert('Error loading API');
}
</script>

サーバー情報

APIロード後、利用できるようにばるサーバ情報があります。

 説明

yellowfin.apiVersion

サーバーで使用しているAPIのバージョンです。

yellowfin.baseURL

サーバー上のAPIに接続するために使用されるBase URLです。

yellowfin.serverInfo.releaseVersion

サーバーで実行しているYellowfinのリリースバージョンです(例:「6.1」)。

yellowfin.serverInfo.buildVersion

サーバーで実行しているYellowfinのビルドバージョンです(例:「20120601」)。

yellowfin.serverInfo.javaVersion

サーバーにインストールされているJavaのバージョンです。

yellowfin.serverInfo.operatingSystem

サーバーで実行しているOSです。

yellowfin.serverInfo.operatingSystemArch

サーバーのOSのアーキテクチャです。

yellowfin.serverInfo.operatingSystemVersion

サーバーのOSバージョンです。

yellowfin.serverInfo.schemaVersion

Yellowfin構成データベースのスキーマバージョンです。

<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script type="text/javascript">
if (window.yellowfin) {
   alert('Yellowfin API loaded. Version: ' + yellowfin.apiVersion);
}
</script>

レポートのロード

yellowfin.loadReport 」関数を呼び出すことで、レポートがロードされます。

yellowfin.loadReport(options);

オプションは、「Javascript object」として関数に渡されます。こちらには、レポートをロードするレポート識別子、レポートをロードするHTML要素のelementId(または、elementそのもの)、レポートの表示方法を変更するその他のオプションが含まれます。使用可能なオプションは、以下の通りです。

オプション説明

reportUUID

reportUUIDreportIdwsNameのいずれかが、存在する必要があります。
ロードするダッシュボードを識別する固有のIDです。

reportId

reportUUIDreportIdwsNameのいずれかが、存在する必要があります。
ロードするレポートを識別する数値reportIdです。代わりにreportUUIDパラメーターを使用することをお勧めします。

wsName

reportUUIDreportIdwsNameのいずれかが、存在する必要があります。
ロードするレポートを識別する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に指定された要素のレポートをロードし、初期表示オプションのいくつかを設定します。

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);

こちらの例は、匿名オプションオブジェクトを使用して、同様の処理を実行します。

yellowfin.loadReport({
   reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63',
   elementId: 'myReport',
   showFilters: 'false',
   showSeries: 'false',
   display: 'chart',
   fitTableWidth: 'false'
});

こちらの例は、IDではなく、elementを直接渡します。

yellowfin.loadReport({
   reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63',
   element: document.getElementById('myReport')
});

レポートフィルターのロード

yellowfin.reports.loadReportFilters」関数を呼び出すことで、レポートが使用するフィルターをロードすることができます。こちらの関数を使用するためには、メインAPIと一緒に、レポートサブAPIをページにロードします。

<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=reports" type="text/javascript"></script>

loadReportFilters」関数を呼び出します。

yellowfin.reports.loadReportFilters(reportId, callback, arg);

最初の引数は、レポート固有の識別子であり、「reportUUID」、または「reportId」のいずれかです。可能であれば、「reportUUID」の使用をお勧めします。二番目の引数は、コールバック関数であり、レポートフィルターのロード時に、APIにより呼び出されます。コールバック関数への最初の引数は、レポート内のフィルターの一覧です。コールバック関数への二番目の引数は、loadReportFilters関数へ提供される三番目の引数です(指定されている場合)。

コールバック関数への最初の引数として返されるフィルターオブジェクトは、レポート内で使用されるすべてのフィルターが格納された配列です。配列内の各要素は、フィルター情報を含むオブジェクトです。これらのフィルターオブジェクトは、以下のプロパティを含みます。

プロパティ説明

filterUUID

フィルターの固有識別子です。

filterId

フィルターの数値識別子です。

nativeType

フィルターのネイティブデータタイプです。

description

フィルターの説明です。

operator

フィルターで使用される演算子です。

display

フィルターで使用される表示スタイルです。

dependencies

レポートの他のフィルターが、こちらのフィルターに従属している場合は、「true」に設定します。

list

フィルターが「一覧」スタイル(複数の値を許可する)の場合は、「true」に設定します。

between

フィルターが「範囲」スタイル(開始値と終了値が必要)の場合は、「true」に設定します。

listValues

フィルターをドロップダウンリストとして表示する場合は、こちらのプロパティに使用可能なオプションの一覧が格納されます。

こちらの例は、レポートフィルターをロードし、ユーザーに表示します。

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);

こちらの関数は、使用可能なフィルターのロードに使用され、ページにロードされた際の、レポートの初期フィルター値を設定するために、「loadReportfunction」へ渡されます。

例:

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);

loadReport 」関数に渡されるフィルター値は、上記のように単一の値に指定されていなくてはいけません。フィルターが一覧スタイルの場合、配列を使用して複数の値が設定されます。

filterValues[filterUUID] = ['Australia', 'China', 'Italy'];

フィルターが範囲スタイルの場合、配列を使用して、開始と終了の値が設定されます。

filterValues[filterUUID] = [500, 600];

loadReport」関数に渡される「options.filters 」要素は、「filterUUID」、または「filterId」のいずれかによりキーが付与された値を含まなければなりません。可能であれば、「filterUUID」の使用をお勧めします。

ダッシュボードのロード

yellowfin.loadDash 」関数を呼び出すことで、ダッシュボードをロードします。

yellowfin.loadDash(options);

オプションは、「Javascript object」として関数に渡されます。こちらには、ダッシュボードをロードするレポート識別子、ダッシュボードをロードするHTML要素のelementId(または、elementそのもの)、ダッシュボードの表示方法を変更するその他のオプションが含まれます。使用可能なオプションは、以下の通りです。

オプション説明

dashUUID

必ず存在する必要があります。
ロードするダッシュボードを識別する固有のIDです。

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に指定された要素のダッシュボードをロードし、初期表示オプションのいくつかを設定します。

var options = {};
options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9';
options.elementId = 'myDash';
options.showFilters = 'false';
options.showExport = 'false';
yellowfin.loadDash(options);

こちらの例は、 匿名オプションオブジェクトを使用して、同様の処理を実行します。

yellowfin.loadDash({
   dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
   elementId: 'myDash',
   showFilters: 'false',
   showExport: 'false'
});

こちらの例は、IDではなく、elementを直接渡します。

yellowfin.loadDash({
   dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9',
   element: document.getElementById('myDash')
});

ダッシュボードフィルターのロード

yellowfin.dash.loadDashFilters関数を呼び出すことで、ダッシュボードが使用するフィルターをロードすることができます。こちらの関数を使用するためには、メインAPIと一緒に、ダッシュボードサブAPIをページにロードします。

<script src="http://localhost/JsAPI" type="text/javascript"></script>
<script src="http://localhost/JsAPI?api=dash" type="text/javascript"></script>

loadDashFilters関数を呼び出します。

yellowfin.dash.loadDashFilters(dashUUID, callback, arg);

最初の引数は、ダッシュボード固有の識別子です。二番目の引数は、コールバック関数であり、ダッシュボードフィルターのロード時に、APIにより呼び出されます。コールバック関数への最初の引数は、ダッシュボード内のフィルターの一覧です。コールバック関数への二番目の引数は、loadReportFilters関数へ提供される三番目の引数です(指定されている場合)。

コールバック関数への最初の引数として返されるフィルターオブジェクトは、ダッシュボード、フィルターグループセパレーター内で使用されるすべての分析フィルターが格納された配列です。 配列内の各要素は、フィルター、またはフィルターグループ情報を含むオブジェクトです。 これらのフィルターオブジェクトは、以下のプロパティを含みます。

 

プロパティ説明

key

こちらのフィルター、またはフィルターグループの固有キーです。

type

こちらのオブジェクトがフィルターグループを表す場合は、「FILTERGROUPに設定します。その他の値は、分析フィルターのタイプを示します。

description

こちらのフィルター、またはフィルターグループの説明です。

groupId

フィルターグループの場合は、グループの数値識別子です。

state

フィルターグループの場合は、グループが現在オープンの場合は、「OPENに設定します。

display

フィルターの場合は、フィルターで使用される表示スタイルです。

dependencies

フィルターの場合は、ダッシュボードの他のフィルターが、こちらのフィルターに従属している場合、「trueに設定します。

list

フィルターの場合は、フィルターが「一覧」スタイル(複数の値を許可する)の場合、「trueに設定します。

between

フィルターの場合は、フィルターが「範囲」スタイル(開始値と終了値が必要)の場合、「trueに設定します。

listValues

フィルターの場合は、フィルターがドロップダウンリストとして表示される場合、こちらのプロパティに使用可能なオプションのリストが格納されます。

こちらの例は、ダッシュボードフィルターをロードし、ユーザーに表示します。

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);

こちらの関数は、使用可能なフィルターのロードに使用され、ページにロードされた際の、ダッシュボードの初期フィルター値を設定するために、「loadDash関数へ渡されます。

例:

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」関数に渡されるフィルター値は、上記のように単一の値に指定されていなくてはいけません。フィルターが一覧スタイルの場合、配列を使用して複数の値が設定されます。

filterValues[key] = ['Australia', 'China', 'Italy'];

フィルターが範囲スタイルの場合、配列を使用して、開始と終了の値が設定されます。

filterValues[key] = ['500', '600'];

loadDash関数に渡される「options.filters要素は、「loadDashFilters関数から返されるキーが付与された値を含まなければなりません。