%@ 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.Arrays" %>
<%@ 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 sResultnametag = request.getParameter("resultnametag");
if (sResultnametag == null) {
sResultnametag = "MyResults";
}
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 in user's "Favorites" folder for the requested file pattern
query = "select * from ci_infoobjects where si_kind=\'TXT\' and si_parent_folder="+obj.getID()+" and si_name like \'"+sPrefix+"%\'";
infoobjects = (IInfoObjects) myInfoStore.query(query);
// create the output document with the list of files
StringBuffer fNames=new StringBuffer("");
String[] fNamesA=new String[infoobjects .size()];
for(int i = 0; i < infoobjects.size(); i++){
obj=(IInfoObject) infoobjects.get(i);
fNamesA[i] = new String(obj.getTitle().substring(sPrefix.length()+1));
}
Arrays.sort(fNamesA);
for(int i = 0; i < infoobjects.size(); i++){
fNames.append("\n"+fNamesA[i]+"\n
\n");
}
sCont="\n"+fNames+"\n";
} catch (Exception ex) {
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 %>