z os ibm utilities

82
Z/OS IBM Utilities Complete Overview

Upload: kapa-rohit

Post on 17-Jan-2015

3.355 views

Category:

Technology


8 download

DESCRIPTION

A complete description of basic IBM utilities available for Z OS system-by rohitkapa

TRANSCRIPT

Page 1: Z OS IBM Utilities

Z/OS IBM UtilitiesComplete Overview

Page 2: Z OS IBM Utilities

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: Z OS IBM Utilities

3

Sessions Outline

Session 1: Overview of IBM Utilities Main Types of Dataset Utilities IDCAMS

Session 2: IEBGENER, IEFBR14 , IEBCOPY

Session 3: SORT, IEBCOMPR, IKJEFT01, ADRDSSU

Page 4: Z OS IBM Utilities

4

OS/390 & z/OS - Utilities

Session 1

Page 5: Z OS IBM Utilities

5

Session 1 - Coverage

Introduction – Utilities

Types of Utilities

Dataset Utilities

System Utilities

Access Method Services

Page 6: Z OS IBM Utilities

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: Z OS IBM Utilities

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: Z OS IBM Utilities

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: Z OS IBM Utilities

9

Dataset Utility Programs

To Create and Copy datasets

IEFBR14 (null program)

IEBGENER

IEBCOPY

SORT

Page 10: Z OS IBM Utilities

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: Z OS IBM Utilities

11

Access Method Services

High performance access method to process

both VSAM and non-VSAM datasets

Virtual Storage Access Method (VSAM)

Page 12: Z OS IBM Utilities

12

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

Page 13: Z OS IBM Utilities

13

Functions of Utilities

Session 2

Page 14: Z OS IBM Utilities

14

Session 2 - Coverage

IEFBR14 - Null Program

IEBCOPY – Copy datasets

IEBGENER – Work on PDS members

Page 15: Z OS IBM Utilities

15

IEFBR14

Page 16: Z OS IBM Utilities

16

IEFBR14

Purpose:

Carries out no processing of its own

Used to Create and Catalog empty datasets

Delete datasets that are no longer required

Page 17: Z OS IBM Utilities

17

IEFBR14: Create and Catalog a Dataset

Example 1:

//JOBCARD…

//STEP01 EXEC PGM=IEFBR14

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

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

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

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

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

Page 18: Z OS IBM Utilities

18

IEFBR14: Uncatalog and Delete a Dataset

Example 2:

//JOBCARD…

//STEP01 EXEC PGM=IEFBR14

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

// DISP=(OLD,UNCATLG)

//*

//STEP02 EXEC PGM=IEFBR14

//FILE2 DD DSN=XYZ.EMP.MASTER

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

//

Page 19: Z OS IBM Utilities

19

IEBCOPY

Page 20: Z OS IBM Utilities

20

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 21: Z OS IBM Utilities

21

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 22: Z OS IBM Utilities

22

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 23: Z OS IBM Utilities

23

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 24: Z OS IBM Utilities

24

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 25: Z OS IBM Utilities

25

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 26: Z OS IBM Utilities

26

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 27: Z OS IBM Utilities

27

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 28: Z OS IBM Utilities

28

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 29: Z OS IBM Utilities

29

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 30: Z OS IBM Utilities

30

IEBGENER

Page 31: Z OS IBM Utilities

31

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 32: Z OS IBM Utilities

32

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 33: Z OS IBM Utilities

33

IEBGENER: Example 1

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

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

Page 34: Z OS IBM Utilities

34

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 35: Z OS IBM Utilities

35

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 36: Z OS IBM Utilities

36

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 37: Z OS IBM Utilities

37

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 38: Z OS IBM Utilities

38

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 39: Z OS IBM Utilities

39

IEBGENER: Example 3

• //SYSIN DD *• GENERATE MAXFLDS=3,MAXLITS=11• RECORD FIELD=(10,'**********',,1),• FIELD=(5,1,,11,), FIELD=(1,'=',,16)• /*

Page 40: Z OS IBM Utilities

40

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 41: Z OS IBM Utilities

41

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 42: Z OS IBM Utilities

42

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 43: Z OS IBM Utilities

43

Session 2 - Summary

IEFBR14 - Null Program

IEBCOPY – Copy datasets

IEBGENER – Work on PDS members

Page 44: Z OS IBM Utilities

44

Functions of Utilities

