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.