Here's a tip for debugging those IOElement and SODA server side scripts as we translate to other languages.
I've just spent all day yesterday working on the PHP version and was writing to Josh Ferrell about this same issue. I guess all this talk should be on the DynAPI-DEV list. :-) Basically, what I was doing, was to just output the data whereever I wanted to look at it (in ws__Var2SODA). if ( $vtype == "array" ) { $data = "<a$lvl>"; // PHP code to output an array print_r( $v ); Then in ioelmsrv, in ws__docWrite: "var mySODAResponse = \"$h\";\n" . "$h;\n" . # DEBUG # "make.error\n" . "</script>\n" . Then in your browser, you can hopefully see that there's some JavaScript error (I use Mozilla Firebird, and from the JavaScript console, I can see an error and click on it, and it brings up the source of the server-side script-generated page). Should look something like this (I added the #### lines for clarification ####): #### begin outputted data #### Array ( [name] => PHP SODA Test [comment] => This Web Service was created using PHP [login] => ok [SYSCall] => 1 ) #### end outputted data #### Content-Type: text/html <html> <script language="javascript" type="text/javascript"> var ioObj,dynapi=parent.dynapi; if (dynapi) ioObj=parent.IOElement.notify(this); else alert('Error: Missing or invalid DynAPI library'); // DEBUG // var mySODAResponse = "var wsSODAResponse='<envelope><method>SYS:WebServiceConnect</method><body><a1><u 2>0</u2><r1/><u2>0</u2><r1/><u2>0</u2><r1/><u2>0</u2></a1></body></envelope> '"; var wsSODAResponse='<envelope><method>SYS:WebServiceConnect</method><body><a1><u 2>0</u2><r1/><u2>0</u2><r1/><u2>0</u2><r1/><u2>0</u2></a1></body></envelope> '; // DEBUG make.error </script> </html> Now I have all the information I need to debug my script. As you can see above, my envelope isn't being created properly. The data is clearly in the array, but there's unknown / 0 in the array in the envelope. It should probably be returned as an object for the client-side JavaScript, although there's only one array type in PHP for both numeric and assosciative indexed arrays. Hmm... And also, you can count top-level items in an array, but you can't use numeric indexing to reference the assosciative indexes ( for i = 0 ;; i++ ), and you can't use assosciative indexes to reference the numeric indexes ( foreach array as key => value ). So we have to handle the cases when an array might be sent with both numeric and assosciative indexes, and use both methods, and keep count separately, and check that they add up to the total, and put them in the proper place in the envelope. :-\ It's ambiguous, do I create an object for the assosciate indexed elements, and an array for the numeric? Does that then break the original structure? Do I create an object for the entire thing? How does JavaScript handle mixed arrays? I think it allows using numeric indexing even for the assosciative indexes, but I'm not sure. Leif ----- Original Message ----- From: "Joseph Sonnier" <[EMAIL PROTECTED]> To: "Leif W" <[EMAIL PROTECTED]> Sent: Wednesday, February 18, 2004 9:15 AM Subject: RE: Dynapi - PERL version > I have made quite a bit of progress so far. > I have the PERL calc working and the SODA tester working ~ dates and > booleans need some work. However, I have run into a problem. > > I did all my work so far on a windows box running IIS. > I just pushed the stuff over the UNIX ~ FreeBSD/Apache and the same code > fails. > > I put in some debugging stuff on the server side - it appears to be writing > out the HTML correctly. The client side fails with a "Request timeout". > > Can you give me clue how I could capture what is coming back from the > server? > Really any advice on debugging this > > > Thanks, > Joseph Sonnier > > > -----Original Message----- > From: Leif W [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 22, 2004 7:03 PM > To: [EMAIL PROTECTED] > Subject: Re: Dynapi - PERL version > > > Ahh yes. I started by copying the JScript version and converting on my > first pass. I guess I didn't make it too far. ;-) The SODA version needs > converting, the ioelmsrv.pl version needs testing, and I think needs a new > function added that was added to the JScript and VBScript version a while > ago. The PHP versions I was working on a while ago too but some are in > various states of conversions from JScript to PHP. I don't have the > examples as I don't have the libraries done yet. ;-) More hands needed, > definitely, as other things have drawn my attention. > > Leif > > ----- Original Message ----- > From: <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, January 22, 2004 6:42 PM > Subject: Re: Dynapi - PERL version > > > > I took a look in the CVS library and I found > > > > ioelmsrv.pl - PERL > > ioelmsrv.soda.pl - This seems to be in Javascript > > > > Did you only do the first function? > > Or is this a CVS issue? > > > > Do you having like dynapi.util.ioelement-soda-calc.php that can > > give me an example of how to use it from the server side? > > > > > > > > > > > > > Hello! > > > > > > Thanks for your interest! I think I sort of had a Perl version working, > > > but not sure, I can't remember. Haven't touched the code in a while. > > > The porting isn't too difficult, just need to take a look at each > > > function (from the JScript version) and rewrite in Perl. Think it just > > > needs some more hands. Everything I have done is in CVS, so you should > > > be able to get it from there. I've got Perl set up on both Linux and > > > Win2k for testing, and the script should run on both (with just the > > > change of the first line after the #! ), I can help with that part. > > > > > > Leif > > > > > > ----- Original Message ----- > > > From: "Joseph Sonnier" <[EMAIL PROTECTED]> > > > To: <[EMAIL PROTECTED]> > > > Sent: Thursday, January 22, 2004 2:03 PM > > > Subject: Dynapi - PERL version > > > > > > > > >> I was checking to see if you have made any progress on the > > >> > > >> PERL version of the ioelement.srv and soda modules > > >> > > >> > > >> > > >> Is the port difficult or just needs more hands? > > >> > > >> > > >> > > >> I have started using the Dynapi SODA API on NT, but would > > >> > > >> like to move to a UNIX,LINUX platform. > > >> > > >> > > >> > > >> Any suggestions? > > > > > > > > > > > > > > ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ Dynapi-Dev mailing list [EMAIL PROTECTED] http://www.mail-archive.com/[EMAIL PROTECTED]/