33
- A Document by Ramkumar. S

Jcl Utilities - Uncovered

Embed Size (px)

Citation preview

Page 1: Jcl Utilities - Uncovered

- A Document by

Ramkumar. S

Page 2: Jcl Utilities - Uncovered

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

Page 3: Jcl Utilities - Uncovered

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

Page 4: Jcl Utilities - Uncovered

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

Page 5: Jcl Utilities - Uncovered

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)

//*

Page 6: Jcl Utilities - Uncovered

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.

Page 7: Jcl Utilities - Uncovered

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.

Page 8: Jcl Utilities - Uncovered

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)

Page 9: Jcl Utilities - Uncovered

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 *

Page 10: Jcl Utilities - Uncovered

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 //*

Page 11: Jcl Utilities - Uncovered

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

Page 12: Jcl Utilities - Uncovered

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),...)

Page 13: Jcl Utilities - Uncovered

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

Page 14: Jcl Utilities - Uncovered

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

Page 15: Jcl Utilities - Uncovered

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),

Page 16: Jcl Utilities - Uncovered

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)

/*

Page 17: Jcl Utilities - Uncovered

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,

Page 18: Jcl Utilities - Uncovered

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 /* //*

Page 19: Jcl Utilities - Uncovered

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.../*

Page 20: Jcl Utilities - Uncovered

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}

Page 21: Jcl Utilities - Uncovered

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

Page 22: Jcl Utilities - Uncovered

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/*

Page 23: Jcl Utilities - Uncovered

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

Page 24: Jcl Utilities - Uncovered

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)/*

Page 25: Jcl Utilities - Uncovered

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/*

Page 26: Jcl Utilities - Uncovered

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

Page 27: Jcl Utilities - Uncovered

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

Page 28: Jcl Utilities - Uncovered

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

Page 29: Jcl Utilities - Uncovered

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

Page 30: Jcl Utilities - Uncovered

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),

Page 31: Jcl Utilities - Uncovered

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

Page 32: Jcl Utilities - Uncovered

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,

Page 33: Jcl Utilities - Uncovered

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

/*

//*