Use EDGXMP2 to display volume information, as shown in this example:
/*REXX*****************************************************************/
/* */
/* DSNLIST EXEC - Given any volume serial number it displays all the */
/* information held by DFSMSrmm about the data sets on*/
/* the volume. */
/* */
/* Variables used from SEARCHDATASET command: */
/* edg@dsn.0 - number of data sets on the volume. */
/* edg@dsn.x - data set name of each of the data sets on */
/* volume (x=1 to edg@dsn.0). */
/* edg@vol.x - volume serial number (x=1 to edg@dsn.0) */
/* edg@seq.x - data set sequence number (x=1 to edg@dsn.0) */
/* */
/**********************************************************************/
arg volser /* Use parameter supplied as the */
/* volume serial. */
Do while volser = '' /* No volume serial so ask for one*/
Say "Enter Volume Serial:" /* Issue prompt to TSO user */
Pull volser /* Get volume serial from TSO user*/
end
sysauth.edgdate = "EUROPEAN" /* Tell RMM TSO command to return */
/* output as REXX variables and */
/* dates in EUROPEAN (DD/MM/YYYY) */
/* format. */
save_prompt = prompt("OFF") /* Turn PROMPTing off. */
save_msg = msg("OFF") /* Turn messages off. */
/* Get information for data sets */
/* on the volume */
address "TSO" "RMM SEARCHDATASET D(*) VOLUME("volser") LIMIT(*)"
junk = msg(save_msg) /* Restore previous message status*/
If rc = 0 then
do
drop sysauth.edgdate /* Tell the RMM TSO command to */
/* return output via messages. */
/* Display data set listed by the */
/* Search command until all are */
/* displayed or non-zero return */
/* code received. */
Do dataset = 1 to edg@dsn.0 while (rc = 0)
address "TSO" "RMM LISTDATASET '"edg@dsn.dataset"'
VOLUME("edg@vol.dataset") SEQ("edg@seq.dataset")"
say "" /* Write a couple of extra blank */
say "" /* lines */
end
/* complete with a summary */
say edg@dsn.0 "Data sets on volume "volser" displayed."
end
else
do
drop sysauth.edgdate /* An error has occurred. Tell */
/* the RMM TSO command to return */
/* output via messages. */
/* Get error information from */
/* DFSMSrmm. */
say "SEARCHDATASET D(*) VOLUME("volser") LIMIT(*)"
address "TSO" "RMM SEARCHDATASET D(*) VOLUME("volser") LIMIT(*)"
end
junk = prompt(save_prompt) /* Restore PROMPT status. */
exit(0) /* return to caller */