logger.debug("documentId From Session:"+documentId);
}
logger.debug("documentId:"+documentId);
//get userprofile
IEngUserProfile profile = (IEngUserProfile) session.getAttribute(IEngUserProfile.ENG_USER_PROFILE);
logger.debug("profile from session: " + profile);
// AUDIT UPDATE
String auditId = request.getParameter("SPAGOBI_AUDIT_ID");
AuditAccessUtils auditAccessUtils = (AuditAccessUtils) request.getSession().getAttribute("SPAGOBI_AUDIT_UTILS");
if (auditAccessUtils != null)
auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, new Long(System
.currentTimeMillis()), null, "EXECUTION_STARTED", null, null);
//read connection from request
String requestConnectionName = (String) request.getParameter(CONNECTION_NAME);
if (requestConnectionName==null) logger.debug("requestConnectionName is NULL");
else logger.debug("requestConnectionName:"+requestConnectionName);
Connection con = null;
String query= null;
SpagoBiDataSet dataset = getDataSet(requestConnectionName, session, profile, documentId);
if (dataset == null) {
logger.debug("No dataset query associated to this document");
logger.debug("Try to get datasource");
con = getConnection(requestConnectionName,session,profile,documentId);
if(con == null){
logger.error("Document "+documentId+" has no dataset query neither datasource associated!");
// AUDIT UPDATE
if (auditAccessUtils != null)
auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, null, new Long(System
.currentTimeMillis()), "EXECUTION_FAILED", "No connection available", null);
return;
} else{
//get the request query parameter name
query = (String) request.getParameter(QUERY);
}
} else{
//get query
query = dataset.getQuery();
try {
con = dataset.getDataSource().readConnection(dataset.getDataSource().getSchemaAttribute());
} catch (Exception e) {
logger.error("Unable to get connection", e);
if (auditAccessUtils != null)
auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, null, new Long(System
.currentTimeMillis()), "EXECUTION_FAILED", e.getMessage(), null);
return;
}
}
//call dao to execute query
try {
//gets request parameters to execute query
HashMap<String, String> parameters = cleanParameters(request);
String xmlResult = QueryExecutor.executeQuery(con, query, parameters);
byte[] xsl = getDocumentXSL(requestConnectionName, session, profile, documentId);
byte[] html = Transformation.tarnsformXSLT(xmlResult, xsl);
String outputType = "html";
response.setContentType("text/html");
response.getOutputStream().write(html);
response.getOutputStream().flush();
} catch (Exception e1) {
logger.error("Unable to output result", e1);
if (auditAccessUtils != null)
auditAccessUtils.updateAudit(session,(String) profile.getUserUniqueIdentifier(), auditId, null, new Long(System
.currentTimeMillis()), "EXECUTION_FAILED", e1.getMessage(), null);
return;
}
logger.debug("OUT");