1
현재로서는 이러한 임시 작업 파일의 출력을 제한해야합니다. 이유는 이것들이 거대한 마스터 파일이고, 영원히 달릴 수 있다는 것입니다. 그리고 * NOMAX 파일을 만들지 않으면 더 많은 확장을 위해 메시지에 응답 할 사람이 있어야하며 작업 대기열을 보유합니다. 지금은 데이터가 올바르게 선택되었음을 보여주고 싶습니다. 하지만이 카운트 필드를 추가했지만 프로그램을 중지하지는 않습니다.AS400 RPG에서 출력 작업 파일 제한
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
이 프로그램이 끝난 후 작업 파일이 필요합니까? 실제 목표는 무엇입니까? – WarrenT
데이터에 익숙하지 않은 경우 가장 좋은 답변은 추측 일 것입니다. DOW NOT % EOF (ARCMASAC)와 같은 % EOF를 한정하여 모호성을 제거하십시오. 나는이 프로그램에 더 많은 것들이 있다는 것을 모았고, 필요한 디버깅 조각들이 생략 된 것 같다. 전체 소스를 올리거나 (그런 질문을 없애기에 충분합니다) ... 제발, 자유 형식 인 것처럼 고정 형식 코드를 게시하지 마십시오. 스택 오버플로의 코드 함수를 사용하면 코드가 올바르게 표시됩니다. http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c092508429.htm#HDRBBEOF – Dennis
프로그램을 완료 한 후 작업 파일이 필요합니다. – Booksman