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


こちらで紹介するwebサービスの呼び出しは、コンテンツのエクスポートとインポートに関連しています。webサービスAPIは現在、以下のタイプのコンテンツのエクスポートとインポートを制限しています。

    • レポート
    • レポートカテゴリー
    • レポートサブカテゴリー
    • データソース
    • ビュー
    • ダッシュボード
    • トランスフォーメーションフロー


エクスポートwebサービス


こちらのプロセスは、エクスポート可能な情報を取得し、他のサービスで再利用するための、エクスポートwebサービスを実行する方法を紹介します。


  1. エクスポート可能なすべてのYellowfinコンテンツを取得するためには、GETCONTENT関数を使用します。これは、すべてをエクスポートする場合にも便利です。
  2. こちらの関数は、Yellowfinのコンテンツの詳細を含む、ContentResourceオブジェクトの配列を返します。これは、他の呼び出しで、詳細のインポートや、エクスポート、検証に再利用することができます。このオブジェクトの詳細については、オブジェクト定義を参照してください。
  3. 独自のエクスポート一覧を構成し、コンテンツ定義をContentResourceオブジェクトに配置することもできます。オブジェクト定義は、各Yellowfinのコンテンツに要求される要素を明確にします。
  4. Yellowfinの各コンテンツタイプで、オブジェクトのresorceType値を把握する必要があります。

    コンテンツタイプContentResource resourceType

    レポートカテゴリー

    RPTCATEGORY

    レポートサブカテゴリー

    RPTSUBCATEGORY

    データソース

    DATASOURCE

    ビュー

    VIEW

    ダッシュボード

    GROUP

    レポート

    REPORT

    データトランスフォーメーション

    ETLPROCESS

  5. すべてのコンテンツタイプの依存関係を手作業で検索する代わりに、GETEXPORTDEPENDRNCIES関数を使用して、ContentResourceオブジェクトにその詳細を保存することで、依存関係が必要なコンテンツを指定します。
  6. 例えば、あるダッシュボードをエクスポートする場合、その特定のダッシュボードを表す単一のオブジェクトをContentResourceに含めることができます。この関数は、レポート、ビュー、データソース、カテゴリー、サブカテゴリーを含むダッシュボードの依存関係を返します(これらは、ContentResourceオブジェクト配列に返されます)。
  7. YellowfinコンテンツとともにXMLファイルを取得する場合は、複数のContentResourceオブジェクトの配列を作成し、EXPORTCONTENT関数を呼び出します。このファイルは、異なるYellowfinの環境にインポートすることもできます。
  8. 注意: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」に設定します。

OrgRefStringこちらのオプションパラメーターは、クライアント組織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サービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE
ContentResourcesContentResource[]エクスポート可能な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 &amp; Booking</resourceDescription>
               <resourceId>60710</resourceId>
               <resourceName>Marketing &amp; 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 &amp; 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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_getcontent.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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」に設定します。

OrgRefStringこちらのオプションパラメーターは、クライアント組織IDを指定するために使用することができます。
ContentResourcesContentResourceエクスポートするコンテンツを指定するために使用するオブジェクトです。以下の表を参照してください。


以下のパラメーターは、こちらの関数を呼び出すためにContentResourceオブジェクトに指定します。

ContentResource要素データ型説明
ResourceIDIntegerコンテンツの内部IDを提供する必須パラメーターです。
ResourceTypeString

コンテンツタイプを指定する必須パラメーターです。選択肢は、以下の通りです。

  • RPTCATEGORY
  • RPTSUBCATEGORY
  • DATASOURCE
  • VIEW
  • GROUP
  • REPORT
  • ETLPROCESS
ResourceUUIDStringこちらのオプションパラメーターは、コンテンツの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サービスの呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE
BinaryAttachmentsReportBinaryObject[]エクスポート可能なYellowfinのコンテンツの詳細を含むオブジェクト配列です。以下の表を参照してください。


ReportBinaryObject配列は、こちらの呼び出しに以下のパラメーターを返します。

