|
I constantly use ON-EXIT - it's like a "finally" clause in Java - it is
ALWAYS executed - even if someone kills your job with *IMMED - the ON-EXIT
gets executed - you cannot stop it.
So closing files or cursors, releasing allocated memory, diagnostic info
(e.g. to the joblog) - it's quite versatile.
If you declare a Boolean variable, you can even see, if your procedure
ended normal or not.
dcl-s isAbnormalEnd ind inz;
...
on-exit isAbnormalEnd;
if isAbnormalEnd;
// procedure ended abnormally
endif;
Nearly every procedure I write has an ON-EXIT section.
HTH
Daniel
Am 19.08.2025 um 18:03 schrieb Charles Wilt <charles.wilt@xxxxxxxxx>:global
Interesting...
Never thought of that trick...
Charles
On Tue, Aug 19, 2025 at 9:58 AM Daniel Gross <daniel@xxxxxxxx> wrote:
Hi Greg,
the compiler doesn't generate I-specs for files defined in a
sub-procedure.
So either define the file IN the sub-procedure and always use data
structures for all output statements.
Or define the file globally with USROPN - let the compiler generate
insideI-specs - use the file like normal - and just only open and close it
that:the procedure.
Either way, I recommend closing the file in the ON-EXIT section like
that
on-exit;
if %open(...);
close ...;
endif;
This way, the file always gets correctly closed - even if the procedure
ends abnormally.
HTH
Daniel
Am 19.08.2025 um 17:31 schrieb Greg Wilburn <gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>:
can't seem to get the program to compile.
I would like to declare a printer file in a sub procedure... but I
If I move it to the program level, it compiles just fine.structure is required for I/O operations to file MYPRTF
When the DCL-F is in the sub procedure, I get RNF7274: A result data
The goal is to only open the externally described printer file when
finished.particular sub proc is called, and close it when the procedure is
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx
TIA
Greg
[Logo]<https://www.totalbizfulfillment.com/> Greg Wilburn
Director of IT
301.895.3792 ext. 1231
301.895.3895 direct
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx<mailto:
relatedrelated questions.
1 Corporate Dr
Grantsville, MD 21536
www.totalbizfulfillment.com<http://www.totalbizfulfillment.com>
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
related questions.questions.--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.