Vous êtes sur la page 1sur 33

- A Document by Ramkumar.

Table of Contents

1. INTRODUCTION............................................................................................................................ 4 Objective ...................................................................................................................................................... 4 2. IEFBR14 .............................................................................................................................................. 5 3. IEBGENER ........................................................................................................................................ 6 CONTROL STATEMENTS ........................................................................................................................... 7 GENERATE .................................................................................................................................................. 7 RECORD....................................................................................................................................................... 7 MEMBER ...................................................................................................................................................... 8 4. IEBCOPY .......................................................................................................................................... 11 Control Statements ................................................................................................................................... 11 COPY .......................................................................................................................................................... 12 SELECT ...................................................................................................................................................... 12 EXCLUDE ................................................................................................................................................... 13 COPYMOD.................................................................................................................................................. 13 ALTERMOD................................................................................................................................................ 14 5. IEBUPDTE ....................................................................................................................................... 19 Outputs of IEBUPDTE............................................................................................................................... 19 Control Statements ................................................................................................................................... 20 FUNCTION.................................................................................................................................................. 20 DETAIL ....................................................................................................................................................... 21

IBM Utilities

Page 2 of 33

DATA .......................................................................................................................................................... 21 ALIAS.......................................................................................................................................................... 21 ENDUP........................................................................................................................................................ 22 6. DFSORT............................................................................................................................................ 26 DATA FORMATS ....................................................................................................................................... 26 Sorting By Multiple Fields ........................................................................................................................ 27 Tailoring the Input File.............................................................................................................................. 27 Rules for Padding/Truncation.................................................................................................................. 27 INCLUDE & OMIT statement..................................................................................................................... 28 Reformatting Records .............................................................................................................................. 28 INREC & OUTREC statement ................................................................................................................... 28 MERGE FILES ............................................................................................................................................ 29 Processing Order of Control Statements ............................................................................................... 29

IBM Utilities

Page 3 of 33

1. Introduction
Objective The main objective of this document is to Explain the various utilities and its functions namely IEFBR14 IEBGENER IEBCOPY IEBUPDTE DFSORT

Familiarize with data set and system related utilities Implement the utilities for basic operations

IBM Utilities

Page 4 of 33

2. IEFBR14
IEFBR14 is an IBM utility module which performs two simple functions: It clears the register 15, thus passing a return code of 0 It then does a branch to the address in register 14, which returns control to the system Use of IEFBR14 Checks all the job control statements in the step for syntax. Allocates direct access space for data sets. Deletes Specified Data sets Performs data set dispositions.

EXAMPLES:For deleting data sets://JS20 //DD1 EXEC PGM=IEFBR14 DD DSN=MY.DATA.SET,DISP=(OLD,DELETE)

For Changing the Disposition of Datasets://S1 //D1 EXEC PGM=IEFBR14 DD DSN=ABC, DISP=(SHR, KEEP)

For Allocating data sets://S1 //D3 // EXEC PGM=IEFBR14 DD DSN=SYSB, UNIT=3350,VOL=SER=335001, SPACE=(CYL,(4,2,1)),DISP=(NEW,CATLG,KEEP)

//STEPD //D1 // // //*

EXEC PGM=IEFBR14 DD DSN=TCHN080.TRANACRE.RELACCT.S1, DISP=(MOD,DELETE,DELETE), SPACE=(CYL,(1,1),RLSE)

IBM Utilities

Page 5 of 33

3. IEBGENER
What is IEBGENER? IEBGENER is a generalized copy utility used to perform the following tasks: produce a backup copy of a sequential data set, or a member of a PDS or PDSE produce a PDS or PDSE, or a member of either, from a sequential file produce an edited sequential data set, PDS, PDSE, or a member in either Expand an existing partitioned data set or PDSE by creating partitioned members and merging them into the existing data set. Handle double-byte character set (DBCS) data Produce printed list of either sequential data sets or PDS/PDSE members Reblock a data set or change its logical record length Provide exit or editing capabilities for label processing, input data editing, Key creation or permanent I/O error processing.

Sample JCL Sample IEBGENER JCL: //JS10 EXEC PGM=IEBGENER, REGION=1024K //SYSPRINT DD SYSOUT=* (Messages) //SYSUT1 DD DSN=...,DISP=... (Seq Input File) //SYSUT2 DD DSN=...,DISP=... (Output File) //SYSIN DD * Control Statements /* SYSPRINT DD: The SYSPRINT DD statement is required and must have RECFM=FB or F. The BLKSIZE value can be any value up to 32670 that is a multiple of 121. SYSUT1 DD: The SYSUT1 DD statement points to the input file for the IEBGENER operation. This file can be RECFM=F, FB, V, VS, VB, VBS, or U. The BLKSIZE must be specified in the data set label or via JCL. Variable Spanned (RECFM=VS or VBS) records cannot be copied to the output file if the output file is a PDS or PDSE.

IBM Utilities

Page 6 of 33

SYSUT2 DD: The SYSUT2 DD statement points to the output file for the IEBGENER operation. This file can be RECFM=F, FB, V, VS, VB, VBS, or U. PDS or PDSE libraries cannot have a RECFM of VS or VBS. Reblocking is accomplished if the SYSUT2 BLKSIZE is a new maximum blocksize. RECFM must be specified for the SYSUT2 file if the data set is new or DUMMY. BLKSIZE must always be specified for the SYSUT2 DD statement if LRECL and RECFM are also specified. SYSIN DD: The control statement input data set. This can be on DASD, TAPE, or instream SYSIN. The SYSIN BLKSIZE must be a multiple of 80, with a maximum allowed BLKSIZE of 32,720, and a RECFM of F or FB. CONTROL STATEMENTS Control statements are continued by placing a non-blank character in column 72, and continuing the statement beginning in column 16 on the next statement GENERATE MEMBER RECORD

