Thursday, May 17, 2012

Call Oracle Reports From Your ADF Application (Hide Report Parameters From URL)

Hello ADF Developers,

In my previous post I explain a way to call oracle report but this way has a problem. The problem is the report parameters appear in the URL. In this post I will explain another way to call oracle report without displaying report parameters in URL.
to call oracle report follow this steps:
1- Make a new .jsp page (for example the page name is  report.jsp).

2- In faces-config.xml make a navigation rule to report.jsp with outcome "report".

3- Write this code inside the report.jsp page

4- Create ADF page (.jspx or .jsf page) then add button (this button will call the report) and in the button action write this code:



  1. great post , sameh
    amr ismail

  2. Thank you , Sameh
    Very nice topic.

    Mahmoud Ahmed

  3. Sameh Thank you very much for post it works perfectly. I have a question though, how to open the report in a new page or tab and not the same one as the application.
    Any help please

    1. Hi Mohamed,
      you can add a af:clientListener inside the button call a script method. as :

      af:commandButton text="runReport" id="cb1">
      af:clientListener method="newWindow" type="action"/>

      newWindow is a script method like:
      function newWindow()
      document.getElementById("yourFormId").target = "_blank;targetfeatures=toolbar=no location=no directories=no menubar=no";

    2. where to write this function code?

  4. I must appreciate your post which is helping us in such a great manner.
    free 0800 numbers

  5. hi thanks for u post
    i have question for

    how call rdf from jsf not jsp ?

    1. Hi,
      jsp is just page for calling report. Your main pages is .jsf but you have only one .jsp for just calling the report

  6. Can use this toturial in JSPX page?

    1. Your ADF application will has .jspx, .jsf, .jsff pages no problems, but the created jsp page just for calling oracle report

    2. Good Work Sameh,
      Is there a way to path the report server name through the map

    3. You can put server url in a variable in sessionScope and you can read this variable in report.jsp page as:
      - In the button action after you create a map and put it in sessionScope you can add this
      FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("serverUrl", "write_server_Url");
      - In report.jsp get this variable from session as:
      form action=${sessionScope.serverUrl} method="post" id="form1"