zOS- IBM Utilities -V2.0

99
1 OS/390 & z/OS - Utilities

Transcript of zOS- IBM Utilities -V2.0

Page 1: zOS- IBM Utilities -V2.0

1

OS/390 & z/OS - Utilities

Page 2: zOS- IBM Utilities -V2.0

2

Course Objectives

Appreciate the use of Utilities

Know the Types of Utilities

Have an in-depth knowledge of common IBM Utilities

Know the purpose and structure of each Utility

Know the usage of the various parameters of different Utilities

Be able to write Utilities and execute them

Page 3: zOS- IBM Utilities -V2.0

3

Sessions Outline

Session 1:

Overview of IBM Utilities

Main Types of Dataset Utilities

IDCAMS

Session 2:

IEBGENER, IEFBR14 , IEBCOPY

Session 3:

SORT, IEHPROGM, IEHLIST, IEBCOMPR, IKJEFT01,

ADRDSSU

Page 4: zOS- IBM Utilities -V2.0

4

OS/390 & z/OS - Utilities

Session 1

Page 5: zOS- IBM Utilities -V2.0

5

Session 1 - Coverage

Introduction – Utilities

Types of Utilities

Dataset Utilities

System Utilities

Access Method Services

Page 6: zOS- IBM Utilities -V2.0

6

Introduction - Utilities Frequently performed function:

Copy sequential files / partitioned datasets / VSAM

Catalog / Uncatalog datasets

Rename datasets

Compress partitioned datasets

Include / Exclude members to partitioned datasets when a copy transaction

is implemented

Compare sequential and partitioned datasets

Generate generation data groups

Create/delete datasets allocate/deallocate space on datasets or code other

functions on the DD statement, without having to execute a program

Page 7: zOS- IBM Utilities -V2.0

7

What is a UTILITY?

A UTILITY program performs a basic function, i.e., it does a routine job

which is required repeatedly in an installation.

IBM provides a number of prewritten utility programs to assist users in

organizing and maintaining data

Each utility program falls into one of the two classes, based on the function

performed and the type of control of the utility. The three classes are:

Dataset utilities

System utilities and

Access Method Services

Page 8: zOS- IBM Utilities -V2.0

8

Dataset Utilities

Dataset Utility Programs,

Can be used to create, reorganize, change or compare data at the

dataset or record level.

Can be executed as jobs or be invoked as subroutines of a calling

program.

Page 9: zOS- IBM Utilities -V2.0

9

Dataset Utility Programs

To Create and Copy datasets

IEFBR14 (null program)

IEBGENER

IEBCOPY

SORT

Page 10: zOS- IBM Utilities -V2.0

10

System Utilities

System Utility Programs:

System utility programs can be used to maintain and manipulate

system and user datasets

These programs must reside in an authorized library

They can be executed as jobs or be invoked as subroutines of an

authorized program

Page 11: zOS- IBM Utilities -V2.0

11

System Utility Programs

To Maintain and Manage Catalogs

IEHPROGM

IEHLIST

Page 12: zOS- IBM Utilities -V2.0

12

Access Method Services

High performance access method to process both VSAM and non-

VSAM datasets

Virtual Storage Access Method (VSAM)

Page 13: zOS- IBM Utilities -V2.0

13

IDCAMS

Page 14: zOS- IBM Utilities -V2.0

14

IDCAMS

Purpose:

To work on the VSAM datasets

To copy a VSAM dataset to another flat file

To copy a VSAM to another VSAM (repro)

Page 15: zOS- IBM Utilities -V2.0

15

IDCAMS: Example 1

Example:

INDD is the input – and is a VSAM dataset

OUTDD is the output – and is a flat file created with Variable block size (format = VB)

//STEP1 EXEC PGM=IDCAMS

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//INDD DD DISP=SHR,DSN=(existing VSAM dataset)

//OUTDD DD DISP=SHR,DSN=(existing flat file)

//SYSIN DD *

REPRO INFILE(INDD) OUTFILE(OUTDD)

Page 16: zOS- IBM Utilities -V2.0

16

IDCAMS: Example 2

Example: INDD is the input – an existing VSAM dataset OUTDD is the output – a blank VSAM dataset

