Upload
siddhu-akula
View
226
Download
30
Embed Size (px)
Citation preview
- A Document by
Ramkumar. S
IBM Utilities Page 2 of 33
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 3 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 4 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 5 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 EXEC PGM=IEFBR14 //DD1 DD DSN=MY.DATA.SET,DISP=(OLD,DELETE)
For Changing the Disposition of Datasets:-
//S1 EXEC PGM=IEFBR14//D1 DD DSN=ABC, DISP=(SHR, KEEP)
For Allocating data sets:-
//S1 EXEC PGM=IEFBR14//D3 DD DSN=SYSB, UNIT=3350,VOL=SER=335001,// SPACE=(CYL,(4,2,1)),DISP=(NEW,CATLG,KEEP)
//STEPD EXEC PGM=IEFBR14
//D1 DD DSN=TCHN080.TRANACRE.RELACCT.S1,
// DISP=(MOD,DELETE,DELETE),
// SPACE=(CYL,(1,1),RLSE)
//*
IBM Utilities Page 6 of 33
3. IEBGENERWhat 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 7 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 8 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 {{IDENT¦IDENTG}=(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 JOB /STEP1 EXEC PGM=IEBGENER//SYSPRINT DD SYSOUT=A//SYSIN DD DUMMY//SYSUT1 DD DSN=INPUT,UNIT=disk,DISP=SHR,// DCB=(RECFM=F,LRECL=80,BLKSIZE=80),// VOLUME=SER=111112//SYSUT2 DD SYSOUT=A,// DCB=(RECFM=F,LRECL=80,BLKSIZE=80)
IBM Utilities Page 9 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=2MEMBER NAME=MEMBER1GROUP1 RECORD IDENT=(8,'FIRSTMEM',1)MEMBER NAME=MEMBER2GROUP2 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=1EXITS IOERROR=ERRORRTGRP1 RECORDIDENT=(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 10 of 33
GENERATE MAXFLDS=4,MAXLITS=9,DBCS=YESRECORD 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 11 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 12 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 13 of 33
Format 4 - Copy a list of members and replace them
{label} SELECT MEMBER=((name1,,R),(name2,,R),...)
Examples: -
COPY1 C O=FILEOUT,I=FILEINSELC1 S M=((IEBGENER,MYGENER,R),MYPROG, (YOURPROG,,R))
COPY2 COPY OUTDD=SYSUT2,INDD=((SYSUT1,R))SELC2 SELECT M=(MOD1,MOD2,WRET020)SELC3 S M=MEMBER30SELC4 S M=MEMBER50SELC4 S MEMBER=((WORKMOD,,R))
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} EXCLUDEMEMBER=(name1,name2,name3,...)
Examples
COPY1 C O=FILEOUT,I=FILEINEXCL1 E M=(SYNCSORT,SYNCGENR)
COPY2 COPY OUTDD=F,I=Z99EXCL2 EXCLUDE MEMBER=SNOOPY EXCL3 E MEMBER=(TRY1,TRY2,WALDO)EXCL4 EXCLUDE M=(P2,P9,DFHSIP)
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 14 of 33
SYNTAX: -
The format of the COPYMOD control statement is:
{label} COPYMOD OUTDD=ddname,INDD=(ddname1,ddname2,(ddname3,R),...){,MAXBLK={nnnnn¦nnK}}{,MINBLK={nnnnn¦nnK}}{,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 JOB ...//JOBSTEP EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A//SYSUT1 DD DSN=DATASET5,UNIT=disk,// VOL=SER=111113, DISP=SHR//SYSUT2 DD DSNAME=DATASET4,UNIT=disk,// VOL=SER=111112,DISP=(NEW,KEEP),// SPACE=(TRK,(5,1,2))
Example : 2
Merge Four Data Sets
//COPY JOB .../JOBSTEP EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A//IN1 DD DSN=DATASET1,DISP=SHR//IN5 DD DSN=DATASET5,DISP=OLD//IN6 DD DSN=DATASET6,DISP=(OLD,DELETE)//OUT2 DD DSN=DATASET2,,DISP=(OLD,KEEP)//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(1))//SYSIN DD *COPYOPER COPY OUTDD=OUT2INDD=IN1INDD=IN6INDD=IN5
IBM Utilities Page 15 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=OUT1INDD=IN5,IN6SELECT MEMBER=((B,,R),A)
/*
Example : 4
JCL TO UNLOAD A DATA SET
//SAVE JOB ...//STEP1 EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A/SYSUT1 DD DSN=PARTPDS,DISP=OLD//SYSUT2 DD DSN=SAVDATA,// DISP=(NEW,KEEP),LABEL=(,SL)//SYSUT3 DD DSN=TEMP1,UNIT=disk,// VOL=SER=111111,=(NEW,DELETE),// SPACE=(80,(60,45))//SYSIN DD DUMMY
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 JOB ...//STEPA EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A//SYSUT1 DD DSN=UNLOADSET,UNIT=tape,LABEL=(,SL),
IBM Utilities Page 16 of 33
// VOL=SER=TAPE01,DISP=OLD//SYSUT2 DD DSN=DATASET4,UNIT=disk,// VOL=SER=2222222,=(NEW,KEEP),// SPACE=(CYL,(10,5,10))//SYSUT3 DD DSN=TEMP1,UNIT=disk,VOL=SER=111111,// DISP=(NEW,DELETE),SPACE=(80,(15,1))//SYSIN DD DUMMY*
Example : 7
UNLOAD SELECTED MEMBERS, LOAD, COPY AND MERGE
//COPY JOB ...//STEP EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A//PDS1 DD DSN=ACCOUNTA,UNIT=disk,VOL=SER=333333,DISP=OLD/PDS2 DD DSN=ACCOUNTB,UNIT=disk,VOL=SER=333333,DISP=OLD//SEQ1 DD DSN=SAVAC,UNIT=disk,VOL=SER=333333,// DISP=(NEW,KEEP),SPACE=(CYL,(5,2))//SEQ2 DD DSN=SAVACB,UNIT=tape,VOL=SER=T01911,// DISP=(NEW,KEEP),LABEL=(,SL)/NEWUP DD DSN=NEWACC,UNIT=tape,VOL=SER=T01219,// DISP=OLD,LABEL=(,SL)//MERGE DD DSN=ACCUPDAT,UNIT=disk,// VOL=SER=222222,DISP=OLD//SYSUT3 DD DSN=TEMP1,VOL=SER=666666,UNIT=disk,// DISP=(NEW,DELETE),SPACE=(80,(1,1))//SYSUT4 DD DSN=TEMP2,VOL=SER=666666,UNIT=disk,// DISP=(NEW,DELETE),SPACE=(256,(1,1)),DCB=(KEYLEN=8)//SYSIN DD *
COPY OUTDD=SEQ1,INDD=PDS1EXCLUDE MEMBER=(D,C)COPY OUTDD=SEQ2,INDD=PDS2SELECT MEMBER=(A,K)COPY OUTDD=MERGE,INDD=((NEWUP,R),PDS1,PDS2)EXCLUDE MEMBER=A
/*Example : 8
ALTER LOAD MODULES IN PLACE
//ALTERONE JOB ...//STEPA EXEC PGM=IEBCOPY//SYSPRIN DD SYSOUT=A//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(5,1))//LIBJ DD DSN=MODLIBJ,DISP=(OLD,KEEP)//LIBK DD DSN=MODLIBK,DISP=(OLD,KEEP)//LIBL DD DSN=MODLIBL,DISP=(OLD,KEEP)//SYSIN DD *
ALTERMOD OUTDD=LIBJSELECT MEMBER=(MODX,MODY,MODZ)ALTERMOD OUTDD=LIBLEXCLUDE MEMBER=(MYMACRO,MYJCL)
/*
IBM Utilities Page 17 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=TESTLIBSELECT MEMBER=((WAGETAX,,R))
/*
Example : 10
CONVERT A PDS TO PDSE
//CONVERT JOB ...//STEP1 EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A//SYSUT1 DD DSN=PDSSET,DISP=SHR,// DSNTYPE=PDS//SYSUT2 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 18 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 19 of 33
5. IEBUPDTEWhat 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 20 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 specifies that a new member or data set is to be created
CHANGE specifies that an existing member or data set is to be updated
REPL specifies that a member or data set is to be replaced in its entirety
REPRO 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 21 of 33
DETAIL The detail statement is used in conjunction with a function statement to provide
additional information
Valid detail keywords are:
NUMBER specifies a new sequence numbering scheme
DELETE specifies the logical records that are to be removed from the member
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
IBM Utilities Page 22 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 23 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 24 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, X./ 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 25 of 33
Example 8
CREATE A NEW GENERATION DATA SET
//NEWGDS JOB ...//STEP1 EXEC PGM=IEBUPDTE,PARM=MOD//SYSPRINT DD SYSOUT=A//SYSUT1 DD DSN=A.B.C(0),DISP=OLD//SYSUT2 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)//SYSIN DD DATA// REPRO NAME=MEM1,LEVEL=00,SOURCE=0,LIST=ALL./ REPRO NAME=MEM2,LEVEL=00,SOURCE=0,LIST=ALL./ REPRO NAME=MEM3,LEVEL=00,SOURCE=0,LIST=ALL./ ADD NAME=MEM4,LEVEL=00,SOURCE=0,LIST=ALL./ NUMBER NEW1=10,INCR=5(Data records comprising MEM4)./ ENDUP/*
IBM Utilities Page 26 of 33
6. DFSORTWhat 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 DDSort 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
A code for data format
SORT FIELD = (110,5,CH,A)
letter A for Ascending / D for Descending Order
Make sure that the statement is coded between columns 2 and 71
DATA FORMATS
EBCDIC Character CH
IBM Utilities Page 27 of 33
ASCII Character AC
BINARY BI
ZONED DECIMAL ZD
PACKED DECIMAL PD
ALTERNATE SEQ 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 (or)
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
IBM Utilities Page 28 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 statementINREC 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 29 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 EXEC PGM=SORT
//SYSABEND DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.B1,DISP=SHR
// DD DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.B2,DISP=SHR
// DD DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.H1,DISP=SHR
// DD DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.H2,DISP=SHR
// DD DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.S1,DISP=SHR
//SORTOUT DD DSN=TCHN080.UTMRGE.MRG6.NAMEINDX.ALL,
// DISP=(NEW,CATLG,KEEP),
// DCB=(RECFM=FB,LRECL=110,BLKSIZE=0),
// SPACE=(CYL,(25,254),RLSE),UNIT=SYSDA
IBM Utilities Page 30 of 33
//SORTWK01 DD SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA
//SORTWK02 DD SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA
//SORTWK03 DD SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA
//SORTWK04 DD SPACE=(CYL,(20,10),RLSE),UNIT=SYSDA
//SYSIN DD *
SORT FIELDS=COPY
/*
SORT AND INCLUDE
//STEP10 EXEC PGM=SORT,PARM='EQUALS'
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=TCHN080.UTMRGE.MRG6.RELACCT.ALL,DISP=SHR
//SORTOUT DD DSN=TCHN080.UTMRGE.MRG6DDA.RELACCT.S1,
// DISP=(,CATLG,DELETE),
// DCB=(BLKSIZE=0,LRECL=110,RECFM=FB),
// UNIT=SYSDA,
// SPACE=(CYL,(30,25),RLSE)
//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 EXEC PGM=SORT,PARM='EQUALS'
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=TCHN080.TRANACRE.RELACCT.COMM,DISP=SHR
//*
//SORTOUT DD DSN=TCHN080.TRANACRE.RELACCT.COMM.UNQ,
// DISP=(NEW,CATLG,DELETE),
IBM Utilities Page 31 of 33
// 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,
// NOTIFY=&SYSUID
//*
//STEP17 EXEC PGM=SORT,PARM='EQUALS'
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=TCHN080.TRANACRE.RELACCT.ALL,DISP=SHR
//*
//SORTOF1 DD DSN=TCHN080.TRANACRE.RELACCT.ALLH1,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,50),RLSE),
// DCB=(LRECL=37,RECFM=FB,BLKSIZE=0)
//SORTOF2 DD DSN=TCHN080.TRANACRE.RELACCT.ALLH2,
// DISP=(NEW,CATLG,DELETE),
// 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
IBM Utilities Page 32 of 33
//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 EXEC PGM=SORT,PARM='EQUALS'
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=TCHN080.TRANACRE.RELACCT.SORT,DISP=SHR
//*
//SORTXSUM DD DSN=TCHN080.TRANACRE.RELACCT.DUP,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,50),RLSE),
// DCB=(LRECL=51,RECFM=FB,BLKSIZE=0)
//SORTOUT DD DSN=TCHN080.TRANACRE.RELACCT.OUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,50),RLSE),
// DCB=(LRECL=51,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)
SUM FIELDS=(45,7,ZD),XSUM
/*
SUM FIELDS=NONE
//U675974R JOB (1371,5FL),'RUNJCL TRAN',MSGCLASS=Q,CLASS=B,
IBM Utilities Page 33 of 33
// NOTIFY=&SYSUID
//*
//STEP4 EXEC PGM=SORT,PARM='EQUALS'
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=TCHN080.TRANACRE.RELACCT.ALL,DISP=SHR
//*
//SORTXSUM DD DSN=TCHN080.TRANACRE.RELACCT.ALLDUP,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,50),RLSE),
// DCB=(LRECL=51,RECFM=FB,BLKSIZE=0)
//SORTOUT DD DSN=TCHN080.TRANACRE.RELACCT.ALLOUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,50),RLSE),
// DCB=(LRECL=51,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)
SUM FIELDS=NONE,XSUM
/*
//*