× 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 get it... but your example is also using WAY too new RPG than this
program was. BIFs? Please... ;)

On Mon, Nov 15, 2021 at 10:26 AM Hiebert, Chris <
chris.hiebert@xxxxxxxxxxxxxx> wrote:

When the program starts the data in uninitialized.
Uninitialized data structures contain blanks. X'40'.

If the program successfully reads the file, then the data is moved into
the records.

If the record is not found, then the data is left in the prior state.

This is why everyone is suggesting to "clear" or add "INZ" to the data
structure definition.
Because without the initialization the field will remain with X'40's.

The real issue is that the program does not correctly check if a record
was received.
That's why we have "%FOUND" for CHAIN and "NOT %EOF(filename)" for READ.

If they'd spent 10 seconds they could have accounted for that simple issue.

READ filename data_structure;
If %EOF(filename);
Clear data_structure;

Such a trivial bug to leave in a program.

Beside the fact that they never accounted for what their program should do
if that record is not found.
Why doesn't it send an error telling you that the data has not been setup
Then you don't have to spend days debugging an error where the programmer
just "assumed" the data would always be there.

Chris Hiebert
Senior Programmer/Analyst
Disclaimer: Any views or opinions presented are solely those of the author
and do not necessarily represent those of the company.

From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Brad
Sent: Tuesday, November 9, 2021 7:16 AM
To: RPG programming on the IBM i (AS/400 and iSeries) <
Subject: Packed field with Blanks in it... how?

I am helping a customer with a random problem where a field from a file

(packed 16,0) is getting filled with blanks.

On a dump we see hex 04040404040.... in it. And of course it's throwing a

data decimal error.

I tried to look in the program for something obvious, but it's an old

monolith of a program with weird columnar RPGIII code.

Anyhow, in what instances would a field read from a file (or even an

unsuccessful read) that is defined as packed get blanks in it? The field

is not manipulated in any way that I can see.

If reads and no record, it should be zero. If it reads and gets a record,

it should be the value from the file (in this case, confirmed to be zero..

and even hex value shows 000000000000000F.

Just grasping at straws I guess. I've not seen this unless there is an

overlaying DS on a numeric field that gets set to blanks for some reason.

Bradley V. Stone
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

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 On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2023 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.