Have you tried putting parenthesis around "%xfoot(%SubArr(Des:NumTag+1:15-Numtag)) > *zeros"?
Matt
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of nb@xxxxxxxxxxxxx
Sent: Thursday, September 18, 2008 11:24 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Funny RPG error
I was manteining one of our program when i got a strange RPG behaviour,
both in WDSC and with ILE compiler.
I had the following spec :
If %xfoot(%SubArr(Des:NumTag+1:15-Numtag)) > *zeros ;
which, of couse, generated an error when NumTag = 15 (index out of bound,
or something similar).
I obviously change to the correct-and-usual
If NumTag < 15 and %xfoot(%SubArr(Des:NumTag+1:15-Numtag)) > *zeros ;
which is the usally way to chech the array index is inside array bound (see
some hundred of example, even from IBM ...)
Now, the compiler stop with
RNF0631 - The built-in function %SUBARR is not allowed within an expression
involving the relational operator AND or OR. The built-in function is
ignored.
I ended up breaking the statement in two diff row, but still i can't
understand why the compiler rant about. I already got bad luck with
%subarr() in the past (got a Fix from RPG lab, at time) but since we're
using a lot of array in our programs, we found it to be very useful, and
this behaviour seems to me an arbitrary , unreasonable lock.
I have carefully checkhed the manual, and there's nothing referring to this
problem. Any hint??
--
Nicola Brion
Tech Fossil (Often called a Dinosaur) - ancient animal that make things to
work.
"Ogni volta che la gente è d'accordo con me, provo la sensazione di avere
torto."
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.