こちらで紹介するwebサービスは、データソースを管理するために使用します。
こちらのwebサービスは、認証されたユーザーとクライアント組織に利用可能なすべてのデータソースの一覧を取得します。応答は、ソースIDと、検出された各データソースのソース名とともに、AdministrationDataSourceオブジェクトの配列を含みます。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「LISTDATASOURCES」に設定します。 |
リクエストの例
以下は、こちらのリクエストのSOAP XMLの例です。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteAdministrationCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <function>LISTDATASOURCES</function> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
DataSources | AdministrationDataSource[] | 利用可能なすべてのデータソースを含むオブジェクト配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <datasources> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>org.hsqldb.jdbcDriver</connectionDriver> <connectionPath/> <connectionString>jdbc:hsqldb:file:/Applications/Yellowfin 7.4 86/tutorialdata/newskiteam;shutdown=true</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription>Ski Team is the demonstration and tutorial database.</sourceDescription> <sourceId>54700</sourceId> <sourceName>Ski Team</sourceName> <sourceType>HSQLDB</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName>SA</userName> <userPassword>cDahEHuTOrk=</userPassword> </datasources> <datasources> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>org.hsqldb.jdbcDriver</connectionDriver> <connectionString>jdbc:hsqldb:file:/Applications/Yellowfin 7.4 86/data/configdb;shutdown=true</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription/> <sourceId>54701</sourceId> <sourceName>Yellowfin Configuration Database</sourceName> <sourceType>GENERICJDBC</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName>SA</userName> <userPassword>cDahEHuTOrk=</userPassword> </datasources> <datasources> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>net.sourceforge.jtds.jdbc.Driver</connectionDriver> <connectionPath/> <connectionString>jdbc:jtds:sqlserver://:1433/</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription/> <sourceId>70108</sourceId> <sourceName>c</sourceName> <sourceType>MSSQLSERVER</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName/> <userPassword>cDahEHuTOrk=</userPassword> </datasources> <datasources> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>org.postgresql.Driver</connectionDriver> <connectionPath/> <connectionString>jdbc:postgresql://10.10.0.117:5432/employees</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription/> <sourceId>70101</sourceId> <sourceName>Oracle database</sourceName> <sourceType>POSTGRESQL</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName>postgres</userName> <userPassword>6monvQ6/nGZMnqeGlK/yEw==</userPassword> </datasources> <datasources> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>oracle.jdbc.OracleDriver</connectionDriver> <connectionPath/> <connectionString>jdbc:oracle:thin:@10.10.5.184:1521:orcl</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription/> <sourceId>70109</sourceId> <sourceName>Oracle</sourceName> <sourceType>ORACLE</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName>bijin</userName> <userPassword>FKpY9TvYog7WT9ZdYhoCUg==</userPassword> </datasources> <datasources> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>net.sourceforge.jtds.jdbc.Driver</connectionDriver> <connectionPath/> <connectionString>jdbc:jtds:sqlserver://:1433/</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription/> <sourceId>70110</sourceId> <sourceName>f</sourceName> <sourceType>MSSQLSERVER</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName/> <userPassword>cDahEHuTOrk=</userPassword> </datasources> <errorCode>0</errorCode> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>8dbd54ecedc55238ece1408713fbc692</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
AdministrationServiceRequest rsr = new AdministrationServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setFunction("LISTDATASOURCES");
インスタンスに新規ライセンスを提供します。ライセンスは、バイト配列になります。Base64にエンコードし、utilメソッドを使用して変換することができます。
byte[] lic = com.hof.util.Base64.decode("Base64 Encoded String of licence file"); rsr.setBinaryData(lic);
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理サービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、StatusCodeが含まれます。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_listdatasources.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_listdatasources.jsp」を実行します。
<% /* ws_listdatasources.jsp */ %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page import="com.hof.util.*, java.util.*, java.text.*" %> <%@ page import="com.hof.web.form.*" %> <%@ page import="com.hof.mi.web.service.*" %> <% AdministrationServiceResponse rs = null; AdministrationServiceRequest rsr = new AdministrationServiceRequest(); AdministrationServiceService ts = new AdministrationServiceServiceLocator("localhost", 8080, "/services/AdministrationService", false); AdministrationServiceSoapBindingStub rssbs = (AdministrationServiceSoapBindingStub) ts.getAdministrationService(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setFunction("LISTDATASOURCES"); rs = rssbs.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { out.write("<table>"); out.write("<tr>"); out.write("<th>Source ID</th><th>Source Name</th>"); out.write("</tr>"); for (AdministrationDataSource administrationDataSource: rs.getDatasources()) { out.write("<tr>"); out.write("<td>" + administrationDataSource.getSourceId() + "</td><td>" + administrationDataSource.getSourceName() + "</td>"); out.write("</tr>"); } out.write("</table>"); } else { out.write(rs.getStatusCode()); out.write(rs.toString()); } %>
こちらのwebサービスは、ソースIDを使用して指定した単一のデータソースのメタデータを取得します。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「LOADDATASOURCE」に設定します。 |
SourceId | Integer | メタデータを取得するデータソースの一意のIDです。 |
リクエストの例
以下は、こちらのリクエストのSOAP XMLの例です。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteAdministrationCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <function>LOADDATASOURCE</function> <sourceId>54701</sourceId> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
LoadedDataSources | AdministrationDataSource[] | 指定したデータソースの詳細を含むオブジェクト配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <errorCode>0</errorCode> <loadedDataSource> <accessLevelCode>UNSECURE</accessLevelCode> <connectionDriver>org.hsqldb.jdbcDriver</connectionDriver> <connectionString>jdbc:hsqldb:file:/Applications/Yellowfin 7.4 86/data/configdb;shutdown=true</connectionString> <connectionTimeout>180</connectionTimeout> <connectionType>JDBC</connectionType> <connectionTypeCode>GENERICUSER</connectionTypeCode> <inheritChildSourceFilters>false</inheritChildSourceFilters> <maxRows>10000</maxRows> <maxmimumConnections>5</maxmimumConnections> <minimumConnections>1</minimumConnections> <refreshTime>3</refreshTime> <sourceDescription/> <sourceId>54701</sourceId> <sourceName>Yellowfin Configuration Database</sourceName> <sourceOptions> <optionKey>ISOLATIONLEVEL</optionKey> <optionValue>1.0</optionValue> <valueDataType>1</valueDataType> </sourceOptions> <sourceOptions> <optionKey>USESCHEMA</optionKey> <optionValue>true</optionValue> <valueDataType>6</valueDataType> </sourceOptions> <sourceOptions> <optionKey>YF_DRIVER_SELECTION</optionKey> <optionValue>org.hsqldb.jdbc.JDBCDriver</optionValue> <valueDataType>2</valueDataType> </sourceOptions> <sourceOptions> <optionKey>CONNECTIONSTRING</optionKey> <optionValue>jdbc:hsqldb:file:/Applications/Yellowfin 7.4 86/data/configdb;shutdown=true</optionValue> <valueDataType>2</valueDataType> </sourceOptions> <sourceOptions> <optionKey>USEFETCHSIZE</optionKey> <optionValue>false</optionValue> <valueDataType>6</valueDataType> </sourceOptions> <sourceOptions> <optionKey>FETCHSIZE</optionKey> <optionValue/> <valueDataType>2</valueDataType> </sourceOptions> <sourceType>GENERICJDBC</sourceType> <timezone>AUSTRALIA/SYDNEY</timezone> <userName>SA</userName> <userPassword>cDahEHuTOrk=</userPassword> </loadedDataSource> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>6e8fa3d3c3789cef6f6c048d98a1f6a4</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
AdministrationServiceRequest rsr = new AdministrationServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setFunction("LISTDATASOURCE");
インスタンスに新規ライセンスを提供します。ライセンスは、バイト配列になります。Base64にエンコードし、utilメソッドを使用して変換することができます。
byte[] lic = com.hof.util.Base64.decode("Base64 Encoded String of licence file"); rsr.setBinaryData(lic);
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理サービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、StatusCodeが含まれます。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_loaddatasource.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_loaddatasource.jsp」を実行します。
<% /* ws_loaddatasource.jsp */ %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page import="com.hof.util.*, java.util.*, java.text.*" %> <%@ page import="com.hof.web.form.*" %> <%@ page import="com.hof.mi.web.service.*" %> <% AdministrationServiceResponse rs = null; AdministrationServiceRequest rsr = new AdministrationServiceRequest(); AdministrationServiceService ts = new AdministrationServiceServiceLocator("localhost", 8080, "/services/AdministrationService", false); AdministrationServiceSoapBindingStub rssbs = (AdministrationServiceSoapBindingStub) ts.getAdministrationService(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setFunction("LOADDATASOURCE"); rsr.setSourceId(54700); rs = rssbs.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { out.write("<table>"); out.write("<tr>"); out.write("<th>Source ID</th><th>Source Name</th>"); out.write("</tr>"); for (AdministrationDataSource administrationDataSource: rs.getDatasources()) { out.write("<tr>"); out.write("<td>" + administrationDataSource.getSourceId() + "</td><td>" + administrationDataSource.getSourceName() + "</td>"); out.write("</tr>"); } out.write("</table>"); } else { out.write(rs.getStatusCode()); out.write(rs.toString()); } %>