Generally there are two things you should be aware of when having Perl interact with MOSS: 1. Suitable encoding of your SOAP parameters; 2. Provide WSDL for your webservice in the style of .NET-Webservices (suffixed ?wsdl-thing); and you should be fine. You could combine functionality of existing modules like SOAP::Lite and SOAP::WSDL. You can start e.g. with an instance of your own HTTP-Server (or proxy-class or simply use wireshark) to analyze the details of the web-requests made by the BDC to query your webservice. Hope this provides you some help.

Comment on
Re: PERL web service for use with MOSS2007 BDC
Replies are listed 'Best First'.

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?

OK. Your service gets called by the BDC and obviously it canīt cope with the response data. There are several reasons. 1. ServiceDescription: Have a look at the WSDL that is returned by a typical .NET-WebService / Sharepoint WebServices and study the way, methods and parameters are described in there. Then try to roll a WSDL-file on your own that complies to that way. We had no success with Pod::*-built service descriptions either.
2. NamespaceConfusion: Neither the wsdl-file nor the adf-file contain the namespace used for the response data by the target (your service). Try to harmonize and again - have a look at a plain .NET-WebService example (or generate a simple one with VS and compare).
3. MS products usually expect web services to return a collection as response (wrapped in a SOAP-Envelope). This collection has to comply to the XML-DOM specification and contains exactly one root-element (e.g. testingResponse) that embraces a single or multiple child nodes that contain the response data you primarily want to deliver.
To easily view that specific calling conventions yourself, simply navigate your browser to the URL of your example .asmx or one of the MOSS builtin webservices and it will display examples for various SOAP requests and responses. You get at the correspondig WSDL by suffixing the webserviceīs URL with "?wsdl".
The worst part is to emulate that (somewhat twisted) behaviour. Sometimes itīs more convenient to write a litte CGI-application / or a small http-server that processes BDC-requests and responds in the way .NET webservice consumers are used to than trying to adapt the behaviour of the SOAP-WSDL-related modules. These modules are excellent but unfortunately MS has chosen to implement a slightly deviant standard (although itīs still SOAP). Detailed descriptions of this deviance is spread throughout the web and you can find additional precious hints in this monastery.
Iīm sure you will get it to work soon.