GENERATE The GENERATE control statement is required when: The output data set is partitioned Editing is to be performed User routines are provided and/or label processing is to be done.

SYNTAX: The format of the GENERATE statement is: {label} GENERATE MAXNAME=n {,MAXFLDS=n} {,MAXGPS=n} {,MAXLITS=n} {,DBCS={YES NO}} RECORD This statement defines a record group and provides editing directions to IEBGENER. IBM Utilities

Page 7 of 33

This control statement is required when: the output data set is partitioned, or editing is to be performed, or user routines are provided and/or label processing is to be done. SYNTAX: The format of the RECORD statement is: {label} RECORD {{IDENTIDENTG}=(length,'name',input-location)} {,FIELD=({length} {,input-location 'literal'} {,conversion} {output-location}),{FIELD=...} {,LABELS=n} MEMBER This statement is used when the output data set is to be a PDS/PDSE. One MEMBER statement must be included for each member being created. All RECORD statements that follow a MEMBER statement refer to the member named by that statement. If a MEMBER statement is not included, the output data set will be sequential. SYNTAX: The format of the MEMBER statement is: {label} MEMBER NAME=(name{,alias}...) 'name' and 'alias' are member names and aliases desired for the member Multiple aliases are allowed Example : 1 TO PRINT A SEQUENTIAL DATA SET //PRINT /STEP1 //SYSPRINT //SYSIN //SYSUT1 // // //SYSUT2 // IBM Utilities JOB EXEC PGM=IEBGENER DD SYSOUT=A DD DUMMY DD DSN=INPUT,UNIT=disk,DISP=SHR, DCB=(RECFM=F,LRECL=80,BLKSIZE=80), VOLUME=SER=111112 DD SYSOUT=A, DCB=(RECFM=F,LRECL=80,BLKSIZE=80) Page 8 of 33

Example : 2 CREATE A PARTITIONED DATA SET FROM A SEQUENTIAL INPUT //TAPEDISK JOB //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=INSET,UNIT=tape,LABEL=(,SL), // DISP=(OLD,KEEP),VOLUME=SER=001234 //SYSUT2 DD DSN=NEWSET,UNIT=disk, // DISP=(,KEEP),VOLUME=SER=111112, // SPACE=(TRK,(10,5,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000) //SYSIN DD * GENERATE MAXNAME=3,MAXGPS=2 MEMBER NAME=MEMBER1 GROUP1 RECORD IDENT=(8,'FIRSTMEM',1) MEMBER NAME=MEMBER2 GROUP2 RECORD IDENT=(8,'SECNDMEM',1) MEMBER NAME=MEMBER3 /* Example 3 Edit and Copy a Sequential Input Data Set //DISKDISK JOB /STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=OLDSET,UNIT=disk,DISP=(OLD,KEEP), // VOL=SER=111112 //SYSUT2 DD DSN=NEWSET,UNIT=disk,DISP=(NEW,KEEP), // VOL=SER=111113,DCB=(RECFM=FB,LRECL=80, / BLKSIZE=640),SPACE=(TRK,(20,10)) //SYSIN DD * GENERATE MAXFLDS=4,MAXGPS=1 EXITS IOERROR=ERRORRT GRP1 RECORD IDENT=(8,'FIRSTGRP',1),FIELD=(21,80,,60),FIELD=(59,1,,1) GRP2 RECORD FIELD=(11,90,,70),FIELD=(69,1,,1) /* Example : 4 EDIT DOUBLE-BYTE CHARACTER SET DATA //DBLBYTE JOB /STEP1 EXEC PGM=IEBGENER ///SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=INPUT,DISP=(OLD,KEEP) //SYSUT2 DD DSN=OUTPUT,DISP=(NEW,CATLG), / DCB=(LRECL=80,BLKSIZE=3200,RECFM=FB), // SPACE=(TRK,(1,1)) //SYSIN DD * IBM Utilities Page 9 of 33

/*

GENERATE MAXFLDS=4,MAXLITS=9,DBCS=YES RECORD FIELD=(20,1,,1),FIELD=(16,33,VC,21), FIELD=(30,50,VC,39),FIELD=(9,'*********',,72)

COPY SEQUENTIAL FILE TO SEQUENTIAL FILE //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBGENER,REGION=1024K //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=TCHN080.COMPARE.Z.COREACCT.FLDFIL,DISP=SHR //SYSUT2 DD DSN=TCHN080.COMPARE.Z.COREACCT.FLDFIL.TMP, // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(10,10),RLSE) //SYSUDUMP DD SYSOUT=* //SYSIN DD DUMMY //* COPY PDS MEMBER TO PDS MEMBER //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBGENER,REGION=1024K //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=TCHN080.SASTHA.RUNJCL(COPYFILE),DISP=SHR //SYSUT2 DD DSN=TCHN080.SASTHA.TRNJCL(COPYFILE),DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSIN DD DUMMY //* COPY SEQUENTIAL FILE TO PDS MEMBER //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBGENER,REGION=1024K //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=TCHN080.SASTHA.TRNFL,DISP=SHR //SYSUT2 DD DSN=TCHN080.SASTHA.TRNJCL(TRNFL),DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSIN DD DUMMY //*

IBM Utilities

Page 10 of 33

4. IEBCOPY
IEBCOPY - what can it do IEBCOPY can perform the following functions. Copying Data Sets Merging Data Sets Unloading Data Sets Loading Data Sets Selecting members to be copied, unloaded or loaded Replacing Members in a Data Set Renaming Selected Members Excluding Members from a Copy operation Compressing a Data Set Altering, Copying and Reblocking load modules PDS to PDSE & Vice Versa

Sample JCL //JS10 EXEC PGM=IEBCOPY,REGION=1024K, // PARM='SIZE=nnnnnnnnK' (Optional PARM) //SYSPRINT DD SYSOUT=* (IEBCOPY Messages ) //DDNAME1 DD DSN=...,DISP=...(Input File) //DDNAME2 DD DSN=...,DISP=... (OUTPUT FILE) //SYSUT DD UNIT=SYSDA, // SPACE=(TRK,(30,30),RLSE) (Work file 1) /SYSUT4 DD UNIT=SYSDA, // SPACE=(TRK,(30,30),RLSE) (Work file 2) /SYSIN DD * Control Statements /* Control Statements Copy Select Exclude Copymod Altermod

IBM Utilities

Page 11 of 33

COPY This statement indicates the beginning of a copy operation and identifies the DD statements to be used during the copy The format of the COPY control statement is: {label} Copy Outdd=ddname, Indd=(ddname1,ddname2,(ddname3,R),...) {,LIST=NO} Examples: Example 1 - Copy all with replace. {label} COPY OUTDD=O,INDD=((I,R)) Example 2 - Copy without replace. {label} C O=TAPE,I=DASD Example 3 - Compress-in-place {label} COPY OUTDD=SYSUT1,I=SYSUT1 SELECT This statement is used to name members to be included in a copy operation. This statement must be preceded by a COPYor COPYMOD statement, or the INDD= portion of a COPY statement. This statement may not appear in the same COPY operation as an EXCLUDE statement This statement may not be used in a compress operation. A SELECT member is only replaced in the output data set if the REPLACE option ('R') is set on the SELECT statement or on the INDD portion of the COPY statement. SYNTAX: Format 1 - Copy selected members. {label} SELECT MEMBER=name Format 2 - Copy a list of members. {label} SELECT MEMBER=(name1,name2,name3...) Format 3 - Copy a list of members and rename them. {label} SELECT MEMBER=((name1,newname1), (name2,newname2),...) IBM Utilities Page 12 of 33

Format 4 - Copy a list of members and replace them {label} SELECT MEMBER=((name1,,R),(name2,,R),...) Examples: COPY1 SELC1 COPY2 SELC2 SELC3 SELC4 SELC4 EXCLUDE This statement is used to name members to be excluded from a copy operation The EXCLUDE statement must be preceded by a COPY or COPYMOD statement, or the INDD= portion of a COPY statement An EXCLUDE statement may not appear in the same COPY operation as a SELECT statement This statement cannot be used in a compress operation. The format of the SELECT control statement is: {label} EXCLUDE MEMBER=(name1,name2,name3,...) Examples COPY1 EXCL1 COPY2 EXCL2 EXCL3 EXCL4 C O=FILEOUT,I=FILEIN E M=(SYNCSORT,SYNCGENR) COPY OUTDD=F,I=Z99 EXCLUDE MEMBER=SNOOPY E MEMBER=(TRY1,TRY2,WALDO) EXCLUDE M=(P2,P9,DFHSIP) C O=FILEOUT,I=FILEIN S M=((IEBGENER,MYGENER,R),MYPROG, (YOURPROG,,R)) COPY OUTDD=SYSUT2,INDD=((SYSUT1,R)) SELECT M=(MOD1,MOD2,WRET020) S M=MEMBER30 S M=MEMBER50 S MEMBER=((WORKMOD,,R))

COPYMOD This statement is used to copy load modules, repairing damaged RLD and text records in the process. COPYMOD will also reblock load modules. COPYMOD is identical in format to the COPY statement, except that the MAXBLK and MINBLK keywords are used to establish a maximum and minimum blocksize for the output load module data set

IBM Utilities

Page 13 of 33

SYNTAX: The format of the COPYMOD control statement is: {label} COPYMOD OUTDD=ddname, INDD=(ddname1,ddname2,(ddname3,R),...) {,MAXBLK={nnnnnnnK}} {,MINBLK={nnnnnnnK}} {,LIST=NO} ALTERMOD This statement is used to insert RLD counts into RLD entries for load modules that were linked by older versions of the linkage editor. Only PDS directory entries and RLD entries are changed by this function. ALTERMOD may be performed several times on the same PDS with no cumulative effect The format of the statement is {label} ALTERMOD OUTDD=ddname {,LIST=NO} Example : 1 COPY AN ENTIRE DATA SET //COPY //JOBSTEP //SYSPRINT //SYSUT1 // //SYSUT2 // // Example : 2 Merge Four Data Sets //COPY /JOBSTEP //SYSPRINT //IN1 //IN5 //IN6 //OUT2 //SYSUT3 //SYSIN COPYOPER INDD=IN1 INDD=IN6 INDD=IN5 IBM Utilities JOB ... EXEC PGM=IEBCOPY DD SYSOUT=A DD DSN=DATASET1,DISP=SHR DD DSN=DATASET5,DISP=OLD DD DSN=DATASET6,DISP=(OLD,DELETE) DD DSN=DATASET2,,DISP=(OLD,KEEP) DD UNIT=SYSDA,SPACE=(TRK,(1)) DD * COPY OUTDD=OUT2 EXEC DD JOB ... PGM=IEBCOPY SYSOUT=A DD DSN=DATASET5,UNIT=disk, VOL=SER=111113, DISP=SHR DD DSNAME=DATASET4,UNIT=disk, VOL=SER=111112,DISP=(NEW,KEEP), SPACE=(TRK,(5,1,2))

Page 14 of 33

/* Example : 3 Copy and Replace Selected Members of a Data Set //COPY JOB ... //JOBSTEP EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=A //IN5 DD DSN=DATASET5,DISP=(OLD,KEEP) //IN6 DD DSN=DATASET6,DISP=OLD //OUT1 DD DSN=DATASET1,DISP=(OLD,KEEP) //SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(1)) //SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(1)) //SYSIN DD * COPYOPER COPY OUTDD=OUT1 INDD=IN5,IN6 SELECT MEMBER=((B,,R),A) /* Example : 4 JCL TO UNLOAD A DATA SET //SAVE //STEP1 //SYSPRINT /SYSUT1 //SYSUT2 // //SYSUT3 // // //SYSIN Example : 5 JCL TO COMPRESS A PDS //JS10 EXEC PGM=IEBCOPY,REGION=1M //SYSPRINT DD SYSOUT=* //I1 DD DSN=MY.PDS,DISP=OLD //O1 DD DSN=MY.PDS,DISP=OLD //SYSIN DD * COMP1 C O=O1,I=((I1,R)) /* Example : 6 LOADING A DATA SET //LOAD //STEPA //SYSPRINT //SYSUT1 IBM Utilities JOB ... EXEC PGM=IEBCOPY DD SYSOUT=A DD DSN=UNLOADSET,UNIT=tape,LABEL=(,SL), Page 15 of 33 JOB ... EXEC PGM=IEBCOPY DD SYSOUT=A DD DSN=PARTPDS,DISP=OLD DD DSN=SAVDATA, DISP=(NEW,KEEP),LABEL=(,SL) DD DSN=TEMP1,UNIT=disk, VOL=SER=111111,=(NEW,DELETE), SPACE=(80,(60,45)) DD DUMMY

// //SYSUT2 // // //SYSUT3 // //SYSIN * Example : 7

VOL=SER=TAPE01,DISP=OLD DD DSN=DATASET4,UNIT=disk, VOL=SER=2222222,=(NEW,KEEP), SPACE=(CYL,(10,5,10)) DD DSN=TEMP1,UNIT=disk,VOL=SER=111111, DISP=(NEW,DELETE),SPACE=(80,(15,1)) DD DUMMY

UNLOAD SELECTED MEMBERS, LOAD, COPY AND MERGE //COPY //STEP //SYSPRINT //PDS1 /PDS2 //SEQ1 // //SEQ2 // /NEWUP // //MERGE // //SYSUT3 // //SYSUT4 // //SYSIN COPY EXCLUDE COPY SELECT COPY EXCLUDE /* Example : 8 JOB ... EXEC PGM=IEBCOPY DD SYSOUT=A DD DSN=ACCOUNTA,UNIT=disk,VOL=SER=333333,DISP=OLD DD DSN=ACCOUNTB,UNIT=disk,VOL=SER=333333,DISP=OLD DD DSN=SAVAC,UNIT=disk,VOL=SER=333333, DISP=(NEW,KEEP),SPACE=(CYL,(5,2)) DD DSN=SAVACB,UNIT=tape,VOL=SER=T01911, DISP=(NEW,KEEP),LABEL=(,SL) DD DSN=NEWACC,UNIT=tape,VOL=SER=T01219, DISP=OLD,LABEL=(,SL) DD DSN=ACCUPDAT,UNIT=disk, VOL=SER=222222,DISP=OLD DD DSN=TEMP1,VOL=SER=666666,UNIT=disk, DISP=(NEW,DELETE),SPACE=(80,(1,1)) DD DSN=TEMP2,VOL=SER=666666,UNIT=disk, DISP=(NEW,DELETE),SPACE=(256,(1,1)),DCB=(KEYLEN=8) DD * OUTDD=SEQ1,INDD=PDS1 MEMBER=(D,C) OUTDD=SEQ2,INDD=PDS2 MEMBER=(A,K) OUTDD=MERGE,INDD=((NEWUP,R),PDS1,PDS2) MEMBER=A

ALTER LOAD MODULES IN PLACE //ALTERONE //STEPA //SYSPRIN //SYSUT3 //LIBJ //LIBK //LIBL //SYSIN ALTERMOD SELECT ALTERMOD EXCLUDE /* IBM Utilities JOB ... EXEC PGM=IEBCOPY DD SYSOUT=A DD UNIT=SYSDA,SPACE=(TRK,(5,1)) DD DSN=MODLIBJ,DISP=(OLD,KEEP) DD DSN=MODLIBK,DISP=(OLD,KEEP) DD DSN=MODLIBL,DISP=(OLD,KEEP) DD * OUTDD=LIBJ MEMBER=(MODX,MODY,MODZ) OUTDD=LIBL MEMBER=(MYMACRO,MYJCL)

Page 16 of 33

Example : 9 REPLACE A LOAD MODULE USING COPYMOD //REPLACE JOB ... //STEP1 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=A //TESTLB DD DSN=JOHNDOE.COBOL.TESTLOAD, // DISP=SHR,UNIT=3380,VOL=SER=TEST01, // DCB=(BLKSIZE=23470) //PRODLIB DD DSN=PAYROLL.MASTER.LOADLIB, // DISP=(OLD,KEEP)UNIT=3350,VOL=SER=PROD01, // DCB=(BLKSIZE=19069) //SYSIN DD * COPYMOD OUTDD=PRODLIB,INDD=TESTLIB SELECT MEMBER=((WAGETAX,,R)) /* Example : 10 CONVERT A PDS TO PDSE //CONVERT //STEP1 //SYSPRINT //SYSUT1 // //SYSUT2 // // // JOB ... EXEC PGM=IEBCOPY DD SYSOUT=A DD DSN=PDSSET,DISP=SHR, DSNTYPE=PDS DD DSN=PDSESET, LIKE=PDSSET, DISP=(NEW,CATLG) DSNTYPE=LIBRARY

COPY PARTITIONED DATASETS //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBCOPY,REGION=1024K //SYSPRINT DD SYSOUT=* //DD1 DD DSN=TCHN080.SASTHA.RUNJCL,DISP=SHR //DD2 DD DSN=TCHN080.SASTHA.TRNJCL,DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSIN DD * COPY INDD=DD1, * OUTDD=DD2 /* //* COPY PARTITIONED DATASETS SELECT FEW MEMBERS //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, IBM Utilities Page 17 of 33

// NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBCOPY,REGION=1024K //SYSPRINT DD SYSOUT=* //DD1 DD DSN=TCHN080.SASTHA.RUNJCL,DISP=SHR //DD2 DD DSN=TCHN080.SASTHA.TRNJCL,DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSIN DD * COPY INDD=DD1, * OUTDD=DD2 SELECT MEMBER=(CNTDEAL,COPYFILE) /* //* COPY PARTITIONED DATASETS EXCLUDE FEW MEMBERS //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBCOPY,REGION=1024K //SYSPRINT DD SYSOUT=* //DD1 DD DSN=TCHN080.SASTHA.RUNJCL,DISP=SHR //DD2 DD DSN=TCHN080.SASTHA.TRNJCL,DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSIN DD * COPY INDD=DD1, * OUTDD=DD2 EXCLUDE MEMBER=(CNTDEAL,COPYFILE) /* //* COPY PARTITIONED DATASETS COMPRESS PDS //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // NOTIFY=&SYSUID //********************************************************************** //STEP1 EXEC PGM=IEBCOPY,REGION=1024K //SYSPRINT DD SYSOUT=* //DD1 DD DSN=TCHN080.SASTHA.TRNJCL,DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSIN DD * COPY INDD=DD1, * OUTDD=DD1 /* //*

IBM Utilities

Page 18 of 33

5. IEBUPDTE
What is IEBUPDTE? IEBUPDTE is used to create or modify sequential or Partitioned Data Sets IEBUPDTE can be used to change the organization of a data set from sequential to partitioned or vice versa IEBUPDTE can be used only with the data sets containing fixed length records of no more than 80 bytes. Inputs to IEBUPDTE IEBUPDTE uses two sources of input which are an input data set containing the source data to be modified Input Data set can be either Sequential or PDS a control data set containing the statements controlling IEBUPDTE's manipulation of the input data set Outputs of IEBUPDTE IEBUPDTE creates two forms of output which are an output data set which is the result of the manipulations made to the input data set O/P Data Set can be seq or PDS It can be New (Created) or Old (Modified)

a print data set containing a log of the modifications, error messages and control statements used in the job step Sample JCL //JS10 EXEC PGM=IEBUPDTE, // REGION=1024K,PARM='NEW|MOD' //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=...,DISP=... //SYSUT2 DD DSN=...,DISP=... //SYSIN DD * control statements... /*

IBM Utilities

Page 19 of 33

Control Statements Function statement Data statements ALIAS statement ENDUP statement Modifying statements Control statements are continued by placing a non blank character in column 72, and continuing the statement beginning in column 16 on the next statement All IEBUPDTE control statements (except data statements) begin with a "./" in columns 1 and 2. FUNCTION The function statement is used to begin the IEBUPDTE operation At least one function statement is necessary for each member or data set being processed The function keywords should be preceded by and followed by at least one blank Valid functions are : ADD CHANGE REPL REPRO specifies that a new member or data set is to be created specifies that an existing member or data set is to be updated specifies that a member or data set is to be replaced in its entirety specifies that a member or data set is to be copied without

modification to the output dataset SYNTAX: ./{label} {ADD | CHANGE | REPL | REPRO} {LIST=ALL} {,SEQFLD=ddl } {,NEW=PO | PS} {,MEMBER=cccccccc} {,COLUMN=nn | 1} {,UPDATE=INPLACE} {,NAME=cccccccc} {,LEVEL=hh} {,SOURCE=x} {,SSI=hhhhhhhh}

IBM Utilities

Page 20 of 33

DETAIL The detail statement is used in conjunction with a function statement to provide additional information Valid detail keywords are: NUMBER DELETE or data set SYNTAX: ./{label} {NUMBER | DELETE} {SEQ1=cccccccc | ALL} {,SEQ2=cccccccc} {,NEW1=cccccccc} {,INCR=cccccccc} {,INSERT=YES} DATA The data statement is used to supply the logical records that are used as replacement statements or new data to be merged into the output data set When used with an ADD or REPL function, a data statement contains the new data to be placed in the output dataset When used with a CHANGE function, a data statement contains the new data or the data which replaces existing logical records in the input data set The data statement does not have a fixed syntax. Each logical record begins in column 1 and must contain sequence numbers The sequence numbers must be in the same relative position in the data statement as in the existing logical records The sequence numbers are assumed to be in columns 73 though 80 until otherwise specified in a SEQFLD parameter ALIAS The ALIAS statement is used to create or to retain existing alias in an output data set directory Up to 16 aliases can be assigned to a single member This format of the ALIAS statement is as follows: ./{name} ALIAS NAME=cccccccc where NAME=cccccccc specifies the name of an alias for this member specifies a new sequence numbering scheme specifies the logical records that are to be removed from the member

IBM Utilities

Page 21 of 33

ENDUP The ENDUP statement indicates the end of the utility control statements This format of the ENDUP statement is as follows: ./{label} ENDUP Example 1 Place two procedures in SYS1.PROCLIB //UPDATE JOB ... //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSNAME=SYS1.PROCLIB,DISP=OLD //SYSUT2 DD DSNAME=SYS1.PROCLIB,DISP=OLD //SYSIN DD DATA // ADD LIST=ALL,NAME=ERASE,LEVEL=01,SOURCE=0 ./ NUMBER NEW1=10,INCR=10 //* //ERASE EXEC PGM=IEBUPDTE //DD1 DD UNIT=disk,DISP=(OLD,KEEP),VOL=SER=111111 //SYSPRINT DD SYSOUT=A .// REPL LIST=ALL,NAME=LISTPROC ./ NUMBER NEW1=10,INCR=10 /* //LIST EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=SYS1.PROCLIB(&MEMBER),DISP=SHR //SYSUT2 DD SYSOUT=A,DCB=(RECFM=F,BLKSIZE=80) Example 2 CREATE A THREE MEMBER LIBRARY //UPDATE JOB ... /STEP1 EXEC PGM=IEBUPDTE,PARM=NEW //SYSPRINT DD SYSOUT=A //SYSUT2 DD DSN=OUTLIB,UNIT=disk, // DISP=(NEW,KEEP),VOL=SER=111112,SPACE=(TRK,(50,,10)), // DCB=(RECFM=F,LRECL=80,BLKSIZE=80) //SYSIN DD DATA ./ ADD NAME=MEMB1,LEVEL=00,SOURCE=0,LIST=ALL (Data statements, sequence numbers in columns 73 through 80) Cont.... ./ ADD NAME=MEMB2,LEVEL=00,SOURCE=0,LIST=ALL (Data statements, sequence numbers in columns 73 through 80) ./ ADD NAME=MEMB3,LEVEL=00,SOURCE=0,LIST=ALL (Data statements, sequence numbers in columns 73 through 80) ./ ENDUP /*

IBM Utilities

Page 22 of 33

Example 3 Create new library using SYS1.MACLIB as a source //UPDATE JOB ... //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=SYS1.MACLIB, // DISP=SHR,UNIT=disk //SYSUT2 DD DSN=<New Mac Library>, // VOL=SER=111112,DISP=(NEW,KEEP), // SPACE=(TRK,(100,,10)),UNIT=DISK // DCB=(RECFM=F,LRECL=80,BLKSIZE=80) //SYSIN DD DATA // REPRO NAME=ATTACH,LEVEL=00,SOURCE=1,LIST=ALL ./ REPRO NAME=DETACH,LEVEL=00,SOURCE=1,LIST=ALL ./ ADD NAME=EXIT,LEVEL=00,SOURCE=0,LIST=ALL ./ NUMBER NEW1=10,INCR=100 (Data records for EXIT member) ./ ENDUP /* Example 4 Update a library member //UPDATE JOB ... //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSNAME=PDS,UNIT=disk, // DISP=(OLD,KEEP),VOLUME=SER=111112 //SYSIN DD * ./ CHANGE NAME=MODMEMB,LIST=ALL, X ./ UPDATE=INPLACE ./ NUMBER SEQ1=ALL,NEW1=10,INCR=5 (Data statement 1, sequence number 00000020) (Data statement 2, sequence number 00000035) /*

Example 5 Create new master data set and delete selected records //UPDATE JOB ... //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=A /SYSUT1 DD DSN=PARTDS,UNIT=disk,DISP=(OLD,KEEP), // VOLUME=SER=111112 /SYSUT2 DD DSN=SEQDS,UNIT=tape,LABEL=(2,SL), // DISP=(,KEEP),VOLUME=SER=001234, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000) //SYSIN DD * ./ CHANGE NEW=PS,NAME=OLDMEMB1 (Data statement 1, sequence number 00000123) ./ DELETE SEQ1=223,SEQ2=246 IBM Utilities Page 23 of 33

(Data statement 2, sequence number 00000224) /* Example 6 Create and update a member library //UPDATE JOB ... //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=OLDSEQDS,UNIT=tape, // DISP=(OLD,KEEP),VOLUME=SER=001234 //SYSUT2 DD DSN=NEWPART,UNIT=disk, // DISP=(,KEEP),VOLUME=SER=111112, // SPACE=(TRK,(10,5,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=80) //SYSIN DD * // CHANGE NEW=PO,MEMBER=PARMEM1,LEVEL=01, ./ SEQFLD=605,COLUMN=40,SOURCE=0 (Data statement 1, sequence number 00020) ./ DELETE SEQ1=220,SEQ2=250 (Data statement 2, sequence number 00230) (Data statement 3, sequence number 00260) ./ ALIAS NAME=MEMB1 /* Example 7 Re-number and insert records into a library MEMBER //UPDATE JOB //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=PDS,UNIT=disk,DISP=(OLD,KEEP), // VOLUME=SER=111112 //SYSUT2 DD DSN=PDS,UNIT=disk,DISP=(OLD,KEEP), // VOLUME=SER=111112 //SYSIN DD * ./ CHANGE NAME=RENUM,LIST=ALL,LEVL=01, X ./ SOURCE=0,SEQFLD=765 ./ NUMBER SEQ1=AA015,NEW1=AA020,INCR=5,INSERT=YES (Data statement 1) (Data statement 2) (Data statement 3) ./ NUMBER SEQ1=AA030,INSERT=YES (Data statement 4) (Data statement 5) (Data statement 6) (Data statement 7, sequence number AA035) /*

IBM Utilities

Page 24 of 33

Example 8 CREATE A NEW GENERATION DATA SET //NEWGDS //STEP1 //SYSPRINT //SYSUT1 //SYSUT2 // // // //SYSIN // REPRO ./ REPRO ./ REPRO ./ ADD ./ NUMBER (Data records ./ ENDUP /* JOB ... EXEC PGM=IEBUPDTE,PARM=MOD DD SYSOUT=A DD DSN=A.B.C(0),DISP=OLD DD DSN=A.B.C(+1),DISP=(,CATLG), UNIT=disk,VOLUME=SER=111111, SPACE=(TRK,(100,10,10)), DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) DD DATA NAME=MEM1,LEVEL=00,SOURCE=0,LIST=ALL NAME=MEM2,LEVEL=00,SOURCE=0,LIST=ALL NAME=MEM3,LEVEL=00,SOURCE=0,LIST=ALL NAME=MEM4,LEVEL=00,SOURCE=0,LIST=ALL NEW1=10,INCR=5 comprising MEM4)

IBM Utilities

Page 25 of 33

6. DFSORT
What does DFSORT do? Sorts records in ascending or descending order within a dataset Merge two or more files to form a single file Select a subset of records from an input file Sum values in records Reformat records

SAMPLE JCL //JOB CARD //STEPNAME EXEC PGM=SORT //STEPLIB DD - defines the library containing the DFSORT program. If it is in system library, this statement can be omitted //SYSOUT DD -output data set for messages //SORTIN DD -INPUT DATA SET //SORTWKNN DD -defines a work storage dataset for most applications one data set is sufficient //SOROUT DD -defines the output data set //SYSIN DD Sort control statements /* Writing a SORT statement Leave at least one blank, and write SORT Leave at least one blank, and write FIELD = Write , in parentheses, separated by commas The starting position of the key field Length, in bytes of the key field SORT FIELD = (110,5,CH,A) letter A for Ascending / D for Descending Order

A code for data format

Make sure that the statement is coded between columns 2 and 71 DATA FORMATS EBCDIC Character CH Page 26 of 33

IBM Utilities

ASCII Character BINARY ZONED DECIMAL PACKED DECIMAL ALTERNATE SEQ

AC BI ZD PD AQ

Sorting By Multiple Fields SORT FIELDS = (110,5,CH,A,115,5,A,1,75,CH,A) This is equivalent to SORT FIELDS = (110,10,CH,A,1,75,CH,A) First two fields being contiguous have been concatenated When all the control fields are of the same data format, just data format can be specified just once using FORMAT= parameter e.g. SORT FIELDS = (110,10,A,1,75,A),FORMAT=CH

Tailoring the Input File INPUT File can be tailored by either: Specifying an INCLUDE control statement, for the records to be included Specifying an OMIT control statement, for the records to be omitted Both INCLUDE and OMIT cannot be used together Inclusion and Omission can be done by comparing the contents of a record field with either Another Field (or) A Constant(Character string / Decimal Number / Hexadecimal String) Two or more conditions can be combined by Logical AND & OR Rules for Padding/Truncation In a field-to-field comparison the shorter field is padded as appropriate (with blanks or zeros) In a field-to-constant comparison the constant is padded or truncated to the length of the field Decimal Constants are padded or truncated on the left character and hexadecimal constants are padded or truncated on the right (or)

IBM Utilities

Page 27 of 33

INCLUDE & OMIT statement To write an INCLUDE or OMIT statement Leave at least one blank and write INCLUDE or OMIT Leave at least one blank and write COND= Write in parentheses, and separated by commas The location, length and data format of the field to be compared Comparison Operator (EQ, NE, GT, GE, LT, LE) The location,length and date format of the field compared against (or) a constant OMIT can not be used with INCLUDE Reformatting Records After Records are sorted they can be reformatted by using OUTREC or INREC statement Fields can be deleted Order of the fields can be rearranged Zeros or Blanks can be inserted before, between or after fields

If record length gets changed in the process of using OUTREC statement the new record length has to be specified on the SORTOUT DD statement IF Reformatting uses INREC changes the location of the key fields the new location has to be specified in SORT statement. INREC & OUTREC statement INREC reformats the input records. You can use this statement to add, delete, or reformat fields before the records are sorted or merged. OUTREC adds, deletes, or reformats fields after the records are sorted or merged. Leave at least one blank and write OUTREC or INREC Leave at least one blank and write FIELDS = Write in paranthesis, and separated by commas: The input location and length of the fields to appear in the desired order (Data format is not specified) Reformatting is performed before SORT/MERGE in the case of INREC & it is performed after SORT/MERGE in the case of OUTREC

IBM Utilities

Page 28 of 33

MERGE FILES Files to be merged should be sorted on the same set of keys on which they are being merged Do not use SORTWKnn DD statement Instead of SORTIN DD use SORTINnn DD .One SORTINnn DD statement for each input file . nn stands for 01 to 16. In Utility Control Statement MERGE replaces SORT Processing Order of Control Statements INCLUDE/OMIT INREC STATEMENT SORT/MERGE OUTREC STATEMENT EQUALS NOEQUALS - determines whether or not the sort will

preserve the order of records with identical sort fields. NOEQUALS is the default, and causes equal-keyed records to be written in a random order, not in the order they were encountered.

JUST MERGE FILES //STEP2 //SYSABEND //SYSPRINT //SYSOUT //SORTIN // // // // // // // IBM Utilities DD DD DD DD DD EXEC PGM=SORT DD SYSOUT=* DD SYSOUT=* DD SYSOUT=* DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.B1,DISP=SHR DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.B2,DISP=SHR DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.H1,DISP=SHR DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.H2,DISP=SHR DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.S1,DISP=SHR DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.ALL, DISP=(NEW,CATLG,KEEP), DCB=(RECFM=FB,LRECL=110,BLKSIZE=0), SPACE=(CYL,(25,254),RLSE),UNIT=SYSDA Page 29 of 33

//SORTOUT DD

//SORTWK01 //SORTWK02 //SORTWK03 //SORTWK04 //SYSIN /*

DD DD DD DD DD

SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA *

SORT FIELDS=COPY SORT AND INCLUDE //STEP10 //SORTLIB //SYSOUT //SORTIN //SORTOUT // // // // EXEC DD DD PGM=SORT,PARM='EQUALS' DSN=SYS1.SORTLIB,DISP=SHR SYSOUT=* SYSOUT=* DD DSN=TCHN080.UTMRGE.MRG6.RELACCT.ALL,DISP=SHR DD DSN=TCHN080.UTMRGE.MRG6DDA.RELACCT.S1, DISP=(,CATLG,DELETE), DCB=(BLKSIZE=0,LRECL=110,RECFM=FB), UNIT=SYSDA, SPACE=(CYL,(30,25),RLSE)

//SYSPRINT DD

//SORTWK01 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK02 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK03 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK04 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK05 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK06 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SYSIN DD * SORT FIELDS=(21,15,CH,A) INCLUDE COND=(23,2,CH,EQ,C'DDA ') /* OUTREC / INREC //STEP7 //SORTLIB //SYSOUT //SORTIN //* //SORTOUT // IBM Utilities DD DSN=TCHN080.TRANACRE.RELACCT.COMM.UNQ, DISP=(NEW,CATLG,DELETE), Page 30 of 33 EXEC DD DD PGM=SORT,PARM='EQUALS' DSN=SYS1.SORTLIB,DISP=SHR SYSOUT=* SYSOUT=*

//SYSPRINT DD

DD DSN=TCHN080.TRANACRE.RELACCT.COMM,DISP=SHR

// // //*

SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=37,RECFM=FB,BLKSIZE=0)

//SORTWK01 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK02 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK03 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK04 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK05 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK06 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SYSIN DD * SORT FIELDS=(12,25,CH,A,45,7,ZD,A,1,10,ZD,A) OUTREC FIELDS=(1,10,12,2,15,4,20,17,38,4) /* WRITING TO DIFFERENT FILES //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, // //* //STEP17 //SORTLIB //SYSOUT //SORTIN //* //SORTOF1 // // // //SORTOF2 // // // //* //SORTWK01 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK02 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK03 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK04 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA IBM Utilities Page 31 of 33 DD DSN=TCHN080.TRANACRE.RELACCT.ALLH1, DISP=(NEW,CATLG,DELETE), SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=37,RECFM=FB,BLKSIZE=0) DD DSN=TCHN080.TRANACRE.RELACCT.ALLH2, DISP=(NEW,CATLG,DELETE), SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=37,RECFM=FB,BLKSIZE=0) EXEC DD DD PGM=SORT,PARM='EQUALS' DSN=SYS1.SORTLIB,DISP=SHR SYSOUT=* SYSOUT=* NOTIFY=&SYSUID

//SYSPRINT DD

DD DSN=TCHN080.TRANACRE.RELACCT.ALL,DISP=SHR

//SORTWK05 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK06 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SYSIN DD * SORT FIELDS=COPY OUTFIL FILES=1,INCLUDE=(9,2,ZD,EQ,07, AND,7,2,ZD,GE,00,AND,7,2,ZD,LE,49) OUTFIL FILES=2,INCLUDE=(9,2,ZD,EQ,07, AND,7,2,ZD,GE,50,AND,7,2,ZD,LE,99) /* SORTXSUM //STEP4 //SORTLIB //SYSOUT //SORTIN //* //SORTXSUM DD DSN=TCHN080.TRANACRE.RELACCT.DUP, // // // //SORTOUT // // // //* //SORTWK01 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK02 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK03 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK04 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK05 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK06 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SYSIN DD * SORT FIELDS=(12,25,CH,A) SUM FIELDS=(45,7,ZD),XSUM /* SUM FIELDS=NONE //U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B, IBM Utilities Page 32 of 33 DISP=(NEW,CATLG,DELETE), SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=51,RECFM=FB,BLKSIZE=0) DD DSN=TCHN080.TRANACRE.RELACCT.OUT, DISP=(NEW,CATLG,DELETE), SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=51,RECFM=FB,BLKSIZE=0) EXEC DD DD PGM=SORT,PARM='EQUALS' DSN=SYS1.SORTLIB,DISP=SHR SYSOUT=* SYSOUT=*

//SYSPRINT DD

DD DSN=TCHN080.TRANACRE.RELACCT.SORT,DISP=SHR

// //*

NOTIFY=&SYSUID EXEC DD DD PGM=SORT,PARM='EQUALS' DSN=SYS1.SORTLIB,DISP=SHR SYSOUT=* SYSOUT=*

//STEP4 //SORTLIB //SYSOUT //SORTIN //*

//SYSPRINT DD

DD DSN=TCHN080.TRANACRE.RELACCT.ALL,DISP=SHR

//SORTXSUM DD DSN=TCHN080.TRANACRE.RELACCT.ALLDUP, // // // //SORTOUT // // // //* //SORTWK01 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK02 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK03 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK04 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK05 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SORTWK06 DD SPACE=(CYL,(9,5),RLSE),UNIT=SYSDA //SYSIN DD * SORT FIELDS=(12,25,CH,A) SUM FIELDS=NONE,XSUM /* //* DISP=(NEW,CATLG,DELETE), SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=51,RECFM=FB,BLKSIZE=0) DD DSN=TCHN080.TRANACRE.RELACCT.ALLOUT, DISP=(NEW,CATLG,DELETE), SPACE=(CYL,(10,50),RLSE), DCB=(LRECL=51,RECFM=FB,BLKSIZE=0)

IBM Utilities

Page 33 of 33

Vous aimerez peut-être aussi