//STEP1 EXEC PGM=IDCAMS//SYSOUT DD SYSOUT=*//SYSPRINT DD SYSOUT=*//OUTDD DD DISP=SHR,DSN=SSG1M.RKR.UTIL.VSAM.AIF //INDD DD DISP=SHR,DSN=SSG1M.RKR.UTIL.VSAM.REPRO.IN //SYSIN DD *

REPRO INFILE(INDD) OUTFILE(OUTDD)

Page 17: zOS- IBM Utilities -V2.0

17

Session 1 - Summary

Frequently performed functions – Requirement for utilities

Types of Utilities

Dataset Utilities - Operate on the data at dataset or record level

System Utilities – Operate on the user datasets

Access Method Services – IDCAMS operate on both VSAM and Non

VSAM datasets

Page 18: zOS- IBM Utilities -V2.0

18

Functions of Utilities

Session 2

Page 19: zOS- IBM Utilities -V2.0

19

Session 2 - Coverage

IEFBR14 - Null Program

IEBCOPY – Copy datasets

IEBGENER – Work on PDS members

Page 20: zOS- IBM Utilities -V2.0

20

IEFBR14

Page 21: zOS- IBM Utilities -V2.0

21

IEFBR14

Purpose:

Carries out no processing of its own

Used to Create and Catalog empty datasets

Delete datasets that are no longer required

Page 22: zOS- IBM Utilities -V2.0

22

IEFBR14: Create and Catalog a Dataset

Example 1:

//JOBCARD…

//STEP01 EXEC PGM=IEFBR14

//FILE1 DD DSN=TCS.EMP.MASTER,

// DISP=(NEW,CATLG,DELETE),

// UNIT=DISK,VOL=SER=TRG001,

// SPACE=(CYL,(10,10),RLSE),

// DCB=(RECFM=FB,LRECL=500)

Page 23: zOS- IBM Utilities -V2.0

23

IEFBR14: Uncatalog and Delete a Dataset

Example 2:

//JOBCARD…

//STEP01 EXEC PGM=IEFBR14

//FILE1 DD DSN=TCS.EMP.MASTER,

// DISP=(OLD,UNCATLG)

//*

//STEP02 EXEC PGM=IEFBR14

//FILE2 DD DSN=TCS.EMP.MASTER

// DISP=(OLD,DELETE),UNIT=DISK

//

Page 24: zOS- IBM Utilities -V2.0

24

IEBCOPY

Page 25: zOS- IBM Utilities -V2.0

25

IEBCOPY

Purpose:

To perform functions on Partitioned Datasets

To copy a Partitioned Dataset to a DASD Volume

Compress Partitioned datasets

Merge datasets

Copy PDS to another PDS or PS (unloading)

Restore a PDS from a tape backup to a DASD (loading)

Select / Exclude members of a PDS in a Copy operation

Page 26: zOS- IBM Utilities -V2.0

26

IEBCOPY: Job Control Statements

//JOBCARD…

//STEP01 EXEC PGM=IEBCOPY

//SYSPRINT DD Defines a sequential dataset for messages

//SYSUT1 DD or anyname1 Defines an INPUT partitioned dataset

//SYSUT2 DD or anyname2 Defines an OUTPUT partitioned dataset

//SYSUT3 DD Defines a spill dataset on a direct access device. It is used when there is no space in virtual storage for some or all of the current directory entries of the input PDS.

//SYSUT4 DD Defines a spill dataset on a direct access device. It is used when there is no space in virtual storage for some or all of the current directory entries of the output PDS.

//SYSIN DD Defines the CONTROL dataset

Page 27: zOS- IBM Utilities -V2.0

27

IEBCOPY: Example 1

To copy members from three partitioned datasets DATASET1, DATASET2, DATASET3 to

an existing partitioned dataset DATASET4.

//JOBCARD…//STEP01 EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=A//INOUT1 DD DSN=DATASET1,DISP=OLD//INOUT2 DD DSN=DATASET2,DISP=OLD//INOUT3 DD DSN=DATASET3,DISP=OLD//INOUT4 DD DSN=DATASET4,DISP=OLD //SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(1))//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(1))//SYSIN DD *COPYOPER COPY OUTDD=INOUT4,

INDD=INOUT1,INDD=INOUT2,INDD=INOUT3

