こちらでは、全体的な管理レポートwebサービスについて紹介します。
基礎的な関数
こちらの関数は、レポートwebサービスが機能しているかをテストするために使用します。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「TEST」に設定します。 |
OrgRef | String | クライアント組織内部参照IDです。(オプション設定) |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>TEST</reportRequest> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <canDrill>false</canDrill> <dashboardEnabled>false</dashboardEnabled> <errorCode>0</errorCode> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Connection Tested Successfully</messages> <messages>Unknown Or Unsupported Request: TEST</messages> <messages>Web Service Request Complete</messages> <private>false</private> <sessionId>f78fe29edb19bbfe45626c2203249f4b</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("TEST");
特定のクライアント組織を指定する必要がある場合は、こちらのコードを追加します。
rsr.setOrgRef("org1"); // search for the report in this client org
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、StatusCodeパラメーターが含まれます。詳細は、応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_test_reportservices.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_test_reportservices.jsp」を実行します。
<% /* ws_test_reportservices.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="javax.xml.bind.JAXBContext" %> <%@ page import="javax.xml.bind.Marshaller" %> <%@ page import="java.io.StringWriter" %> <%@ page import="javax.xml.bind.JAXBElement" %> <%@ page import="javax.xml.namespace.QName" %> <% ReportService rsc = new ReportService(); //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService"); ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("TEST"); rsr.setOrgRef("1"); ReportServiceResponse rs=rsc.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs); m.marshal(rootElement,out); //out.write("Success"); } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらのwebサービスは、指定したレポートの詳細を取得します。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「INFO」に設定します。 |
OrgRef | String | クライアント組織内部参照IDです。(オプション設定) |
ReportId | Integer | 特定のレポートを検索するために、レポートIDを提供することができます。 |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>INFO</reportRequest> <reportId>60712</reportId> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
ReportName | String | 指定したレポートの名前です。 |
ReportDescription | String | 指定したレポートの説明です。 |
ReportUUID | Integer | 指定したレポートの一意のID(または、UUID)です。 |
HitCount | Integer | レポートがアクセスされた回数です。 |
FormatCode | String | レポートの書式コードです。 |
AverageRunTime | Integer | レポートの平均実行時間です。 |
Category | String | レポートが保存されているカテゴリーです。 |
SubCategory | String | レポートのサブカテゴリーです。 |
ReportUsage | Integer | レポートが使用、またはアクセスされた回数です。 |
ViewName | String | ビューの名前です。 |
Datasource | String | データソースの名前です。 |
Author | String | レポートを作成したユーザーです。 |
AuthoringMode | String | レポートが作成されたモードです。 |
ReportTemplate | String | レポートのテンプレートです。 |
DataOutput | String | データ出力です。例:カラム(列) |
DashboardEnabled | Boolean | ダッシュボードが有効化されている場合はTrueです。 |
LastModifiedDate | Date | レポートが最後に変更された日付です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <author>System Administrator</author> <authoringMode>JAVA</authoringMode> <averageRunTime>0</averageRunTime> <canDrill>false</canDrill> <category>Tutorial</category> <dashboardEnabled>true</dashboardEnabled> <dataOutput>COLUMN</dataOutput> <datasource>Ski Team</datasource> <errorCode>0</errorCode> <formatCode>REPORTANDCHART</formatCode> <hitCount>0</hitCount> <lastModifiedDate>2017-06-26</lastModifiedDate> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Loaded Report: 60712 Successfully</messages> <messages>Collating Report Information</messages> <messages>Web Service Request Complete</messages> <preRunFilterString><![CDATA[<div class="rptFilterLogicText"> <span class="rptFilterLogicIdentifier">Company Name</span> In List <span class="rptFilterLogicIdentifier">[User Prompt]</span> </div>]]></preRunFilterString> <private>false</private> <reportDescription>Top N Agencies compared to all other Agencies by demographic</reportDescription> <reportId>60712</reportId> <reportName>Agency Benchmark</reportName> <reportTemplate>REPORTANDCHART</reportTemplate> <reportUUID>c83357db-8aef-4ec7-ab72-fce34de9ee77</reportUUID> <reportUsage>0</reportUsage> <sessionId>900e9dfabd21bdef75410fa88fe501dd</sessionId> <statusCode>SUCCESS</statusCode> <subCategory>Marketing & Booking</subCategory> <tags>No tags</tags> <viewName>New View</viewName> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("INFO");
レポートの保存されているクライアント組織を指定する必要がある場合は、こちらのコードを追加します。
rsr.setOrgRef("org1"); // search for the report in this client org
どのレポートのコメントのステータスを変更するか指定することができます。
rsr.setReportId(60712);
レポートのクライアント参照ID、またはセッションIDを指定することもできます。
rsr.setReportClientReferenceId("1"); rsr.setSessionId("18607a5670842650d512976b5d7ccddd");
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、他のレポート固有のパラメーターとともに、StatusCodeパラメーターが含まれます。詳細は、上記応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_info_report.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_info_report.jsp」を実行します。
<% /* ws_info_report.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="javax.xml.bind.JAXBContext" %> <%@ page import="javax.xml.bind.Marshaller" %> <%@ page import="java.io.StringWriter" %> <%@ page import="javax.xml.bind.JAXBElement" %> <%@ page import="javax.xml.namespace.QName" %> <% ReportService rsc = new ReportService(); //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService"); ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("INFO"); rsr.setOrgRef("1"); rsr.setReportId(60712); rsr.setReportClientReferenceId("1"); rsr.setSessionId("18607a5670842650d512976b5d7ccddd"); ReportServiceResponse rs=rsc.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs); m.marshal(rootElement,out); //out.write("Success"); } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらのwebサービスは、レポートのカラム(列)やフィルターのメタデータを含む、指定したレポートのスキーマ情報を返します。レポートは、そのレポートID、またはwebサービス名を提供することで指定しなくてはいけません。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「SCHEMA」に設定します。 |
OrgRef | String | クライアント組織内部参照IDです。(オプション設定) |
ReportId | Integer | 特定のレポートを検索するための内部レポートIDです。レポートIDは、レポートが編集される度に変更されます。ヒント:関連するレポートIDを取得するために、GETIDFROMUUID関数を使用することができます。 |
ObjectName | String | (オプション設定)レポートのwebサービス名です。レポートIDが提供されている場合、こちらは必要ありません。 |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>SCHEMA</reportRequest> <reportId>60712</reportId> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
応答には、これらの主要なパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービスリクエストのステータスです。値の選択肢は、以下の通りです。
|
Columns | レポート結果セット内の各カラム(列)と、レポートにユーザープロンプトフィルターのデータを渡す必要があるかの情報(メタデータ)を含むReportSchemaオブジェクトの配列です。より詳細な情報は、以下の表を参照してください。 | |
Author | String | レポートを作成したユーザーの名前です。 |
AuthoringMode | String | |
AverageRunTime | Integer | |
CanDrill | Boolean | レポートのドリル可否です。 |
Category | String | レポートが保存されているフォルダーの名前です。 |
SubCategory | String | レポートが保存されているサブフォルダーの名前です。 |
DashboardEnabled | Boolean | |
DataOutput | String | 以下のいずれかになります。
|
Datasource | String | レポートが依存するデータソースの名前です。 |
DrillCode | String | レポートで利用可能な場合のドリルタイプです。以下のいずれかになります。
|
FormatCode | String | 指定したレポートの書式コードです。以下のいずれかになります。
|
HitCount | Integer | 指定したレポートがアクセスされた回数です。 |
LastModifiedDate | String | レポートが最後に変更された日付です。 |
LastRunDuration | Integer | |
PreRunFilterString | String | |
Private | Boolean | レポートが非公開、または公開のどちらであるかを定義します。(レガシーサービスの場合は非公開です) |
ReportDescription | String | 指定したレポートの説明です。 |
ReportId | Integer | 指定したレポートのIDです。 |
ReportName | String | 指定したレポートの名前です。 |
ReportTemplate | String | レポートに適用するテンプレートです。以下のいずれかになります。
|
ReportUUID | String | レポートのUUIDです。 |
ReportUsage | Integer | |
ViewName | String | レポートが依存するビューの名前です。 |
Tags | String | |
ErrorCode | Integer | webサービスが失敗した場合のエラーのコード番号です。 |
Messages | String[] | レポートがサーバ上で実行されている時のデバッグ情報を示す文字列の配列です。デバッグとエラーのトレーシングに使用されます。 |
ReportSchemaオブジェクトは、レポートカラム(列)の情報を含む、以下のパラメーターを返します。
パラメーター | 型 | 説明 |
ColumnName | String | レポートカラム(列)の名前です。 |
DisplayName | String | カラム(列)の表示名です。 |
ColumnLength | String | レポートカラム(列)の長さです。 |
FieldId | Integer | カラム(列)のフィールドIDです。 |
DataType | String | レポートカラム(列)のデータ型です。 |
SortOrder | Integer | カラム(列)を並べかえる順序です。 |
Hidden | Boolean | レポートでのカラム(列)表示有無です。 |
NumberOfDecimals | Integer | |
OutputLocation | String | |
AllowPrompt | Boolean | フィルターのみの設定です。 |
CachedValues | Boolean | フィルターのみの設定です。フィルターのキャッシュ値使用有無です。 |
FilterDisplayType | String | フィルターのみの設定です。カラム(列)がフィルタの場合のフィルター表示タイプです。 |
FilterId | String | フィルターのみの設定です。カラム(列)がフィルターの場合のフィルターIDです。 |
FilterOmittable | Boolean | フィルターのみの設定です。 |
FilterType | String | フィルターのみの設定です。フィルタータイプと、プロンプトに投入する必要のあるデータを決定します。 |
DefaultValue1 | String | フィルターのみの設定です。フィルターが設定されている場合の最初のデフォルト値です。 |
DefaultValue2 | String | フィルターのみの設定です。フィルターが設定されている場合の二番目のデフォルト値です。 |
FilterTypeCode | String | フィルターのみの設定です。 |
FilterUUID | String | フィルターのみの設定です。フィルターのUUIDです。 |
MinimumValue | BigDecimal | フィルターのみの設定です。フィルターが設定されている場合の最小値です。 |
MaximumValue | BigDecimal | フィルターのみの設定です。フィルターが設定されている場合の最大値です。 |
ParentFilterId | Integer | フィルターのみの設定です。依存フィルターが設定されている場合の親フィルターのフィルターIDです。 |
Prompt | Boolean | フィルターのみの設定です。カラム(列)がプロンプトフィルターであるかどうかです。 |
ValueUnitCode | String | フィルターのみの設定です。フィルターが設定されている場合の時間単位です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <author>System Administrator</author> <authoringMode>JAVA</authoringMode> <averageRunTime>0</averageRunTime> <canDrill>false</canDrill> <category>Tutorial</category> <columns> <columnName>Region</columnName> <dataType>TEXT</dataType> <displayName>Athlete Region</displayName> <fieldId>1</fieldId> <hidden>false</hidden> <numberOfDecimals>0</numberOfDecimals> <outputLocation>COLUMN</outputLocation> <prompt>false</prompt> <sortOrder>0</sortOrder> </columns> <columns> <allowPrompt>false</allowPrompt> <cachedValues>true</cachedValues> <columnName>Region</columnName> <dataType>TEXT</dataType> <displayName>Athlete Region</displayName> <filterDisplayType>DROPDOWN</filterDisplayType> <filterId>74908</filterId> <filterOmittable>true</filterOmittable> <filterType>INLIST</filterType> <filterTypeCode>FILTER</filterTypeCode> <filterUUID>d4ea61ab-247e-403a-b51b-8243aeea63db</filterUUID> <numberOfDecimals>0</numberOfDecimals> <prompt>true</prompt> <sortOrder>0</sortOrder> </columns> <dashboardEnabled>true</dashboardEnabled> <dataOutput>COLUMN</dataOutput> <datasource>Ski Team !!!</datasource> <drillCode>DRILLDOWN</drillCode> <errorCode>0</errorCode> <formatCode>REPORTANDCHART</formatCode> <hitCount>3</hitCount> <lastModifiedDate>2018-06-07</lastModifiedDate> <lastRunDuration>0</lastRunDuration> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Loaded Report: 74907 Successfully</messages> <messages>Collating Schema Information</messages> <messages>Web Service Request Complete</messages> <preRunFilterString><![CDATA[<div class="rptFilterLogicText"> <span class="rptFilterLogicIdentifier">Athlete Region</span> In List <span class="rptFilterLogicIdentifier">[User Prompt]</span> </div>]]></preRunFilterString> <private>false</private> <reportDescription>Ski Team, 8/6/2018 9:36 AM</reportDescription> <reportId>74907</reportId> <reportName>cached filters</reportName> <reportTemplate>REPORTANDCHART</reportTemplate> <reportUUID>982500e8-7b33-476b-be47-6a1aab611349</reportUUID> <reportUsage>100</reportUsage> <sessionId>7e9971ea99fff609387ac1c504abcc63</sessionId> <statusCode>SUCCESS</statusCode> <subCategory>Training</subCategory> <tags>No tags</tags> <viewName>Ski Team</viewName> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("SCHEMA");
レポートの保存されているクライアント組織を指定する必要がある場合は、こちらのコードを追加します。
rsr.setOrgRef("org1"); // search for the report in this client org
ステータスを変更するレポートのコメントを指定することができます。
rsr.setReportId(70045);
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、他のレポート固有のパラメーターとともに、StatusCodeパラメーターが含まれます。詳細は、上記応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_reportschema.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_reportschema.jsp」を実行します。
<% /* ws_reportschema.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.*" %> <% ReportServiceResponse rs = null; ReportServiceRequest rsr = new ReportServiceRequest(); ReportServiceService ts = new ReportServiceServiceLocator("localhost", 8080, "/services/ReportService", false); ReportServiceSoapBindingStub rssbs = (ReportServiceSoapBindingStub) ts.getReportService(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setReportRequest("SCHEMA"); rsr.setReportId(70045); rs = rssbs.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { out.write("Success </br>"); ReportSchema[] schema = rs.getColumns(); for (ReportSchema s: schema) //display filters: if (s.getFilterType() != null && s.getFilterTypeCode().equals("FILTER")){ out.write("<br>Display Name: " + s.getDisplayName()); out.write("<br>Filter UUID:" + s.getFilterUUID()); out.write("<br>Filter Id:" + s.getFilterId()); } } else { out.write(rs.getStatusCode()); out.write(rs.toString()); } %>
webサービスは、指定したレポートのフィルター値を返します。
注意:現在、このリクエストにユーザー情報を渡す方法はありません。そのため、特定の値を制限するアクセスフィルターがレポートに適用されている場合、ログインしているユーザー(このwebサービスを呼び出しているユーザー)がアクセスできるフィルター値のみが返されます。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「FILTEROPTIONS」に設定します。 |
OrgRef | String | (オプション設定)特定のクライアント組織を指定してレポートを検索する場合の、クライアント組織内部参照IDです。こちらが指定されてない場合、デフォルト組織から検索されます。 |
ReportClientReferenceId | String | (オプション設定)特定のクライアント組織を指定する、別のオプションです。 |
ReportId | Integer | 特定のレポートを検索するための内部レポートIDです。レポートIDは、レポートが編集される度に変更されます。ヒント:関連するレポートIDを取得するために、GETIDFROMUUID関数を使用することができます。 |
ObjectName | String | 内部フィルターIDです。ヒント:レポートが編集される度に変更されるため、SCHEMA関数を使用して有効なフィルターIDを取得します。 |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>FILTEROPTIONS</reportRequest> <reportId>70066</reportId> <objectName>70081</objectName> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
応答には、これらの主要なパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービスリクエストのステータスです。値の選択肢は、以下の通りです。
|
Results | 利用可能なフィルター値の配列です。より詳細な情報は、以下の表を参照してください。 | |
Author | String | レポートを作成したユーザーの名前です。 |
AuthoringMode | String | |
AverageRunTime | Integer | |
CanDrill | Boolean | レポートのドリル可否です。 |
Category | String | レポートが保存されているフォルダーの名前です。 |
SubCategory | String | レポートが保存されているサブフォルダーの名前です。 |
DashboardEnabled | Boolean | |
DataOutput | String | 以下のいずれかになります。
|
Datasource | String | このレポートに使用されているデータソースの名前です。 |
FormatCode | String | 指定したレポートの書式コードです。以下のいずれかになります。
|
HitCount | Integer | 指定したレポートがアクセスされた回数です。 |
LastModifiedDate | String | レポートが最後に変更された日付です。 |
LastRunDuration | Integer | |
PreRunFilterString | String | |
Private | Boolean | レポートが非公開、または公開のどちらであるかを定義します。(レガシーサービスの場合は非公開です) |
ReportDescription | String | 指定したレポートの説明です。 |
ReportId | Integer | 指定したレポートのIDです。 |
ReportName | String | 指定したレポートの名前です。 |
ReportTemplate | String | レポートに適用するテンプレートです。以下のいずれかになります。
|
ReportUUID | String | レポートのUUIDです。 |
ReportUsage | Integer | |
ViewName | String | レポートが依存するビューの名前です。 |
Tags | String | |
ErrorCode | Integer | webサービスが失敗した場合のエラーのコード番号です。 |
Messages | String[] | レポートがサーバ上で実行されている場合にデバッグ情報を示す文字列の配列です。デバッグとエラーのトレーシングに使用されます。 |
ReportRowオブジェクトは、以下のパラメーターを返します。
パラメーター | 型 | 説明 |
DataValue | String[] | レポート結果セット内の各カラム(列)データの文字列の配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <author>System Administrator</author> <authoringMode>JAVA</authoringMode> <averageRunTime>0</averageRunTime> <canDrill>false</canDrill> <category>Tutorial</category> <dashboardEnabled>true</dashboardEnabled> <dataOutput>COLUMN</dataOutput> <datasource>Ski Team</datasource> <errorCode>0</errorCode> <formatCode>REPORTANDCHART</formatCode> <hitCount>2</hitCount> <lastModifiedDate>2018-06-18</lastModifiedDate> <lastRunDuration>0</lastRunDuration> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Loaded Report: 70080 Successfully</messages> <messages>Retrieving Options</messages> <messages>Request Contains No ReportFilter Records.</messages> <messages>Region (FilterId: 70082 ) Requires User Prompt</messages> <messages>Ignoring Prompt Filter On Field: 70082</messages> <messages>DEMOGRAPHIC (FilterId: 70081 ) Requires User Prompt</messages> <messages>Web Service Request Complete</messages> <preRunFilterString><![CDATA[<div class="rptFilterLogicText"> <span class="rptFilterLogicIdentifier">Athlete Region</span> In List <span class="rptFilterLogicIdentifier">[User Prompt]</span> </div> <div class="rptFilterLogicText"> AND <span class="rptFilterLogicIdentifier">Demographic</span> In List <span class="rptFilterLogicIdentifier">(Adventure, Relaxation, Family, Culture)</span> </div>]]></preRunFilterString> <private>false</private> <reportDescription>Ski Team, 18/6/2018 2:49 PM</reportDescription> <reportId>70066</reportId> <reportName>qwerty</reportName> <reportTemplate>REPORTANDCHART</reportTemplate> <reportUUID>c105ab26-9744-434d-9c8c-9fb9e48d80c0</reportUUID> <reportUsage>100</reportUsage> <results> <dataValue>Asia</dataValue> <dataValue>Asia</dataValue> </results> <sessionId>eb31d9392a25c8c40995237650837cd5</sessionId> <statusCode>SUCCESS</statusCode> <subCategory>Training</subCategory> <tags>No tags</tags> <viewName>New View</viewName> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("FILTEROPTIONS");
フィルターを取得するレポートを指定します。
rsr.setReportId(70066);
特定のフィルターを取得する場合は、ObjectNameパラメーターにフィルターIDを提供します。
rsr.setObjectName("70081");
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、他のレポート固有のパラメーターとともに、StatusCodeパラメーターが含まれます。詳細は、上記応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_filteroptions.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_filteroptions.jsp」を実行します。
<% /* ws_filteroptions.jsp */ %> <% ReportServiceResponse rs = null; ReportServiceRequest rsr = new ReportServiceRequest(); ReportServiceService ts = new ReportServiceServiceLocator("localhost", 8080, "/services/ReportService", false); ReportServiceSoapBindingStub rssbs = (ReportServiceSoapBindingStub) ts.getReportService(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(1); rsr.setReportRequest("FILTEROPTIONS"); rsr.setReportId(70066); rsr.setObjectName("70081"); rs = rssbs.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { out.write("Success </br>"); ReportRow[] rows = rs.getResults(); for (ReportRow r: rows) { //display filter values: out.write("<br>" + r.getDataValue()[0]); } } else { out.write(rs.getStatusCode()); out.write(rs.toString()); } %>
レポート結果セット関数
これらのwebサービスは、レポートにより生成される結果に固有のものです。
こちらのwebサービスは、指定したレポートの結果データと、レポートのメタデータを取得します。レポートの結果は、書式設定されていないそのままの形式になります。この結果は、ReportRowオブジェクトの配列に保存され、このオブジェクトは、各結果ロウ(行)を表します。そのため、各ロウ(行)に対して、結果データの各カラム(列)のデータを含む文字列の配列が存在します。
注意:このデータを、文字列表現から各特定のカラム(列)のデータ型に変換するのは、webサービスクライアント次第です。各カラム(列)のデータ型は、SCHEMA関数で取得することができます。
例えば、以下は2つのカラム(列)を含み、各ユーザーロールに割り当てられたユーザー数を特定するロール集計レポートを示しています。
ユーザーロール | 人数 |
System Administrator | 1 |
Consumer & Collaborator | 5 |
Report Content Writer | 4 |
こちらのwebサービスは、各ユーザーロールのReportRowオブジェクトを返します。各オブジェクトは、2つのデータ文字列を含みます。ひとつはロール名であり、もうひとつはユーザー数を表示します。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「RESULTSET」に設定します。 |
OrgRef | String | クライアント組織内部参照IDです。(オプション設定) |
ReportId | Integer | 結果データを参照するレポートのIDです。 |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>RESULTSET</reportRequest> <reportId>58511</reportId> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
応答には、これらの主要なパラメーターが含まれます。(より詳細な応答パラメーターの一覧は、ReportServiceResponseオブジェクトを参照してください)
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
Results | ReportRow[] | レポートのデータセットの結果を含むオブジェクトの配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <author>System Administrator</author> <authoringMode>JAVA</authoringMode> <averageRunTime>0</averageRunTime> <canDrill>false</canDrill> <category>Audit Reports</category> <dashboardEnabled>true</dashboardEnabled> <dataOutput>COLUMN</dataOutput> <datasource>Yellowfin Configuration Database</datasource> <errorCode>0</errorCode> <formatCode>REPORTANDCHART</formatCode> <hitCount>4</hitCount> <lastModifiedDate>2016-04-13</lastModifiedDate> <lastRunDuration>0</lastRunDuration> <lastRunStatus>RUN_NOERROR</lastRunStatus> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Loaded Report: 58511 Successfully</messages> <messages>Returning RAW Resultset</messages> <messages>Request Contains No ReportFilter Records.</messages> <messages>Report Run Successfully</messages> <messages>Web Service Request Complete</messages> <private>false</private> <reportDescription/> <reportId>58511</reportId> <reportName>Role Population</reportName> <reportTemplate>REPORTANDCHART</reportTemplate> <reportUUID>00c65743-15f8-4f93-ace1-e3d4d2b956eb</reportUUID> <reportUsage>7</reportUsage> <results> <dataValue>System Administrator</dataValue> <dataValue>1</dataValue> </results> <results> <dataValue>Consumer & Collaborator</dataValue> <dataValue>5</dataValue> </results> <sessionId>c958af74f677c4b1f575bd728d3b25d0</sessionId> <statusCode>SUCCESS</statusCode> <subCategory>User Access</subCategory> <tags>No tags</tags> <viewName>NEW VIEW</viewName> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("RESULTSET");
結果セットを取得するレポートを指定します。
rsr.setReportId(60712);
レポートクライアント参照IDを指定することもできます。
rsr.setReportClientReferenceId("1");
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、他のレポート固有のパラメーターとともに、StatusCodeと結果パラメーターが含まれます。詳細は、上記応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_resultset.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_resultset.jsp」を実行します。
<% /* ws_resultset.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="javax.xml.bind.JAXBContext" %> <%@ page import="javax.xml.bind.Marshaller" %> <%@ page import="java.io.StringWriter" %> <%@ page import="javax.xml.bind.JAXBElement" %> <%@ page import="javax.xml.namespace.QName" %> <% ReportService rsc = new ReportService(); //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService"); ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("RESULTSET"); rsr.setReportId(60712); rsr.setReportClientReferenceId("1"); ReportServiceResponse rs=rsc.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs); m.marshal(rootElement,out); //out.write("Success"); } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
こちらのwebサービスは、RESULTSET関数の呼び出しに類似していますが、結果セットをレポートのフォーマッターを使用して返します。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「FORMATTEDRESULTSET」に設定します。 |
OrgRef | String | クライアント組織内部参照IDです。(オプション設定) |
ReportId | Integer | 結果データを参照するレポートのIDです。 |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>FORMATTEDRESULTSET</reportRequest> <reportId>58511</reportId> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
応答には、これらの主要なパラメーターが含まれます。(より詳細な応答パラメーターの一覧は、ReportServiceResponseオブジェクトを参照してください)
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
Results | ReportRow[] | レポートのデータセットの結果を含むオブジェクトの配列です。 |
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <author>System Administrator</author> <authoringMode>JAVA</authoringMode> <averageRunTime>0</averageRunTime> <canDrill>false</canDrill> <category>Audit Reports</category> <dashboardEnabled>true</dashboardEnabled> <dataOutput>COLUMN</dataOutput> <datasource>Yellowfin Configuration Database</datasource> <errorCode>0</errorCode> <formatCode>REPORTANDCHART</formatCode> <hitCount>5</hitCount> <lastModifiedDate>2016-04-13</lastModifiedDate> <lastRunDuration>0</lastRunDuration> <lastRunStatus>RUN_NOERROR</lastRunStatus> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Loaded Report: 58511 Successfully</messages> <messages>Returning RAW Resultset</messages> <messages>Request Contains No ReportFilter Records.</messages> <messages>Report Run Successfully</messages> <messages>Web Service Request Complete</messages> <private>false</private> <reportDescription/> <reportId>58511</reportId> <reportName>Role Population</reportName> <reportTemplate>REPORTANDCHART</reportTemplate> <reportUUID>00c65743-15f8-4f93-ace1-e3d4d2b956eb</reportUUID> <reportUsage>9</reportUsage> <results> <dataValue>System Administrator</dataValue> <dataValue>1</dataValue> </results> <results> <dataValue>Consumer & Collaborator</dataValue> <dataValue>5</dataValue> </results> <sessionId>1e4f0c8ee07d24a5500f952a459b1652</sessionId> <statusCode>SUCCESS</statusCode> <subCategory>User Access</subCategory> <tags>No tags</tags> <viewName>NEW VIEW</viewName> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("FORMATTEDRESULTSET");
書式設定された結果セットを取得するレポートを指定します。
rsr.setReportId(60712);
レポートクライアント参照IDを指定することができます。
rsr.setReportClientReferenceId("1");
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、他のレポート固有のパラメーターとともに、StatusCodeと結果パラメーターが含まれます。詳細は、上記応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_resultset.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_resultset.jsp」を実行します。
<% /* ws_resultset.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="javax.xml.bind.JAXBContext" %> <%@ page import="javax.xml.bind.Marshaller" %> <%@ page import="java.io.StringWriter" %> <%@ page import="javax.xml.bind.JAXBElement" %> <%@ page import="javax.xml.namespace.QName" %> <% ReportService rsc = new ReportService(); //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService"); ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("FORMATTEDRESULTSET"); rsr.setOrgRef("1"); rsr.setReportId(60712); rsr.setReportClientReferenceId("1"); ReportServiceResponse rs=rsc.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs); m.marshal(rootElement,out); //out.write("Success"); } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
その他
こちらの関数は、受信者の電子メールアドレスにレポートを送信します。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「SENDTOEMAIL」に設定します。 |
OrgRef | String | クライアント組織の内部参照IDを指定するためのオプションパラメーターです。 |
ReportId | Integer | 電子メール送信されるレポートの内部IDです。 |
ReportsOption | String[] | レポート送信先となる電子メールアドレスの一覧です。 |
AlterationCommand | ||
SessionId | Integer | (オプション設定)IDを使用して以前のセッションを指定します。 |
LanguageCode | (オプション設定)言語を指定します。 |
リクエストの例
以下のSOAPの例は、こちらの呼び出しに渡すことのできるパラメーターを示しています。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteReportCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <reportRequest>SENDTOEMAIL</reportRequest> <reportId>70012</reportId> <alterationCommand>drill-down|70012</alterationCommand> <reportOptions> <string>binish.sheikh@yellowfin.com.au</string> </reportOptions> </arg0> </web:remoteReportCall> </soapenv:Body> </soapenv:Envelope>
応答要素
応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
応答の例
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <author>System Administrator</author> <authoringMode>JAVA</authoringMode> <averageRunTime>0</averageRunTime> <canDrill>false</canDrill> <category>Tutorial</category> <dashboardEnabled>true</dashboardEnabled> <dataOutput>COLUMN</dataOutput> <datasource>Ski Team</datasource> <errorCode>0</errorCode> <formatCode>CHART</formatCode> <hitCount>3</hitCount> <lastModifiedDate>2018-03-07</lastModifiedDate> <lastRunDuration>0</lastRunDuration> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Loaded Report: 70012 Successfully</messages> <messages>Web Service Request Complete</messages> <preRunFilterString><![CDATA[<div class="rptFilterLogicText"> <span class="rptFilterLogicIdentifier">Invoiced Date</span> Between <span class="rptFilterLogicIdentifier">Current Date - 6 Years And Current Date</span> </div> . . . ]]></preRunFilterString> <private>false</private> <reportDescription>This report provides a high level summary of campaigns</reportDescription> <reportId>70012</reportId> <reportName>Campaign Summary</reportName> <reportTemplate>CHART</reportTemplate> <reportUUID>3e842fae-02f7-4ad3-a632-ca267e0078da</reportUUID> <reportUsage>100</reportUsage> <sessionId>fa0cc79a9ea229bd5df85b4a7f50c878</sessionId> <statusCode>SUCCESS</statusCode> <subCategory>Marketing & Booking</subCategory> <tags>No tags</tags> <viewName>New View</viewName> </return> </ns2:remoteReportCallResponse> </S:Body> </S:Envelope>
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("SENDTOEMAIL");
レポートの保存されているクライアント組織を指定する必要がある場合は、こちらのコードを追加します。
rsr.setOrgRef("org1"); // search for the report in this client org
電子メール送信するレポートと、その変更コマンドを指定します。
rsr.setReportId(60712); rsr.setAlterationCommand("drill-down|60712");
レポートの送信先となる電子メールアドレスを提供します。
rsr.setReportOptions(new String[]{ "dummy@dummy.com"});
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、次のパラメーターが含まれます:StatusCode、Dashboard、Subtabs。(より詳細な情報は、上記応答パラメーターの表を参照してください)
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_sendtoemail.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_sendtoemail.jsp」を実行します。
/* ws_sendtoemail.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="javax.xml.bind.JAXBContext" %> <%@ page import="javax.xml.bind.Marshaller" %> <%@ page import="java.io.StringWriter" %> <%@ page import="javax.xml.bind.JAXBElement" %> <%@ page import="javax.xml.namespace.QName" %> <% ReportService rsc = new ReportService(); //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService"); ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("SENDTOEMAIL"); rsr.setOrgRef("1"); rsr.setReportId(60712); rsr.setAlterationCommand("drill-down|60712"); rsr.setReportOptions(new String[]{ "dummy@dummy.com"}); rsr.setReportClientReferenceId("1"); rsr.setDashboardTabId(70080); ReportServiceResponse rs=rsc.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs); m.marshal(rootElement,out); //out.write("Success"); } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>
webサービスレポートのレポートからのインタラクションを処理します。こちらの関数は、レポートページの変更、ドリルスルー、ドリルダウン、ドリルエニウェアの実行、シリーズ選択の変更など、レポートでのインタラクションに使用します。
AlterationCommandパラメーターは、レポートに組み込まれたテキストコードであり、レポートを変更するためにwebサービスに戻すことができます。
リクエスト要素
以下の要素は、こちらのリクエストとともに渡されます。
リクエスト要素 | データ型 | 説明 |
LoginId | String | Yellowfin Webサービスの管理者ユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 |
Password | String | 上記アカウントのパスワードです。 |
OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 |
ReportRequest | String | webサービス関数です。「COMMAND」に設定します。 |
OrgRef | String | クライアント組織の内部参照IDです。(オプション設定) |
ReportId | Integer | 処理をするレポートのIDです。 |
AlterationCommand | String | レポートに適用するコマンドです。これは、レポートの変更方法を指定します。このパラメーターは、レポートに組み込まれたテキストコードです。レポート詳細取得時に、この値をwebサービスに渡すことでレポートを変更することができます。 |
CommandHistory | String | (オプション設定)パイプされたコマンドの一覧です。(レポートがセッションから消去されている場合、コマンドを順番に適用します) |
SessionID | String | (オプション設定)以前のセッションのIDです。 |
LanguageCode | String | (オプション設定)言語を指定します。 |
応答要素
応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
管理ユーザーとしてのログインと、実行するwebサービスの呼び出しの指定を含む、こちらの呼び出しを実行するための基礎的なリクエストです。
ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("COMMAND");
レポートの保存されているクライアント組織を指定する必要がある場合は、こちらのコードを追加します。
rsr.setReportClientReferenceId("1");
レポートに適用するコマンドを追加します。
rsr.setAlterationCommand("DRILLDOWN|60712|53655|RXVyb3Bl");
必要に応じて、以前のリクエストからセッションIDを渡します。
rsr.setSessionId("ce509806176f6a0563767bfb0b2bb36f");
リクエストを構成したら、呼び出しを実行します。
ReportServiceResponse rs=rsc.remoteReportCall(rsr);
レポートwebサービスを初期化します。実行方法の詳細は、こちらを参照してください。
返される応答には、他の固有なパラメーターとともに、StatusCodeパラメーターが含まれます。詳細は、上記応答パラメーターの表を参照してください。
完成例
以下は、こちらの関数の完成例です。こちらを使用するには、以下の手順に従います。
- コードをコピーして、「ws_command_report.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_command_report.jsp」を実行します。
<%@page import="com.thoughtworks.xstream.io.xml.StaxDriver"%> <%@ 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="javax.xml.bind.JAXBContext" %> <%@ page import="javax.xml.bind.Marshaller" %> <%@ page import="java.io.StringWriter" %> <%@ page import="javax.xml.bind.JAXBElement" %> <%@ page import="javax.xml.namespace.QName" %> <% ReportService rsc = new ReportService(); //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService"); ReportServiceRequest rsr = new ReportServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); rsr.setPassword("test"); rsr.setOrgId(new Integer(1)); rsr.setReportRequest("COMMAND"); rsr.setReportId(60712); rsr.setAlterationCommand("DRILLDOWN|60712|53655|RXVyb3Bl"); rsr.setReportClientReferenceId("1"); rsr.setSessionId("ce509806176f6a0563767bfb0b2bb36f"); ReportServiceResponse rs=rsc.remoteReportCall(rsr); if ("SUCCESS".equals(rs.getStatusCode())) { %> <xmp> <% JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs); m.marshal(rootElement,out); %></xmp><% //out.write("Success"); } else { out.write("Failure"); out.write(" Code: " + rs.getErrorCode()); } %>