Oracle BI EE 10.1.3.4 – Calling BI EE WSDL from BI Publisher

Another very important and very good feature of BI Publisher 10.1.3.4 is the support for Complex Web Services. Support for Web Services in BI Publisher,i believe, was introduced in 10.1.3.2. But the major problem with that was the support was limited to very simple web services like Yahoo Stock quotes etc. But now with the support for complex web services, one can achieve more complex integration with BI EE as well as other reporting toolsets. One direct correlation of this support is the ability of BI Publisher now to have BI EE WSDL as a data source. Yes, BI Publisher now can call BI EE WSDL’s directly. Till the previous release, the only way to achieve this was by converting the complex WSDL to a simple one through servlets. Lets try this new feature out today by means of a simple report. We shall start with a new report with Web Service as the data source.
     
When we choose Web Service as our data source, we can now see there are 2 types of Web Services. Simple or Complex.
     
Lets choose complex. And in the WSDL URL lets enter the BI EE WSDL.
1http://localhost:9704/analytics/saw.dll?WSDL
As soon as we enter the above WSDL, we should now be able to choose any one of the web services. Remember BI EE WSDL is a multi binding web service. That is, a single WSDL can provide a combination of multiple web services. For now lets choose SAWSession Service.
     
Lets choose the Logon method and enter the username and password parameters.
     
Now, lets see what happens when we look at the report output.
     
Strange. I was expecting the Web Service to return back the SessionID. But unfortunately it does not look to be straightforward. So far, i have not been able to get this to work (even when i try to pass the parameters from BIP parameters using ${Parameter_name}). Now, if you see the OC4J command window, you would see the actual SOAP envelope that has been fired by BI Publisher.
     
Now, lets copy the above SOAP envelope and fire it from SOAP UI to test whether this envelope actually works.
     
Well, it does work. So, I am not sure what else is required to get the login method to work from within BI Publisher. I believe the above behavior is probably due to the fact that BI Publisher actually tried to fire the SOAP envelope using a dummy parameter first and then with the actual parameters i,e your OC4J would actually show you the 2 SOAP envelopes being fired from BI Publisher
0108/08/12 20:04:45 WebServiceCall::callComplexClient SOAP Message = <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
02      <soap:Body xmlns:ns1="com.siebel.analytics.web/soap/v5">
03            <ns1:logon>
04                  <ns1:name>%LABEL_1%</ns1:name>
05                  <ns1:password>%LABEL_2%</ns1:password>
06        </ns1:logon>
07    </soap:Body>
08</soap:Envelope>
0908/08/12 20:04:45 After WSS soapMessage = <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
10      <soap:Body xmlns:ns1="com.siebel.analytics.web/soap/v5">
11            <ns1:logon>
12                  <ns1:name>Administrator</ns1:name>
13                  <ns1:password>Administrator</ns1:password>
14        </ns1:logon>
15    </soap:Body>
The authentication failed message that we obtained is probably due to the first envelope. Not sure what more is required to get this to work. A very interesting feature but something i have not been able to test successfully so far(atleast with BI EE alone).