nirvanaPL has asked for the wisdom of the Perl Monks concerning the following question:
I am working on a script to get data from OBIEE Web services. The following shows the correct soap envelope created however i do not get any results.
#!/usr/bin/perl use warnings; use strict; use diagnostics; use XML::Simple; use Data::Dumper; use Log::Log4perl; use SOAP::Lite 0.65 +trace => 'debug'; #Initialize Logger Log::Log4perl->init("log.conf"); my $logger = Log::Log4perl->get_logger(); my $outputFormat = "SAWRowsetData"; my $SQL = qq(sql); my $sessionID = "session id"; my $soap = SOAP::Lite ->readable(1) ->uri('urn://oracle.bi.webservices/v6') ->proxy( 'http://host:port/analytics/saw.dll/wsdl/v6' ); my $serializer = $soap->serializer(); $serializer->register_ns("urn://oracle.bi.webservices/v6","sawsoap"); my $som = $soap->call('executeSQLQuery', SOAP::Data->name('sawsoap:sql' => $SQL)->type('xsd:string'), SOAP::Data->name('sawsoap:outputFormat' => $outputFormat)->type('sawso +ap:XMLQueryOutputFormat'), SOAP::Data->name('sawsoap:executionOptions')->type('sawsoap:XMLQueryEx +ecutionOptions')->value( \SOAP::Data->value( SOAP::Data->name("sawsoap:async")->type("xsd:boolean")->va +lue("?"), SOAP::Data->name("sawsoap:maxRowsPerPage")->type("xsd:int" +)->value("?"), SOAP::Data->name("sawsoap:refresh")->type("xsd:boolean")-> +value("?"), SOAP::Data->name("sawsoap:presentationInfo")->type("xsd:bo +olean")->value("?"), SOAP::Data->name("sawsoap:type")->type("xsd:string")->valu +e("?"))), SOAP::Data->name('sawsoap:sessionID' => $sessionID)->type('xsd:string' +) ); $logger->info(Dumper $som);
here is the soap envelope it produced that works perfectly fine using soapUI
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:sawsoap="urn://oracle.bi.webservices/v6" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <logon xmlns="urn://oracle.bi.webservices/v6"> <sawsoap:name xsi:type="xsd:string">name</sawsoap:name> <sawsoap:password xsi:type="xsd:string">password</sawsoap:passwo +rd> </logon> </soap:Body> </soap:Envelope>
I checked the OBIEE server and do not see a request. It is generating the right stuff but the request is not getting across. Any insight is greatly Appreciated.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: SOAP::Lite to access OBIEE Web Services
by Anonymous Monk on Nov 30, 2013 at 01:31 UTC | |
by nirvanaPL (Novice) on Nov 30, 2013 at 13:31 UTC | |
by Anonymous Monk on Nov 30, 2013 at 22:52 UTC | |
by nirvanaPL (Novice) on Dec 02, 2013 at 14:50 UTC |