...
こちらで紹介するwebサービスは、データソースを管理するために使用します。
注意:Yellowfinは、個別のクライアント組織でのこれらのwebサービスの使用もサポートします。それぞれ、LISTDATASOURCES、LOADDATASOURCE、SAVEDATASOURCE関数を使用することで、個別のクライアント組織で複数のデータソースの一覧を表示したり、読み込んだり、更新したりすることができます。
Expand |
---|
|
こちらのwebサービスは、認証されたユーザーとクライアント組織に利用可能なすべてのデータソースの一覧を取得します。応答は、ソースIDと、検出された各データソースのソース名とともに、AdministrationDataSourceオブジェクトの配列を含みます。 リクエストパラメーター以下の要素は、こちらのリクエストとともに渡されます。 リクエスト要素 | データ型 | 説明 | LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 | Password | String | 上記アカウントのパスワードです。 | OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 | Function | String | Webサービス関数です。こちらは、「LISTDATASOURCES」に設定します。 | OrgRef | String | クライアント組織内部参照IDです(オプション)。これは、指定されたクライアント組織のデータソースの一覧を表示します。このパラメーターを使用しない場合は、プライマリー組織のデータソースの一覧が表示されます。 |
リクエストの例以下は、こちらのリクエストのSOAP XMLの例です。 Code Block |
---|
| <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の例に基づき、以下の応答を返します。 Code Block |
---|
| <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の例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。 Expand |
---|
| 管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
Code Block |
---|
| AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au");
rsr.setPassword("test");
rsr.setOrgId(new Integer(1));
rsr.setFunction("LISTDATASOURCES"); |
インスタンスに新規ライセンスを提供します。ライセンスは、バイト配列になります。Base64にエンコードし、utilメソッドを使用して変換することができます。 Code Block |
---|
| byte[] lic = com.hof.util.Base64.decode("Base64 Encoded String of licence file");
rsr.setBinaryData(lic); |
リクエストを構成したら、呼び出しを実行します。
Code Block |
---|
| AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); |
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
|
完成例以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。 - コードをコピーして、「ws_listdatasources.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_listdatasources.jsp」を実行します。
Code Block |
---|
| <%
/* 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());
}
%> |
|
Expand |
---|
|
こちらの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です。 | OrgRef | String | クライアント組織参照内部IDです(オプション)。これは、指定されたクライアント組織のデータソースを読み込みます。プライマリー組織のデータソースの詳細を取得したい場合は、こちらのパラメーターを使用してはいけません。 |
リクエストの例以下は、こちらのリクエストのSOAP XMLの例です。 Code Block |
---|
| <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の例に基づき、以下の応答を返します。 Code Block |
---|
| <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の例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。 Expand |
---|
| 管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
Code Block |
---|
| AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au");
rsr.setPassword("test");
rsr.setOrgId(new Integer(1));
rsr.setFunction("LISTDATASOURCE"); |
インスタンスに新規ライセンスを提供します。ライセンスは、バイト配列になります。Base64にエンコードし、utilメソッドを使用して変換することができます。 Code Block |
---|
| byte[] lic = com.hof.util.Base64.decode("Base64 Encoded String of licence file");
rsr.setBinaryData(lic); |
リクエストを構成したら、呼び出しを実行します。
Code Block |
---|
| AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); |
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
|
完成例以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。 - コードをコピーして、「ws_loaddatasource.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_loaddatasource.jsp」を実行します。
Code Block |
---|
| <%
/* 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());
}
%> |
|
Expand |
---|
|
こちらのwebサービスは、Yellowfinデータソース接続の新規作成や、既存のデータソース接続の編集に使用することができます。こちらを適切に機能させるためには、AdministrationDataSourceオブジェクトにすべてのパラメーターを提供しなくていけません。不足がある場合、重要なパラメーターはNull値に置換されます。 現状、クライアント組織にソースを作成することはできません。そのため、これはデフォルト組織でのみ使用することができます。しかし、一度この関数を使用してデータソースを作成し、そのソースIDが生成されたら、これを提供してMETADATASQLQUERY webサービスを使用することで、クライアント組織に新しいソースを追加することができるようになります。以下は、ソースIDを渡す方法を示す、一般的なYellowfinのJavaコードの例です。 rsr.setFunction(“METADATASQLQUERY”); rsr.setQuery(“UPDATE reportviewsource SET IpOrg = “ + clientOrgID + “WHERE SourceId = “ + sourceID); リクエストパラメーター以下の要素は、こちらのリクエストとともに渡されます。 リクエスト要素 | データ型 | 説明 | LoginId | String | Yellowfin Webサービスに接続する管理者アカウントです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 | Password | String | 上記アカウントのパスワードです。 | OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 | Function | String | Webサービス関数です。こちらは、「SAVEDATASOURCE」に設定します。 | Datasource | AdministrationDataSource | 編集、または作成をするデータソースオブジェクトです。以下の表を参照してください。 | OrgRef | String | クライアント組織内部参照IDです(オプション)。これは、指定されたクライアント組織内のデータソースを更新します。データソースは、SourceIDパラメーターを使用して参照される必要があります。この関数は、既存のデータソースの詳細を更新することに注意してください。クライアント組織内に新規データソースを作成することはできません。 |
以下のパラメーターは、AdministrationDataSourceオブジェクト内で指定する必要があります。 リクエスト要素 | データ型 | 説明 | AccessLevelCode | String | データベースのアクセス権、アクセスレベルを指定します。 | ClientSources | AdministrationDataSourceClientLink | | ConnectionDriver | String | データソースの接続に使用するドライバーです。 | ConnectionPath | String | | ConnectionString | String | データソースの接続文字列です。 | ConnectionTimeout | Integer | これは、秒単位で指定します。 | ConnectionType | String | 接続のタイプです。例:JDBC、など | ConnectionTypeCode | String | | InheritChildSourceFilters | Boolean | | LogFile | String | | MaxRows | Integer | 取得されるデータロウ(行)の最大数です。 | MaxmimumConnectionsMaximumConnections | Integer | | MinimumConnections | Integer | | RefreshTime | Integer | これは、時間単位で指定します。 | SourceDescription | String | データソースの説明です。 | SourceId | Integer | 各データソースに固有のYellowfin IDです。こちらを提供しない場合は新しいデータソースが作成されるため、既存のデータソース編集時には、必ず指定しなくてはいけません。 | SourceName | String | データソースの名前です。 | SourceOptions | AdministrationDataSourceOption | 以下の表を参照してください。 | SourceType | String | データソースのタイプです。例:MySQL、Oracle、など | Timezone | String | | UserName | String | データソースアカウントのユーザー名です。 | UserPassword | String | 上記アカウントのパスワードです。パスワードは、データソース保存時に自動的に暗号化されます。 |
以下のパラメーターは、AdministrationDataSourceOptionに要求されます。 Tip |
---|
AdministrationDataSourceOptionは、各ソースに応じて異なります。一覧化されたプロパティに入力する値を確認するには、スクリプトを記述するYellowfinのソース接続のタイプで、LOADDATASOURCEの呼び出しを実行します。 |
パラメーター | 型 | OptionKey | String | OptionValue | String | ValueDataType | String |
リクエストの例以下は、こちらのリクエストのSOAP XMLの例です。 Code Block |
---|
| <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>SAVEDATASOURCE</function>
<datasource>
<accessLevelCode>UNSECURE</accessLevelCode>
<connectionDriver>com.mysql.jdbc.Driver</connectionDriver>
<connectionPath/>
<connectionString>jdbc:mysql://localhost:3306/default</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/>
<sourceName>Default</sourceName>
<sourceOptions>
<optionKey>ISOLATIONLEVEL</optionKey>
<optionValue>1</optionValue>
<valueDataType>1</valueDataType>
</sourceOptions>
<sourceOptions>
<optionKey>USESCHEMA</optionKey>
<optionValue>true</optionValue>
<valueDataType>6</valueDataType>
</sourceOptions>
<sourceOptions>
<optionKey>HOSTNAME</optionKey>
<optionValue>localhost</optionValue>
<valueDataType>2</valueDataType>
</sourceOptions>
<sourceOptions>
<optionKey>PORT</optionKey>
<optionValue>3306</optionValue>
<valueDataType>1</valueDataType>
</sourceOptions>
<sourceOptions>
<optionKey>DATABASE</optionKey>
<optionValue>default</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>
<sourceOptions>
<optionKey>YF_DRIVER_SELECTION</optionKey>
<optionValue>com.mysql.jdbc.Driver</optionValue>
<valueDataType>2</valueDataType>
</sourceOptions>
<sourceType>MYSQL</sourceType>
<timezone>AUSTRALIA/SYDNEY</timezone>
<userName>root</userName>
<userPassword>root</userPassword>
</datasource>
</arg0>
</web:remoteAdministrationCall>
</soapenv:Body>
</soapenv:Envelope> |
応答パラメーター返される応答には、これらのパラメーターが含まれます。 応答要素 | データ型 | 説明 | StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。 | LoadedDataSources | AdministrationDataSource | 保存されたデータソースの詳細を含むオブジェクト配列です。 |
応答の例サービスは、今回のSOAPの例に基づき、以下の応答を返します。 Code Block |
---|
| <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>com.mysql.jdbc.Driver</connectionDriver>
<connectionPath/>
<connectionString>jdbc:mysql://localhost:3306/default</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>74374</sourceId>
<sourceName>Default</sourceName>
<sourceType>MYSQL</sourceType>
<timezone>AUSTRALIA/SYDNEY</timezone>
<userName>root</userName>
<userPassword>kOjvh+lsaec=</userPassword>
</loadedDataSource>
<messages>Successfully Authenticated User: admin@yellowfin.com.au</messages>
<messages>Web Service Request Complete</messages>
<sessionId>5bcaabd9865824d45b1768eddb21c99e</sessionId>
<statusCode>SUCCESS</statusCode>
</return>
</ns2:remoteAdministrationCallResponse>
</S:Body>
</S:Envelope> |
手順Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。 Expand |
---|
| 管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数のリクエストを定義します。
Code Block |
---|
| AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au");
rsr.setPassword("test");
rsr.setOrgId(new Integer(1));
rsr.setFunction("SAVEDATASOURCE"); |
作成、または更新するデータソース接続の詳細を提供します。 Code Block |
---|
| AdministrationDataSource source = new AdministrationDataSource();
source.setAccessLevelCode("UNSECURE");
source.setConnectionDriver("com.mysql.jdbc.Driver");
source.setConnectionPath("");
source.setConnectionString("jdbc:mysql://localhost:3306/org1");
source.setConnectionTimeout(180);
source.setConnectionType("JDBC");
source.setConnectionTypeCode("GENERICUSER");
source.setInheritChildSourceFilters(false);
source.setMaxRows(10000);
source.setMaxmimumConnections(5);
source.setMinimumConnections(1);
source.setRefreshTime(3);
source.setSourceDescription("Org 1");
source.setSourceName("org1");
source.setSourceType("MYSQL");
source.setTimezone("AUSTRALIA/SYDNEY");
source.setUserName("root");
source.setUserPassword("root"); |
データソースオプションの詳細を指定します。 Code Block |
---|
| AdministrationDataSourceOption[] options = new AdministrationDataSourceOption[8];
options[0] = new AdministrationDataSourceOption();
options[0].setOptionKey("ISOLATIONLEVEL");
options[0].setOptionValue("1");
options[0].setValueDataType("1");
options[1] = new AdministrationDataSourceOption();
options[1].setOptionKey("USESCHEMA");
options[1].setOptionValue("true");
options[1].setValueDataType("6");
options[2] = new AdministrationDataSourceOption();
options[2].setOptionKey("HOSTNAME");
options[2].setOptionValue("localhost");
options[2].setValueDataType("2");
options[3] = new AdministrationDataSourceOption();
options[3].setOptionKey("PORT");
options[3].setOptionValue("3306");
options[3].setValueDataType("1");
options[4] = new AdministrationDataSourceOption();
options[4].setOptionKey("DATABASE");
options[4].setOptionValue("org1");
options[4].setValueDataType("2");
options[5] = new AdministrationDataSourceOption();
options[5].setOptionKey("USEFETCHSIZE");
options[5].setOptionValue("false");
options[5].setValueDataType("6");
options[6] = new AdministrationDataSourceOption();
options[6].setOptionKey("FETCHSIZE");
options[6].setOptionValue("");
options[6].setValueDataType("2");
options[7] = new AdministrationDataSourceOption();
options[7].setOptionValue("com.mysql.jdbc.Driver");
options[7].setValueDataType("2");
source.setSourceOptions(options);
rsr.setDatasource(source); |
リクエストを構成したら、呼び出しを実行します。
Code Block |
---|
| AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); |
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
|
完成例以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。 - コードをコピーして、「ws_savedatasource.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_savedatasource.jsp」を実行します。
Code Block |
---|
| <%
/* ws_savedatasource.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.*" %>
<%
AdministrationServiceService s_adm = new AdministrationServiceServiceLocator("localhost",8080, "/services/AdministrationService", false); // adjust host and port number
AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService();
AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au"); // provide your Yellowfin web services admin account
rsr.setPassword("test"); // change to the password of the account above
rsr.setOrgId(1);
rsr.setFunction("SAVEDATASOURCE");
AdministrationDataSource source = new AdministrationDataSource();
source.setAccessLevelCode("UNSECURE");
source.setConnectionDriver("com.mysql.jdbc.Driver");
source.setConnectionPath("");
source.setConnectionString("jdbc:mysql://localhost:3306/org1");
source.setConnectionTimeout(180);
source.setConnectionType("JDBC");
source.setConnectionTypeCode("GENERICUSER");
source.setInheritChildSourceFilters(false);
source.setMaxRows(10000);
source.setMaxmimumConnections(5);
source.setMinimumConnections(1);
source.setRefreshTime(3);
source.setSourceDescription("Org 1");
source.setSourceName("org1");
source.setSourceType("MYSQL");
source.setTimezone("AUSTRALIA/SYDNEY");
source.setUserName("root");
source.setUserPassword("root");
AdministrationDataSourceOption[] options = new AdministrationDataSourceOption[8];
options[0] = new AdministrationDataSourceOption();
options[0].setOptionKey("ISOLATIONLEVEL");
options[0].setOptionValue("1");
options[0].setValueDataType("1");
options[1] = new AdministrationDataSourceOption();
options[1].setOptionKey("USESCHEMA");
options[1].setOptionValue("true");
options[1].setValueDataType("6");
options[2] = new AdministrationDataSourceOption();
options[2].setOptionKey("HOSTNAME");
options[2].setOptionValue("localhost");
options[2].setValueDataType("2");
options[3] = new AdministrationDataSourceOption();
options[3].setOptionKey("PORT");
options[3].setOptionValue("3306");
options[3].setValueDataType("1");
options[4] = new AdministrationDataSourceOption();
options[4].setOptionKey("DATABASE");
options[4].setOptionValue("org1");
options[4].setValueDataType("2");
options[5] = new AdministrationDataSourceOption();
options[5].setOptionKey("USEFETCHSIZE");
options[5].setOptionValue("false");
options[5].setValueDataType("6");
options[6] = new AdministrationDataSourceOption();
options[6].setOptionKey("FETCHSIZE");
options[6].setOptionValue("");
options[6].setValueDataType("2");
options[7] = new AdministrationDataSourceOption();
options[7].setOptionValue("com.mysql.jdbc.Driver");
options[7].setValueDataType("2");
source.setSourceOptions(options);
rsr.setDatasource(source);
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
if ("SUCCESS".equals(rs.getStatusCode()) ) {
out.write("<br>Success");
}
else {
out.write("<br>Failure");
out.write(" Code: " + rs.getErrorCode());
}
%> |
|
...