Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Archive for Januar 2008

A short history of Web Services in Oracle BI Publisher

leave a comment »

Oracle BI Publisher is a very powerful and smart solution to produce high-quality output like reports and documents.
Until version 10.1.3.3.0 there was a non-public web service API which for example could be used to run a report by calling the method getReportData().
Product managers always pointed out that this API is still not public and could be changed in the future.
With Oracle BI Publisher 10.1.3.3.1 the web service API was finally published. One of the big changes is that a report is now being called
by the method runReport().
The BI Publisher web services are implemented with Apache’s Axis.
The WSDL is: http://<machine&gt;:<port>/<your_appname>/services/PublicReportService?wsdl
(Default for <your_appname> is xmlpserver)
If there are problems to call the WSDL of the web services deployed in OC4J (Oracle Containers for J2EE)
a complete definition of the WSDL can be found in the documentation at:
http://download.oracle.com/docs/cd/E10383_01/doc/bip.1013/e10416/bip_webservice_101331.htm#BABHEHEJ.

A description of the new public web service API can be found in the documentation:
http://download.oracle.com/docs/cd/E10383_01/doc/bip.1013/e10416/bip_webservice_101331.htm#CHDGIJHH

For people who are interested how BI Publisher web services can be called from Oracle Forms there is an updated White Paper available here.

<JM>

Advertisements

Written by fmtechteam

30/01/2008 at 20:41

Veröffentlicht in BI Publisher, Jürgen Menge

Tagged with

Calling Web Service from Forms

leave a comment »

OK, for an OO-experienced person this seems to be obvious but sometimes it helps to clarify things. If you call a web service client (web service stub) from Oracle Forms you have to import one or more classes of the web service client into the Forms module.

There are different case:

    1. If the class is static the signature of the imported methods in most cases only contains simple datatypes like in this example
      FUNCTION <method>(
      a0 VARCHAR2,
      a1 VARCHAR2,
      a2 VARCHAR2) RETURN BOOLEAN;
      This can be handled easily from your Forms application by passing the appropriate values.


    1. If the class is non-static, i.e. there are existing instances of this class you will find an object in the signature of the PL/SQL method call: FUNCTION <method>(
      obj ORA_JAVA.JOBJECT,
      a0 VARCHAR2,
      a1 VARCHAR2) RETURN ORA_JAVA.JOBJECT;
      In this case you have to pass an initialized object for this class by using the method new in your PL/SQL code:
      obj := <class>.new();


  1. If the class is non-static and requires an additional object to be passed as a parameter to the called method the signature of the PL/SQL method call could look like this:
    FUNCTION <method>(
    obj ORA_JAVA.JOBJECT,
    a0 ORA_JAVA.JOBJECT,
    a1 VARCHAR2,
    a2 VARCHAR2) RETURN ORA_JAVA.JOBJECT;
    In this case you have to pass an initialized object for this class by using the method new in your PL/SQL code:
    obj := <class>.new(); and
    to initialize an additional object for the parameter by importing the required class into the Forms module and create a new instance:
    a0:<additional_class>.new();

<JM>

Written by fmtechteam

13/01/2008 at 23:03

Veröffentlicht in BI Publisher, Forms, Jürgen Menge

Tagged with

Using Ref Cursors as a Data Source in Oracle BI Publisher

leave a comment »

Sometimes there is a requirement to use a referential cursor in the SQL query of a BI Publisher report.
You can use ref cursors which return a single row or multiple rows.

Here is an example of a ref cursor returning a single row:
In the database create a function REF_CURSOR_CUST in the demo schema OE

create or replace function REF_CURSOR_CUST (p_customer_id IN number)
return SYS_REFCURSOR as
TYPE t_cursor is REF CURSOR;
v_cursor t_cursor;
begin
open v_cursor FOR
select customer_id, cust_first_name, cust_last_name, credit_limit,
cust_email, gender, income_level
from customers
where customer_id = p_customer_id;
RETURN v_cursor;
end REF_CURSOR_CUST;

In the data definition of the BI Publisher report you can now use the ref cursor in your query:
select ref_cursor_cust(:cust_id) from dual

Because of a small bug this query will return no rows if you test it against the BI Publisher server 10.1.3.3.1.
Just add something to the select-list and it will work as expected:
select null, ref_cursor_cust(:cust_id) from dual

Den Rest des Beitrags lesen »

Written by fmtechteam

06/01/2008 at 19:31

Veröffentlicht in BI Publisher, Jürgen Menge