- Created by Yellowfin Admin , last modified by YUKA SAITO on Apr 29, 2021
You are viewing an old version of this page. View the current version.
Compare with Current View Version History
« Previous Version 11 Current »
こちらで紹介するwebサービスの呼び出しは、コンテンツのエクスポートとインポートに関連しています。webサービスAPIは現在、以下のタイプのコンテンツのエクスポートとインポートを制限しています。
- レポート
- レポートカテゴリー
- レポートサブカテゴリー
- データソース
- ビュー
- ダッシュボード
- トランスフォーメーションフロー
エクスポートwebサービス
こちらのプロセスは、エクスポート可能な情報を取得し、他のサービスで再利用するための、エクスポートwebサービスを実行する方法を紹介します。
- エクスポート可能なすべてのYellowfinコンテンツを取得するためには、GETCONTENT関数を使用します。これは、すべてをエクスポートする場合にも便利です。
- こちらの関数は、Yellowfinのコンテンツの詳細を含む、ContentResourceオブジェクトの配列を返します。これは、他の呼び出しで、詳細のインポートや、エクスポート、検証に再利用することができます。このオブジェクトの詳細については、オブジェクト定義を参照してください。
- 独自のエクスポート一覧を構成し、コンテンツ定義をContentResourceオブジェクトに配置することもできます。オブジェクト定義は、各Yellowfinのコンテンツに要求される要素を明確にします。
Yellowfinの各コンテンツタイプで、オブジェクトのresorceType値を把握する必要があります。
コンテンツタイプ ContentResource resourceType レポートカテゴリー
RPTCATEGORY
レポートサブカテゴリー
RPTSUBCATEGORY
データソース
DATASOURCE
ビュー
VIEW
ダッシュボード
GROUP
レポート
REPORT
データトランスフォーメーション
ETLPROCESS
- すべてのコンテンツタイプの依存関係を手作業で検索する代わりに、GETEXPORTDEPENDRNCIES関数を使用して、ContentResourceオブジェクトにその詳細を保存することで、依存関係が必要なコンテンツを指定します。
- 例えば、あるダッシュボードをエクスポートする場合、その特定のダッシュボードを表す単一のオブジェクトをContentResourceに含めることができます。この関数は、レポート、ビュー、データソース、カテゴリー、サブカテゴリーを含むダッシュボードの依存関係を返します(これらは、ContentResourceオブジェクト配列に返されます)。
- YellowfinコンテンツとともにXMLファイルを取得する場合は、複数のContentResourceオブジェクトの配列を作成し、EXPORTCONTENT関数を呼び出します。このファイルは、異なるYellowfinの環境にインポートすることもできます。
- 注意:GETEXPORTDEPENDENCIESとEXPORTCONTENTのwebサービスは、クライアント組織のリソースでは適切に機能しません。これらの関数を使用して、適切にエクスポートができるのはデフォルト組織のリソースのみです。
主要なエクスポート関数
こちらの関数は、エクスポート可能なすべてのYellowfinコンテンツを返します。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「GETCONTENT」に設定します。 |
OrgRef | String | こちらのオプションパラメーターは、クライアント組織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>GETCONTENT</function> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
ContentResources | ContentResource[] | エクスポート可能なYellowfinのコンテンツの詳細を含むオブジェクト配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <contentResources> <resourceCode>AUDITREPORTS</resourceCode> <resourceDescription>Audit Reports</resourceDescription> <resourceId>56339</resourceId> <resourceName>Audit Reports</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTCATEGORY</resourceType> <resourceUUID>a6bdc6b5-a832-42a2-98c7-18273900d0aa</resourceUUID> </contentResources> <contentResources> <resourceCode>ADMINREPORTS</resourceCode> <resourceDescription>Admin Reports</resourceDescription> <resourceId>56340</resourceId> <resourceName>Admin Reports</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>f7fb32b7-1573-4899-916f-c34afb9a865d</resourceUUID> </contentResources> <contentResources> <resourceCode>CONTENTUSAGE</resourceCode> <resourceDescription>Content Usage</resourceDescription> <resourceId>56341</resourceId> <resourceName>Content Usage</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>6bae5230-c1f9-4491-8a8b-f14b1ae660d7</resourceUUID> </contentResources> <contentResources> <resourceCode>USERACCESS</resourceCode> <resourceDescription>User Access</resourceDescription> <resourceId>56342</resourceId> <resourceName>User Access</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>0c7ddde4-fa03-4e88-b37b-7b5e4aad5e1d</resourceUUID> </contentResources> <contentResources> <resourceCode>TUTORIAL</resourceCode> <resourceDescription>Tutorial</resourceDescription> <resourceId>60706</resourceId> <resourceName>Tutorial</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTCATEGORY</resourceType> <resourceUUID>a23c2ec6-a2fa-45c7-b5da-dcf3f02e6633</resourceUUID> </contentResources> <contentResources> <resourceCode>ATHLETES</resourceCode> <resourceDescription>Athletes</resourceDescription> <resourceId>60707</resourceId> <resourceName>Athletes</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>72e4b4bd-a482-4a01-a031-c6ab76dbb3a5</resourceUUID> </contentResources> <contentResources> <resourceCode>CAMP</resourceCode> <resourceDescription>Camp</resourceDescription> <resourceId>60708</resourceId> <resourceName>Camp</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>465411e5-594b-478e-af64-c0f59fc4546f</resourceUUID> </contentResources> <contentResources> <resourceCode>KPIS</resourceCode> <resourceDescription>KPIs</resourceDescription> <resourceId>60709</resourceId> <resourceName>KPIs</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>d514c643-dc01-4781-8905-d34e761ccd19</resourceUUID> </contentResources> <contentResources> <resourceCode>MARKETINGBOOKING</resourceCode> <resourceDescription>Marketing & Booking</resourceDescription> <resourceId>60710</resourceId> <resourceName>Marketing & Booking</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>dbe6d0a3-c088-4d71-b65a-f383aaa54be9</resourceUUID> </contentResources> <contentResources> <resourceCode>TRAINING</resourceCode> <resourceDescription>Training</resourceDescription> <resourceId>60711</resourceId> <resourceName>Training</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>RPTSUBCATEGORY</resourceType> <resourceUUID>c503ea57-cc69-43a9-98bc-a90ebbe1c864</resourceUUID> </contentResources> <contentResources> <resourceDescription/> <resourceId>70101</resourceId> <resourceName>Oracle database</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <contentResources> <resourceDescription/> <resourceId>70109</resourceId> <resourceName>Oracle</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <contentResources> <resourceDescription>Ski Team is the demonstration and tutorial database.</resourceDescription> <resourceId>54700</resourceId> <resourceName>Ski Team</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <contentResources> <resourceDescription/> <resourceId>54701</resourceId> <resourceName>Yellowfin Configuration Database</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <contentResources> <resourceDescription/> <resourceId>70108</resourceId> <resourceName>c</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <contentResources> <resourceDescription/> <resourceId>70110</resourceId> <resourceName>f</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <contentResources> <resourceDescription>This is a tutorial view for training and demo purposes.</resourceDescription> <resourceId>60543</resourceId> <resourceName>Ski Team</resourceName> <resourceType>VIEW</resourceType> <resourceUUID>e3632adb-5194-460c-a172-c085416f493f</resourceUUID> </contentResources> <contentResources> <resourceDescription>This view should be used to monitor usage of Yellowfin by User and Content Type.</resourceDescription> <resourceId>56169</resourceId> <resourceName>Yellowfin Usage Audit</resourceName> <resourceType>VIEW</resourceType> <resourceUUID>fb6416c4-441e-42b3-a442-e7426f25f6b4</resourceUUID> </contentResources> <contentResources> <resourceDescription>This dashboard contains a set of reports covering general system and admin information, including performance, sessions, data source & view usage.</resourceDescription> <resourceId>57438</resourceId> <resourceName>Admin</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>GROUP</resourceType> <resourceUUID>33827292-cda6-4071-965f-730ccbc53519</resourceUUID> </contentResources> <contentResources> <resourceDescription>This is an analytic tab that is used to understand examine metrics split by various demographics and filters.</resourceDescription> <resourceId>61195</resourceId> <resourceName>Analysis</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>GROUP</resourceType> <resourceUUID>f19e63f5-7175-4c57-897d-ed865aba8972</resourceUUID> </contentResources> </contentResources> <errorCode>0</errorCode> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>92029c8ae4f1db0f33bf0b7370c1088a</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("GETCONTENT");
特定のクライアント組織を識別することもできます。
rsr.setOrgRef("org1");
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、次の要素が含まれます。:StatusCodeとContentResource。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_getcontent.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_getcontent.jsp」を実行します。
<% /* ws_getcontent.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 webservices admin account rsr.setPassword("test"); // change to be the password of the account above rsr.setOrgId(1); rsr.setFunction("GETCONTENT"); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); ContentResource[] crs = rs.getContentResources(); out.write("<table>"); out.write("<tr><td> id </td><td> type </td><td> UUID </td></tr>"); for (ContentResource c: crs) { out.write("<tr>"); out.write("<td>" + c.getResourceId() + "</td><td>" + c.getResourceType() + "</td><td>" + c.getResourceUUID() + "</td>"); out.write("</tr>"); } } else { out.write("<br>Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらの関数は、選択したYellowfinのコンテンツを、XMLファイルにエクスポートします。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「EXPORTCONTENT」に設定します。 |
OrgRef | String | こちらのオプションパラメーターは、クライアント組織IDを指定するために使用することができます。 |
ContentResources | ContentResource | エクスポートするコンテンツを指定するために使用するオブジェクトです。以下の表を参照してください。 |
以下のパラメーターは、こちらの関数を呼び出すためにContentResourceオブジェクトに指定します。
ContentResource要素 | データ型 | 説明 |
ResourceID | Integer | コンテンツの内部IDを提供する必須パラメーターです。 |
ResourceType | String | コンテンツタイプを指定する必須パラメーターです。選択肢は、以下の通りです。
|
ResourceUUID | String | こちらのオプションパラメーターは、コンテンツのUUIDを提供するために使用することができます。 |
リクエストの例
以下は、こちらのリクエストの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>EXPORTCONTENT</function> <contentResources> <resourceId>56169</resourceId> <resourceType>VIEW</resourceType> </contentResources> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービスの呼び出しのステータスです。値の選択肢は、以下の通りです。
|
BinaryAttachments | ReportBinaryObject[] | エクスポート可能なYellowfinのコンテンツの詳細を含むオブジェクト配列です。以下の表を参照してください。 |
ReportBinaryObject配列は、こちらの呼び出しに以下のパラメーターを返します。
ReportBinaryObject要素 | データ型 | 説明 |
Key | String | こちらの関数のバイナリーオブジェクト保存に一意のキーは、「EXPORT/XML」です。 |
ContentType | String | こちらの関数のMIME型は「text/XML」です。 |
Data | Byte[] | こちらの配列は、XMLファイルに保存可能なコンテンツのメタデータを含みます。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<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>EXPORTCONTENT</function> <contentResources> <resourceId>56169</resourceId> <resourceType>VIEW</resourceType> </contentResources> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("EXPORTCONTENT");
オブジェクトを使用してエクスポートするコンテンツを指定します。
ContentResource[] cr = new ContentResource[1]; cr[0] = new ContentResource(); cr[0].setResourceId(70058); cr[0].setResourceType("GROUP"); cr[0].setResourceOrgId(1);
リクエストにオブジェクトを配置します。
rsr.setContentResources(cr);
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、次の要素が含まれます。:StatusCodeとReportBinaryObject。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_exportcontent.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_exportcontent.jsp」を実行します。
<% /* ws_exportcontent.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.io.PrintWriter" %> <% 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"); // set to the password of the above account rsr.setOrgId(1); rsr.setFunction("EXPORTCONTENT"); // specify which dashboard to export: ContentResource[] cr = new ContentResource[1]; cr[0] = new ContentResource(); cr[0].setResourceId(70058); cr[0].setResourceType("GROUP"); cr[0].setResourceOrgId(1); rsr.setContentResources(cr); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); byte[] data = rs.getBinaryAttachments()[0].getData(); String xml = new String(data, "UTF-8"); PrintWriter writer = new PrintWriter("/Applications/Yellowfin 7.4/YFexport.xml", "UTF-8"); writer.println(xml); writer.close(); ReportBinaryObject[] bo = rs.getBinaryAttachments(); for (ReportBinaryObject o : bo){ out.write("<br><br>Key: " + o.getKey()); out.write("<br>Content Type: " + o.getContentType()); } } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらの関数は、特定のコンテンツのすべての依存関係を返します。ContentResourceオブジェクトは、リソースID(GETCONTENTの呼び出しを使用して取得することができます)とともにコンテンツを指定するために使用します。 例えば、レポートが定義されたコンテンツタイプであれば、応答にはレポートカテゴリー、サブカテゴリー、データソース、ビューなどの依存関係が表示されます。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「GETEXPORTDEPENDENCIES」に設定します。 |
OrgRef | String | こちらのオプションパラメーターは、クライアント組織IDを指定するために使用することができます。 |
ContentResources | ContentResource | 依存関係を取得するコンテンツのメタデータを含むオブジェクトです。以下の表を参照してください。 |
以下のパラメーターは、こちらの関数を呼び出すためにContentResourceオブジェクトに指定します。
ContentResource要素 | データ型 | 説明 |
ResourceID | Integer | コンテンツの内部IDを提供する必須パラメーターです。 |
ResourceType | String | コンテンツタイプを指定する必須パラメーターです。選択肢は、以下の通りです。
|
ResourceUUID | String | こちらのオプションパラメーターは、コンテンツのUUIDを提供するために使用することができます。 |
リクエストの例
以下は、こちらのリクエストの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>GETEXPORTDEPENDENCIES</function> <contentResources> <resourceId>56169</resourceId> <resourceType>VIEW</resourceType> </contentResources> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
ContenResources | ContentResource[] | 指定した成果物の依存関係のメタデータを含むオブジェクト配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <contentResources> <resourceDescription/> <resourceId>54701</resourceId> <resourceName>Yellowfin Configuration Database</resourceName> <resourceOrgId>1</resourceOrgId> <resourceType>DATASOURCE</resourceType> </contentResources> <errorCode>0</errorCode> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>97d7f893d787daf2806a13cdfa6f09d3</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("GETEXPORTDEPENDENCIES");
特定のクライアント組織を識別することもできます。
rsr.setOrgRef("org1");
ContentResourceオブジェクトを使用して、依存関係を取得するコンテンツの詳細を指定します。
ContentResource[] cr = new ContentResource[1]; cr[0] = new ContentResource(); cr[0].setResourceId(70307); cr[0].setResourceType("GROUP"); cr[0].setResourceOrgId(1);
リクエストにオブジェクトを配置します。
rsr.setContentResources(cr);
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、次の要素が含まれます。:StatusCodeとContentResource。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_getexportdependencies.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_getexportdependencies.jsp」を実行します。
<% /* ws_getexportdependecies.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.io.PrintWriter" %> <% 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 webservices admin account rsr.setPassword("test"); // set to the password of the account above rsr.setOrgId(1); rsr.setFunction("GETEXPORTDEPENDENCIES"); ContentResource[] cr = new ContentResource[1]; cr[0] = new ContentResource(); cr[0].setResourceId(70307); cr[0].setResourceType("GROUP"); cr[0].setResourceOrgId(1); rsr.setContentResources(cr); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); ContentResource[] crs = rs.getContentResources(); out.write("<table>"); out.write("<tr><td> id </td><td> type </td><td> UUID </td></tr>"); for (ContentResource c: crs) { out.write("<tr>"); out.write("<td>" + c.getResourceId() + "</td><td>" + c.getResourceType() + "</td><td>" + c.getResourceUUID() + "</td>"); out.write("</tr>"); } } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
インポートwebサービス
Yellowfinのインポートwebサービスを使用するには、以下のヒントを参照してください。
- webサービスを使用してコンテンツをインポートするには、YFX、またはXMLファイルが必要です。これは、EXPORTCONTENT関数を呼び出すことで取得します。
- Yellowfinのエクスポート機能を使用しても取得することができます。しかし、この機能を介して生成されるファイルには、現在webサービスAPIにサポートされているコンテンツタイプよりも多くが含まれています。
- 次のコンテンツタイプは、webサービスを介してインポートすることができません。:イメージ、テーマ、ストーリーボード、ユーザー、ユーザーグループ
- エクスポートファイルを取得したら、ContentResourceオブジェクトにインポートするコンテンツを準備する、GETIMPORTCONTENT関数に渡します。
- こちらのオブジェクトの詳細を使用して、ImportOptionと呼ばれる他のオブジェクトを設定し、これをIMPORTCONTENT、またはIMPORTIMPORTCONTENTNOVALIDATION関数に渡すことで、対象のコンテンツをYellowfinにインポートします。ImportOptionは、optionKeyパラメーターを使用することで、インポートするコンテンツを指定することができます。
- インポート時に、ImportOptionオブジェクトを設定しない場合、ファイル内のすべてのコンテンツがインポートされる点に注意してください。
- インポートするコンテンツのテストや検証を行うには、TESTIMPORTCONTENT、またはTESTIMPORTCONTENTNOVALIDATIONのwebサービスを使用します(これは、実際のデータインポートは実行しません)。
- 注意:IMPORTCONTENT関数の例は、Yellowfinのインストールフォルダー(development/examples/webservices/ws_admin_import.jsp)内のImportOptionを変更するユーザーインターフェイスと連携しています。こちらのファイルを、Yellowfin/appserver/webapps/ROOTフォルダーに配置し、ホスト、ポート番号、管理ユーザーの詳細を調整します。そしてこれを、インターネットブラウザから実行します。(http://<host>:<port>/ws_admin_import.jsp)
インポートするコンテンツを指定するImportContentオブジェクトをセットアップするには、optionValueを提供することで、optionKeyパラメーターを定義しなくてはいけません。以下は、利用可能な組み合わせの例です。
optionKey | optionValue |
SKIP | 「true」、または「false」に設定します。 |
OPTION | 「REPLACE」、または「ADD」に設定します。 |
EXISTING | 対象のYellowfinインスタンス内の既存項目のUUIDです。 これは、「optionKey=OPTION」、と「optionValue=REPLACE」に設定することで機能します。 |
PASSWORD1 | インポート中にコンテンツを暗号化する場合のデータソースパスワードです。 |
例えば、あるYellowfinレポートを、その依存関係(データソース、ビュー、カテゴリー、サブカテゴリー)とともにエクスポートする場合、ContentResourceオブジェクト(GETIMPORTCONTENTの呼び出しにより取得します)は、以下のように表示されます。
ResourceId | ResourceType | ResourceName | ResourceUUID |
70031 | DATASOURCE | CSV | null |
70209 | VIEW | months | b974f55a-269b-4a4b-b1c6-bf9b968be723 |
null | RPTCATEGORY | Tutorial | a23c2ec6-a2fa-45c7-b5da-dcf3f02e6633 |
null | RPTSUBCATEGORY | Reports | 58834ae1-2f65-44c0-b6c3-7c9cd2f91bd5 |
70279 | REPORT | My Report | fd3794b3-62c0-4cf8-bac0-755e68d9c41e |
次に、5つのすべての項目に対して、インポートオプションを定義しなくてはいけません。ImportOptionのitemIndexパラメーターは、各ContentResource項目のindex番号に対応しているので、上記のContentResource配列の例では、次のように表示されます。
ResourceId | ResourceType | importOption itemIndex |
70031 | DATASOURCE | 0 |
70209 | VIEW | 1 |
null | RPTCATEGORY | 2 |
null | RPTSUBCATEGORY | 3 |
70279 | REPORT | 4 |
レポートを今回の例の他の既存レポートに置き換え、その他すべてのコンテンツをインポートしない場合は、ImportOptionオブジェクトの構成は、以下のようになります。
itemIndex | optionKey | optionValue | 注意 |
0 | SKIP | true | データソースはスキップされます。 |
1 | SKIP | true | ビューはスキップされます。 |
2 | SKIP | true | カテゴリーはスキップされます。 |
3 | SKIP | true | サブカテゴリーはスキップされます。 |
4 | SKIP | false | レポートはインポートされます。 |
4 | OPTION | REPLACE | 既存のレポートは、インポートされるレポートに置き換わります。 |
4 | EXISTING | 70287 | インポートされるレポートにより置き換わる、対象のYellowfin内の既存レポートのレポートIDです。 |
コンテンツを「新規」としてインポートする場合、その依存関係をImportOptionオブジェクト内で指定しなくてはいけない点に注意してください。そのため、新規レポートは、必要な依存関係(ビュー、カテゴリー、サブカテゴリー)のインポートなしにインポートすることができません(注意:エクスポートファイルから取得される依存関係を使用する代わりに、レポートの依存関係を対象環境内の既存のものと置き換える選択をすることができます)。主要なコンテンツタイプに要求される依存関係は、以下を参照してください。
コンテンツ | 要求される依存関係 |
レポート | ビュー、カテゴリー、サブカテゴリー |
ビュー | データソース |
ダッシュボード | カテゴリー、サブカテゴリー |
主要なインポート関数
こちらの関数は、提供されるYFX、またはXMLファイルを読み、特定のコンテンツをインポート可能なContentResourceオブジェクトへ配置します。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「GETIMPORTCONTENT」に設定します。 |
OrgRef | String | こちらのオプションパラメーターは、クライアント組織IDの指定に使用することができます。 |
Parameter | String[] | こちらの配列は、ファイルからインポートされるコンテンツの詳細とStringsを含みます。最初のStringは、UTF-8 Stringのバイト配列です。次はファイルタイプであり、「YFX」、または「XML」になります。 |
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
ContenResources | ContentResource[] | インポートするYellowfinのコンテンツの詳細を含むオブジェクト配列です。 |
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("GETIMPORTCONTENT");
インポートするデータを含むファイルを指定します。
Path path = Paths.get("/Applications/Yellowfin 7.4/qwerty.yfx"); byte[] data = Files.readAllBytes(path); byte[] encodeBase64 = java.util.Base64.getEncoder().encode(data); String f = new String(encodeBase64, "UTF-8");
ファイルの拡張子を提供します。例:YFX、またはXMLのいずれかです。
rsr.setParameters(new String[]{f,"YFX"});
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、次の要素が含まれます。:StatusCodeとContentResource。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_getimportcontent.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_getimportcontent.jsp」を実行します。
<% /* ws_getimportcontent.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.nio.file.Paths" %> <%@ page import="java.nio.file.Path" %> <% 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"); // set to the password of the above account rsr.setOrgId(1); rsr.setFunction("GETIMPORTCONTENT"); Path path = Paths.get("/Applications/Yellowfin 7.4/qwerty.yfx"); // existing file byte[] data = Files.readAllBytes(path); byte[] encodeBase64 = java.util.Base64.getEncoder().encode(data); String f = new String(encodeBase64, "UTF-8"); rsr.setParameters(new String[]{f,"YFX"}); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { ContentResource[] cr = rs.getContentResources(); out.write("<br>Success"); for (ContentResource o : cr){ out.write("<br><br>resourceType: " + o.getResourceType()); out.write("<br>resourceCode: " + o.getResourceCode()); out.write("<br>resourceName: " + o.getResourceName()); out.write("<br>resourceDescription: " + o.getResourceDescription()); out.write("<br>resourceOrgId: " + o.getResourceOrgId()); out.write("<br>resourceId: " + o.getResourceId()); out.write("<br>resourceUUID: " + o.getResourceUUID()); } } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらの関数は、XML、またはYFXファイルからコンテンツをYellowfinへインポートします。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「IMPORTCONTENT」に設定します。 |
OrgRef | String | こちらのオプションパラメーターは、クライアント組織IDの指定に使用することができます。 |
Parameters | String[] | こちらの配列は、インポート、検証されるコンテンツの詳細とStringsを含みます。最初のStringは、UTF-8 Stringのバイト配列です。次はファイルタイプであり、「YFX」、または「XML」になります。 |
ImportOptions | ImportOption[] | こちらのオプションパラメーターは、コンテンツのインポート方法を定義するために使用することができます。こちらを指定しない場合、Yellowfinはすべてのコンテンツを新規として、ファイルに含まれるそのままの状態でインポートします。 |
リクエストの例
以下は、こちらのリクエストの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> <!--Optional:--> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <function>IMPORTCONTENT</function> <parameters>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i ... </parameters> <parameters>XML</parameters> <importOption> <optionIndex>0</optionIndex> <optionKey>OPTION</optionKey> <optionValue>REPLACE</optionValue> <optionIndex>1</optionIndex> <optionKey>EXISTING</optionKey> <optionValue>70279</optionValue> </importOption> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
注意:ステータスは、実際のインポートが実行されたかどうかに関わらず、呼び出しが実行されたかどうかに対応します。 |
応答の例
サービスは今回の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> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>3c25c8a81c971e26bd23d4ed60194fba</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("IMPORTCONTENT");
インポートするデータを含むファイルを指定します。
Path path = Paths.get("/Applications/Yellowfin 7.4/YFexport.xml"); byte[] data = Files.readAllBytes(path); byte[] encodeBase64 = java.util.Base64.getEncoder().encode(data); String f = new String(encodeBase64, "UTF-8");
ファイルの拡張子を提供します。例:YFX、またはXMLのいずれかです。
rsr.setParameters(new String[]{f,"XML"});
ファイル内のコンテンツのインポート方法を指定します。
ImportOption[] options = new ImportOption[2]; options[0] = new ImportOption(); options[0].setItemIndex(0); options[0].setOptionKey("OPTION"); options[0].setOptionValue("REPLACE"); options[1] = new ImportOption(); options[1].setItemIndex(0); options[1].setOptionKey("EXISTING"); options[1].setOptionValue("70279");
リクエストにインポートオプションオブジェクトを設定します。
rsr.setImportOptions(options);
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、次の要素が含まれます。:StatusCode。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_importcontent.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_importcontent.jsp」を実行します。
<% /* ws_importcontent.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.nio.file.Paths" %> <%@ page import="java.nio.file.Path" %> <% 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"); // set to the password of the above account rsr.setOrgId(1); rsr.setFunction("IMPORTCONTENT"); /* Yfexport.xml contains just one report with no dependencies which can be retrieved using an EXPORTCONTENT web service call and passing a single report id. FYI. Latest Yellowfin builds do not allow export Yellowfin content WITHOUT dependencies, so ImportOption in this example will not suit any YFX file. You need to define proper ImportOption anyway */ Path path = Paths.get("/Applications/Yellowfin 7.4/YFexport.xml"); byte[] data = Files.readAllBytes(path); byte[] encodeBase64 = java.util.Base64.getEncoder().encode(data); String f = new String(encodeBase64, "UTF-8"); rsr.setParameters(new String[]{f,"XML"}); ImportOption[] options = new ImportOption[2]; options[0] = new ImportOption(); options[0].setItemIndex(0); options[0].setOptionKey("OPTION"); options[0].setOptionValue("REPLACE"); options[1] = new ImportOption(); options[1].setItemIndex(0); options[1].setOptionKey("EXISTING"); /* existing report Id. Can be retrieved from ReportHeader table of Yellowfin database, ReportId column. keep in mind that the reportId changes each time when a user modifies the report. You can use the GETIDFORUUID call to get the valid reportId value for the report. */ options[1].setOptionValue("70279"); rsr.setImportOptions(options); AdministrationServiceResponse rs1 = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs1.getStatusCode()) ) { out.write("<br>Test Import Success"); } else { out.write("Failure"); out.write(" Code: " + rs1.getErrorCode()); } %>
こちらのwebサービスは、データソースの検証を行わない以外は、3802028と同様です。
こちらの関数は、YFX、またはXMLファイルからインポートされる可能性のあるコンテンツのテスト、および検証を行います。この関数は、実際のデータのインポートは実行しません。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「TESTIMPORTCONTENT」に設定します。 |
OrgRef | String | こちらのオプションパラメーターは、クライアント組織IDの指定に使用することができます。 |
Parameter | String[] | こちらの配列は、インポート、検証されるコンテンツの詳細とStringsを含みます。最初のStringは、UTF-8 Stringのバイト配列です。次はファイルタイプであり、「YFX」、または「XML」になります。 |
ImportOptions | ImportOption[] | こちらのオプションパラメーターは、コンテンツのインポート方法を定義するために使用することができます。 |
リクエストの例
以下は、こちらのリクエストの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> <!--Optional:--> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <function>TESTIMPORTCONTENT</function> <parameters>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i ... </parameters> <parameters>XML</parameters> <importOption> <optionIndex>0</optionIndex> <optionKey>OPTION</optionKey> <optionValue>REPLACE</optionValue> <optionIndex>1</optionIndex> <optionKey>EXISTING</optionKey> <optionValue>70279</optionValue> </importOption> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
ImportIssues | ImportIssue[] | ファイルインポート中に発生した問題を含むオブジェクト配列です。 |
ContentResources | ContentResource[] | インポートするYellowfinのコンテンツの詳細を含むオブジェクト配列です。 |
応答の例
サービスは、今回のSAOPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <contentResources> <resourceDescription>months, 6/3/2018 8:53 AM</resourceDescription> <resourceId>70279</resourceId> <resourceName>My Report 1000</resourceName> <resourceType>REPORT</resourceType> <resourceUUID>fd3794b3-62c0-4cf8-bac0-755e68d9c41e</resourceUUID> </contentResources> <errorCode>0</errorCode> <importIssues> <issueElements> <messageKey>error.reports.import.view</messageKey> <renderedMessage>View has not been selected.</renderedMessage> </issueElements> <issueElements> <messageKey>error.reports.import.category</messageKey> <renderedMessage>Folder has not been selected.</renderedMessage> </issueElements> <resource> <resourceDescription>months, 6/3/2018 8:53 AM</resourceDescription> <resourceId>70279</resourceId> <resourceName>My Report 1000</resourceName> <resourceType>REPORT</resourceType> <resourceUUID>fd3794b3-62c0-4cf8-bac0-755e68d9c41e</resourceUUID> </resource> </importIssues> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>ab398569ce36672e9d776c3dae3804d6</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("TESTIMPORTCONTENT");
インポートするデータを含むファイルを指定します。
Path path = Paths.get("/Applications/Yellowfin 7.4/qwerty.yfx"); byte[] data = Files.readAllBytes(path); byte[] encodeBase64 = java.util.Base64.getEncoder().encode(data); String f = new String(encodeBase64, "UTF-8");
ファイルの拡張子を提供します。例:YFX、またはXMLのいずれかです。
rsr.setParameters(new String[]{f,"YFX"});
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
インポートしたコンテンツをテストします。
if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); ContentResource[] crs = rs.getContentResources(); ImportIssue[] ImportIssues = rs.getImportIssues(); out.write("<br>Import Issues: " + (ImportIssues!=null?ImportIssues.length:"no issues")); out.write("<table>"); out.write("<tr><td> ResourceId </td><td> ResourceType </td><td> ResourceName </td><td> ResourceUUID </td></tr>"); for (ContentResource c: crs) { out.write("<tr>"); out.write("<td>" + c.getResourceId() + "</td><td>" + c.getResourceType() + "</td><td>" + c.getResourceName() + "</td><td>" + c.getResourceUUID() + "</td>"); out.write("</tr>"); } } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); }
- 応答は、次の要素を含みます。StatusCode、ImportIssues、ContentResources。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_testimportcontent.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_testimportcontent.jsp」を実行します。
<% /* ws_testimportcontent.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.nio.file.Paths" %> <%@ page import="java.nio.file.Path" %> <% 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"); // set to the password of the above account rsr.setOrgId(1); rsr.setFunction("TESTIMPORTCONTENT"); Path path = Paths.get("/Applications/Yellowfin 7.4/www.yfx"); // existing file byte[] data = Files.readAllBytes(path); byte[] encodeBase64 = java.util.Base64.getEncoder().encode(data); String f = new String(encodeBase64, "UTF-8"); rsr.setParameters(new String[]{f,"YFX"}); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); ContentResource[] crs = rs.getContentResources(); ImportIssue[] ImportIssues = rs.getImportIssues(); out.write("<br>Import Issues: " + (ImportIssues!=null?ImportIssues.length:"no issues")); out.write("<table>"); out.write("<tr><td> ResourceId </td><td> ResourceType </td><td> ResourceName </td><td> ResourceUUID </td></tr>"); for (ContentResource c: crs) { out.write("<tr>"); out.write("<td>" + c.getResourceId() + "</td><td>" + c.getResourceType() + "</td><td>" + c.getResourceName() + "</td><td>" + c.getResourceUUID() + "</td>"); out.write("</tr>"); } } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらのwebサービスは、TESTIMPORTCONTENTと同様のコンテンツインポートテストを実行しますが、TESTIMPORTCONTENTと異なり、データソースの検証は行いません。
コンテンツ翻訳関数
Yellowfinのコンテンツ翻訳機能は、レポートやビュー、ダッシュボードのようなコンテンツを、元の言語から翻訳することができます。こちらの機能と翻訳プロセスについて、より詳細な情報は、こちらをクリックしてください。以下のwebサービスには、翻訳されたコンテンツのエクスポートとインポートが含まれます。
注意:翻訳可能なコンテンツをエクスポートする前に、Yellowfin内で他の言語を定義してください。
こちらのwebサービスは、翻訳されたコンテンツをCSVファイルにエクスポートします。返されるデータは、すべての有効なビュー、レポート、ダッシュボードにわたる翻訳可能なコンテンツです。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「EXPORTTRANSLATIONALL」に設定します。 |
リクエストの例
以下は、こちらのリクエストの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>EXPORTTRANSLATIONALL</function> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
ContentType | String | エクスポートファイルのタイプです。例えば、テキストやカンマ区切り値、などが該当します。 |
FileName | String | 生成されるファイル名です。 |
BinaryData | String | 翻訳データとともにBase64でエンコードされたString |
応答の例
サービスは、今回のSAOPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <binaryData>77u/VVVJRCxUZXh0IFR5cGUsS2V5LE9yaWdpbmFsIFRleHQs ... </binaryData> <contentType>text/comma-separated-values</contentType> <errorCode>0</errorCode> <fileName>Translations - 10 Mar 2018.csv</fileName> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>4a19aa468b23ab18d3aee5c7121bcacd</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("EXPORTTRANSLATIONALL");
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
- 応答は、次の要素を含みます。StatusCode、BinaryData、FileName、ContentType。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_exporttranlationall.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_exporttranlationall.jsp」を実行します。
<% /* ws_exporttranslationall.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.io.PrintWriter" %> <% 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"); // set to the password of the above account rsr.setOrgId(1); rsr.setFunction("EXPORTTRANSLATIONALL"); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); //response.setBinaryData(Base64.encodeBytes(pdf.getData())); String Base64encoded = rs.getBinaryData(); Base64encoded = Base64encoded.replace("\n", "").replace("\r", ""); byte[] bytes = Base64encoded.getBytes(); byte[] decoded = java.util.Base64.getDecoder().decode(bytes); String text = new String(decoded, "UTF-8"); PrintWriter writer = new PrintWriter("/Applications/Yellowfin 7.4/" + rs.getFileName(), "UTF-8"); writer.println(text); writer.close(); } else { out.write("<br>Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらの関数は、Yellowfinに翻訳CSVファイルをインポートします。このファイルは、指定したコンテンツをエクスポートする際に、コンテンツ翻訳プロセス中に生成されます。他の詳細とともに、ファイルには、他に指定した言語のカラム(列)が含まれます。翻訳したコンテンツをその構成されたカラム(列)に追加し、こちらの関数を使用して、システムにファイルをインポートし直します。
リクエストパラメーター
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
Function | String | Webサービス関数です。こちらは、「IMPORTTRANSLATION」に設定します。 |
BinaryData | String[] | 翻訳CSVファイルを表すバイトを含む配列です。 |
リクエストの例
以下は、こちらのリクエストの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>IMPORTTRANSLATION</function> <binaryData>-17</binaryData> <binaryData>-69</binaryData> <binaryData>-65</binaryData> <binaryData>85</binaryData> <binaryData>85</binaryData> ... </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope>
応答パラメーター
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
ステータスは、ファイルのインポートが成功したかどうかに対応します。 |
応答の例
サービスは、今回のSAOPの例に基づき、以下の応答を返します。
<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> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>11c466874bfbcdb80f5d250c97ffbd03</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setFunction("IMPORTTRANSLATION");
インポートする翻訳CSVファイルを指定します。
Path path = Paths.get("/Applications/Yellowfin 7.4/Translations - 8 Mar 2018.csv"); // existing file byte[] data = Files.readAllBytes(path); rsr.setBinaryData(data);
リクエストを構成したら、呼び出しを実行します。
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
管理webサービスを初期化します。実行方法の詳細は、こちらを参照してください。
- 応答は、次の要素を含みます。StatusCode。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらのwebサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_importtranlation.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_importtranlation.jsp」を実行します。
<% /* ws_importtranslation.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.*" %> <%@ page import="java.nio.file.Files" %> <%@ page import="java.nio.file.Paths" %> <%@ page import="java.nio.file.Path" %> <% 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 webservices admin account rsr.setPassword("test"); // set the password of the account above rsr.setOrgId(1); rsr.setFunction("IMPORTTRANSLATION"); Path path = Paths.get("/Applications/Yellowfin 7.4/Translations - 8 Mar 2018.csv"); // existing file byte[] data = Files.readAllBytes(path); rsr.setBinaryData(data); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); if ("SUCCESS".equals(rs.getStatusCode()) ) { out.write("<br>Success"); } else { out.write("<br>Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
- No labels