/*

Page 28: zOS- IBM Utilities -V2.0

28

IEBCOPY: Example 2

To copy all the members of INOUT6 (PDS) to INOUT2 (PDS) replacing identically named members.

//SYSIN DD *

COPYOPER COPY OUTDD=INOUT2

INDD=((INOUT6,R))

/*

Page 29: zOS- IBM Utilities -V2.0

29

IEBCOPY: Example 3

To copy members C,D,E,A and G from INOUT6 and INOUT2 to INOUT4.

(INOUT6, INOUT2 and INOUT4 are partitioned datasets)

//SYSIN DD *

COPYOPER COPY OUTDD=INOUT4

INDD=INOUT6

INDD=INOUT2

SELECT MEMBER=(C,D,E,A,G)

Page 30: zOS- IBM Utilities -V2.0

30

IEBCOPY: Example 4

In example 3, if members E and G can replace identically named member of INOUT4, the control statements are as follows:

//SYSIN DD *

COPYOPER COPY OUTDD=INOUT4

INDD=INOUT6,INOUT2

SELECT MEMBER=(C,D,(E,,R),A,(G,,R))

Page 31: zOS- IBM Utilities -V2.0

31

IEBCOPY: Example 5

In example 4 the members C and D are renamed as J and K respectively and G replaces identically named member of output PDS

E is renamed T and replaces identically named member of output PDS

//SYSIN DD *

COPYOPER COPY OUTDD=INOUT4

INDD=INOUT6,INOUT2

SELECT MEMBER=((C,J),(D,K),(E,T,R),A,(G,,R))

Page 32: zOS- IBM Utilities -V2.0

32

IEBCOPY: Example 6

Suppose in a copy operation from INOUT1 to INOUT2, members A, B, C and D have to be excluded

//SYSIN DD *

COPYOPER COPY

OUTDD=INOUT2,INDD=INOUT1

EXCLUDE MEMBER=(A,B,C,D)

/*

Page 33: zOS- IBM Utilities -V2.0

33

IEBCOPY: Example 7

To Compress a partitioned dataset, assign the same dataset name to INDD and OUTDD

//SYSIN DD *

COPY OUTDD=DATASET1,INDD=DATASET1

/*

Page 34: zOS- IBM Utilities -V2.0

34

IEBCOPY: Example 8

Multiple COPY operations to copy members A and B from DATASET1 and all members of

DATASET2 except C and G to DATASET3

All members copied from DATASET2 are permitted to replace identically named members

of DATASET3

//SYSIN DD *

COPYOPER COPY OUTDD=DATASET3,

INDD=DATASET1

SELECT MEMBER=(A,B)

COPY O=DATASET3,

I=(DATASET2,R)

EXCLUDE MEMBER=(C,G)

/*

Page 35: zOS- IBM Utilities -V2.0

35

IEBGENER

Page 36: zOS- IBM Utilities -V2.0

36

IEBGENER

Purpose:

To copy sequential datasets

Create a backup of a sequential dataset or a member of a partitioned

dataset

Produce a partitioned dataset or a member of a partitioned dataset, from

a sequential input dataset

Expand an existing partitioned dataset by creating partitioned members

and merging them into the existing dataset

Produce an edited sequential of partitioned dataset

Convert data formats, rearrange input fields and change the logical record

length of a dataset

Page 37: zOS- IBM Utilities -V2.0

37

IEBGENER: Job Control Statements

//JOBCARD…

//STEP01 EXEC PGM=IEBGENER

//SYSPRINT DD Defines a sequential dataset for messages (System output device / Tape volume / DASD volume)

//SYSUT1 DD Defines the INPUT dataset (Sequential dataset / Member of a PDS)

//SYSUT2 DD Defines the OUTPUT dataset (Sequential dataset / PDS / Member of a PDS)

//SYSIN DD Defines the CONTROL dataset (Very often DUMMY)

Page 38: zOS- IBM Utilities -V2.0

38

IEBGENER: Example 1

To copy a Tape file TCS.EMP.MASTER of VOL SER 007311, to a DASDfile TCS.EMP.MST.DISK. The Input Employee master record is 500 bytes in length

//JOBCARD…//STEP1 EXEC PGM=IEBGENER//SYSUT1 DD DSN=TCS.EMP.MASTER,UNIT=TAPE,DISP=OLD,// VOL=SER=007311,LABEL=(,SL) //SYSUT2 DD DSN=TCS.EMPMST.DISK,UNIT=DISK,// VOL=SER=TCS3010,DISP=(NEW,CATLG),// SPACE=(TRK,(10,10)),DCB=(RECFM=FB,LRECL=500)//SYSPRINT DD SYSOUT=A//SYSIN DD DUMMY

Page 39: zOS- IBM Utilities -V2.0

39

Utility Control Statements

Used to create a copy of a dataset in which:

The fields of each record have been rearranged, omitted or replaced

by a literal, and/or

The logical record length has been changed

The Control Statements most commonly used in IEBGENER are:

GENERATE

RECORD

MEMBER

Page 40: zOS- IBM Utilities -V2.0

40

GENERATE, RECORD & MEMBER Statements

Generate Statement used to tell IEBGENER that editing is to be performed

Record Statement used to define the fields and literals for editing

Member Statement identifies the names to be assigned to the members

generated in the PDS

Syntax :

GENERATE (MAXFLDS=M, MAXLITS=N, MAXNAME=X,

MAXGPS=Y)

RECORD FIELD=(l,il,,ol)

RECORD IDENT=(l,’name’,il)

MEMBER NAME=(member,alias)

Page 41: zOS- IBM Utilities -V2.0

41

GENERATE Statement parameters

MAXFLDS – total number of field operands in the RECORD statements

MAXLITS – total number of characters in the literals in the RECORD

statements

MAXNAME – number of member names in all subsequent MEMBER

statements

MAXGPS – number of times the IDENT parameter appears in subsequent

RECORD statements

Page 42: zOS- IBM Utilities -V2.0

42

Record Statement: FIELD Parameters

Length - Length in bytes of the input field or literal to be processed.

Default is 80 bytes. If a literal is to be processed, a length of 40 or less

must be specified

Input-location or literal

Specifies the starting byte of the field to be processed. Default is 1

Specifies a literal to be placed in the specified output location

Conversion: specifies a two-byte code that indicates the type of conversion

to be performed on this field. Default (NO conversion)

Output-location: Specifies the starting location of this field in the output

records. Default is 1.

Page 43: zOS- IBM Utilities -V2.0

43

IEBGENER: Example 2

//JOBCARD…

//EXEC PGM=IEBGENER

//SYSIN DD *

GENERATE MAXFLDS=1

RECORD FIELD=(35,1,,1)

/*

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD *

Dataset to be copied

/*

//SYSUT2 DD DSN=name,UNIT=DASD,

// DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(3,1),RLSE),

// DCB=(LRECL=35,RECFM=FB)

Page 44: zOS- IBM Utilities -V2.0

44

IEBGENER: Example 3

//SYSIN DD *

GENERATE MAXFLDS=3,MAXLITS=11

RECORD FIELD=(10,'**********',,1),

FIELD=(5,1,,11,), FIELD=(1,'=',,16)

/*

Page 45: zOS- IBM Utilities -V2.0

45

Record Statement: IDENT Parameters

Identifies the last record of a collection of records in the input dataset

Length: in bytes of the identifying names; cannot exceed 8 bytes

Name: Exact literal that identifies the last input record of each record

group (include in quotes)

Input-location: Starting byte of the field that contains the identifying

name in the input records

Page 46: zOS- IBM Utilities -V2.0

46

IEBGENER: Example 4

Create a partitioned dataset consisting of three members, MEMBER1,

MEMBER2, MEMBER3 from sequential input

The sequential input has FIRSTMEM as the first 8 characters of the last

record of the first member, and SECNDMEM for the second member

Page 47: zOS- IBM Utilities -V2.0

47

IEBGENER: Example 4

//JOBCARD…

//STEP01 EXEC PGM=IEBGENER

//SYSPRINT DD SYSOUT=A

//SYSUT1 DD DSN=INSET,DISP=OLD

//SYSUT2 DD DSN=NEWSET,UNIT=DISK,DISP=(NEW CATLG),

// VOL=SER=TRG001,SPACE=(TRK,(5,5,5)),DCB=(RECFM=FB,LRECL=80)

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

Page 48: zOS- IBM Utilities -V2.0

48

Session 2 - Summary

IEFBR14 - Null Program

IEBCOPY – Copy datasets

IEBGENER – Work on PDS members

Page 49: zOS- IBM Utilities -V2.0

49

Functions of Utilities

Session 3

Page 50: zOS- IBM Utilities -V2.0

50

Session 3 - Coverage

Sort / Merge Utility

IEHPROGM

IEHLIST

IEBCOMPR

IKJEFT01

ADRDSSU

Page 51: zOS- IBM Utilities -V2.0

51

Sort/Merge Utility

Page 52: zOS- IBM Utilities -V2.0

52

Sort/Merge Basics

Sort/Merge Utility used to

Sort records in ascending or descending order within a file

Merge two or more files into a single file

Select a subset of records from an input file

SUM values in records

Reformat records

Page 53: zOS- IBM Utilities -V2.0

53

Job Control Statements for SORT

//JOBCARD…

//STEPNAME EXEC PGM=SORT

//STEPLIB DD <Defines the library containing the DFSORT pgm>

//SYSOUT DD <Defines the message dataset>

//SORTIN DD <Defines the INPUT dataset>

//SORTWKnn DD <Defines a WORK storage dataset>

//SORTOUT DD <Defines the OUTPUT dataset>

//SYSIN DD <Contains DFSORT program control statements>

Page 54: zOS- IBM Utilities -V2.0

54

SORT Statement Basics

Write the fields in parentheses, separated by commas

The starting position of the key field

Length of the key field in bytes

A code for data format

Letter 'A' for Ascending order or 'D' for Descending order

Example:

1 2......................................................71

SORT FIELDS=(110,5,CH,A)

Page 55: zOS- IBM Utilities -V2.0

55

Data Format Codes

Data Format Code

EBCDIC Character CH

ASCII Character AC

Binary BI

Zoned Decimal ZD

Packed Decimal PD

Page 56: zOS- IBM Utilities -V2.0

56

SORT: Example 1

Now let us consider sorting by multiple fields like COURSE DEPARTMENT,

COURSE NUMBER and BOOK TITLE. Then,

SORT FIELDS=(110,5,CH,A,115,5,CH,A,1,75,CH,A)

This is EQUIVALENT to:

SORT FIELDS=(110,10,CH,A,1,75,CH,A)

When all the control fields are of the same data format, then

SORT FIELDS=(110,10,A,1,75,A),FORMAT=CH

Page 57: zOS- IBM Utilities -V2.0

57

SORT JCL: Example 2

Sort the book store file records in ASCENDING order of COURSE

DEPARTMENT and COURSE NUMBER and DESCENDING order of

NUMBER IN STOCK

Assume that the program SORT is available in a partitioned dataset

IBM.UTIL.LOADLIB

Page 58: zOS- IBM Utilities -V2.0

58

SORT JCL: Example 2

//JOBCARD…

//STEP01 EXEC PGM=SORT

//STEPLIB DD DSN=IBM.UTIL.LOADLIB,DISP=SHR

//SYSOUT DD SYSOUT=*

//SORTIN DD DSN= BOOK.STORE.INPUT,DISP=OLD

//SORTWK01 DD UNIT=3380,SPACE=(TRK,(1,1))

//SORTOUT DD DSN=BOOK.STORE.OUT,

// DISP=(NEW,CATLG,DELETE),UNIT=DISK,

// VOL=SER=TRG001,SPACE=(CYL,(10,1),RLSE),

// DCB=(RECFM=FB,LRECL=173,BLKSIZE=1730)

//SYSIN DD *

SORT FIELDS=(110,10,CH,A,162,4,BI,D)

/*

Page 59: zOS- IBM Utilities -V2.0

59

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 --> 01 to 16

In Utility Control Statements, MERGE replaces SORT

Page 60: zOS- IBM Utilities -V2.0

60

MERGE JCL: Example 1

Merge 3 files that have been sorted in

ASCENDING order of COURSE DEPARTMENT

ASCENDING order of COURSE NUMBER

DESCENDING order of NUMBER IN STOCK

Page 61: zOS- IBM Utilities -V2.0

61

MERGE JCL: Example 1//JOBCARD…

//STEP01 EXEC PGM = SORT

//STEPLIB DD DSN=IBM.UTIL.LOADLIB,DISP=SHR

//SYSOUT DD SYSOUT=*

//SORTIN01 DD DSN=BOOK.STORE.INPUT1,DISP=OLD

//SORTIN02 DD DSN=BOOK.STORE.INPUT2,DISP=OLD

//SORTIN03 DD DSN=BOOK.STORE.INPUT3,DISP=OLD

//SORTOUT DD DSN=BOOK.STORE.OUT,DISP=(NEW,CATLG,DELETE),

//UNIT=DISK,VOL=SER=TRG001,SPACE=(CYL,(10,1),RLSE),DCB=(RECFM=FB,LRECL=173,BLKSIZE=1730)

//SYSIN DD *

MERGE FIELDS=(110,10,CH,A,162,4,BI,D)

/*

Page 62: zOS- IBM Utilities -V2.0

62

Other Sort/Merge Control Statements

INCLUDE and OMIT

Improves the Sort/Merge Efficiency by letting sort or merge just the records that need to be processed

INREC and OUTREC

Improves the Sort/Merge efficiency by letting sort or merge only the fields of the input records that need to be included in the output file

SUM statement

Lets you add up numeric data in sorted records that have the same control field values and writes just one output record for each value

SUM FIELDS=NONE to eliminate duplicate records from a file

Page 63: zOS- IBM Utilities -V2.0

63

Tailoring the input file

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' and 'OR'

Both INCLUDE and OMIT cannot be used together

Page 64: zOS- IBM Utilities -V2.0

64

How to write INCLUDE/OMIT statements

Syntax:

INCLUDE COND=(field,comparison,{field }, [ {AND}, ]…)

{constant} {OR }

OMIT COND=(field,comparison,{field }, [ {AND}, ]…)

{constant} {OR }

Write in parentheses, and separated by commas:

the position, length, and data format of the field to be compared

comparison operator

the position, length, and data format of the field compared against OR

a constant

Page 65: zOS- IBM Utilities -V2.0

65

List of Comparison operators

Operators

EQ Equal To

NE Not Equal To

GT Greater Than

GE Greater Than Or Equal To

LT Less Than

LE Less Than Or Equal To

Page 66: zOS- IBM Utilities -V2.0

66

INCLUDE statement: Example

Suppose in a Book store file we want only the books (in ascending order of

book title) for which the number of copies sold YTD that has exceeded 250

The SORT Control statements are:

INCLUDE COND=(166,4,BI,GT,250)

SORT FIELDS=(1,75,CH,A)

Page 67: zOS- IBM Utilities -V2.0

67

OMIT statement: Example

Suppose only those books for which NUMBER SOLD YTD exceeds 125

and the LAST NAME of the author is MARTIN are to appear in the

descending order of Price

The corresponding SORT control statements are

OMIT COND=(166,4,BI,LE,125,OR,76,15,CH,NE,C'MARTIN')

SORT FIELDS=(170,4,BI,D)

Page 68: zOS- IBM Utilities -V2.0

68

Rules for padding/truncation

In a field-to-field comparison, the shorter field is padded as appropriate with

blanks or zeroes

In a field-to-constant comparison, the constant is padded or truncated to the

length of the field

Note:

The decimal constants are padded or truncated on the left

Character and Hexadecimal constants are padded or truncated on the

right

Page 69: zOS- IBM Utilities -V2.0

69

Reformatting

Reformatting records with OUTREC: After records are sorted they can be

reformatted by using OUTREC control statement.

Fields can be deleted

Order of the fields can be rearranged

Zeroes 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

Page 70: zOS- IBM Utilities -V2.0

70

How to write the OUTREC statement?

Syntax:

INREC FIELDS=([c:][separation-fld,]position,length[,align,]…)

OUTREC FIELDS=([c:][separation-fld,]position,length[,align,]…)

Specify the input location and length of the fields to appear, in the desired order

(data format is not specified)

Write in parentheses and separated by commas:

c: Specifies the column (byte) in which a data field or separation field should be

placed, relative to the start of the record

align tells the sort/merge utility to align the field on a halfword (H), fullword (F),

or doubleword (D) boundary

Page 71: zOS- IBM Utilities -V2.0

71

Reformatting the Output Record: Example 1

Suppose only the BOOK TITLE, NUMBER IN STOCK, are to appear in

ASCENDING order of BOOK TITLE, the output record becomes 79 bytes long

The SORTOUT DD Statement becomes

//SORTOUT DD DSN=BOOK.OUTPUT, DISP=(NEW,CATLG,),

// UNIT=DISK,VOL=SER=TRG001,DCB =(RECFM=FB,

// LRECL=79,BLKSIZE=790),SPACE=(TRK,(5,))

DFSORT control statements are

//SYSIN DD *

SORT FIELDS=(1,75,CH,A)

OUTREC FIELDS=(1,75,162,4)

Page 72: zOS- IBM Utilities -V2.0

72

OUTREC: Example 2

If it is required to add a 4-byte Binary field between BOOK TITLE and

NUMBER IN STOCK and fill it up with ZEROES, the following control

statement has to be given:

OUTREC FIELDS=(1,75,4Z,162,4)

LRECL on the SORTOUT DD statement should be 83

Page 73: zOS- IBM Utilities -V2.0

73

OUTREC: Example 3

Suppose a 20 character blank field is to be prefixed to the output records,

the following control statement has to be given:

OUTREC FIELDS=(20X,1,75,4Z,162,4)

LRECL on the SORTOUT DD statement should be 103

Page 74: zOS- IBM Utilities -V2.0

74

Reformatting records with INREC

The INREC control statement allows to reformat the input records before

they are processed

Reformatting is performed before SORT/MERGE

Note:

If reformatting using INREC changes the location of key fields, the new

location has to be specified in the SORT statement

Page 75: zOS- IBM Utilities -V2.0

75

INREC: Example

If only the BOOK TITLE and NUMBER SOLD YTD are to appear in

descending order of NUMBER SOLD YTD the following control statement

has to be given:

//SYSIN DD *

INREC FIELDS=(1,75,166,4)

SORT FIELDS=(76,4,BI,D)

/*

Page 76: zOS- IBM Utilities -V2.0

76

IEHPROGM

Page 77: zOS- IBM Utilities -V2.0

77

IEHPROGM

Catalog a Dataset

Un catalog a Dataset

Rename Datasets

Create an index of a GDG

Delete the index of an existing GDG

Page 78: zOS- IBM Utilities -V2.0

78

//JOBCARD…//STEPNAME EXEC PGM=IEHPROGM//SYSPRINT DD SYSOUT=print-device-class //SYSUT1 DD UNIT=unitname,// VOL=SER=vol-no//SYSUT2 DD UNIT=unitname,// VOL=SER=vol-no//SYSIN DD *<- parameters for above functions ->/*//

