as400 interview questions and answers-Part 26


1. Explain READP opcode in rpgle with example.

 

Ans:

 

READP (N | E)  (Read Prior Record)        

·         READP moves the pointer to the previous record and reads the record and again moves the pointer to next previous position. If there are no more records it sets EOF *ON.

·         To handle READP exceptions (file status codes greater than 1000), either the operation code extender 'E' or an error indicator at LO level can be used.

·         If the data-structure is specified in result field then the result of the operation is filled in the data structure.

·         The Equal Indicator gets turned-on if the EOF condition is met else it will be off. Instead of using this indicator we can also go for %EOF().

Factor 1

Op-code

Factor 2

Result Field

Resulting Indicators

       HI                            LO                      EQ

 

READP(N|E)

File or record format name

Data structure to hold the result

 

Error

Beginning of file condition indicator

 

Example

  I.            To read the file in reverse order

PF0001 = Physical file used

        PNAME       PNUM          PADDR       OPNDD  OPNMM  OPNYY   OPNSTS
 000001 AMINEM      P00000000001  CONIZA TOJ     2      1   2,012      1
 000002 IROBO       P00000000002  HENGURIZZA     1      6   2,012      1
 000003 ZENNIE      P00000000003  UENAI         13      1   2,012      2
 000004 JOHNNE      P00000000004  HOLLYNIA      14      2   2,011      1
 ****** ********  End of report  ********
  
 


 


Columns . . . :    6  80                Browse                               AMITCC/QRPGLESRC
SEU==>                                                                               OP_READP
FMT FX FFilename++IPEASF.....L.....A.Device+.Keywords+++++++++++++++++++++++++++++
*************** Beginning of data ****************************************************
0001.00 FPF0001    IF   E           K DISK                                              130211
0002.00 C     *HIVAL        SETLL     PF0001                                            130211
0003.00 C                   READP     PF0001                                            130211
0004.00 C                   DOW       NOT %EOF()                                        130211
0005.00 C     PNUM          DSPLY                                                       130211
0006.00 C                   READP     PF0001                                            130211
0007.00 C                   ENDDO                                                       130211
0008.00 C                   SETON                                        LR             130211
****************** End of data *******************************************************

 

OUTPUT

P00000000004        

P00000000003        

P00000000002        

P00000000001        

 

 

 

2. Explain READPE opcode in rpgle with example.

 

Ans:

READPE (N | E)  (Read Prior Equal)     

·         READPE moves the pointer to the previous record and reads the record and again moves the pointer to next previous position and read the same matching record for factor-1.

·         Factor-1 is used to place the search argument which can be the key, relative record number or field value or named constant or figurative constant used to retrieve the record.

·         READPE is best used when there can be more than one record found. For example, you can find multiple customer orders in your system for one unique customer in reverse order while CHAIN is best used to locate a unique record (like a customer record).

·         Using READPE, we can read all the records which match the records corresponding to search argument in factor-1. If there are no records with the specified criteria then the pointer will be set to BOF.

·         To handle READPE exceptions (file status codes greater than 1000), either the operation code extender 'E' or an error indicator at LO level can be used.

·         If the data-structure is specified in result field then the result of the operation is filled in the data structure.

·         The Equal Indicator gets turned-on if the EOF condition is met else it will be off. Instead of using this indicator we can also go for %EOF().

 

Factor 1

Op-code

Factor 2

Result Field

Resulting Indicators

       HI                            LO                      EQ

Search argument

READPE(N|E)

File or record format name

Data structure to hold the result

 

Error

Beginning of file condition indicator

 

 

Example

To read a file in reverse order for a particular key value

ACCSUBPF = Physical file used

 

ORG CODE  ACC NUMBER    CURRENCY  ACCOUNT MNG  COUNTRY     PARTY
000001    190    A00000000001    EUR     DFJASHN      NKDAHFJ     P00000000001
000002    191    A00000000002    USD     DAJFK        DAJH        P00000000001
000003    192    A00000000003    TRY     DAHB         BJDKFA      P00000000001
000004    193    A00000000004    USD     KIRAN        NDKAL       P00000000001
000005    194    A00000000005    KWR     DANK         NKD         P00000000001
000006    195    A00000000006    TRY     APPRINA      SOUTN       P00000000001
000007    195    A00000000007    USD     SONATNA      SOUTN       P00000000001
****** ********  End of report  ********

 

 


Columns . . . :    6  80              Browse                                 AMITCC/QRPGLESRC
SEU==>                                                                              OP_READPE
FMT FX FFilename++IPEASF.....L.....A.Device+.Keywords+++++++++++++++++++++++++++++
*************** Beginning of data ****************************************************
0001.00 FACCSUBPF  IF   E           K DISK                                              130211
0002.00 C     'P00000000001'SETGT     ACCSUBPF                                          130211
0003.00 C     'P00000000001'READPE    ACCSUBPF                                          130211
0004.00 C                   DOW       NOT %EOF()                                        130211
0005.00 C     ACC           DSPLY                                                       130211
0006.00 C                   READPE    ACCSUBPF                                          130211
0007.00 C                   ENDDO                                                       130211
0008.00 C                   SETON                                        LR             130211
****************** End of data *******************************************************

 

 

 

OUTPUT

A00000000007

A00000000006

A00000000005

A00000000004

A00000000003

A00000000002

A00000000001

 

 




 

 







User Comments:



Copyright © www.go4as400.com, 2013-2023. Copyright notice   Terms of services   Privacy policy