never used subroutines in CL but i just added a return prior to the
subroutine and it worked.
Thanks,
Tommy Holden
Adam Glauser <adamglauser@xxxxxxxxxxxx>
Sent by: midrange-l-bounces@xxxxxxxxxxxx
01/29/2008 10:35 AM
Please respond to
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
To
midrange-l@xxxxxxxxxxxx
cc
Subject
Strange CL problem with SUBR
I've run in to a problem where my SUBR code gets run instead of skipped
at the end of the program. My CL program's structure is as follows:
PGM
<declarations>
<do preprocessing for terminal 1>
CALLSUBR SUBR(sndReport)
DLTSPLF FILE(&rptPrtF) JOB(&JOB#/*N/&JOBNM) SPLNBR(&attSplNum)
/*If spool file not active error message occurs, ignore and continue. */
MONMSG MSGID(CPF3309)
<do preprocessing for terminal 2>
CALLSUBR SUBR(sndReport)
DLTSPLF FILE(&rptPrtF) JOB(&JOB#/*N/&JOBNM) SPLNBR(&attSplNum)
/*If spool file not active error message occurs, ignore and continue. */
MONMSG MSGID(CPF3309)
SUBR SUBR(sndReport)
<get user's email address>
<send mail with attachment>
ENDSUBR
ENDPGM
In this example, the code in the SUBR gets run _three_ times instead of
the expected two. Instead of going to ENDPGM directly after the second
MONMSG, the code inside the SUBR is executed. Oddly, if I add in a
meaningless CHGVAR between MONMSG and SUBR, then the SUBR is skipped as
expected.
The CL reference tells me that MONMSG can't be used directly after SUBR
or CALLSUBR, but I don't see any mention of problems when MONMSG
directly precedes SUBR. I've also Googled 'MONMSG SUBR PTF' and 'MONMSG
SUBR APAR' but didn't find anything.
FWIW, I also tried adding an empty EXEC(DO)-ENDDO block to the MONMSG to
no avail.
Can anyone recreate this problem?
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.