The sample COBOL program in Figure 1 calls DFSORT
to merge the presorted bookstore master file (MASTER-FILE) with another
presorted file (NEW-BOOKS-FILE) to create a new master file (MERGED-FILE).
The JCL for the program is as follows:
//EXAMP JOB A492,PROGRAMMER
//BOOKS EXEC PGM=COBOLP
//STEPLIB DD DSN=USER.PGMLIB,DISP=SHR
//SYSOUT DD SYSOUT=A
//MASTERFL DD DSN=A123456.MASTER,DISP=OLD
//NEWBOOKS DD DSN=A123456.NEW,DISP=OLD
//MERGEDFL DD DSN=A123456.OUTC,DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(1,1)),UNIT=SYSDA
Figure 1 shows the sample COBOL program.
Figure 1. Sample COBOL Program
with MERGE Commands IDENTIFICATION DIVISION.
PROGRAM-ID.
COBOLP.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SD-FILE ASSIGN TO
DUMMYNM.
SELECT MASTER-FILE ASSIGN TO
MASTERFL.
SELECT NEW-BOOKS-FILE ASSIGN TO
NEWBOOKS.
SELECT MERGED-FILE ASSIGN TO
MERGEDFL.
DATA DIVISION.
FILE SECTION.
SD SD-FILE
DATA RECORD IS SD-RECORD.
01 SD-RECORD.
05 TITLE-KEY PICTURE X(75).
05 FILLER PICTURE X(98).
FD MASTER-FILE
DATA RECORD IS MASTER-RECORD.
01 MASTER-RECORD.
05 FILLER PICTURE X(173).
FD NEW-BOOKS-FILE
DATA RECORD IS NEW-BOOKS-RECORD.
01 NEW-BOOKS-RECORD.
05 FILLER PICTURE X(173).
FD MERGED-FILE
DATA RECORD IS MERGED-RECORD.
01 MERGED-RECORD.
05 FILLER PICTURE X(173).
.
.
.
PROCEDURE DIVISION.
.
.
.
MERGE-ROUTINE SECTION.
MERGE SD-FILE
ASCENDING KEY TITLE-KEY
USING MASTER-FILE NEW-BOOKS-FILE
GIVING MERGED-FILE.
IF SORT-RETURN > 0
DISPLAY "MERGE FAILED".
STOP RUN.