0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Yellowfin URL の生成 開発者向けのニッチな機能

Posted at

はじめに

ニッチすぎる API 第 2 弾です。
Web サイトを構築する際、URL の引数で引き渡すパラメーターなどを切り替えながら画面の様子を確認するのは、時に面倒なこともあるかと思います。そんな時に役立つかもしれない JavaScript API が追加されました。

追加された API

yellowfin.integration 名前空間の下に、getApplicationEntry() と getIFrameEntry() メソッドが追加されました。
いずれも、各画面にアクセスするための URL を返します。

getApplicationEntry()

getApplicationEntry() は、entryPoint と queryParameters をパラメーターとして受け取ります。

entryPoint に指定できるのは、以下のいずれかです。
  ・ダッシュボード
  ・レポート
  ・タイムライン
  ・管理画面
  ・ストーリー
  ・シグナル
  ・シグナルリスト

queryParameters には、引き渡すパラメーターを指定します。
例えばレポートの場合、以下のような感じで、entryPoint に report を指定し、queryParameters に レポートの UUID を指定します。
getApplicationEntry('report', {"reportUUID": "e9bdc486-7334-43b4-99d1-98c64a6f38e1"})

getIFrameEntry()

getIFrameEntry() は、entryPoint、contentOnly、queryParameters をパラメーターとして受け取ります。

例えばダッシュボードの場合、以下のような感じで、entryPoint に dashboard、contentOnly に true / false、queryParameters に レポートの UUID をそれぞれ指定します。IFrame 画面向けにヘッダー情報を表示させないようにするのが、contentOnly パラメーターです。
getIFrameEntry('dashboard', true, {"dashUUID": "5398f86e-e7d8-4bec-8560-d309a72d766d"})

サンプルコード

参考までに、どんな感じで URL が生成されるかを見ていただく HTML / JavaScript ページを作成してみました。

generateUrls.html
<!DOCTYPE html>
<html lang="ja">
<meta charset="utf-8">
<h3>JSAPI Test</h3>
<script src="http://yellowfin-server:9140/JsAPI/v3"></script>
<div id="reportDiv"></div>
<script>
yellowfin.init().then(() => {
   yellowfin.loadIntegrationAPI().then( () => {
      var element = document.getElementById('reportDiv');
      element.innerHTML += '<B>タイムライン</B>: ' + yellowfin.integration.getApplicationEntry('timeline') + '<BR>';
      element.innerHTML += '<B>管理画面</B>: ' + yellowfin.integration.getApplicationEntry('admin',{"nonRequiredParameter": "someValue"}) + '<BR>';
      element.innerHTML += '<B>レポート</B>: ' + yellowfin.integration.getApplicationEntry('report', {"reportUUID": "e9bdc486-7334-43b4-99d1-98c64a6f38e1"}) + '<BR>';
      element.innerHTML += '<B>タイムライン iFrame</B>: ' + yellowfin.integration.getIFrameEntry('timeline', true, {} ) + '<BR>';
      element.innerHTML += '<B>管理画面 iFrame</B>: ' + yellowfin.integration.getIFrameEntry('admin', true, {}) + '<BR>';
      element.innerHTML += '<B>ダッシュボード iFrame</B>: ' + yellowfin.integration.getIFrameEntry('dashboard', true, {"dashUUID": "5398f86e-e7d8-4bec-8560-d309a72d766d"}) + '<BR>';	});
});
</script>
</meta>
</html>

動作確認

この html ファイルを (yellowfin)/appserver/webapps/ROOT直下において動作を確認してみます。

既に Yellowfin にログイン済みのブラウザから、generateUrls.html にアクセスすると、下記画面のように、アクセスするためのトークン情報を伴った URL が生成されました。

image.png

ログインしていない場合、トークンの中身が null となるため、その場合は SSO トークンの生成などと組み合わせる必要があります。

getApplicationEntry() が生成したダッシュボードアクセス用の URL にアクセスすると、下記のような画面が見えてきました。

image.png

getIFrameEntry() が生成したダッシュボードアクセス用の URL にアクセスすると、下記のようにヘッダー情報が非表示の画面が見えてきました。

image.png

最後に

特に Yellowfin コンテンツを他のサイトに組み込んでいる時など、パラメーターを変えながら見え方を調整したい時などあるかと思います。
そんな時、都度 URL を手で書き換える代わりに、これら API を使ってみてはいかがでしょうか。

では皆様、良いデータ分析を!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?