Thanks for your reply, I'm still having a the same issue and have provided some additional info. If anyone can point show me some wood between the trees, I'd be greatful.

Here is the communication between the MS Application Definition Designer tool and my PERL web service:

Sent by MS Application Definition Designer tool:
POST /cgi-bin/tester.cgi HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client +Protocol 2.0.50727.1433) Content-Type: text/xml; charset=utf-8 SOAPAction: "" Host: services.camdev.cw.com Content-Length: 553 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" +xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns=" +http://services.camdev.cw.com/Services" xmlns:types="http://services. +camdev.cw.com/Services/encodedTypes" xmlns:xsi="http://www.w3.org/200 +1/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/enc +oding/"> <tns:testing> <tester xsi:type="xsd:string">foo</tester> </tns:testing> </soap:Body> </soap:Envelope>

Returned by my PERL web service
HTTP/1.1 200 OK Date: Mon, 30 Nov 2009 18:06:00 GMT Server: Apache/2.2.4 (Debian) DAV/2 SVN/1.4.4 PHP/5.2.3-1+b1 mod_ssl/2 +.2.4 OpenSSL/0.9.8e mod_perl/2.0.3 Perl/v5.8.8 SOAPServer: SOAP::Lite/Perl/0.60 Content-Length: 551 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/xml; charset=utf-8 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc +e" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:S +OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http:/ +/www.w3.org/2001/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xm +lsoap.org/soap/encoding/"> <SOAP-ENV:Body> <namesp1:testingResponse xmlns:namesp1="http://services.camdev.cw. +com/Services"> <Returned xsi:type="xsd:string">Back at ya</Returned> </namesp1:testingResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

here is my wsdl file:
<?xml version="1.0" encoding="UTF-8" ?> - <!-- WSDL for http://services.camdev.cw.com created by Pod::WSDL ve +rsion: 0.05 on Mon Nov 30 16:44:41 2009 --> - <wsdl:definitions targetNamespace="http://services.camdev.cw.com/Ser +vices" xmlns:impl="http://services.camdev.cw.com/Services" xmlns:wsdl +soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schem +as.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/ +encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns1="h +ttp://services.camdev.cw.com/Services"> - <wsdl:message name="testingRequest"> - <wsdl:part name="tester" type="xsd:string"> <wsdl:documentation>abc</wsdl:documentation> </wsdl:part> </wsdl:message> - <wsdl:message name="testingResponse"> - <wsdl:part name="testingReturn" type="xsd:string"> <wsdl:documentation>xyz</wsdl:documentation> </wsdl:part> </wsdl:message> - <wsdl:portType name="ServicesHandler"> - <wsdl:operation name="testing" parameterOrder="tester"> <wsdl:input message="impl:testingRequest" name="testingRequest" /> <wsdl:output message="impl:testingResponse" name="testingResponse" / +> </wsdl:operation> </wsdl:portType> - <wsdl:binding name="ServicesSoapBinding" type="impl:ServicesHandler" +> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/ +soap/http" /> - <wsdl:operation name="testing"> <wsdlsoap:operation soapAction="" /> - <wsdl:input name="testingRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encodi +ng/" namespace="http://services.camdev.cw.com/Services" use="encoded" + /> </wsdl:input> - <wsdl:output name="testingResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encodi +ng/" namespace="http://services.camdev.cw.com/Services" use="encoded" + /> </wsdl:output> </wsdl:operation> </wsdl:binding> - <wsdl:service name="ServicesHandlerService"> - <wsdl:port binding="impl:ServicesSoapBinding" name="Services"> <wsdlsoap:address location="http://services.camdev.cw.com" /> </wsdl:port> </wsdl:service> </wsdl:definitions>

and my web service:
#!/usr/bin/perl use strict; use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI -> dispatch_to('Services') -> handle; package Services; use strict; use DBI; use utf8; use Data::Dumper; my $STATUS = "FAILED"; my $MESSAGE = "FAILED"; sub testing() { my ($class, $message) = @_; my $log_file = "/tmp/tester.log"; open (LOG, ">>$log_file") or die("Open failed for $log_file : $!") +; print LOG "testing() #01 message=$message\n"; close(LOG); return SOAP::Data->name("Returned" => "Back at ya"); }

and my ADF xml file:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> - <LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi +:schemaLocation="http://schemas.microsoft.com/office/2006/03/Business +DataCatalog BDCMetadata.xsd" Type="WebService" Version="1.0.0.0" Name +="WebServiceLobSystem" xmlns="http://schemas.microsoft.com/office/200 +6/03/BusinessDataCatalog"> - <Properties> <Property Name="WsdlFetchUrl" Type="System.String">http://services.c +amdev.cw.com/cgi-bin/tester.wsdl</Property> <Property Name="WebServiceProxyNamespace" Type="System.String">BDC</ +Property> </Properties> - <LobSystemInstances> - <LobSystemInstance Name="WebServiceLobSystem_Instance"> - <Properties> <Property Name="LobSystemName" Type="System.String">WebServiceLobSys +tem</Property> <Property Name="WebServiceAuthenticationMode" Type="Microsoft.Office +.Server.ApplicationRegistry.SystemSpecific.WebService.HttpAuthenticat +ionMode">PassThrough</Property> </Properties> </LobSystemInstance> </LobSystemInstances> - <Entities> - <Entity EstimatedInstanceCount="10000" Name="Entity11"> - <Identifiers> <Identifier TypeName="System.String" Name="testerID" /> </Identifiers> - <Methods> - <Method Name="testing"> - <Parameters> - <Parameter Direction="In" Name="tester"> <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, +Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="tes +terID" Name="tester" /> </Parameter> - <Parameter Direction="Return" Name="Return"> <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, +Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Return" /> </Parameter> </Parameters> - <MethodInstances> <MethodInstance Type="SpecificFinder" ReturnParameterName="Return" R +eturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0" Name=" +SpecificFinderTesterInstance" /> <MethodInstance Type="Finder" ReturnParameterName="Return" ReturnTyp +eDescriptorName="Return" ReturnTypeDescriptorLevel="0" Name="FinderTe +sterInstance" /> </MethodInstances> </Method> </Methods> </Entity> </Entities> </LobSystem>


When executing my 'Specific Finder' method instance from within the MS ADD tool, I receive the error, "Index was out of range, Must be non-negitive and less than the size of the collection". The string parameter which I pass is written to the log file ("/tmp/tester.log") so at least I know communication is happening one way. When executing my 'Specific Finder' method instance from within the MS ADD tool, I receive the error, "Backend system adapter returned a structure incompatible with the corresponding metadata (MethodInstance, Parameter or TypeDescriptor)". The log file ("/tmp/tester.log") is also written to so I know that my script is being executed.

As far as I can deduce, the MS ADD tool (and the BDC) are not being fed what they want - any ideas please?

In reply to Re^2: PERL web service for use with MOSS2007 BDC by monkie
in thread PERL web service for use with MOSS2007 BDC by monkie

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.