ReportBinaryObject要素データ型説明
KeyStringこちらの関数のバイナリーオブジェクト保存に一意のキーは、「EXPORT/XML」です。
ContentTypeStringこちらの関数のMIME型は「text/XML」です。
DataByte[]こちらの配列は、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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_exportcontent.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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」に設定します。

OrgRefStringこちらのオプションパラメーターは、クライアント組織IDを指定するために使用することができます。
ContentResourcesContentResource依存関係を取得するコンテンツのメタデータを含むオブジェクトです。以下の表を参照してください。


以下のパラメーターは、こちらの関数を呼び出すためにContentResourceオブジェクトに指定します。

ContentResource要素データ型説明
ResourceIDIntegerコンテンツの内部IDを提供する必須パラメーターです。
ResourceTypeString

コンテンツタイプを指定する必須パラメーターです。選択肢は、以下の通りです。

  • RPTCATEGORY
  • RPTSUBCATEGORY
  • DATASOURCE
  • VIEW
  • GROUP
  • REPORT
  • ETLPROCESS
ResourceUUIDStringこちらのオプションパラメーターは、コンテンツの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サービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE
ContenResourcesContentResource[]指定した成果物の依存関係のメタデータを含むオブジェクト配列です。


応答の例

サービスは、今回の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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_getexportdependencies.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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サービスを使用するには、以下のヒントを参照してください。


  1. webサービスを使用してコンテンツをインポートするには、YFX、またはXMLファイルが必要です。これは、EXPORTCONTENT関数を呼び出すことで取得します。
    • Yellowfinのエクスポート機能を使用しても取得することができます。しかし、この機能を介して生成されるファイルには、現在webサービスAPIにサポートされているコンテンツタイプよりも多くが含まれています。
    • 次のコンテンツタイプは、webサービスを介してインポートすることができません。:イメージ、テーマ、ストーリーボード、ユーザー、ユーザーグループ
  2. エクスポートファイルを取得したら、ContentResourceオブジェクトにインポートするコンテンツを準備する、GETIMPORTCONTENT関数に渡します。
  3. こちらのオブジェクトの詳細を使用して、ImportOptionと呼ばれる他のオブジェクトを設定し、これをIMPORTCONTENT、またはIMPORTIMPORTCONTENTNOVALIDATION関数に渡すことで、対象のコンテンツをYellowfinにインポートします。ImportOptionは、optionKeyパラメーターを使用することで、インポートするコンテンツを指定することができます。
  4. インポート時に、ImportOptionオブジェクトを設定しない場合、ファイル内のすべてのコンテンツがインポートされる点に注意してください。
  5. インポートするコンテンツのテストや検証を行うには、TESTIMPORTCONTENT、またはTESTIMPORTCONTENTNOVALIDATIONのwebサービスを使用します(これは、実際のデータインポートは実行しません)
  6. 注意:IMPORTCONTENT関数の例は、Yellowfinのインストールフォルダー(development/examples/webservices/ws_admin_import.jsp)内のImportOptionを変更するユーザーインターフェイスと連携しています。こちらのファイルを、Yellowfin/appserver/webapps/ROOTフォルダーに配置し、ホスト、ポート番号、管理ユーザーの詳細を調整します。そしてこれを、インターネットブラウザから実行します。(http://<host>:<port>/ws_admin_import.jsp)



インポートするコンテンツを指定するImportContentオブジェクトをセットアップするには、optionValueを提供することで、optionKeyパラメーターを定義しなくてはいけません。以下は、利用可能な組み合わせの例です。


optionKeyoptionValue
SKIPtrue」、または「false」に設定します。
OPTIONREPLACE」、または「ADD」に設定します。
EXISTING

対象のYellowfinインスタンス内の既存項目のUUIDです。

これは、「optionKey=OPTION」、と「optionValue=REPLACE」に設定することで機能します。

PASSWORD1インポート中にコンテンツを暗号化する場合のデータソースパスワードです。


例えば、あるYellowfinレポートを、その依存関係(データソース、ビュー、カテゴリー、サブカテゴリー)とともにエクスポートする場合、ContentResourceオブジェクト(GETIMPORTCONTENTの呼び出しにより取得します)は、以下のように表示されます。

ResourceIdResourceTypeResourceNameResourceUUID

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配列の例では、次のように表示されます。

ResourceIdResourceTypeimportOption itemIndex

70031

DATASOURCE

0

70209

VIEW

1

null

RPTCATEGORY

2

null

RPTSUBCATEGORY

3

70279

REPORT

4


レポートを今回の例の他の既存レポートに置き換え、その他すべてのコンテンツをインポートしない場合は、ImportOptionオブジェクトの構成は、以下のようになります。

itemIndexoptionKeyoptionValue注意

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」に設定します。

OrgRefStringこちらのオプションパラメーターは、クライアント組織IDの指定に使用することができます。
ParameterString[]こちらの配列は、ファイルからインポートされるコンテンツの詳細とStringsを含みます。最初のStringは、UTF-8 Stringのバイト配列です。次はファイルタイプであり、「YFX」、または「XML」になります。


応答パラメーター

返される応答には、これらのパラメーターが含まれます。

応答要素データ型説明

StatusCode

String

Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE
ContenResourcesContentResource[]

インポートする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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_getimportcontent.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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」に設定します。

OrgRefStringこちらのオプションパラメーターは、クライアント組織IDの指定に使用することができます。
ParametersString[]こちらの配列は、インポート、検証されるコンテンツの詳細とStringsを含みます。最初のStringは、UTF-8 Stringのバイト配列です。次はファイルタイプであり、「YFX」、または「XML」になります。
ImportOptionsImportOption[]こちらのオプションパラメーターは、コンテンツのインポート方法を定義するために使用することができます。こちらを指定しない場合、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サービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE

注意:ステータスは、実際のインポートが実行されたかどうかに関わらず、呼び出しが実行されたかどうかに対応します。

  

応答の例

サービスは今回の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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_importcontent.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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サービスは、データソースの検証を行わない以外は、IMPORTCONTENTと同様です。

こちらの関数は、YFX、またはXMLファイルからインポートされる可能性のあるコンテンツのテスト、および検証を行います。この関数は、実際のデータのインポートは実行しません。


リクエストパラメーター

以下の要素は、こちらのリクエストとともに渡されます。

リクエスト要素データ型説明

LoginId

String

Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。

このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。

Password

String

上記アカウントのパスワードです。

OrgId

Integer

Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。

Function

String

Webサービス関数です。こちらは、「TESTIMPORTCONTENT」に設定します。

OrgRefStringこちらのオプションパラメーターは、クライアント組織IDの指定に使用することができます。
ParameterString[]こちらの配列は、インポート、検証されるコンテンツの詳細とStringsを含みます。最初のStringは、UTF-8 Stringのバイト配列です。次はファイルタイプであり、「YFX」、または「XML」になります。
ImportOptionsImportOption[]こちらのオプションパラメーターは、コンテンツのインポート方法を定義するために使用することができます。


リクエストの例

以下は、こちらのリクエストの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サービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE
ImportIssuesImportIssue[]

ファイルインポート中に発生した問題を含むオブジェクト配列です。

ContentResourcesContentResource[]インポートする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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_testimportcontent.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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サービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE
ContentTypeStringエクスポートファイルのタイプです。例えば、テキストやカンマ区切り値、などが該当します。
FileNameString生成されるファイル名です。
BinaryDataString翻訳データとともに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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_exporttranlationall.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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」に設定します。

BinaryDataString[]翻訳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サービス呼び出しのステータスです。値の選択肢は、以下の通りです。

  • SUCCESS
  • FAILURE

ステータスは、ファイルのインポートが成功したかどうかに対応します。

  

応答の例

サービスは、今回の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サービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。

  1. コードをコピーして、「ws_importtranlation.jsp」として保存します。
  2. root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
  3. 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
  4. インターネットブラウザから、「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());
            }          
%>