z/OS DFSMSdfp Utilities
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Function Statement

z/OS DFSMSdfp Utilities
SC23-6864-00

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.
Related reading:

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014