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

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Table of Contents
classcontents

...

 

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

Tip

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

Java APIの呼び出し

Styleclass
ClasstopLink

ページトップ

Webサービスは、OEMアプリケーションとYellowfinとの間の通信を管理するために使用されます。Webサービスは、XMLベースであり、OEMアプリケーションを開発するために使用されるプログラミング言語には依存しません。

Yellowfin Webサービスを対象に開発を行う場合、WSDL定義に対して関数スタブを生成することができます。これらの定義は、http://<yellowfin-server>:<port>/services(例:http://localhost:8080/services)で見つけることができます。

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

Webサービスの例で使用されるいくつかのオブジェクトには、以下のようなものがあります。

  • AdministrationServiceRequest - Webサービスに対して行われる呼び出しのタイプを定義するオブジェクト
  • AdministrationServiceResponse - Webサービスによって返されるオブジェクト
  • AdministrationPerson - ユーザー情報を含むオブジェクト
  • AdministrationGroup - グループ情報を含むオブジェクト

Yellowfin WebサービスAPI

Styleclass
ClasstopLink

ページトップ

Yellowfinには、「yfws-<date>.jarというJARファイルが付属しています。このファイルは、YellowfinのインストールディレクトリYellowfin\development\libにあります。 

Yellowfin WebサービスAPIには、あらかじめ生成されたスタブが含まれます。これは、Java、またはJava統合をサポートする他の言語(Cold FusionやLotus Scriptなど)で開発されたアプリケーションで、直接使用することができます。大部分のWebサービスが、標準のJava関数によってまとめられているため、各リクエストを手動で生成する必要がなくなることから、統合が若干容易になります。

Webサービスリクエストの形式は、以下の通りです。

Code Block
AdministrationServiceRequest rsr = new AdminstrationServiceRequest();
AdministrationServiceResponse rs = null;
AdministrationPerson person = new AdministrationPerson();

rsr.setLoginId(this.username);
rsr.setPassword(this.password);
rsr.setOrgId(new Integer(1));
rsr.setFunction("ADDUSER");

rs = AdministrationService.remoteAdministrationCall(rsr);

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」。

    Note

    注意: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関数を使用することができます。作成済みの関数を使用することで、各リクエストを手動で構成する必要がないため、開発作業を容易にします。

Tip

こちら方法に関するサンプルコードは「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サービスを初期化するには、以下のコマンドを使用します。

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

 

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

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

Code Block
languagejava
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を保存し、次の呼び出しに渡します。

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

 

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

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

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

 

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

Code Block
languagejava
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);

 

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

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

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

 

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

Code Block
languagejava
ReportServiceResponse rs = reportService.remoteReportCall(rsr);

 

Java以外の言語

Styleclass
ClasstopLink

ページトップ

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を含むページを表示します。

Image Added

 

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

 

Note

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

 

 

PHP

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



Section
Column
width40%

 前項:Webサービスの有効化

Column
width30%

 

Column
width30%

...

 

horizontalrule
Styleclass
ClasstopLink

ページトップ