|
On Aug 20, 2019, at 2:11 PM, Therrien, Paul via RPG400-L <rpg400-l@xxxxxxxxxxxxxxxxxx> wrote:
Are you allowed to do a 'return' after an on-exit tag?
I mean, 'return' is what got you here.
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Mitch Gallman
Sent: Tuesday, August 20, 2019 1:59 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: RE: Re: Re: On-Exit not working with Debug first time through
I can reproduce with a stripped version.
Compiling as a program and then calling it works ok. If I start debug and call it then I get a data decimal error when it moves workVal to numVal because workVal has garbage in it instead of -1.
**FREE
ctl-opt dftactgrp(*no) actgrp(*caller);
dcl-c c_rtnErrVal const(-1);
dcl-s workVal zoned(5);
dcl-s numVal zoned(5);
workVal = c_rtnErrVal;
workVal = getMyVal();
numVal = workVal;
*inlr = *on;
return;
//--------------------------------------------------------------------
// Get my value
//--------------------------------------------------------------------
dcl-proc getMyVal;
dcl-pi *n zoned(5);
end-pi;
dcl-s inError ind inz;
dcl-s outVal zoned(5) inz(-1);
return outVal;
on-exit inError;
if inError;
return c_rtnErrVal;
endif;
end-proc;
-----Original Message-----
The return in the on-exit is not being executed because I don't have an unhandled error.
The return is within the procedure prior to the on-exit.
I have tried returning as a hard coded value, program variable and a constant.
As mentioned before; subsequent calls it works perfectly. If I don't start debug it works as well. I also noticed if I start debug and immediately end debug and then do the call I get the error. If I never start debug everything works fine.
Mitch
-----Original Message-----
Does it happen if you hardcode the return value?
If inerror;
...do stuff
Return -1;
Endif;
If not, are you using c_rtnErrVal anywhere else?
Where is c_rtnErrVal declared? Inside the procedure, or global to the module?
Charles
On Tue, Aug 20, 2019 at 11:24 AM Mitch Gallman <mitch_gallman@xxxxxxxxxxxxx>
wrote:
The PI:--
dcl-pi *n zoned(5);
end-pi;
No PR...internal procedure to the program.
-----Original Message-----
What does the PI look like?
How about the PR you use to call it?
Charles
On Tue, Aug 20, 2019 at 9:18 AM Mitch Gallman
<mitch_gallman@xxxxxxxxxxxxx
wrote:
I have a procedure that returns a zoned(5) field and it is working--
as expected.
However, if I have debug active, the first time through the return
value appears to be getting corrupted in the on-exit routine.
My calling program ends up getting a data decimal error.
Subsequent calls while in debug returns the expected value.
If I comment out the return op-code within the on-exit routine it
returns the expected value. Once I add it back I start getting bad
values on the first call when in debug again...even though inerror
is not set and it is not executing that code.
I've went through starting / calling / ending / calling / starting /
calling / ending. Always after starting debug the first call
returns a bad value.
Thoughts?
dcl-c c_rtnErrVal const(-1);
...
On-exit inerror;
If inerror;
...do stuff
Return c_rtnErrVal;
Endif;
End-proc;
--
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@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
affiliate
link: https://amazon.midrange.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@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.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@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.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@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.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@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.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@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.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@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
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.