#!/usr/bin/perl package main; use SOAP::Lite +trace; use LWP::UserAgent; use HTTP::Request::Common; # Variables my $url = 'http://[hostname]/ProfileManager/100818/ProfileManager.svc?wsdl'; my $url_debug = 'http://localhost:11040/Service1.svc?wsdl'; my $uri = 'urn:::profilemanager:profilemanagerrequestmanager:100818'; my $soap = SOAP::Lite -> ns( 'http://www.w3.org/2001/XMLSchema-instance', 'xsi' ) -> ns( 'urn:::profilemanager:requestmanager', 'a' ) -> ns( 'urn:::profilemanager:contract:110308', 'b' ) -> uri($uri) -> on_action( sub { join '.', 'urn:::profilemanager:requestmanager:100818.ProfileScopeServiceContract', $_[1] } ) -> proxy($url); my $method = SOAP::Data->name('ProcessMessage') ->attr({xmlns => 'urn:::profilemanager:profilemanagerrequestmanager:100818'}); my @params = ( SOAP::Data->type("b:Organisation")->name("a:Payload")->value( \SOAP::Data->value( SOAP::Data->name("b:OrganisationUnitId")->value(""), SOAP::Data->name("b:OrganisationDescription")->attr( { 'xsi:nil' => "true" } ) ) ), SOAP::Data->name("a:ProcessingInstruction")->value( \SOAP::Data->value( SOAP::Data->name("b:Action")->value("GetOrganisationById"), SOAP::Data->name("b:Strategy")->value( \SOAP::Data->value( SOAP::Data->name("b:Name")->attr( { 'xsi:nil' => "true" } ), SOAP::Data->name("b:Paging")->attr( { 'xsi:nil' => "true" } ), SOAP::Data->name("b:SearchCriteria")->attr( { 'xsi:nil' => "true" } ) ) ), SOAP::Data->name("b:Meta")->attr( { 'xsi:nil' => "true" } ) ) ) ); print $soap->call($method => @params)->result;