Session 3

Page 45: Z OS IBM Utilities

45

Session 3 - Coverage

Sort / Merge Utility

IEBCOMPR

IKJEFT01

ADRDSSU

Page 46: Z OS IBM Utilities

46

Sort/Merge Utility

Page 47: Z OS IBM Utilities

47

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 48: Z OS IBM Utilities

48

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 49: Z OS IBM Utilities

49

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 50: Z OS IBM Utilities

50

Data Format Codes

• Data Format Code

• EBCDIC Character CH

• ASCII Character AC

• Binary BI

• Zoned Decimal ZD

• Packed Decimal PD

Page 51: Z OS IBM Utilities

51

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 52: Z OS IBM Utilities

52

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 53: Z OS IBM Utilities

53

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 54: Z OS IBM Utilities

54

Example 3

Sample Data

MOHANK 23423423434534300 KIRANMOHANK 13342345345345300 RAJEEVARAMES 34535345325354300 SURESHSURESH 98347385385934000 PULIRAMESH 67575789769876800 MADHUKRISHN 50830948530859300 OIIEDKRISHN 30495849572938500 MADHUSURESH 98347385385934000 PULI

Page 55: Z OS IBM Utilities

55

Sort JCL

• //STEP10 EXEC PGM=SORT,REGION=1024K,PARM=parameters

• //SYSOUT DD SYSOUT=* Output messages from SORT • //SORTIN DD DSN=...,DISP=SHR Input if SORT request • //SORTOUT DD DSN=... Output for SORT request • //SORTOFxx DD DSN=... OUTFILE output data sets • //SORTXSUM DD DSN=... Output eliminated by the SUM

stm• //SORTWKnn DD UNIT=SYSDA, Work files if SORT request • //SYSIN DD * Control statement input data set• SORT FIELDS=(1,3,CH,A,9,3,CH,A) • /*

Page 56: Z OS IBM Utilities

56

OutputARAMES 34535345325354300 SURESHKRISHN 30495849572938500 MADHUKRISHN 50830948530859300 OIIEDMOHANK 13342345345345300 RAJEEVMOHANK 23423423434534300 KIRANRAMESH 67575789769876800 MADHUSURESH 98347385385934000 PULISURESH 98347385385934000 PULI

Page 57: Z OS IBM Utilities

57

EXPLANATION

•Above syntax of SORT sorted the records, depends•on keys we have provided •(we have provided two keys in FIELDS parameter)

•FIRST KEY•1,3,CH,A - first key started at col 1 , its length is 3

•SECOND KEY•9,3,CH,A - second key started at col 9, its length is 3•In the above example,

•CH- means character we may use BI for binary•A - Ascending order•

Page 58: Z OS IBM Utilities

58

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 59: Z OS IBM Utilities

59

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 60: Z OS IBM Utilities

60

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 61: Z OS IBM Utilities

61

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 62: Z OS IBM Utilities

62

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 63: Z OS IBM Utilities

63

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 64: Z OS IBM Utilities

64

List of Comparison operators

OperatorsEQ Equal ToNE Not Equal ToGT Greater ThanGE Greater Than Or Equal ToLT Less ThanLE Less Than Or Equal To

Page 65: Z OS IBM Utilities

65

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 66: Z OS IBM Utilities

66

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 67: Z OS IBM Utilities

67

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 68: Z OS IBM Utilities

68

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 69: Z OS IBM Utilities

69

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 70: Z OS IBM Utilities

70

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 71: Z OS IBM Utilities

71

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 72: Z OS IBM Utilities

72

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 73: Z OS IBM Utilities

73

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 74: Z OS IBM Utilities

74

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 75: Z OS IBM Utilities

75

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

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

SYSUT2 is not coded

IEHPROGM

Page 76: Z OS IBM Utilities

76

ADRDSSU

Page 77: Z OS IBM Utilities

77

ADRDSSU

Purpose: To move huge data from one volume to another

Page 78: Z OS IBM Utilities

78

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 79: Z OS IBM Utilities

79

Session 3 - Summary

Sort / Merge Utility

IEBCOMPR – Compare datasets

IKJEFT01 – Issue TSO Commands

ADRDSSU – Move Volumes of data

Page 80: Z OS IBM Utilities

80

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 81: Z OS IBM Utilities

81

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 82: Z OS IBM Utilities

82

THANK YOU