IEHPROGM

Page 79: zOS- IBM Utilities -V2.0

79

A dataset can be cataloged using the CATLG statement

Syntax:

//SYSIN DD *

CATLG DSN=data-set-name

VOL=device-name=vol.no

/*

//

IEHPROGM

Page 80: zOS- IBM Utilities -V2.0

80

A dataset can be uncataloged using the UNCATLG statement. Syntax:

//SYSIN DD * UNCATLG DSN=data-set-name

/*//

SYSUT2 is not coded

IEHPROGM

Page 81: zOS- IBM Utilities -V2.0

81

A dataset can be renamed using the RENAME command

Syntax:

//SYSIN DD *

RENAME DSN=data-set-name,

VOL=device-name=volume=number

NEWNAME=new-name

/*

//

IEHPROGM

Page 82: zOS- IBM Utilities -V2.0

82

IEHLIST

Page 83: zOS- IBM Utilities -V2.0

83

IEHLIST

Used to list a PDS directory, VTOC or system catalog

Page 84: zOS- IBM Utilities -V2.0

84

Example 1: To list the VTOC of a specified DASD Volume given Volume name and disk type.

//JOBCARD…//STEP010 EXEC PGM=IEHLIST//*//SYSPRINT DD SYSOUT=*//*//DD4 DD UNIT=SYSDA,VOL=SER=MVSDLB,DISP=OLD//*//SYSIN DD *LISTVTOC VOL=3350=MVSDLB

