I am need of a script to get data from OBIEE Web services. I have done some preliminary work but need some help to complete.
Basically I am trying to execute SQL and get results using OBIEE web service. Below is where I am at:
#!/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("[login to view URL]");
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://[login to view URL]')
->proxy( 'http://host:port/analytics/[login to view URL]' );
my $serializer = $soap->serializer();
$serializer->register_ns("urn://[login to view URL]","sawsoap");
my $som = $soap->call('executeSQLQuery',
SOAP::Data->name('sawsoap:sql' => $SQL)->type('xsd:string'),
SOAP::Data->name('sawsoap:outputFormat' => $outputFormat)->type('sawsoap:XMLQueryOutputFormat'),
SOAP::Data->name('sawsoap:executionOptions')->type('sawsoap:XMLQueryExecutionOptions')->value(
\SOAP::Data->value(
SOAP::Data->name("sawsoap:async")->type("xsd:boolean")->value("?"),
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:boolean")->value("?"),
SOAP::Data->name("sawsoap:type")->type("xsd:string")->value("?"))),
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="[login to view URL]"
xmlns:sawsoap="urn://[login to view URL]"
xmlns:soap="[login to view URL]"
xmlns:soapenc="[login to view URL]"
xmlns:xsd="[login to view URL]"
xmlns:xsi="[login to view URL]">
<soap:Body>
<logon xmlns="urn://[login to view URL]">
<sawsoap:name xsi:type="xsd:string">name</sawsoap:name>
<sawsoap:password xsi:type="xsd:string">password</sawsoap:password>
</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.
Just repeating my previous bid, in case you're really interested. There's some detective work to be done, and that's not easy. As said, AFAIK there's a license key involved, that you're not mentioning and not using in the code shown. Do you have full access to the server? Does the request not reach your server or is it discarded for some reason? Thank you.
Hello,
Previously, I worked on SOAP. But as I remember, I was using LWP::UserAgent module to send queries.
If it is possible to test script, I would like to debug and see the result.
Regards
I just solved the problem you described so I really hope you will employ me. As you can see this is my first bid on freelancer but I do have a lot of professional experience in Web services and Oracle apps.