I have seen many people discussing about reading a PF in CL in reverse order.
Just remember one thing -- PF should not have key if you are positioning on RRN.
The PF code --
ABCUST file structure :
A R RCUST
A CUSNO 5 0
A CUSNM 30
The CL Code --
PGM
DCL VAR(&NUBT) TYPE(*DEC) STG(*AUTO) LEN(10)
DCL VAR(&NUBD) TYPE(*DEC) STG(*AUTO) LEN(10)
DCL VAR(&TOT) TYPE(*DEC) STG(*AUTO) LEN(10)
DCLF FILE(GALAXEOBJ/ABCUST) OPNID(ID)
RTVMBRD FILE(GALAXEOBJ/ABCUST) NBRCURRCD(&TOT)
/* CHGVAR VAR(&TOT) VALUE(&NUBT + &NUBD) */
READ: OVRDBF FILE(ABCUST) TOFILE(GALAXEOBJ/ABCUST) +
MBR(*FIRST) POSITION(*RRN &TOT)
RCVF RCDFMT(RCUST) OPNID(ID)
CHGVAR VAR(&ID_CUSNM) VALUE(&ID_CUSNM)
IF COND(&TOT > 1) THEN(DO)
CHGVAR VAR(&TOT) VALUE(&TOT - 1)
DLTOVR FILE(*ALL)
CLOSE OPNID(ID)
GOTO READ
ENDDO
ENDPGM
Just remember one thing -- PF should not have key if you are positioning on RRN.
The PF code --
ABCUST file structure :
A R RCUST
A CUSNO 5 0
A CUSNM 30
The CL Code --
PGM
DCL VAR(&NUBT) TYPE(*DEC) STG(*AUTO) LEN(10)
DCL VAR(&NUBD) TYPE(*DEC) STG(*AUTO) LEN(10)
DCL VAR(&TOT) TYPE(*DEC) STG(*AUTO) LEN(10)
DCLF FILE(GALAXEOBJ/ABCUST) OPNID(ID)
RTVMBRD FILE(GALAXEOBJ/ABCUST) NBRCURRCD(&TOT)
/* CHGVAR VAR(&TOT) VALUE(&NUBT + &NUBD) */
READ: OVRDBF FILE(ABCUST) TOFILE(GALAXEOBJ/ABCUST) +
MBR(*FIRST) POSITION(*RRN &TOT)
RCVF RCDFMT(RCUST) OPNID(ID)
CHGVAR VAR(&ID_CUSNM) VALUE(&ID_CUSNM)
IF COND(&TOT > 1) THEN(DO)
CHGVAR VAR(&TOT) VALUE(&TOT - 1)
DLTOVR FILE(*ALL)
CLOSE OPNID(ID)
GOTO READ
ENDDO
ENDPGM
No comments:
Post a Comment