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 ...

Follow-Ups:

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.