%@ page import="com.crystaldecisions.sdk.framework.*" %>
<%@ page import="com.businessobjects.foundation.exception.*" %>
<%@ page import="com.crystaldecisions.sdk.exception.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoStore" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObject" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.io.ByteArrayOutputStream" %>
<%@ page import="com.crystaldecisions.sdk.plugin.CeKind"%>
<%@ page import="com.crystaldecisions.sdk.exception.SDKException"%>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.CeSecurityID"%>
<%@ page import="com.businessobjects.sdk.plugin.desktop.infoview.PreferenceConstants"%>
<%@ page import="com.crystaldecisions.sdk.framework.IEnterpriseSession,
com.businessobjects.webutil.clientaction.ActionHelper,
java.util.ArrayList"%>
<%@ page import="java.util.ResourceBundle"%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Locale" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%
//< page contentType="text/xml" > -- seems to cause problems with Xcelsius
String sServer=null;
String sUsername = null;
String sPassword = null;
String sPrefix = request.getParameter("prefix").toUpperCase();
String sShortFilename = request.getParameter("filename");
String sResultnametag = request.getParameter("resultnametag");
if (sResultnametag == null) {
sResultnametag = "MyResults";
}
String sFilename=sPrefix+"_"+sShortFilename;
String sSuccessFailMsg="{empty}";
String sCont="";
String sErr="";
IEnterpriseSession eSession = null;
try {
final ISessionMgr sessionMgr=CrystalEnterprise.getSessionMgr();
/* eSession = ActionHelper.getEnterpriseSession(request); */
String sToken = request.getParameter("CELogonToken");
sErr="0";
if (sToken == null || sToken.equals("")) {
sErr="1";
sServer=request.getParameter("CMS");
sUsername = request.getParameter("userid");
sPassword = request.getParameter("password");
sErr="2";
eSession = sessionMgr.logon(sUsername, sPassword, sServer, "secEnterprise");
} else {
sErr="3";
eSession = sessionMgr.logonWithToken(sToken);
}
sUsername=eSession.getUserInfo().getUserName().toString();
} catch (Exception ex) {
//logon problems
sSuccessFailMsg="Logon error: "+ex.getMessage();
sCont = ""+sSuccessFailMsg+". Step "+sErr+"
";
}
if (sCont.equals("")) {
try {
// search Infostore for user's 'Favorites' folder
String query = "select * from ci_infoobjects where si_kind=\'FavoritesFolder\' and si_name=\'"+sUsername+"\'";
IInfoObjects infoobjects = null;
IInfoStore myInfoStore = (IInfoStore) eSession.getService("InfoStore");
infoobjects = (IInfoObjects) myInfoStore.query(query);
IInfoObject obj=(IInfoObject) infoobjects .get(0);
String sFolderid = String.valueOf(obj.getID());
// search for the requested file in user's "Favorites" folder
query = "select * from ci_infoobjects where si_kind=\'TXT\' and si_parent_folder="+sFolderid+" and si_name=\'"+sFilename+"\'";
infoobjects = (IInfoObjects) myInfoStore.query(query);
if (infoobjects.size() == 0) {
sSuccessFailMsg = "There is no file with name "+sFilename +" in your Favorites";
// file wasn't found - instead of its content return error message
sCont = ""+sSuccessFailMsg+"
";
} else {
obj=(IInfoObject) infoobjects.get(0);
sSuccessFailMsg="got file "+obj.getID()+", "+obj.getTitle();
// create file object
IFiles files = obj.getFiles();
IRemoteFile file = (IRemoteFile) files.get(0);
// read the file into a ByteArrayOutputStream (assuming it is smaller than 32000 bytes)
ByteArrayOutputStream bout2 = new ByteArrayOutputStream(32000);
boolean b=file.download(bout2);
file.commit();
// convert ByteArrayOutputStream into a String - this is the result
sCont = bout2.toString().trim();
}
} catch (Exception ex) {
// some kind of an error. instead of content return the error message
sSuccessFailMsg="Error: "+ex.getMessage();
sCont = ""+sSuccessFailMsg+"
";
} finally {
//logoff
if (eSession != null) {
eSession.logoff();
eSession = null;
session.invalidate();
}
}
}
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",-1);
%>
<%= sCont %>