/*//

IEHLIST

Page 85: zOS- IBM Utilities -V2.0

85

Example 2: To list the members and statistics for a PDS .

//SYSIN DD *LISTPDS DSNAME=(SYS1.LINKLIB),VOL=3350=MVSRES

/*

Example 3: To list the Catalog (ie datasets that are in the catalog) for a specific DASD volume

//SYSIN DD *LISTCTLG VOL=3350=PUB000

/*

IEHLIST

Page 86: zOS- IBM Utilities -V2.0

86

IEBCOMPR

Page 87: zOS- IBM Utilities -V2.0

87

Used to Compare two sequential datasets

Compare two partitioned datasets

If the two datasets are identical then zero will be returned upon successful

completion of the job

If the datasets are not identical then a condition code of 8 will be returned

The datasets that are compared must have same record length and format,

however block size need not be the same

IEBCOMPR

Page 88: zOS- IBM Utilities -V2.0

88

Syntax:

//JOBCARD…//STEPNAME EXEC PGM=IEBCOMPR//SYSPRINT DD SYSOUT=print-device-class//SYSUT1 DD DSN=data-set-1-features//SYSUT2 DD DSN=data-set-2- features//SYSIN DD *

COMPARE TYPORG=data-set-type/*//

IEBCOMPR

Page 89: zOS- IBM Utilities -V2.0

