|
View previous topic :: View next topic
|
| Author |
Message |
Jeya Srinivasan
New User
Joined: 29 Oct 2003 Posts: 3
|
|
|
|
| I'm a fresher in mainframes. Can U explain me in detail about IEBUPDATE?its concept and usage with an example code? |
|
| Back to top |
|
 |
mdtendulkar
Active User

Joined: 29 Jul 2003 Posts: 237 Location: USA
|
|
|
|
Hello Jeya Srinivasan,
You can use IEBUPDTE to create or modify sequential or partitioned data sets or PDSEs. However, the program can be used only with data sets containing fixed-length records of no more than 80 bytes. (It is used primarily for updating procedure, source, and macro libraries; those containing JCL, for example.)
IEBUPDTE can be used to:
1) Incorporate IBM or your source language modifications into sequential or partitioned data sets, or PDSEs
2) Create and update data set libraries
3) Modify existing sequential data sets or members of partitioned data sets or PDSEs
4) Change the organization of a data set from sequential to partitioned or PDSE, or the reverse. You can also use your own exit routines to process header and trailer labels.
Take a look at the following link for more details.
| Code: |
| http://ranch.state.nd.us/pdf/pdf/dgt1u111.pdf |
Due to the invention of ISPF PDF Editor, IEBUPDTE is rarely used nowadays
Hope this helps,
Regards
Mayuresh Tendulkar |
|
| Back to top |
|
 |
abdul
EXPERT
.jpg)
Joined: 28 Jul 2003 Posts: 23 Location: Bangalore,India
|
|
|
|
Hi,
Here are more details.........
What is IEBUPDTE?
? IEBUPDTE is used to create or modify sequential or Partitioned Data Sets
? IEBUPDTE can be used to change the organization of a data set from sequential to partitioned or vice versa
? IEBUPDTE can be used only with the data sets containing fixed length records of no more than 80 bytes.
Inputs to IEBUPDTE
? IEBUPDTE uses two sources of input which are
? an input data set containing the source data to be modified
? Input Data set can be either Sequential or PDS
? a control data set containing the statements controlling IEBUPDTE's manipulation of the input data set
Outputs of IEBUPDTE
? IEBUPDTE creates two forms of output which are
? an output data set which is the result of the manipulations made to the input data set
? O/P Data Set can be seq or PDS
? It can be New (Created) or Old (Modified)
? a print data set containing a log of the modifications, error messages and control statements used in the job step
Sample JCL
| Code: |
//JS10 EXEC PGM=IEBUPDTE,
// REGION=1024K,PARM='NEW|MOD'
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=...,DISP=...
//SYSUT2 DD DSN=...,DISP=...
//SYSIN DD *
control statements...
/* |
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 statement
? 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
Function statement format
./{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}
Detail statement
? 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
Detail Statement format
./{label} {NUMBER | DELETE}
{SEQ1=cccccccc | ALL}
{,SEQ2=cccccccc}
{,NEW1=cccccccc}
{,INCR=cccccccc}
{,INSERT=YES}
Data statement
? 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 statement
? 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
Endup Statement
? 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
| Code: |
//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
| Code: |
//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
/* |
Example 3
Create new library using SYS1.MACLIB as a source
| Code: |
//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
| Code: |
//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
| Code: |
//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
(Data statement 2, sequence number 00000224)
/* |
Example 6
Create and update a member library
| Code: |
//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
| Code: |
//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)
/* |
Example 8
CREATE A NEW GENERATION DATA SET
| Code: |
//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
/* |
|
|
| Back to top |
|
 |
mmwife
Super Moderator

Joined: 30 May 2003 Posts: 1592
|
|
|
|
Hi Jeya,
Since you're a self admitted mainframe fresher, here's a fact you should know about "IEBUPDATE". It's really IEBUPDTE and it's pronounced "iebupditty'.
Regards, Jack. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|