× 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.



Thank you Charles, both for the specific instance and also for the link to the MTU.  Now that I know where to find the info, I'll probably have to be a bit more diligent on this moving forward.

My guess is that I've got a couple of other programs lurking... :)


On 5/1/2018 5:52 PM, Charles Wilt wrote:
Yep...it's documented... 7.2 MTU
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzaq9/rzaq9lpp5770rpgwrapper.htm

"A non-qualified subfield or format cannot be qualified within a
subprocedure
It is not valid to use qualified notation, A.B, for subfields and record
formats that are not qualified. Before IBM® i 7.2, the compiler did not
always detect this error if the reference to the global subfield or record
format was in a subprocedure. Starting in 7.2, the compiler detects this
error and diagnostic: RNF7591 - An operand of a qualified name expression
is not valid is issued at compile time."

Bit us too :)

Charles

On Tue, May 1, 2018 at 4:26 PM, Joe Pluta <joepluta@xxxxxxxxxxxxxxxxx>
wrote:

I have a fun story to share and a question.

The fun story is that during our upgrade, we had a period where our
development machine was at 7.3 and our production machine was still at
7.1. We would compile on our development machine with TGTRLS(V7R1M0) in
order to install on production.

Well, now out machines are all at 7.3 and I removed the TGTRLS from our
compile commands. Everything was wonderful until today, when a program
that had compiled just fine wouldn't compile anymore. We were able to
trace the event to the upgrade and then I tracked down the line that was
failing.

Well, it was definitely a mistake on my part. I had originally created a
qualified externally described data structure but then changed it to
unqualified. No problem, except I forgot to remove the qualification on a
couple of lines of code:

saveMYFIELD = dsName.MYFIELD;

The fun bit is that those lines still compiled! It's a large, complex
program with lots of strange behavior in it, and something particular to
the source allows that to happen, because if I try it with a shorter
program (to try to isolate the issue) I can't get it to compile; I keep
getting error RNF7030 saying "MYFIELD" is not defined. It's only under a
very specific (and currently undefined) set of conditions that this line of
incorrect code compiles (and works!).

And whatever that edge condition was in the 7.1 version of the compiler,
it's been fixed in 7.3. Weirdly, I don't get the error I expect .
Instead, I get an unfamiliar RNF7591 error saying "An operand of a
qualified name expression is not valid". So those lines of code have to be
fixed, which is perfectly fair.

The question I have is whether this sort of behavior - where IBM fixes a
loophole - is documented somewhere. I haven't been able to find it
anywhere online, but I suspect I may have to dig in somewhere else. If
anybody knows where I can look, please let me know.

Thanks!


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
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: http://amzn.to/2dEadiD



As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.