API to retrieve SQL query from a Webi Document

Hi,
Which API can be used to retrieve the Oracle SQL query for a webi report using BO XI web services SDK? The report is connected to a Oracle database in the backend.
A sample code is greatly appreciated.
Thanks a lot!
Liz

Hi Liz,
The libraries for the Enterprise and Report Engine SDKs are included with your Enterprise installation and the location will vary with each version:
XI Release 1 and Release 2
XI Release 1 (assuming it's installed on C:\):
- Windows: C:\Program Files\Common\3.0\java\lib
- Linux/UNIX: (INSTALL_DIR)/java/lib
XI Release 2:
- Windows: (INSTALL_DIR)\Business Objects\Common\3.5\java\lib
- Linux/UNIX: (INSTALL_DIR)/java/lib
There are quite a few JAR files in this location, but you should only need the following set for Enterprise & REBean with XI Release 1 or XI Release 2:
From the java\lib directory
- boconfig.jar
- cecore.jar
- celib.jar
- ceplugins.jar
- cereports.jar
- cesession.jar
- ceutils.jar
- cexsd.jar
- corbaidl.jar
- ebus405.jar
- jtools.jar
- keycodeDecoder.jar
- rebean.common.jar
- rebean.fc.jar
- rebean.jar
- rebean.wi.jar
- rpoifs.jar
- Serialization.jar
- URIUtil.jar
- wilog.jar     
From the java\lib\external directory:
- Concurrent.jar
- freessl201.jar
- icu4j.jar
- jaxrpc.jar
- jsafe.jar
- log4j.jar
- pullparser.jar
- saaj.jar
- sslj.jar
- xbean.jar
- xercesImpl.jar
- xml-apis.jar
BusinessObjects Enterprise XI 3.0
- Windows: (INSTALL_DIR)\Business Objects\Common\4.0\java\lib
- Linux/UNIX: (INSTALL_DIR)/java/lib
You can find a list of required JAR files in the [XI 3.0 Enterprise SDK Developer Guide|https://boc.sdn.sap.com/node/7298].
Cheers,
Parin
Edited by: Parin Patel on Jun 25, 2008 11:03 AM

Similar Messages

  • Retrieve SQL Query from report without RAS.

    We have a fat client application which uses Crystal Reports.  We upgraded from the RDC/ActiveX viewer to the .Net SDK/.Net Viewer.  One feature that we miss is that we used to read the SQL Query that a report used and wrote it to our log file.  This helped with debugging and with troubleshooting problems in the field.
    Since we only deploy the freely distributable Crystal Reports model and I don't think that RAS falls into this category is there a way which we can read the SQL Query from a report?  If not, could you add this to a list of requested features for future versions.
    I understand why you removed the ability to set the SQL query, but simply reading it does add value.  Maybe it is difficult for you to return this before the report is run in which case giving us the ability to read the value after the report has been run would also be fine.
    Alternatively some sort of event that is fired each time a query is executed would also be helpful as this would allow Crystal Reports clients to monitor SQL from sub-reports.  You could even build a robust logging mechanism which could report additional information (i.e. number of rows returned, formula evaluations, or anything related to report execution).  All of this would make troubleshooting report issues easier for those of us who use Crystal Reports.

    Need to know what version of CR you are using?
    You can use InProc RAS, it comes with CR and is distributed with the runtime files.
    If you are using CR Basic or the version that comes with Visual Studio .NET then no this will not be added to that product line. It is basic functionality only. You will need to upgrade to a Developer version of Crystal reports to take advantage of the the RCAPI features as well as more general API's.
    There is logging for our DB drivers but the log files get very large. If you use ODBC then you have the option to turn on tracing also. Using RAS you don't need to turn on logging as you can get the SQL. This won't be added either.
    Thank you
    Don

  • Dynamic charting in J2ME using SVG - based on SQL query from a web server

    Hi
    I am creating a J2ME application which needs to generate dynamic charts for the user.
    The data for generating the charts is stored on a web server. In order to have minimal computations on the mobile device, I want to generate the charts on the web server itself.
    I have written a code which generates svg (svg tiny) charts dynamically on a web server based on sql queries on a database . Now I want a J2ME client app to be able to retrieve this data through a web service.
    Can someone guide me as to how to return svg files from a java web service.
    Any help would be greatly appreciated.
    Regards
    Sparsh

    Hi
    Actually, I am developing my application using Netbeans 6. In order to connect to my web service , I am using the J2ME client to web service as the type of my project and that uses the above mentioned API's.
    My question is how do I enable my web service to return a SVG file , and then how do I retrieve it in the J2ME client. Any example application that anyone knows online would be really helpful

  • Extracting SQL statement from a Webi document's data provider using SDK.

    Hi all,
    Is it possible to extract the SQL statement from an existing Webi document's data provider using BO SDK?  I've searched through the class library but haven't found any information on this yet.  If you have done it, could you provide some guidance.  Many thanks.

    I found the following Java code that might be of some help to you. I realize you are using .NET but this might push you down the right path.
    The trick here is to use the Report Engine SDK to get the DataProvider of the DocumentInstance. Then, look at the SQLDataProvider to get your SQLContainer.
    My apologies for the poor formatting. This didn't copy and paste over to the forums very well. I've cleaned up as much as I could.
    <%@ page import="com.crystaldecisions.sdk.framework.*" %>
    <%@ page import="com.crystaldecisions.sdk.exception.SDKException" %>
    <%@ page import="com.crystaldecisions.sdk.occa.infostore.*" %>
    <%@ page import="com.businessobjects.rebean.wi.*" %>
    <%
    boolean loginSuccessful = false;
    IEnterpriseSession oEnterpriseSession = null;
    String username = "username";
    String password = "password";
    String cmsname  = "cms_name";
    String authenticationType = "secEnterprise";
    try
    //Log in. oEnterpriseSession = CrystalEnterprise.getSessionMgr().logon( username, password, cmsname, authenticationType);
    if (oEnterpriseSession == null)
    out.print("<FONT COLOR=RED><B>Unable to login.</B></FONT>");
    else
    {  loginSuccessful = true;
    catch (SDKException sdkEx)
    { out.print("<FONT COLOR=RED><B>ERROR ENCOUNTERED</B><BR>" + sdkEx + "</FONT>");}
    if (loginSuccessful) { IInfoObject oInfoObject = null;
    String docname = "WebI document name";
    //Grab the InfoStore from the httpsession IInfoStore oInfoStore = (IInfoStore) oEnterpriseSession.getService("", "InfoStore");  //Query for the report object in the CMS.  See the Developer Reference guide for more information the query language.   String query = "SELECT TOP 1 * " +        "FROM CI_INFOOBJECTS " +        "WHERE SI_INSTANCE = 0 And SI_Kind = 'Webi' " +        "AND SI_NAME='" + docname + "'";
    IInfoObjects oInfoObjects = (IInfoObjects) oInfoStore.query(query);
    if (oInfoObjects.size() > 0)
    //Retrieve the latest instance of the report  oInfoObject = (IInfoObject) oInfoObjects.get(0);
      // Initialize the Report Engine  ReportEngines oReportEngines = (ReportEngines)
    oEnterpriseSession.getService("ReportEngines"); 
    ReportEngine oReportEngine = (ReportEngine) oReportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
      // Openning the document  DocumentInstance oDocumentInstance = oReportEngine.openDocument(oInfoObject.getID());   
    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>" + (j+1) + "</TD><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(); }
    oEnterpriseSession.logoff();}%>

  • BusinessObject 4.0 API to get SQL statement from webi or crystal report

    Hello,
    Need your help.... could you confirm whether BusinessObjects 4.0 provides any SDK, API or Web Service to get physical SQL statement from the webi or crystal reports file?
    If so, could you provide name of package, class and method?
    If I am not wrong, there is an SDK in v3.0 that allows to extract the SQL. But I am reading a lot on these forums that lot of SDK classes and functions are deprecated / removed in v4.0.
    Thanks for your help.
    Omer

    For Crystal Reports in BI 4.0 to retrieve the SQL query you can use Report Application Server SDK. Here is a code snippet that retrieves the SQL statement.
    //oInfoObjectReport is of type IInfoObject corresponding to the crystal report.
    ReportClientDocument reportClientDoc = reportAppFactory.openDocument(oInfoObjectReport, 0, Locale.ENGLISH);
            //for all crystal reports
            GroupPath grpPath = new GroupPath();
            //get CR SQL query string
            String reportSQL=reportClientDoc.getRowsetController().getSQLStatement(grpPath,null);
            System.out.println("report SQL String: "+reportSQL);
            //for report whose datasource is command object:
            Tables tables = reportClientDoc.getDatabaseController().getDatabase().getTables();
            for (int i = 0; i < tables.size(); i++)
             ITable table = tables.getTable(i);
             ICommandTable ic= (ICommandTable) table;
             //Command can be obtained from the report using getCommandObject() method
             //get CR SQL query string
             String SQLText=ic.getCommandText();
             System.out.println("SQLText_"+i+": "+SQLText);
    Here are useful links for BI 4.0
    [RAS API Specification|http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_rasjava_apiRef_en.zip]
    [RAS Developer Guide|http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_rasjava_dg_en.zip]

  • Call BW query from a Web application

    Hi,
    I am trying to call a BW query from a Web application. Could you please let me know how to pass the parameters to the query.
    Thanks,
    Rekha

    I don't know about db2 APIS, but you can use JDBC to connect to DB2 physical files/tables with the DB2 driver. You would need the jar file with the driver info though. I've done this with the webshpere appserver.
    import com.ibm.db2.jdbc.app.DB2Driver;
    Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
    connectionVar = DriverManager.getConnection("jdbc:db2://SERVERNAME/LIBRARY", "user", "passwd");
    That's the basic info that will get you connected and then you can access any files or tables that are in that library with SQL. You would have to use the Java API though - statements, resulsets etc. Hope it helps.

  • See sql query from crystal report without crystal report

    see sql query from crystal report without crystal report 

    Hi,
    Depends on datasource type but you could have a look at ODBC trace or if you have access to the SQL Server you could use profiler to monitor the session.
    Regards,
    Craig
    And this will only be of use if you know which Server/Insstance/Database the Report is connecting to...
    Please click "Mark As Answer" if my post helped. Tony C.

  • Help with translating SQL query from SQL Server syntax to Oracle syntax

    Hi,
    is it someone that can help me translate following SQL query from SQL Server syntax to Oracle syntax.
    SELECT ID,
    [LMT(MTR)] = MAX(case when TYPE = 'LMT' then VALUE end),
    [AAD(KGM)] = MAX(case when TYPE = 'AAD' then VALUE end),
    [VOL(MTQ)] = MAX(case when TYPE = 'VOL' then VALUE end)
    FROM yourtable
    GROUP BY ID
    Your help is highly appreciated, thanks in advance.

    Like this,
    SELECT ID,
    MAX(case when TYPE = 'LMT' then VALUE end) LMT_MTR,
    MAX(case when TYPE = 'AAD' then VALUE end) AAD_KGM ,
    MAX(case when TYPE = 'VOL' then VALUE end) VOL_MTQ
    FROM yourtable
    GROUP BY ID-Arun

  • How to transport SQL Query from SQVI Tcode?

    Dear Friends,
    Can any one tell me how to transport SQL Query from <b>SQVI</b> Tcode.
    Full Points will be rewarded.
    Thanks & Reagrds
    Ravi

    go to sqvi tool .....
    select u r query name ......in the menubar ....quickview....> additianal functions.......>generate program
    after doing generate program ....go to again same menu path as i have mentioned above [quickview....> additianal functions.......>display report name it will give the report name of the select query ..........copy the report name and give it abap editor[se38] u will get u r query program......with all authority checks.....
    in start of selection event of u r program u will find u r select query.
    reward points if helpful

  • How to retrieve generated sql query from interface using groovy

    Hi All,
    I'm new to odi and i need the generated sql query code from the interface using groovy.

    Hi All,
    I'm new to odi and i need the generated sql query code from the interface using groovy.

  • How to run a sql query from a button in apex 3.0

    Hi,
    I am brand new and went through/installed the obe project tracker. I have need to create a simple application that displays a result (2 fields, name and license number) based on two parameters (dob and login id) which all are stored in 1 table in the database. I could this very simply in VB or VB.net but have no idea how to do it in apex.
    Please provide guidance,
    Thank you,
    Tom

    Hi Tom,
    Sounds like a report region will satisfy your requirements.
    Create a new report region on one of your pages.
    Choose SQL Report and give the region a title.
    When you get to the "Enter SQL Query or PL/SQL function returning a SQL Query:" step, type:
    SELECT name, license_number
    FROM   <insert_your_table_name_here>
    WHERE  dob = :P<n>_dob
    AND    login_id = :P<n>loginid(replace <n> with the page number that the region is on and use your own table name).
    Don't try to run the page yet - it will give 'No data found'
    Now, go back to the Page Definition screen and add two items in the region you just created - call them P<n>dob and P<n>login_id
    Then, create a button in the same region (to be displayed amongst the region's items) - call it P<n>_GO and click 'Create' (take all the other defaults).
    Now you can run the page, put some values into the fields and click go.
    If you want to get fancier, you can change the text items to select lists etc. - let us know if you need help with that.
    Hope this helps,
    Bryan.

  • Oracle SQL Query from EXCEL 2007 with prompt

    Hello,
    I have many excel reports where I am pulling information from our Oracle 9 db through Excel using the following method:
    http://blog.mclaughlinsoftware.com/microsoft-excel/how-to-query-oracle-from-excel-2007/
    http://blog.mclaughlinsoftware.com/2009/11/30/sql-query-in-excel-2007/
    However, I am having trouble when I try the following query due to the prompt:
    SELECT
    IM.ITEM_GROUP,
    IM.ITEM,
    IM.DESCRIPTION
    FROM
    LAWSON.ITEMMAST IM
    WHERE
    IM.ITEM = '&ITEM';
    Does any one know how I can connect a prompt to an excel cell and then pass the query on to Oracle, or have a PL SQL prompt work from Excel?
    Thanks,
    Ben

    The 'prompt' as you call it is a sqlplus feature, so does not belong to the SQL language
    You would need to write a stored procedure returning a resultset.
    create or replace procedure foo(rc in out sys_refcursor, p_item) as
    begin
    open rc for
    'SELECT
    IM.ITEM_GROUP,
    IM.ITEM,
    IM.DESCRIPTION
    FROM
    LAWSON.ITEMMAST IM
    WHERE
    IM.ITEM = '||p_item;
    end;
    and call that using ODBC or asp.net
    Obviously this is profusely documented.
    Sybrand Bakker
    Senior Oracle DBA

  • Export SQL query from link or button

    I want to list several 'canned' SQL queries on one page as buttons or links; and have the result of selection be an immediate extract/download to excel of the data.
    How can I best do this?
    I suppose I could create separate hidden regions with their own reports that could somehow be referenced in the link. I would like to avoid doing all that, if I can create a package or process that includes the SQL query and that can be called in the link.
    Thanks in advance,
    Rich
    Edit:
    Found 'Report Query' functionality in Apex v3.2.1: However I am unable to get this to work; tells me my printer is not set up. I don't want to print the detail, I want it to be downloaded into excel... I don't have a printer configured - & don't want to. The URL provided for download as attachment is:
    f?p=&APP_ID.:0:&SESSION.:PRINT_REPORT=reportname
    I also have no page 0.
    Help?
    Edited by: rdarlin2 on Sep 16, 2011 11:14 AM

    rdarlin2 wrote:
    I want to list several 'canned' SQL queries on one page as buttons or links; and have the result of selection be an immediate extract/download to excel of the data.
    How can I best do this?
    I suppose I could create separate hidden regions with their own reports that could somehow be referenced in the link. I would like to avoid doing all that, if I can create a package or process that includes the SQL query and that can be called in the link.10,000ft overview of one way to do this:
    <li>Create a package with private functions that return the SQL for each "canned query", and a public switch function that returns a query function based on an input parameter:
    create or replace package qry
    is
      function selector (p_req_qry in varchar2) return varchar2;
    end qry;
    create or replace package body qry
    is
      function emp_qry return varchar2
      is
      begin
        return 'select * from emp';
      end emp_qry;
      function dept_qry return varchar2
      is
      begin
        return 'select * from dept';
      end dept_qry;
      function selector (p_req_qry in varchar2) return varchar2
      is
      begin
        return
          case p_req_qry
            when 'EMP' then emp_qry()
            when 'DEPT' then dept_qry()
          end;
      end selector;
    end qry;
    /<li>Create 2 pages
    <li>On page 2 create a standard SQL report region of type SQL Query (PL/SQL function body returning SQL query):
    Region Source
    return qry.selector(:request);*(o) Use Generic Column Names (parse query at runtime only)*
    Maximum number of generic report columns
    number of columns in your biggest query
    Report Template
    export: CSV
    <li>On page 1 create an HTML region (or use an APEX list) with a link for each query, where the REQUEST component of the URL is the parameter used to select a query in the <tt>qry.selector</tt> function:
    <ul>
      <li>&lt;a href="f?p=&APP_ID.:2:&SESSION.:EMP"&gt;Emp</a></li>
      <li>&lt;a href="f?p=&APP_ID.:2:&SESSION.:DEPT"&gt;Dept</a></li>
    </ul>However this begs the question: Why bother? What's Excel got that APEX hasn't?

  • Sql query from Oracle/Hyperion

    Hi, guys. my problem is:
    My work environment is windows 2003 server sp2 on both servers, to have a Hyperion System 9.2 and the other Hyperion System 9.3.1. I have an Oracle ODBC server to fetch data.
    When you load data from an Oracle database (version 9.2.0.5) to an Essbase cube through a rule file sql Hyperion System with version 9.2 everything works fine, I am all the necessary information. But when I try to do the same (in another server, version 9.3.1 Hyperion System) with the sql query does not do well. What is the problem. the bag is a bad version or set the ODBC
    please help me
    Thank you very much.
    Alberto.

    without knowing more information, I'm going to guess the probem is with the ODBC driver. Try using the SQL in a tool like toad to use the ODBC to query the data. That will tell you if it is an ODBC issue or not.

  • SQL query from toplink expression

    Hi,
    I have a oracle.toplink.expressions.Expression object with me which has been created using oracle.toplink.expressions.ExpressionBuilder. I want to find its equivalent SQL query(say select emp.empname,emp.empId from employee emp) which will be fired in order to fetch data i.e. find its equivalent Statement/PreparedStatement or anything which will help me obtain the raw SQL statement about to be fired.
    Please let me know if there is any soln.
    Thanks,
    Adithya.

    You can create ReadAllQuery with the expression and get the query's SQL using query.prepareCall() and then query.getSQLString().
    James : http://www.eclipselink.org

Maybe you are looking for

  • How do I get the...

    How do I get the Finder window to always open in the same location on my desktop no matter what? Example: Every time I double click on the "Macintosh HD" I want the window to be in the same location and same size as it was before. Even after a comple

  • Portal Backing file -- ClassNotFoundException

    I am using weblogic8.1 SP3. I try to give a backing file for .portal desktop. I put this backing file, PortalBacking.java in the portal project root directory which is the same directory as .portal file. And give PortalBacking.java in Backing File pr

  • ALE using PULL Approach question

    Hello All,               Can anybody  explain me the sep-by-step process for getting the material master using BD11- PULL approach. I had already configured the Distribution model for sending the request MASFET in system B, from which we are requesti

  • ITS in CRM 2007

    we have followed the buidling block C04 to set up the ITS. somehow, when we call a win gui ABAP Report in CRM Web Client, the transaction launcher shows the win gui heading and title. but then soon it goes back to the home page and pops up another wi

  • Function Module from BOM

    Hi, I need to identify from a give material code that where all it has been used in BOM as component. Is there any function module which I can directly use to get this information. I need material no., Alt BOM, and Plant as output. I know it can be a