× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

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.