こちらのwebサービスは、Yellowfinデータソース接続の新規作成や、既存のデータソース接続の編集に使用することができます。こちらを適切に機能させるためには、AdministrationDataSourceオブジェクトにすべてのパラメーターを提供しなくていけません。不足がある場合、重要なパラメーターはNull値に置換されます。 クライアント組織にソースを作成するには、対象のクライアント組織のユーザーとしてログインします。 <loginId>clientOrgUser@yellowfin.com.au</loginId>
<password>test</password>
<orgId>1</orgId>
<orgRef>clientOrgRef</orgRef>
<function>SAVEDATASOURCE</function>... |
リクエストパラメーター以下の要素は、こちらのリクエストとともに渡されます。 リクエスト要素 | データ型 | 説明 | 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 | 取得されるデータロウ(行)の最大数です。 | MaximumConnections | 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に要求されます。 AdministrationDataSourceOptionは、各ソースに応じて異なります。一覧化されたプロパティに入力する値を確認するには、スクリプトを記述するYellowfinのソース接続のタイプで、LOADDATASOURCEの呼び出しを実行します。 |
パラメーター | 型 | OptionKey | String | OptionValue | String | ValueDataType | String |
リクエストの例以下は、こちらのリクエストの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>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の例に基づき、以下の応答を返します。 <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の例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。 管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数のリクエストを定義します。
AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au");
rsr.setPassword("test");
rsr.setOrgId(new Integer(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); |
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
|
完成例以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。 - コードをコピーして、「ws_savedatasource.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_savedatasource.jsp」を実行します。
<%
/* 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());
}
%> |
|