이행 DATA 자동 편집 USER 작성 프로그램 (별첨1) 1.SOURCE LIBRARY - GEM-LIB : Y1.GLIB.V90 - COPY-LIB: Y1.CLIB.V90 - EB-LIB : Y1.ELIB.V90 - JCL-LIB : Y1.JLIB.V90 - USER작성 프로그램 Sample : YFD200BF, YFD200OS, YFD200BS 2.MAIN 프로그램 수정부분 -. @@@@@@@@@@@@@@@@@@ 로 된 부분만 수정 필요. . AS-IS검증-F, TO-BE 편성-F, AS-IS 원장 File의 Length 기술 --> 초기 DATA SETUP용 프로그램 . 프로그램 LOGIC 처리부분: LOGIC 처리 필요시 : 공통 3.전제사항: 가. 공통 사항 -.TO-BE LAY-OUT의 항목 갯수는 500개 이내에서만 사용 할수있다. (500개 이상시 필히 사전 협의 요함) 나. 초기 DATA 편성시 -.AS-IS 및 TO-BE FILE의 LENGTH는 최소 12 BYTE이상, MAX 32,760 BYTE 이내에서만 사용할수 있다 -.편성 실행 JCL 작성시, AS-IS 및 TO-BE FILE의 BLKSIZE는 MAX 32,760 BYTE를 넘을수 없다(이상 지정시 JCL ERROR) -.3번 사항과 관련 RECORD LENGTH가 320 BYTE내에 것은 통상 100배 이내에서 BLKSIZE를 지정하고 LENGTH가 이보다 큰것은 가능한 한 32,760 BYTE에 근접하게 BLKSIZE를 지정한다. 다. REAL DATA 편성시 -.AS-IS 추출 송신대상 FILE 및 TO-BE 편성 송신용 FILE은 DAM-F로 한다 -.DAM-F LENGTH : 권장사항 1. REAL 송신용(B/C DATA) AS-IS DAM-F: 25,000 BYTE 2. REAL 송신용(B/C DATA) TO-BE DAM-F: 5,000 BYTE 3. 일괄 송신용(P/C DATA) AS-IS DAM-F: 3,000 BYTE 3. 일괄 송신용(P/C DATA) TO-BE DAM-F: 3,000 BYTE 4.프로그램 처리시 Data의 취득 방법 가.AS-IS 항목 Data -.프로그램 WORKING AREA 내 해당 AS-IS 항목 COPY LAYOUT를 정의한후 AS-IS 추출 파일의 해당 RECORD부분을 각각 MOVE 처리후 항목 ID로 처리 나.TO-BE 항목 Data -.별도의 COPY LAYOUT 신규 작성후 항목 ID로 처리: .시스템에서 제작 제공: TO-BE 항목 기준 T/B 편성 JOB 실행시 자동작성 .File Length: 위에서 작성된 Copy Layout 하단에 기술되어 있음 5.추출 FILE 공통부 LAY-OUT *********************************************************** * YDMDW10W : AS-IS 파일 공통부 * * WORK COPY-REC ( 200 BYTE ) * 01 ASIS-COMMON. 03 ASIS-SEQ PIC 9(10). -> SEQ-NO 03 ASIS-ID PIC X(10). -> FILE-ID or DATA-ID 03 ASIS-RECORD1 OCCURS 10 TIMES. 통 레코드 편성 순서 순 05 ASIS-RECORD PIC X(10). -> AS-IS항목 RECORD-ID 05 ASIS-LENGTH PIC 9(05). -> AS-IS항목 RECORD 총 길이 03 FILLER PIC X(20). 03 ASIS-REAL-DATA. -> REAL DATA 편성용 05 ASIS-UPMU-GB PIC X(02). -> 업무구분 코드 05 ASIS-DATA-GB PIC X(01). -> DATA 발생 구분 코드 05 FILLER PIC X(07). -주의사항: 1. AS-IS항목 RECORD-ID는 필히 TO-BE 항목에 대응된 RECORD ID로 해야 한다. 2. AS-IS항목 RECORD 총 길이는 해당 RECORD의 총 LENGTH 기술. 3. AS-IS RECORD-ID 및 RECORD 길이의 기술은 필히 AS-IS 통 RECORD 편성 순서순으로 기술 하여야 한다. 4. REAL DATA 편성시는 필히 ASIS-ID에 발생 DATA-ID 및 ASIS-REAL-DATA Filed에 지정된 사항들을 기술하여야 한다 1
USER 작성 프로그램 SAMPLE (초기 DATA 편성시) (별첨1: YFD200BF) 002400 INPUT-OUTPUT SECTION. 002500 FILE-CONTROL. 002600 * 002700 SELECT ASIS-F ASSIGN TO ASIS1. 002800 SELECT TOBE-F ASSIGN TO TOBE1. 002900 SELECT DATA-F ASSIGN TO ASIS2. 003000 * 003100 *================================================================* 003200 DATA DIVISION. 003300 *================================================================* 003400 FILE SECTION. 003500 * 003600 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 003700 *-- AS-IS INPUT FILE LENGTH 변경 003800 * 003900 FD ASIS-F LABEL RECORD IS STANDARD 004000 DATA RECORD IS ASIS-R. 004100 * 004200 01 ASIS-R PIC X(0255). 004300 * 004400 *-- TO-BE OUTPUT FILE LENGTH 변경 004500 * 004600 FD TOBE-F LABEL RECORD IS STANDARD 004700 DATA RECORD IS TOBE-R. 004800 * 004900 01 TOBE-R PIC X(0111). 005000 * 005100 *-- AS-IS DATA 검증용 FILE LENGTH 변경 005200 * 005300 FD DATA-F LABEL RECORD IS STANDARD 005400 DATA RECORD IS DATA-R. 005500 * 005600 01 DATA-R PIC X(0089). 005700 * 005800 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 005900 * 006000 *================================================================* 006100 WORKING-STORAGE SECTION. 006200 *================================================================* 006300 01 WORK-AREA. 006400 03 END-M PIC X(001). 006500 03 READ-CNT PIC 9(005). 006600 03 WRITE-CNT PIC 9(005). 006700 01 Y2K-YMD. 006800 03 Y2K-YY PIC X(04). 006900 03 Y2K-MM PIC X(02). 007000 03 Y2K-DD PIC X(02). 007100 * 007200 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 007300 * 프로그램 처리시 AS-IS, TO-BE COPY구 정의: 이하 예 007400 * COPY ASISCOPY. 007500 * COPY TOBECOPY. 007600 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 007700 * 012900 OPEN INPUT ASIS-F 013000 OUTPUT TOBE-F DATA-F. 013100 * 013200 1000-INIT-EXIT. 013300 EXIT. 007800 *----------------------------------------------------------------* 007900 * SUB-PROGRAM 용 LINKAGE 영역 정의:SUB PROGRAM ONLY 영역 008000 *----------------------------------------------------------------* 008100 * 008200 COPY YDMD200C. 008300 * 008400 *----------------------------------------------------------------* 008500 LINKAGE SECTION. 008600 *----------------------------------------------------------------* 008700 01 LINK-R. 008800 03 LK-PARM PIC S9(04) COMP. 008900 03 LK-TOBE-ID PIC X(10). 009000 03 LK-ASIS-M PIC X(01). 009100 * 009200 *================================================================* 009300 PROCEDURE DIVISION USING LINK-R. 009400 *================================================================* 009500 0000-PROCESS-STN SECTION. 009600 *================================================================* 009700 0000-PROCESS-RTN. 009800 * 009900 PERFORM 1000-INIT-STN. 010000 PERFORM 2000-MAIN-STN UNTIL END-M = '*'. 010100 PERFORM 3000-FINAL-STN. 010200 * 010300 0000-PROCESS-EXIT. 010400 EXIT. 010500 * 010600 *================================================================* 010700 1000-INIT-STN SECTION. 010800 *================================================================* 010900 1000-INIT-RTN. 011000 * 011100 MOVE FUNCTION CURRENT-DATE TO Y2K-YMD. 011200 DISPLAY '===== YFD200BF PGM STARTED ====' Y2K-YMD. 011300 DISPLAY '=> TO-BE 제공용 이행 DATA 편성 MAIN PGM =>'. 011400 * 011500 INITIALIZE WORK-AREA. 011600 * 011700 * 서브 프로그램 CALL를 위한 편성대상 TO-BE ID 연계 011800 INITIALIZE SUB-PGM-WORK. 011900 MOVE LK-TOBE-ID TO SUB-TOBE-ID. 012000 * 012100 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 012200 * 서브 프로그램 CALL를 위한 AS-IS, TO-BE, 검증-F LENGTH 지정 012300 * 012400 MOVE 0255 TO IN-LEN. 012500 MOVE 0110 TO OUT-LEN. 012600 MOVE 0089 TO AS-LEN. 012700 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 012800 * 2
USER 작성 프로그램 SAMPLE (초기 DATA 편성시) (별첨1: YFD200BF) 013400 * 013500 *================================================================* 013600 2000-MAIN-STN SECTION. 013700 *================================================================* 013800 2000-MAIN-RTN. 013900 * 014000 READ ASIS-F AT END 014100 MOVE '*' TO END-M 014200 GO TO 2000-MAIN-EXIT. 014300 * 014400 ADD 1 TO READ-CNT. 014500 * 014600 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 014700 * 필요시 자동편성 SUB PROGRAM CALL 여부판단 조건문기술 014800 * - ASIS-R을 편성된 각 RECORD 단위로 AS-IS COPY-R 에 014900 * MOVE 후 AS-IS RECORD의 원 항목ID로 조건문 기술 015000 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 015100 * 015200 * 서브 프로그램 CALL를 위한 TO-BE RECORD 연계 015300 MOVE ASIS-R TO SUB-ASIS-R. 015400 * 015500 * 자동 편성 서브 프로그램 CALL 015600 CALL 'CPI2DATA' USING SUB-PGM-WORK 015700 YDMDT12T-R 015800 ASIS-COMMON 015900 SUB-ASIS-R 016000 SUB-TOBE-R 016100 SUB-DATA-R. 016200 * 016300 IF SUB-RT-CODE = 'E' 016400 MOVE '*' TO END-M 016500 DISPLAY 'TO-BE 기준 TABLE ERROR !!! ' 016600 DISPLAY '!!! 프로그램 강제종료 !!! ' 016700 GO TO 2000-MAIN-EXIT. 016800 * 016900 * 프로그램 로직 처리시는 MAIN 프로그램에서 별도처리. 017000 IF SUB-RT-CODE = 'P' 017100 PERFORM 2100-PROGRAM-STN. 017200 * 017300 * 서브 프로그램 에서 편성된 RECORD 를 출력 RECORD에 MOVE 017400 MOVE SUB-TOBE-R TO TOBE-R. 017500 MOVE SUB-DATA-R TO DATA-R. 017600 * 017700 * 편성완료된 TO-BE 이행 DATA WRITE. 017800 WRITE TOBE-R. 017900 * 018000 * 검증용 AS-IS 원장 DATA WRITE(필요시만) 018100 IF LK-ASIS-M = '*' 018200 WRITE DATA-R. 018300 * 018400 ADD 1 TO SUB-HKEY-NO WRITE-CNT. 018500 * 018600 2000-MAIN-EXIT. 018700 EXIT. 018800 * 018900 *================================================================* 019000 2100-PROGRAM-STN SECTION. 019100 *================================================================* 019200 2100-PROGRAM-RTN. 019300 * 019400 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 019500 * 1.프로그램 처리 사전준비 처리(필수) 019600 * 019700 * -필요 AS-IS RECORD를 RECORD단위로 WORK내 ASISCOPY-R로 MOVE 019800 * MOVE ASIS-R(201:800) TO ASISCOPY-R. 019900 * 020000 * -SUB PGM에서 편성된 SUB-TOBE-R을 WORK내 TOBECOPY-R로 MOVE 020100 * MOVE SUB-TOBE-R TO TOBECOPY-R. 020200 * 020300 * 2.프로그램 로직 본처리 020400 * 본처리 사항 기술 020500 * IF DP-DK100 OF DP-EJ0001R = 'ABC' AND 020600 * DP-DK111(2:2) OF DP-EJ0002R = '99' 020700 * MOVE 'A1234' TO YD-MAT-PRE-FAC. 020800 * 020900 * 3.프로그램 로직 마감처리(필수) 021000 * - WORK내 TOBECOPY-R을 OUT-F TOBE-R에 MOVE 021100 * MOVE TOBECOPY-R TO SUB-TOBE-R. 021200 * 021300 * 4.주의:AS-IS VS TO-BE가 1:N 복수 WRITE시 HIDDEN-KEY 처리. 021400 * - WRITE 후 SUB-HKEY-NO에 ADD 1 하여 HIDDEN-KEY MOVE 021500 * 021600 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 021700 * 021800 2100-PROGRAM-EXIT. 021900 EXIT. 022000 * 022100 *================================================================* 022200 3000-FINAL-STN SECTION. 022300 *================================================================* 022400 3000-FINAL-RTN. 022500 * 022600 CLOSE ASIS-F TOBE-F DATA-F. 022700 * 022800 DISPLAY '==> TOTAL READ COUNT ==> ' READ-CNT. 022900 DISPLAY '==> TOTAL WRITE COUNT ==> ' WRITE-CNT. 023000 * 023100 STOP RUN. 023200 * 023300 3000-FINAL-EXIT. 023400 EXIT. 3
USER 작성 프로그램 SAMPLE (B/C REAL-DATA) (별첨2: YFD200OS) 002500 *================================================================* 002600 DATA DIVISION. 002700 *================================================================* 002800 * 002900 *================================================================* 003000 WORKING-STORAGE SECTION. 003100 *================================================================* 003200 * 003300 01 WORK-AREA. 003400 03 END-M PIC X(001). 003500 03 READ-CNT PIC 9(005). 003600 03 WRITE-CNT PIC 9(005). 003700 * 003800*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 003900 * 프로그램 처리시 AS-IS, TO-BE COPY구 정의: 004000 * COPY ASISCOPY. 004100 * COPY TOBECOPY. 004200*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 004300 * 004400 *----------------------------------------------------------------* 004500 * REAL-DATA 송신용 DAM-F COPY LAY-OUT : 5000 BYTE * 004600 *----------------------------------------------------------------* 004700 * 004800 COPY YDMDAMBC. 004900 * 005000 *----------------------------------------------------------------* 005100 * SYNCHRONUS DATA COMMUNICATION CONTROL AREA * 005200 *----------------------------------------------------------------* 005300 01 SYNDCOM. 005400 COPY COBSDCOM. 005500 COPY CBACSAPI. 005600 * 005700 01 ACSSPA PIC X(256). 005800 * 005900 *----------------------------------------------------------------* 006000 LINKAGE SECTION. 006100 *----------------------------------------------------------------* 006200 * 006300 * SUB-PROGRAM 용 LINKAGE 영역 정의:SUB PROGRAM ONLY 영역 006400 * 006500 COPY YDMD200C. 006510 COPY YDMDEAIC. 006600 * 006700 *================================================================* 006800 PROCEDURE DIVISION USING SUB-PGM-WORK 006900 YDMDT12T-R 007000 ASIS-COMMON 007100 SUB-ASIS-R 007200 SUB-TOBE-R 007300 SUB-DATA-R 007310 YDMDEAIC-R. 007400 *================================================================* 007500 0000-PROCESS-STN SECTION. 007600 *================================================================* 007700 0000-PROCESS-RTN. 007800 * 007900 INITIALIZE WORK-AREA. 008000 * 008100 PERFORM MAIN-PROCESS-STN. 008200 * 008300 EXIT PROGRAM. 008400 * 008500 0000-PROCESS-EXIT. 008600 EXIT. 008700 * 008800 *================================================================* 008900 MAIN-PROCESS-STN SECTION. 009000 *================================================================* 009100 MAIN-PROCESS-RTN. 009200 * 009300 * 자동 편성 서브 프로그램 CALL 009400 CALL 'CPI2DATA' USING SUB-PGM-WORK 009500 YDMDT12T-R 009600 ASIS-COMMON 009700 SUB-ASIS-R 009800 SUB-TOBE-R 009900 SUB-DATA-R. 010000 * 010100 * SUB PGM 편집 ERROR시 상위 MAIN PGM에서 강제종료처리됨. 010200 IF SUB-RT-CODE = 'E' 010300 GO TO MAIN-PROCESS-EXIT. 010400 * 010500 * 프로그램 로직 처리시는 MAIN 프로그램에서 별도처리. 010600 IF SUB-RT-CODE = 'P' 010700 PERFORM 2100-PROGRAM-STN. 010800 * 010900 * EAI 송신용 DAM-F WRITE 처리. 011000 * 011100 PERFORM 2200-WRITE-STN. 011200 * 011300 MAIN-PROCESS-EXIT. 011400 EXIT. 4
USER 작성 프로그램 SAMPLE (B/C REAL-DATA) (별첨2: YFD200OS) 011500 * 011600 *----------------------------------------------------------------* 011700 * 프로그램 로직 처리 필요시 * 011800 *================================================================* 011900 2100-PROGRAM-STN SECTION. 012000 *================================================================* 012100 2100-PROGRAM-RTN. 012200 * 012300 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 012400 * 1.프로그램 처리 사전준비 처리(필수) 012500 * 012600 * -필요 AS-IS RECORD를 RECORD단위로 WORK내 ASISCOPY-R로 MOVE 012700 * MOVE ASIS-R(201:800) TO ASISCOPY-R. 012800 * 012900 * -SUB PGM에서 편성된 SUB-TOBE-R을 WORK내 TOBECOPY-R로 MOVE 013000 * MOVE SUB-TOBE-R TO TOBECOPY-R. 013100 * 013200 * 2.프로그램 로직 본처리 013300 * 본처리 사항 기술 013400 * 013500 * 3.프로그램 로직 마감처리(필수) 013600 * - WORK내 TOBECOPY-R을 OUT-F TOBE-R에 MOVE 013700 * MOVE TOBECOPY-R TO SUB-TOBE-R. 013800 * 013900*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 014000 * 014100 2100-PROGRAM-EXIT. 014200 EXIT. 014300 * 014400 *----------------------------------------------------------------* 014500 * EAI 송신용 DAM-F WRITE 처리. 014600 *================================================================* 014700 2200-WRITE-STN SECTION. 014800 *================================================================* 014900 2200-WRITE-RTN. 015000 * 015100 * EAI 송신용 DAM-F 실 WRITE 015200 * 015300 MOVE 'TOBE1W' TO DD-NAME. 015400 MOVE SUB-WRITE-POINT TO DD-ADDR. 015500 * 015600 MOVE SUB-TOBE-R TO TOBE-R. 015700 * 015800 CALL 'ACSAPI' USING DSWRITE 015900 DD-NAME 016000 TOBE-R 016100 DD-ADDR. 016200 * 016300 * TO-BE DAM-F NEXT WRITE POINT 계산 016400 * 016500 ADD 1 TO SUB-WRITE-POINT. 016600 IF SUB-WRITE-POINT > SUB-MAX-POINT 016700 MOVE 2 TO SUB-WRITE-POINT. 016800 * 016900 2200-WRITE-EXIT. 017000 EXIT. 017100 * 5
USER 작성 프로그램 SAMPLE (P/C REAL-DATA) (별첨3: YFD200BS) 002700 *================================================================* 002800 DATA DIVISION. 002900 *================================================================* 003000 * 003100 *================================================================* 003200 WORKING-STORAGE SECTION. 003300 *================================================================* 003400 * 003500 01 WORK-AREA. 003600 03 END-M PIC X(001). 003700 03 READ-CNT PIC 9(005). 003800 03 WRITE-CNT PIC 9(005). 003900 * 004000 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 004100 * 프로그램 처리시 AS-IS, TO-BE COPY구 정의 004200 * COPY ASISCOPY. 004300 * COPY TOBECOPY. 004400 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 004500 * 004600 *----------------------------------------------------------------* 004700 LINKAGE SECTION. 004800 *----------------------------------------------------------------* 004900 * 005000 * SUB-PROGRAM 용 LINKAGE 영역 정의:SUB PROGRAM ONLY 영역 005100 * 005200 COPY YDMD200C. 005210 COPY YDMDEAIC. 005300 * 005400 *================================================================* 005500 PROCEDURE DIVISION USING SUB-PGM-WORK 005600 YDMDT12T-R 005700 ASIS-COMMON 005800 SUB-ASIS-R 005900 SUB-TOBE-R 006000 SUB-DATA-R 006010 YDMDEAIC-R. 006100 *================================================================* 006200 0000-PROCESS-STN SECTION. 006300 *================================================================* 006400 0000-PROCESS-RTN. 006500 * 006600 INITIALIZE WORK-AREA. 006700 * 006800 PERFORM MAIN-PROCESS-STN. 006900 * 007000 EXIT PROGRAM. 007100 * 007200 0000-PROCESS-EXIT. 007300 EXIT. 007400 *================================================================* 007500 MAIN-PROCESS-STN SECTION. 007600 *================================================================* 007700 MAIN-PROCESS-RTN. 007800 * 007900 * 자동 편성 서브 프로그램 CALL 008000 CALL 'CPI2DATA' USING SUB-PGM-WORK 008100 YDMDT12T-R 008200 ASIS-COMMON 008300 SUB-ASIS-R 008400 SUB-TOBE-R 008500 SUB-DATA-R. 008600 * 008700 * SUB PGM 편집 ERROR시 상위 MAIN PGM에서 강제종료처리됨. 008800 IF SUB-RT-CODE = 'E' 008900 GO TO MAIN-PROCESS-EXIT. 009000 * 009100 * 프로그램 로직 처리시는 MAIN 프로그램에서 별도처리. 009200 IF SUB-RT-CODE = 'P' 009300 PERFORM 2100-PROGRAM-STN. 009400 * 009500 MAIN-PROCESS-EXIT. 009600 EXIT. 009700 * 009800 *----------------------------------------------------------------* 009900 * 프로그램 로직 처리 필요시 * 010000 *================================================================* 010100 2100-PROGRAM-STN SECTION. 010200 *================================================================* 010300 2100-PROGRAM-RTN. 010400 * 010500 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 010600 * 1.프로그램 처리 사전준비 처리(항목간 대응시만 필요) 010700 * 010800 * -필요 AS-IS RECORD를 RECORD단위로 WORK내 ASISCOPY-R로 MOVE 010900 * MOVE SUB-ASIS-R(201:800) TO ASISCOPY-R. 011000 * 011100 * -SUB PGM에서 편성된 SUB-TOBE-R을 WORK내 TOBECOPY-R로 MOVE 011200 * MOVE SUB-TOBE-R TO TOBECOPY-R. 011300 * 011400 * 2.프로그램 로직 본처리(본처리사항 기술) 011500 * 011600 * 011700 * 3.프로그램 로직 마감처리(항목간 대응시만 필요) 011800 * - WORK내 TOBECOPY-R을 OUT-F TOBE-R에 MOVE 011900 * MOVE TOBECOPY-R TO SUB-TOBE-R. 012000 * 012100 *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* 012200 * 012300 2100-PROGRAM-EXIT. 012400 EXIT. 6