Ok, try this, it adds the prefixes and an empty header.
#!perl
use strict;
use SOAP::Lite;
# soap
my $client = SOAP::Lite->uri('')
->proxy("loopback://");
$client->autotype(0)->readable(1);
$client->outputxml(1);
$client->ns("http://schemas.xmlsoap.org/soap/envelope/","soapenv");
$client->ns("http://tempuri.org/AWEService/API/WASAPI","was");
my %auth = (
WAS_userName => 'WS_Decom',
WAS_password => 'PASSWORD',
);
my %search = (
DEVICE_NAME => 'prodh20',
RACK_NAME => '',
# etc
);
my @auth_data;
for (keys %auth){
my $data = SOAP::Data->name(
$_ => $auth{$_} )->prefix('was');
push @auth_data, SOAP::Data->type('data' => $data),
}
my @search_data;
for (keys %search){
my $data = SOAP::Data->name(
$_ => $search{$_} )->prefix('was');
push @search_data, SOAP::Data->type('data' => $data),
}
my $auth = SOAP::Data->name(
"userIdentification" => \@auth_data
)->prefix('was');
my $search = SOAP::Data->name(
"locatorSearchFieldsIdentification" => \@search_data
)->prefix('was');
my $header = SOAP::Data->type('xml' => '');
my $response = $client->call("RunLocator",
SOAP::Header->type('data'=>$header),
SOAP::Data->type('data' => $auth),
SOAP::Data->type('data' => $search) );
#open OUT,'>','output.xml' or die "$!";
print $response;
#close OUT;
poj
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.