Yes I agree that the help text is correct but logically why did they omit a standard "Do" ? I'm guessing that it's too late to change now because if someone has coded:

DoWhile xxx
(...)
MonMsg CPF1234 EXEC(Do)
(...)
Leave <<<<--------
EndDo
EndDo

That Leave will exit the DoWhile. If they changed it to also exit the Do/EndDo then existing code is broken.


Now as to the MONMSG CPF0000 that is there because this is part of a Startup Job and we want that to continue. The ChkObj is used elsewhere in order to only call the program IF it exists.

Also Stylistically I generally hate the "Damn the Torpedoes" approach.


- Larry "DrFranken" Bolhuis

www.frankeni.com
www.iDevCloud.com
www.iInTheCloud.com

On 7/23/2013 5:13 PM, CRPence wrote:

On 23 Jul 2013 13:48, DrFranken wrote:
I wrote this snippet of code:

Do
ChkObj QSTRUPEX1 *Pgm /* Check for exit program. */
MonMsg CPF9800 EXEC(Leave) /* Not there or Not Authorized */
Call QSTRUPEX1 /* Run it. */
MonMsg CPF0000
EndDo


At the LEAVE Statement I get this error:
* CPD0883 30 LEAVE command found outside of DO group.

But it sure appears to be inside a Do group to me!

Am I in error if I 'complain' to the fine folks in the land of IBM
i?


AFaIK the error is correct, and ...

The implied command label [CMDLBL(*CURRENT)] is, as worded in the
message CPD089A, is not "associated with an active DOWHILE, DOUNTIL, or
DOFOR group". The additional\second-level text of that CPD0883 [e.g. as
presented by F1=Help] should further state that "The LEAVE command must
be inside a DOWHILE, DOUNTIL, or DOFOR command group."

FWiW: Coding the MONMSG CPF0000 as shown is not a good practice; just
as well remove the prior CHKOBJ and MONMSG to get effectively the same
results with less work.


This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.