For the present, we need to limit the output on these temp work files. Reason is that these are huge master files, and take forever to run. And if we don't make the file *NOMAX then there has to be someone to answer the message for more extensions, and it holds the job queue. For the moment, we want to show that the data is being selected correctly. But I added these count fields but it's not stopping the program.
FARCMASAC IF E DISK
* Order Header file - Keyed by Company and entity number
FOEORH4 IF E K DISK
* Output file - Customers who hav no orders - TRCMASAC PF
FTRCMA1 UF A E K DISK
* Customer Keycode BI file
FZRCST1 IF E K DISK
* Output file - Customers who have no Keycode - VRCSTKBI PF
FVRCST1 UF A E K DISK
* Address Master file - ADRESSAD PF
FADRES1 IF E K DISK
* Output file - Address - ZDRESSAD PF
FZDRES1 UF A E K DISK
*-----------------------------------------------------------------
* Calculation Specification
*-----------------------------------------------------------------
* Step 1
C READ ARCMASAC
C DOW NOT %EOF
*
* Check the record does not exist in order header file
C EXSR CHKORH_SR
* Read the next record
C READ ARCMASAC
c counta ifge 9990
C EVAL *INLR = *ON
c leave
c endif
c countz ifge 9990
C EVAL *INLR = *ON
c leave
c endif
C ENDDO
* Step 2 and 3
C *LOVAL SETLL TRCMA1
C READ(N) TRCMA1
C DOW NOT %EOF
C EXSR CHKCUS_SR
*
* Check the record does not exist in address file
C EXSR CHKADR_SR
*
* Read the next record
C READ(N) TRCMA1
C ENDDO
*-----------------------------------------------------------------
* End of the Program
*-----------------------------------------------------------------
C EVAL *INLR = *ON
*-----------------------------------------------------------------
* Check the order header entity
*-----------------------------------------------------------------
C CHKORH_SR BEGSR
C ORHKEY CHAIN OEORH4
* If the order entity is notfound, write the rec into TRCMASAC file
C IF NOT %FOUND(OEORH4)
C WRITE TRCMASRR
C ENDIF
*
C ENDSR
*-----------------------------------------------------------------
* Check the customer keycode entity
*-----------------------------------------------------------------
C CHKCUS_SR BEGSR
*
C ORHKEY CHAIN ZRCST1
* If the order entity is found, write the rec into VRCSTKBI file
C IF %FOUND(ZRCST1)
C WRITE VRCSTKRR
c add 1 countz 500
C ENDIF
C ENDSR
*-----------------------------------------------------------------
* Check the address entity for records of never ordered
*-----------------------------------------------------------------
C CHKADR_SR BEGSR
*
C ACENT# CHAIN ADRES1
* If the order entity is found, write the rec into ZDRESSRR file
C IF %FOUND(ADRES1)
C WRITE ZDRESSRR
c add 1 counta 500
C ENDIF
*
C ENDSR
*-----------------------------------------------------------------
* Program Initialization Subroutine
*-----------------------------------------------------------------
C *INZSR BEGSR
You're checking the values of counta
and countz
in the first DO
loop - however you aren't incrementing them until the second DO
loop.
Move your:
c counta ifge 9990
C EVAL *INLR = *ON
c leave
c endif
c countz ifge 9990
C EVAL *INLR = *ON
c leave
c endif
code into the second DO
loop.