Quantcast
Channel: SCN: Message List - Java SDK Application Development
Viewing all articles
Browse latest Browse all 2284

Re: How to retrive Sql Of Webi reports In One go

$
0
0

<html>

<body>

 

 

<%@ page import="com.crystaldecisions.sdk.framework.*,

               com.crystaldecisions.sdk.occa.infostore.*,

             com.businessobjects.rebean.wi.*,

  java.io.*"

%>

<%

  //Enter Username

  String username = "username";

  //Enter User password

  String password = "password";

  //Enter CMS Name

  String cmsname = "cmsname";

  String authtype = "secEnterprise";

  //Enter the folder if for which you need to retrieve the webi reports objects

  int report_folder_id=2750278;

  IEnterpriseSession oEnterpriseSession=null;

  ReportEngines engines=null;

  ReportEngine widocRepEngine=null;

  try

  {

  oEnterpriseSession = CrystalEnterprise.getSessionMgr().logon(username, password, cmsname, authtype);

  engines = (ReportEngines) oEnterpriseSession.getService("ReportEngines");

  widocRepEngine = (ReportEngine) engines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);

 

 

 

  getReportObjectsInFolder(oEnterpriseSession,widocRepEngine,report_folder_id,out);

  }

  catch(Exception e)

  {

  out.println(e);

  }

  finally

  {

  widocRepEngine.close();

  engines.close();

  oEnterpriseSession.logoff();

 

  }

%>

</table>

</body>

</html>

<%!

private void getReportSQL(IEnterpriseSession oEnterpriseSession,ReportEngine widocRepEngine,int reportID, JspWriter out) throws Exception

{

 

// Opening the document

  DocumentInstance oDocumentInstance = widocRepEngine.openDocument(reportID);

 

  DataProvider oDataProvider = null;

  SQLDataProvider oSQLDataProvider = null;

  SQLContainer oSQLContainer_root = null;

  SQLNode oSQLNode = null;

  SQLSelectStatement oSQLSelectStatement = null;

  String sqlStatement = null;

  out.print("<TABLE BORDER=1>");

  for (int i=0; i<oDocumentInstance.getDataProviders().getCount(); i++) {

   oDataProvider = oDocumentInstance.getDataProviders().getItem(i);

   out.print("<TR><TD COLSPAN=2 BGCOLOR=KHAKI>Data Provider Name: " + oDataProvider.getName() + "</TD></TR>");

   if (oDataProvider instanceof SQLDataProvider) {

    oSQLDataProvider = (SQLDataProvider) oDataProvider;

    oSQLContainer_root = oSQLDataProvider.getSQLContainer();

    if (oSQLContainer_root != null) {

     for (int j=0; j<oSQLContainer_root.getChildCount(); j++) {

      oSQLNode = (SQLNode) oSQLContainer_root.getChildAt(j);

      oSQLSelectStatement = (SQLSelectStatement) oSQLNode;

       

      sqlStatement = oSQLSelectStatement.getSQL();

      out.print("<TR><TD>" + sqlStatement + "</TD></TR>");

     }

    }

   } else {

    out.print("<TR><TD COLSPAN=2>Data Provider is not a SQLDataProvider.  SQL Statement can not be retrieved.</TD></TR>");

   }

  }

  out.print("</TABLE>");

  oDocumentInstance.closeDocument();

 

}

private void getReportObjectsInFolder(IEnterpriseSession oEnterpriseSession,ReportEngine widocRepEngine,int reportFolderID, JspWriter out) throws Exception

{

 

 

IInfoStore oInfoStore = (IInfoStore)oEnterpriseSession.getService("","InfoStore");

 

try

{

  String query = "select si_id from ci_infoobjects where SI_PARENTID="+reportFolderID;

  IInfoObjects oInfoObjects = oInfoStore.query(query);

 

 

  for(int i=0;i<oInfoObjects.size();i++)

  {

  IInfoObject oInfoObject = (IInfoObject) oInfoObjects.get(i);

  String objectKind1=oInfoObject.getKind();

  if(objectKind1.equals("Folder"))

  {

  int folderID=oInfoObject.getID();

  IInfoObjects boReportInfoObjects=oInfoStore.query("SELECT SI_ID FROM CI_INFOOBJECTS WHERE SI_PARENTID="+folderID);

  for(int j=0;j<boReportInfoObjects.size();j++)

  {

  IInfoObject boReportInfoObject=(IInfoObject)boReportInfoObjects.get(j);

  String objectKind=boReportInfoObject.getKind();

  if(objectKind.equals("Folder"))

  {

  getReportObjectsInFolder(oEnterpriseSession,widocRepEngine,boReportInfoObject.getID(),out);

 

  }

  else if(objectKind.equals("Webi"))

  {

  out.println("<h3><b>"+boReportInfoObject.getTitle()+"</B></h3>");

  getReportSQL(oEnterpriseSession,widocRepEngine,boReportInfoObject.getID(),out);

 

  }

 

  }

  }

  else if(objectKind1.equals("Webi"))

  {

 

  out.println("<h3><b>"+oInfoObject.getTitle()+"</B></h3>");

  getReportSQL(oEnterpriseSession,widocRepEngine,oInfoObject.getID(),out);

 

 

  }

 

 

  }

}

catch(Exception exe)

{

out.println(exe);

}

}

 

%>


Viewing all articles
Browse latest Browse all 2284

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>