If it were me, I'd join the two in embedded SQL, rather than trying to manage the relationship in RPG traditional I/O. However, if you want to go that route, you can have the same file open twice. You name the second file spec differently, but then use the extfile and extdesc keywords to reference back to the file you really mean to open. You may also want to prefix the field names, if you're not processing the data through a qualified data structure.
Here is an example:
FUD UF A E K DISK qualified usropn extdesc('SS6213')
F rename(SS6213R:UDR)
F extfile(*extdesc)
-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of James H. H. Lampert
Sent: Wednesday, April 22, 2020 2:09 PM
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Having the same file open twice in an RPG program
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
I have a situation, with a header file, FOO, and a line-item file, BAR, in which I need to have both files open twice in the same program. It seems that there are some 92000 cases in which the same header appears twice, and (presumably) each has an identical set of line-item records.
As it happens, I can (and indeed, *must*) have two different logicals open on FOO, in order to be positioned to both of the mutually redundant headers.
But for each of those pairs, I also need to run through the line items, in order to compare the line items of one to the line items of the other.
I can't recall ever being able to have the same file open twice in an RPG program, other than by having two different LFs on the same PF.
Is there something I'm not aware of?
--
JHHL
--
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 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.