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


Yellowfinでは、SOAP Webサービスへ接続するために、Java WebサービスAPIを提供していますが、実際には.NETやRuby、Pythonなど、他のプログラミング言語や環境からも接続することが可能です。

Webサービスの呼び出しを実行するロールを付与されたYellowfinユーザーが必要です。詳細については、こちらを参照してください。

Java APIの呼び出し


Yellowfin WebサービスAPIには、あらかじめ生成されたスタブが含まれています。これは、Java、またはJava統合をサポートする他の言語(Cold FusionやLotus Scriptなど)で開発されたアプリケーションで、直接使用することができます。



APIは、Yellowfin Tomcatのもと、JSPを使用することで内部的に呼び出すことができます。サンプルコードは、「yellowfin/development/examples/webservices」フォルダーに格納されています。JSPファイルを「Yellowfin/appserver/webapps/ROOT」フォルダーへコピーし、環境に合わせてこれらのファイルのホスト、ポート番号、ユーザー詳細情報を調整します。これを他の言語や環境で複製する前に、まずはこちらの方法を使用して必要なことが実現できるようにすることを推奨します。


Yellowfin Tomcatの外側で、外部的にWebサービスを呼び出すこともできます。そのためには、以下が必要です。

  • development/lib」フォルダー内にある「yfws-<日付>.jar」。

    注意:Yellowfinをアップグレードしたら、最新の「yfws-xxx.jar」を忘れずに取得してください(対応するファイルは、Yellowfinのウェブサイトからダウンロードすることができます)

  • Apache Axis:より詳細な情報は、こちらを参照してください。:http://axis.apache.org/axis/ja/


完全なオブジェクト定義は、「Yellowfin/development/doc/webservices/Javadoc/index.html」を参照してください。

Yellowfin WebサービスAPIの呼び出し方法には、次の2つがあります。事前に作成されたJava関数を使用するか、SOAPの呼び出しの実行です。アプリケーションの環境に応じて、適切な方法を選択します。既にJava環境の準備があれば、事前に作成されたJava関数の使用を推奨します。それ以外の場合は、手動でSOAPの呼び出しを実行します。

事前に作成されたJava関数の使用

Yellowfin APIを呼び出すために、あらかじめ作成されたJava関数を使用することができます。作成済みの関数を使用することで、各リクエストを手動で構成する必要がないため、開発作業を容易にします。

こちら方法に関するサンプルコードは「development/examples/webservices」フォルダーに格納されています。ファイル名に「api」と記載されているjspファイルを参照してください。まずは、「mobile」と記載されているファイルを、Yellowfinの「ROOT」フォルダーにコピーし、そこから始めることを推奨します。


SOAPの呼び出しの実行

Yellowfin WSDLから、Javaで生成されたスタブを使用して直接SOAPの呼び出し実行することもできます。

管理サービスレポートサービス項目に含まれるすべてのサンプルコードは、Java内のSOAPの呼び出しを使用して説明されています。これらの例では、Yellowfin TomcatサーバからYellowfin APIを呼び出すことを前提にして説明されています(これは、JSPを使用し、すべてのファイルは「Yellowfin/appserver/webapps/ROOT」フォルダーに格納されることを意味します。)。Java以外の言語を使用しても、コードを複雑にすることはありません。


管理Webサービスの初期化

管理Webサービスを初期化するには、以下のコマンドを使用します。

AdministrationServiceService s_adm = new AdministrationServiceServiceLocator(<host>,<port>, <ServicePath>, <ssl>) ;        
AdministrationServiceSoapBindingStub rssbs_admin = (AdministrationServiceSoapBindingStub) s_adm.getAdminService();


レポートWebサービスの初期化

レポートWebサービスを初期化するには、以下のコマンドを使用します。

ReportServiceService s_rpt = new ReportServiceServiceLocator(<host>, <port>, <ServicePath>, <ssl>);
ReportServiceSoapBindingStub rssbs_report = (ReportServiceSoapBindingStub) s_rpt.getReportService();


これらのパラメーターに含まれるプライマリーオブジェクトは、以下の通りです。(詳細は、管理オブジェクト定義項目で紹介しています。)


YellowfinセッションIDの保存

すべてのWebサービス応答が、YellowfinセッションIDを取得します。セッションIDを指定することなく呼び出しを実行する度に、Yellowfinは新しいセッションを開きます。これは、あまりに多くのセッションを開くことで、メモリ問題を引き起こす可能性があるため、適切な方法とは言えません(例:ダッシュボードフィルターをダッシュボードレポートに渡そうとしている場合、すべてのレポートは同一のYellowfinセッション内に呼び出されなくてはいけません)。この問題を解消するためには、応答パラメーター、セッションIDを保存し、次の呼び出しに渡します。

String savedSessionID = ssr.getSessionId();
 
...
 
AdministrationServiceRequest sr = new AdministrationServiceRequest();
sr.setSessionId(savedSessionID);


管理サービスのためのサンプルコード

SSLを無効にした状態で、Yellowfinをhttpポート8080で実行しているとします。管理サービスを初期化するためには、以下の例に従います。

AdministrationServiceService s_adm = new AdministrationServiceServiceLocator("localhost",8080,"/services/AdministrationService", false);
 
AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService();


リクエストを構成をしたら、AdministrationServiceSoapBindingStubオブジェクトのremoteAdministrationCall()関数を使用して、Yellowfinを呼び出すことができます。

AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);


レポートサービスのためのサンプルコード

SSLを無効にした状態で、Yellowfinをhttpポート8080で実行しているとします。レポートサービスを初期化するためには、以下の例に従います。

ReportServiceService s_rpt = new ReportServiceServiceLocator("localhost",8080,"/services/ReportService", false);       
 
ReportServiceSoapBindingStub reportService = (ReportServiceSoapBindingStub) s_rpt.getReportService();


リクエストを構成をしたら、ReportServiceSoapBindingStubオブジェクトのremoteReportCall()関数を使用して、Yellowfinを呼び出すことができます。

ReportServiceResponse rs = reportService.remoteReportCall(rsr);


Java以外の言語


Yellowfin Webサービスを開発する場合、WSDL定義に対して機能的なスタブを生成することができます。これらの定義は、「http://<yellowfin-server>:<port>/services」を参照してください。例:http://localhost:8080/services


機能スタブは、Yellowfinが提供するWebサービスと直接通信をするネイティブ開発言語の標準関数を呼び出すことができます。機能スタブを生成するプロセスでは、Webサービスに必要な任意のオブジェクトも生成しなくてはいけません。


Microsoft .NET統合

.NETの場合は、JAX Webサービスからスタブを生成することを推奨します。JAX Webサービスは、「http://<yellowfin-host>/webservices/Hello」で接続することができます。これは、WSDL URLを含むページを表示します。


一覧化されたWSDL URLに、クライアントを接続します。


Javaと.NET間のデータ型に互換性が無い場合もあります。例えば、Integer型はNullではなく0として送信されます。手動で「References.cs」ファイルを変更し、データ型を更新しなくてはいけない場合があります。



PHP

PHPでは、Axis生成WADL(http://<yellowfin-server>:<port>/services)を使用することができます。