How to: |
Available Operating Systems: z/OS
Available Languages: reporting, Maintain
The GETPDS function determines if a specific member of a partitioned data set (PDS) exists, and if it does, returns the PDS name. This function is used primarily in Dialogue Manager procedures.
To use this function, allocate the PDS to a ddname because the ddname is required in the function call. You can search multiple PDSs with one function call if they are concatenated to one ddname.
GETPDS is almost identical to FINDMEM, except that GETPDS provides either the PDS name or returns a different set of status codes.
GETPDS(ddname, member, output)
where:
A8
Is the ddname to which the PDS is allocated. This value must be an eight-character literal enclosed in single quotation marks, or a variable that contains the ddname. If you supply a literal less than eight characters long, pad it with trailing spaces.
A8
Is the member for which the function searches. This value must be eight characters long. If you supply a literal with less than eight characters, pad it with trailing spaces.
A44
Is the name of the field that contains the result, or the format of the output value enclosed in single quotation marks. The maximum length of a PDS name is 44. The result is one of the following:
PDS name is the name of the PDS that contains the member, if it exists.
*D indicates the ddname is not allocated to a data set.
*M indicates the member does not exist in the PDS.
*E indicates an error occurred. For example, the data set allocated to the ddname is not a PDS (and may be a sequential file).
GETPDS searches for the member specified by &MEMBER in the PDS allocated to &DDNAME, and returns the result to &PNAME. The result has the format A44.
-SET &DDNAME = 'MASTER '; -SET &MEMBER = 'EMPLOYEE'; -SET &PNAME = ' '; -SET &PNAME = GETPDS(&DDNAME, &MEMBER, 'A44'); -IF &PNAME EQ '*D' THEN GOTO DDNOAL; -IF &PNAME EQ '*M' THEN GOTO MEMNOF; -IF &PNAME EQ '*E' THEN GOTO DDERROR; -* -TYPE MEMBER &MEMBER IS FOUND IN -TYPE THE PDS &PNAME -TYPE ALLOCATED TO &DDNAME -* -EXIT -DDNOAL -* -TYPE DDNAME &DDNAME NOT ALLOCATED -* -EXIT -MEMNOF -* -TYPE MEMBER &MEMBER NOT FOUND UNDER DDNAME &DDNAME -* -EXIT -DDERROR -* -TYPE ERROR IN GETPDS; DATA SET PROBABLY NOT A PDS. -* -EXIT
The output is similar to the following:
MEMBER EMPLOYEE IS FOUND IN THE PDS USER1.MASTER.DATA ALLOCATED TO MASTER
To view the attributes of the PDS that contains a specific member, this Dialogue Manager procedure can search for the EMPLOYEE member in the PDS allocated to the ddname MASTER and, based on its existence, allocate the PDS to the ddname TEMPMAST. Dialogue Manager system variables are used to display the attributes.
-SET &DDNAME = 'MASTER '; -SET &MEMBER = 'EMPLOYEE'; -SET &PNAME = ' '; -SET &PNAME = GETPDS(&DDNAME, &MEMBER, 'A44'); -IF &PNAME EQ '*D' OR '*M' OR '*E' THEN GOTO DDERROR; -* DYNAM ALLOC FILE TEMPMAST DA - &PNAME SHR -RUN -? MVS DDNAME TEMPMAST -TYPE The data set attributes include: -TYPE Data set name is: &DSNAME -TYPE Volume is: &VOLSER -TYPE Disposition is: &DISP -EXIT -* -DDERROR -TYPE Error in GETPDS; Check allocation for &DDNAME for -TYPE proper allocation. -* -EXIT
The sample output is:
THE DATA SET ATTRIBUTES INCLUDE: DATA SET NAME IS: USER1.MASTER.DATA VOLUME IS: USERM0 DISPOSITION IS: SHR