こちらのWebサービスは、ユーザーのプロフィール画像を取得するために使用されます。ユーザーがYellowfinにプロフィール画像を設定していない場合は、画像は取得されません。こちらのサービスは、ユーザーの内部ID(IP ID)を要求します。 リクエスト要素以下の要素は、こちらのリクエストとともに渡されます。 リクエスト要素 | データ型 | 説明 | LoginId | String | Yellowfin Webサービスに接続する管理者アカウントです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 このYellowfinアカウントは、「Yellowfin Webサービス使用権」が有効化されたロールを持ち、デフォルト(プライマリー)組織に所属していなくてはいけません。 | Password | String | 上記アカウントのパスワードです。 | OrgId | Integer | Yellowfin内のデフォルト(プライマリー)組織IDです。常に、「1」に設定します。 | Function | String | Webサービス関数です。こちらは、「GETAVATARS」に設定します。 | Parameters | String[] | プロフィール画像を取得するYellowfinユーザーの内部ID(または、IpId)が含まれる配列です。各IDは、Integerのものもすべて、Stringとして渡されなくてはいけません。 |
リクエストの例以下は、こちらのリクエストのSOAP XMLの例です。 Code Block |
---|
| <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/">
<soapenv:Header/>
<soapenv:Body>
<web:remoteAdministrationCall>
<arg0>
<loginId>admin@yellowfin.com.au</loginId>
<password>test</password>
<orgId>1</orgId>
<function>GETAVATARS</function>
<parameters>5</parameters>
</arg0>
</web:remoteAdministrationCall>
</soapenv:Body>
</soapenv:Envelope> |
応答のパラメーター返される応答には、これらののパラメーターが含まれます。 応答要素 | データ型 | 説明 | StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。 | binaryAttachments | ReportBinaryObject[] | 指定したユーザーのプロフィール画像を含みます。 |
応答の例サービスは、今回のSOAPの例に基づき、以下の応答を返します。 Code Block |
---|
| <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/">
<return>
<binaryAttachments>
<errorCode>0</errorCode> <messages>Successfully Authenticated User:<data>iVBORw0KGgoAAAANSUhEUgAAA admin@yellowfin..com.au</messages> your <messages>Getting user information...</messages>image string</data>
<messages>Getting user information...</messages>binaryAttachments>
<messages>Web Service Request Complete</messages><errorCode>0</errorCode>
<person><messages>Successfully Authenticated <emailAddress>admin@yellowfinUser: admin@yellowfin.com.au</emailAddress>messages>
<messages>Web Service Request <firstName>System<Complete</firstName>messages>
<initial/><sessionId>5547ebe153fd0fc7fcf63014ffe61b5c</sessionId>
<ipId>5</ipId><statusCode>SUCCESS</statusCode>
</return>
<languageCode>EN<</languageCode>
<lastName>Administrator</lastName>
<roleCode>YFADMIN</roleCode>
<salutationCode/>
<status>ACTIVE</status>
<timeZoneCode>AUSTRALIA/SYDNEY</timeZoneCode>
<userId>admin@yellowfin.com.au</userId>
</person>
<sessionId>81e76f1222d0dd12d9871efc7cbf0811</sessionId>
<statusCode>SUCCESS</statusCode>
</return>
</ns2:remoteAdministrationCallResponse>
</S:ns2:remoteAdministrationCallResponse>
</S:Body>
</S:Envelope> |
手順Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。 Expand |
---|
| こちらは、この呼び出しの基礎的なリクエストであり、管理ユーザーとしてのログインと、実行するWebサービスの呼び出しの指定を含みます。管理ユーザーとしてのログインと、実行するWebサービスの呼び出しの指定を含む、こちらの関数の基礎的なリクエストから開始します。
Code Block |
---|
| AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au");
rsr.setPassword("test");
rsr.setOrgId(1);
rsr.setFunction("GETUSERBYIP"); |
IpIdを提供し、詳細を取得するユーザーを識別するために、AdministrationPersonオブジェクトを使用します。 Code Block |
---|
| AdministrationPerson ap = new AdministrationPerson();
ap.setIpId(5); //IpId of the ();
rsr.setLoginId("admin@yellowfin.com.au account");
rsr.setPassword("test");
rsr.setPersonsetOrgId(ap1); |
リクエストの構成が完了したら、呼び出しを実行します。 Code Block |
---|
| AdministrationServiceResponse
rs =
adminServicersr.remoteAdministrationCallsetFunction(rsr"GETAVATARS"); |
- 応答には、StatusCodeとPersonパラメーターが含まれます。より詳細な情報は、上記の応答パラメーターの表を参照してください。
| Code Block |
---|
| <%- この呼び出しの結果を表示するには、以下の例を使用します。
Code Block |
---|
| if ("SUCCESS".equals(rs.getStatusCode()) ) {
ap = rs.getPerson();
out.write("UserId: " + ap.getUserId() + "<br>");
out.write("Password: " + ap.getPassword() + "<br>");
out.write("FirstName: " + ap.getFirstName() + "<br>");
out.write("LastName: " + ap.getLastName() + "<br>");
out.write("Initial: " + ap.getInitial() + "<br>");
out.write("SalutationCode: " + ap.getSalutationCode() + "<br>");
out.write("RoleCode: " + ap.getRoleCode() + "<br>");
out.write("EmailAddress: " + ap.getEmailAddress() + "<br>");
out.write("LanguageCode: " + ap.getLanguageCode() + "<br>");
out.write("IpId: " + ap.getIpId() + "<br>");
out.write("TimeZoneCode: " + ap.getTimeZoneCode() + "<br>");
out.write("Status: " + ap.getStatus() + "<br>");
} else {
out.write("Failure");
out.write(" Code: " + rs.getErrorCode());
} |
|
完成例以下は、GETUSERBYIP関数の完成例です。こちらを使用するには、以下の手順に従います。 - コードをコピーして、「ws_getuserbyip.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じた詳細を追加するために、ホスト、ポート番号、管理ユーザー、ユーザーを調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_getuserbyip.jsp」を実行します。
- 応答には、StatusCode要素と、BinaryAttachment配列が含まれます。
最初の画像を取得するためには、以下を使用します。
Code Block |
---|
| byte[] data = response.getBinaryAttachments[0].getData(); |
|
完成例以下は、Webサービスの呼び出しの完成例です。こちらを使用するには、以下の手順に従います。 - コードをコピーして、「ws_getavatar.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じた詳細を追加するために、ホスト、ポート番号、管理ユーザー、ユーザーを調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_getavatar.jsp」を実行します。
Code Block |
---|
| <%
/* ws_getavatars.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.*" %>
<html>
<body>
<%
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"); ws_getuserbyip.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 set to the password of the above account
rsr.setOrgId(1);
rsr.setFunction("GETAVATARS");
rsr.setParameters(new String[] {"5","13073"});
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
if ("SUCCESS".equals(rs.getStatusCode()) ) {
ReportBinaryObject[] objects = rs.getBinaryAttachments();
if (objects != //null) adjust{
host and port number AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService()byte[] data,encodeBase64;
AdministrationServiceRequest rsr = new AdministrationServiceRequest();
rsr.setLoginId("admin@yellowfin.com.au")String base64Encoded;
// provide your Yellowfin web services admin account
rsr.setPassword("test");for(ReportBinaryObject o: objects){
data = o.getData();
if (data != null){
// change
to the password of the above account rsr.setOrgId(1); rsr.setFunction("GETUSERBYIP"); AdministrationPerson ap = new AdministrationPerson(); encodeBase64 = ap.setIpId(5);
rsr.setPerson(ap);
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
if ("SUCCESS".equals(rs.getStatusCode()) ) {java.util.Base64.getEncoder().encode(data);
apbase64Encoded = new rs.getPerson(String(encodeBase64, "UTF-8");
out.write("User Id: " + ap.getUserId() + "<br>"); out.write("Password: " + ap.getPassword() + "<br>"); if (base64Encoded != null)
out.write("First Name: " + ap.getFirstName() + "<br>"); out.write("Last Name: " + apout.getLastNamewrite() + "<br>");
out.write("Initial: " + ap.getInitial() + "<br>"); out.write("Salutation Code: "%>
+ ap.getSalutationCode() + "<br>"); out.write("Role Code: " + ap.getRoleCode() + "<br>"); out.write("Email Address: " + ap.getEmailAddress() + "<br>");<img src="data:image/jpg;base64,<%=base64Encoded%>" alt="No image">
out.write("Language Code: " + ap.getLanguageCode() + "<br>"); <%
out.write("IpId: " + ap.getIpId() + "<br>"); out.write("Time Zone Code: " + ap.getTimeZoneCode() + "<br>");
out.write("Status: " + ap.getStatus() + "<br>");}
}
}
} else {
out.write("Failure");
out.write(" Code: " + rs.getErrorCode() );
}
%>
</body>
</html> |
|