89

IKJEFT01

Page 90: zOS- IBM Utilities -V2.0

90

IKJFET01

Purpose:

To issue TSO commands through the JCLs

To copy files from and to oMVS, and MVS

Page 91: zOS- IBM Utilities -V2.0

91

IKJEFT01: Example 1

INDD means the input file in the oMVS that needs to be copied onto the flat file -JES DD

//COPY EXEC PGM=IKJEFT01

//JES DD DSN=HLQ.IN,DCB=(RECFM=V,LRECL=256),DISP=NEW

//IN DD PATH='/usr/lpp/ssg/ssgrav/in',

// PATHOPTS=ORDONLY

//SYSTSPRT DD DUMMY

//SYSTSIN DD *

OCOPY INDD(ERRORF) OUTDD(JES)

//*

Page 92: zOS- IBM Utilities -V2.0

92

IKJEFT01: Example 2

To get a list of datasets that start with a particular HLQ

//LISTMEM EXEC PGM=IKJEFT01

//SYSTSPRT DD DSN=SSGRAV.MEMBERS,DISP=NEW

//SYSTERM DD DUMMY

//SYSTSIN DD *

PROFILE PREFIX(HLQ)

LISTCAT

Page 93: zOS- IBM Utilities -V2.0

93

ADRDSSU

