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



For RPG400 you still use an INFDS for the file. You will find database RRN in the I/O Feedback Area for Database Files section.



The I/O feedback area consists of two parts: a common area and a file-dependent area.
* Common I/O feedback area<http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/dm/rbal3ciofa.htm>
This table shows the common I/O feedback area of the i5/OS operating system.

And in your case the file-dependent area is the I/O feedback area.



* I/O feedback area for database files<http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/dm/rbal3dbiof.htm>
The table in this topic shows the I/O feedback area for database files.



From the V5R4 RPG400 Reference manual...



File Dependent Feedback Information

Complete file-dependent feedback information is available in the Data Management

Guide. Refer to the section "I/O Feedback Area" and the tables on the file dependent

area in that section.



To calculate the From and To positions (positions 44 through 47 and 48 through 51

of the input specifications) that specify the subfields of the file-information data

structure (INFDS) for the file-dependent area, use the Offset, Data Type, and

Length given in the Data Management Guide and do the following calculations:



From = 367 + Offset

To = From - 1 + Character_Length

Character_Length = Length (in bytes)



From the InfoCenter...


I/O feedback area for database files
The table in this topic shows the I/O feedback area for database files.



Table 1. I/O feedback area for database files
Offset Data type Length Contents
0 Binary 4 Size of the database feedback area, including the key and the
null key field byte map.
4 Character 4
8 Binary 2 Offset from the beginning of the I/O feedback area for
database files to the null key field byte map which follows
the key value (which begins at offset 34 in this area).
10 Binary 2 Number of locked records.
12 Binary 2 Maximum number of fields.
14 Binary 4 Offset to the field-mapping error-bit map.
18 Character 1
19 Character 1
20 Binary 2 Number of key fields. Use this offset for binary operations.
Use the next offset (offset 21) for character operations.
These offsets overlap and provide the same value (there can
be no more than 32 key fields, and only the low-order byte
of offset 20 is used).
21 Character 1 Number of key fields.
22 Character 4 Reserved.
26 Binary 2 Key length.
28 Binary 2 Data member number.
30 Binary 4 Relative record number in data member.
34 Character * Key value.
* Character * Null key field byte map.


So you define your infds to have additional information.



Positions 241 through 348 for your common I/O feedback.

Positions 349 through 512 for your file I/O feedback.



If I added correctly position 378 through 382 will have the RRN you are looking for.



This article is more for printer files but it gives you an idea of how to work with the feedback information.

http://www.iprodeveloper.com/print/rpgprogramming/inside-rpgs-file-information-data-structure-8413



HTH,



Gary







-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Anderson, Kurt
Sent: Monday, November 26, 2012 2:36 PM
To: RPG programming on the IBM i / System i
Subject: RE: How can I retrieve the RRN of a record in a PF in a RPG3?



My apologies. I guess I was skimming the message when I should have been reading it.



-Kurt



-----Original Message-----

From: rpg400-l-bounces@xxxxxxxxxxxx<mailto:rpg400-l-bounces@xxxxxxxxxxxx> [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement

Sent: Monday, November 26, 2012 4:28 PM

To: RPG programming on the IBM i / System i

Subject: Re: How can I retrieve the RRN of a record in a PF in a RPG3?



Kurt,



I'd agree with you if we were discussing RPG IV ("ILE RPG"), but we're not. See the subject line... we're discussing RPG III ("RPG/400", "OPM")



-SK







On 11/26/2012 4:22 PM, Anderson, Kurt wrote:

My experience has been that RPG keeps track of the RRN in the INFDS just fine for blocked I/O.



So I went and looked it up. I quoted the section on blocking:

http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/index.jsp?topic

=/com.ibm.etools.iseries.langref.doc/c092508687.htm



Blocking Considerations

The fields of the input/output specific feedback in the INFDS and in most cases the fields of the device specific feedback information section of the INFDS, are not updated for each operation to the file in which the records are blocked and unblocked. The feedback information is updated only when a block of records is transferred between an RPG program and the operating system.



However, if you are doing blocked input on a data base file, the relative record number and the key value in the data base feedback section of the INFDS are updated:

* On every input/output operation, if a POST for any file with factor 1 blank has not been specified anywhere in your program.

* Only after a POST for the file, if a POST for any file with factor 1 blank has been specified anywhere in your program.



You can obtain valid updated feedback information by using the CL command OVRDBF (Override with Database File) with SEQONLY(*NO) specified. If you use a file override command, the ILE RPG compiler does not block or unblock the records in the file.



For more information on blocking and unblocking of records in RPG see WebSphere Development Studio: ILE RPG Programmer's Guide.





Kurt Anderson

Sr. Programmer/Analyst

CustomCall Data Systems, a division of Enghouse Ltd.





-----Original Message-----

From: rpg400-l-bounces@xxxxxxxxxxxx<mailto:rpg400-l-bounces@xxxxxxxxxxxx>

[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Gary Thompson

Sent: Monday, November 19, 2012 2:52 PM

To: RPG programming on the IBM i / System i

Subject: RE: How can I retrieve the RRN of a record in a PF in a RPG3?



Daryl,

Your KINFDS definition looks ok to me.



As someone else mentioned, if your program is doing blocked I/O, then you may not get the RRN value - which makes sense to me but I am not sure.



I have used RRN from the INFDS some years past, but no longer have access to that system, and do not have any code at my current POE.



Maybe run your program with no blocking (OVRDBF xxx FRCRATIO *NONE), assuming you have not already tried that.



-----Original Message-----

From: rpg400-l-bounces@xxxxxxxxxxxx<mailto:rpg400-l-bounces@xxxxxxxxxxxx>

[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Darryl Freinkel

Sent: Monday, November 19, 2012 1:44 PM

To: rpg400-l@xxxxxxxxxxxx<mailto:rpg400-l@xxxxxxxxxxxx>

Subject: How can I retrieve the RRN of a record in a PF in a RPG3?



I have a need to retrieve the RRN of the record read in a RPG OPM program.

(this is a re-posting).







FWRK959 IF E K DISK



F KINFDS DS



IDS DS



I B 397 4000RRN



C READ WRK959 01



C *IN01 DOWEQ*OFF



C POST WRK959



C Z-ADDRRN RRNX 155



C READ WRK959 01



C ENDDO



C MOVE *ON *INLR







I created a test program (above) and it does not show the RRN, or have an invalid value after the first read. It then shows zero or blanks.







Can anyone help with retrieving the RRN?







Darryl Freinkel | Assignment 400 Group, Inc.



Tel: 770.321.8562 ext 111 | Fax 770.321.8562



E-mail: dfreinkel@xxxxxxxxxxxxxxxxx<mailto:dfreinkel@xxxxxxxxxxxxxxxxx>



Web: www.assignment400.com<http://www.assignment400.com>







--

This is the RPG programming on the IBM i / System i (RPG400-L) mailing

list To post a message email: RPG400-L@xxxxxxxxxxxx<mailto: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<mailto:RPG400-L-request@xxxxxxxxxxxx> Before posting, please take a

moment to review the archives at http://archive.midrange.com/rpg400-l.







--

This is the RPG programming on the IBM i / System i (RPG400-L) mailing

list To post a message email: RPG400-L@xxxxxxxxxxxx<mailto: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<mailto:RPG400-L-request@xxxxxxxxxxxx> Before posting, please take a

moment to review the archives at http://archive.midrange.com/rpg400-l.



--

This is the RPG programming on the IBM i / System i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx<mailto: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<mailto:RPG400-L-request@xxxxxxxxxxxx>

Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.



--

This is the RPG programming on the IBM i / System i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx<mailto: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<mailto: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.

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.