On 24/06/2008, at 7:58 AM, CRPence wrote:
   Please... do share :-)  Last time I had checked, the SQL RENAME  
TABLE
still did not work from REXX, so I had to use RNMOBJ.
I haven't found that one. Didn't know about that so just tried it.  
Very weird: SQL system error. RNMOBJ is a work-around but won't help  
if you want to change the long SQL name.
In my case the defect is in the External Function interface. A  
straight-forward external function such as r = dummyFunc( x, y, z)  
works as documented. Rexx finds the function and invokes it and the  
result is returned. It also works when parameters are omitted such  
as: r = dummyFunc( , , z).
Now I also want to use an External Function Exit Program and this too  
works as documented except for the special case of omitted  
parameters. What SHOULD happen is that Rexx encounters an external  
function, passes control to the exit program which either handles the  
function or indicates that Rexx should deal with it (or spits an  
error). In this case the exit program indicates that Rexx should  
locate and invoke the external function. For r = dummyFunc( x, y, z)  
it all works as expected. However, when the function call contains  
omitted parameters Rexx does not call the exit program, nor does it  
call the external function. It simply issues Error 48: "Failure in  
system service" (CPD7CB0) which implies a problem with the exit program.
There is in fact no problem with the exit for a number of reasons:
	1) I wrote it
	2) Rexx doesn't even invoke the exit program when omitted parameters  
are present
	3) Testing shows that any variation of omitted parameters (except  
the last) will cause Error 48
	4) The exit program does nothing except set a return code indicating  
that Rexx should locate and invoke the external function
	5) Removing the exit program and calling the function with omitted  
parameters works, adding the exit program causes Rexx to instantly  
fail on the function call yet Rexx should be behaving in the same way  
in either case
This took me quite a while to track down.
   Word the /problem/ as a documentation issue for a link in the docs,
and report it via the electronic Reader Comment from InfoCenter.  That
process requires that they reply to you [according to your wishes as I
recall] with regard to the required documentation correction.  Worded
properly, I am sure they will forward it to the support team as a code
correction.
I have difficulty wording this problem as a "documentation" error  
because as far as I can tell the documentation is correct. The  
problem is that Rexx doesn't behave properly in certain specific  
circumstances. I guess it could be worded as an omission in the  
documentation i.e., Rexx documentation fails to state that calling an  
external function with omitted parameters when a External Function  
Exit Program is defined will fail with Error 48.
I'm sure anyone can see that adding such a statement to the Rexx  
documentation would not be the correct solution to the problem and I  
don't want to suggest a "fix it in the docs" solution.
 Also, if you send me an email, I can forward the details to
[someone who I know that can forward it to] the proper contact.
I'll send you a save file with code to reproduce the problem and  
instructions on how to prove the defect. Do you want that sent to  
your yahoo address?
Regards,
Simon Coulter.
--------------------------------------------------------------------
   FlyByNight Software         OS/400, i5/OS Technical Specialists
   
http://www.flybynight.com.au/
   Phone: +61 2 6657 8251   Mobile: +61 0411 091 400        /"\
   Fax:   +61 2 6657 8251                                   \ /
                                                             X
                 ASCII Ribbon campaign against HTML E-Mail  / \
--------------------------------------------------------------------
 
As an Amazon Associate we earn from qualifying purchases.