|
The function statement (ADD, CHANGE, REPL, or REPRO) is used to
begin an IEBUPDTE operation. At least one function statement must
be provided for each member or data set to be processed.
A member or a data set can be added directly to an old master data
set if the space originally allocated to the old master is sufficient
to incorporate that new member or data set. ADD specifies that a member
or a data set is added to an old master data set. If a member is added
and the member name already exists in the old master data set, processing
is ended. If, however, PARM=NEW is specified on the EXEC statement,
the member is replaced. For a sequential output master data set, PARM=NEW
must always be specified on the EXEC statement.
When a member replaces an identically named member on the old master
data set or a member is changed and rewritten on the old master, the
alias (if any) of the original member still refers to the original
member. However, if an identical alias is specified for the newly
written member, the original alias entry in the directory is changed
to refer to the newly written member.
REPL specifies that a member of a data set is being entered in
its entirety as a replacement for a sequential data set or for a member
of the old master data set. The member name must already exist in
the old master data set. CHANGE specifies that modifications are to
be made to an existing member or data set. Use of the CHANGE function
statement without a NUMBER or DELETE detail statement, or a data statement
causes an error condition. REPRO specifies that a member or a data
set is copied in its entirety to a new master data set.
Members are logically deleted from a copy of a library by being
omitted from a series of REPRO function statements within the same
job step.
One sequential data set can be copied in a given job step. A sequential
data set is logically deleted from a new volume by being omitted from
a series of job steps which copy only the desired data sets to the
new volume. If the NEW subparameter is coded in the EXEC statement,
only the ADD function statement is permitted.
The syntax of the FUNCTION statement is:
Label |
Statement |
Parameters |
---|
./[label]
|
{ADD|CHANGE|
REPL|REPRO}
|
[LIST=ALL]
[,SEQFLD={ddl|(ddl,ddl)}]
[,NEW={PO|PS}]
[,MEMBER=membername]
[,COLUMN={nn|1}]
[,UPDATE=INPLACE]
[,INHDR=routinename]
[,INTLR=routinename]
[,OUTHDR=routinename]
[,OUTTLR=routinename]
[,TOTAL=(routinename,size)]
[,NAME=membername]
[,LEVEL=hh]
[,SOURCE=x]
[,SSI=hhhhhhhh]
|
Note: COLUMN and UPDATE=INPLACE can only be used with CHANGE
|
where:
- LIST=ALL
- specifies that the SYSPRINT data set is to contain the entire
updated member or data set and the control statements used in its
creation.
Default: For old data sets, if
LIST is omitted, the SYSPRINT data set contains modifications and
control statements only. If UPDATE was specified, the entire updated
member is listed only when renumbering has been done. For new data
sets, the entire member or data set and the control statements used
in its creation are always written to the SYSPRINT data set.
- SEQFLD={ddl|(ddl,ddl)}
- ddl specifies, in decimal, the starting column (up
to column 80) and length (8 or less) of sequence numbers within existing
logical records and subsequent data statements. Note that the starting
column specification (dd) plus the length (l) cannot
exceed the logical record length (LRECL) plus 1. Sequence numbers
on incoming data statements and existing logical records must be padded
to the left with enough zeros to fill the length of the sequence field.
- (ddl,ddl)
- may be used when an alphanumeric sequence number generation
is required. The first ddl specifies the sequence number
columns as above. The second ddl specifies, in decimal, the
starting column (up to column 80) and length (8 or less) of the numeric
portion of the sequence numbers in subsequent NUMBER statements. This
information is used to determine which portion of the sequence number
specified by the NEW1 parameter may be increased and which portions
should be copied to generate a new sequence number for inserted or
renumbered records.
The numeric columns must fall within the sequence
number columns specified (or defaulted) by the first ddl.
Default: 738 is assumed, that is,
an 8-byte sequence number beginning in column 73. Therefore, if existing
logical records and subsequent data statements have sequence numbers
in columns 73 through 80, this keyword need not be coded.
- NEW={PO|PS}
- specifies the organization of the old master data set and the
organization of the updated output. NEW should not be specified unless
the organization of the new master data set is different from the
organization of the old master. NEW can only be coded on the first
control record. These values can be coded:
- PO
- specifies that the old master data set is a sequential data
set, and that the updated output is to become a member of a partitioned
data set or PDSE.
- PS
- specifies that the old master data set is a partitioned data
set or PDSE, and that a member of that data set is to be converted
into a sequential data set.
- MEMBER=membername
- specifies a name to be assigned to the member placed in the
partitioned data set or PDSE defined by the SYSUT2 DD statement. MEMBER
is used only when SYSUT1 defines a sequential data set, SYSUT2 defines
a partitioned data set or PDSE, and NEW=PO is specified.
- COLUMN={nn|1}
- specifies, in decimal, the starting column of a data field within
a logical record. The field extends to the end of the logical record.
Within an existing logical record, the data in the defined field is
replaced by data from a subsequent data statement.
COLUMN may only
be coded with CHANGE.
- UPDATE=INPLACE
- specifies that the old master data set is to be updated within
the space it actually occupies. The old master data set must reside
on a direct access device. UPDATE=INPLACE is valid only when coded
with CHANGE. No other function statements (ADD, REPL, REPRO) may be
in the same job step.
- INHDR=routinename
- specifies the name of the user routine that handles any user
input (SYSUT1) header labels. This parameter is valid only when a
sequential data set is being processed.
- INTLR=routinename
- specifies the name of the user routine that handles any user
input (SYSUT1) trailer labels. INTLR is valid only when a sequential
data set is being processed, but not when UPDATE=INPLACE is coded.
- OUTHDR=routinename
- specifies the name of the user routine that handles any user
output (SYSUT2) header labels. OUTHDR is valid only when a sequential
data set is being processed, but not when UPDATE=INPLACE is coded.
- OUTTLR=routinename
- specifies the name of the user routine that handles any user
output (SYSUT2) trailer labels. OUTTLR is valid only when a sequential
data set is being processed, but not when UPDATE=INPLACE is coded.
- TOTAL=(routinename,size)
- specifies that exits to a user's routine are to be provided
prior to writing each record. This parameter is valid only when a
sequential data set is being processed. These values are coded:
- routinename
- specifies the name of your totaling routine.
- size
- specifies the number of bytes required for your data. The size
should not exceed 32K, nor be less than 2 bytes. In addition, the
keyword OPTCD=T must be specified for the SYSUT2 (output) DD statement.
- NAME=membername
- indicates the name of the member placed into the partitioned
data set or PDSE. The member name need not be specified in the DD
statement itself. NAME must be provided to identify each input member. Do not specify NAME if the input is a sequential data set.
This parameter is valid only when a member of a partitioned data set
or PDSE is being processed.
- LEVEL=hh
- specifies the change (update) level in hexadecimal (00-FF).
The level number is recorded in the directory entry of the output
member.
The level number is in the first byte of the SSI, system status information.
If the member entry contains ISPF information, the level number will
overlay part of it. This parameter is valid only when a member of
a partitioned data set or PDSE is being processed. LEVEL has no effect
when SSI is specified.
- SOURCE=x
- specifies your modifications when the x value is 0,
or IBM modifications when the x value is 1. The source is
recorded in the directory entry of the output member. This value is
in the second byte of the SSI, system status information. If the
member entry contains ISPF information, this value will overlay one
bit of it. This parameter is valid only when a member of a partitioned
data set or PDSE is being processed. SOURCE has no effect when SSI
is specified.
- SSI=hhhhhhhh
- specifies eight hexadecimal characters of system status information
(SSI) to be placed in the directory of the new master data set as
four packed decimal bytes of user data. If the member entry contains
ISPF information, the SSI will overlay part of it. PTFs (software
updates from IBM) typically set the SSI. This parameter is valid only
when a member of a partitioned data set or PDSE is being processed.
SSI overrides any LEVEL or SOURCE parameter given on the same function
statement.
|