#!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;