Page 94: zOS- IBM Utilities -V2.0

94

ADRDSSU

Purpose:

To move huge data from one volume to another

Page 95: zOS- IBM Utilities -V2.0

95

ADRDSSU Example:

INDD is the input, or the volume from which the datasets need to be moved

OUTDD is the output volume

The include option can be used to mention different qualifiers (say HLQ.** or HLQ.NEXT.** or ** - for all)

//MOVE01 EXEC PGM=ADRDSSU,REGION=0M

//SYSPRINT DD SYSOUT=*

//INDD DD VOL=SER=Y2KZ02,UNIT=3390,DISP=SHR

//OUTDD DD VOL=SER=DEVZ20,UNIT=3390,DISP=SHR

//SYSIN DD *

COPY DS(INCLUDE(**)) -

LIDD(INDD) -

OUTDD(OUTDD) -

ALLDATA(*) -

CATALOG DELETE

//

Page 96: zOS- IBM Utilities -V2.0

96

Session 3 - Summary

Sort / Merge Utility

IEHPROGM – Catalog, Uncatalog, Rename, Create/Delete GDG index

IEHLIST – List VTOC, PDS and Catalog

IEBCOMPR – Compare datasets

IKJEFT01 – Issue TSO Commands

ADRDSSU – Move Volumes of data

Page 97: zOS- IBM Utilities -V2.0

97

Course Summary

Purpose of Utilities

Main Types of Utilities

Functions of each type of Utility

IEBGENER, IEFBR14, IEBCOPY

Sort/Merge Operations

INCLUDE/OMIT and INREC/OUTREC Control Statements

Page 98: zOS- IBM Utilities -V2.0

98

References

Murach’s OS/390 and z/OS JCL by Raul Menendez and Dough Lowe

System 390 Job Control Language by Gary DeWard Brown

Page 99: zOS- IBM Utilities -V2.0

99

THANK YOU