diff options
Diffstat (limited to 'perllib/BarnetWSDL.pm')
-rw-r--r-- | perllib/BarnetWSDL.pm | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/perllib/BarnetWSDL.pm b/perllib/BarnetWSDL.pm new file mode 100644 index 000000000..842e55c40 --- /dev/null +++ b/perllib/BarnetWSDL.pm @@ -0,0 +1,105 @@ +package BarnetWSDL; + +# Generated by SOAP::Lite (v0.710.08) for Perl -- soaplite.com +# Copyright (C) 2000-2006 Paul Kulchenko, Byrne Reese +# -- generated at [Fri Apr 1 16:57:04 2011] +# -- generated from http://fury.ukcod.org.uk/~dave/barnet_wsdl_2.xml (provided by email from Logica) + +my %methods = ( +Z_CRM_SERVICE_ORDER_CREATE => { + endpoint => 'http://lbbcrmdev.barnet.gov.uk:8000/sap/bc/srt/rfc/sap/zlbb_service_order/200/zlbb_service_order/zlbb_service_order', + soapaction => '', + namespace => 'urn:sap-com:document:sap:rfc:functions', + parameters => [ + SOAP::Data->new(name => 'ET_RETURN', type => 'tns:TABLE_OF_BAPIRET2', attr => {}), + SOAP::Data->new(name => 'IT_PROBLEM_DESC', type => 'tns:TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', attr => {}), + SOAP::Data->new(name => 'IV_CUST_EMAIL', type => 'tns:char241', attr => {}), + SOAP::Data->new(name => 'IV_CUST_NAME', type => 'tns:char50', attr => {}), + SOAP::Data->new(name => 'IV_KBID', type => 'tns:char50', attr => {}), + SOAP::Data->new(name => 'IV_PROBLEM_ID', type => 'tns:char35', attr => {}), + SOAP::Data->new(name => 'IV_PROBLEM_LOC', type => 'tns:BAPI_TTET_ADDRESS_COM', attr => {}), + SOAP::Data->new(name => 'IV_PROBLEM_SUB', type => 'tns:char40', attr => {}), + ], # end parameters + }, # end Z_CRM_SERVICE_ORDER_CREATE +); # end my %methods + +use SOAP::Lite; +use Exporter; +use Carp (); + +use vars qw(@ISA $AUTOLOAD @EXPORT_OK %EXPORT_TAGS); +@ISA = qw(Exporter SOAP::Lite); +@EXPORT_OK = (keys %methods); +%EXPORT_TAGS = ('all' => [@EXPORT_OK]); + +sub _call { + my ($self, $method) = (shift, shift); + my $name = UNIVERSAL::isa($method => 'SOAP::Data') ? $method->name : $method; + my %method = %{$methods{$name}}; + $self->proxy($method{endpoint} || Carp::croak "No server address (proxy) specified") + unless $self->proxy; + my @templates = @{$method{parameters}}; + my @parameters = (); + foreach my $param (@_) { + if (@templates) { + my $template = shift @templates; + my ($prefix,$typename) = SOAP::Utils::splitqname($template->type); + my $method = 'as_'.$typename; + # TODO - if can('as_'.$typename) {...} + my $result = $self->serializer->$method($param, $template->name, $template->type, $template->attr); + push(@parameters, $template->value($result->[2])); + } + else { + push(@parameters, $param); + } + } + $self->endpoint($method{endpoint}) + ->ns($method{namespace}) + ->on_action(sub{qq!"$method{soapaction}"!}); + $self->serializer->register_ns("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd","wsu"); + $self->serializer->register_ns("http://schemas.xmlsoap.org/ws/2004/09/policy","wsp"); + $self->serializer->register_ns("http://schemas.xmlsoap.org/wsdl/mime/","mime"); + $self->serializer->register_ns("http://schemas.xmlsoap.org/wsdl/soap/","soap"); + $self->serializer->register_ns("http://schemas.xmlsoap.org/wsdl/","wsdl"); + $self->serializer->register_ns("http://schemas.xmlsoap.org/wsdl/http/","http"); + $self->serializer->register_ns("http://www.w3.org/2001/XMLSchema","xsd"); + $self->serializer->register_ns("urn:sap-com:document:sap:rfc:functions","tns"); + my $som = $self->SUPER::call($method => @parameters); + if ($self->want_som) { + return $som; + } + UNIVERSAL::isa($som => 'SOAP::SOM') ? wantarray ? $som->paramsall : $som->result : $som; +} + +sub BEGIN { + no strict 'refs'; + for my $method (qw(want_som)) { + my $field = '_' . $method; + *$method = sub { + my $self = shift->new; + @_ ? ($self->{$field} = shift, return $self) : return $self->{$field}; + } + } +} +no strict 'refs'; +for my $method (@EXPORT_OK) { + my %method = %{$methods{$method}}; + *$method = sub { + my $self = UNIVERSAL::isa($_[0] => __PACKAGE__) + ? ref $_[0] + ? shift # OBJECT + # CLASS, either get self or create new and assign to self + : (shift->self || __PACKAGE__->self(__PACKAGE__->new)) + # function call, either get self or create new and assign to self + : (__PACKAGE__->self || __PACKAGE__->self(__PACKAGE__->new)); + $self->_call($method, @_); + } +} + +sub AUTOLOAD { + my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::') + 2); + return if $method eq 'DESTROY' || $method eq 'want_som'; + die "Unrecognized method '$method'. List of available method(s): @EXPORT_OK\n"; +} + +1; |