DSLIST through REXX

Category: REXX Scripting · Author: Yogesh (VNDJ29) · October 2007

Overview

A REXX routine that uses ISPF's LMDLIST function to generate a dataset listing comparable to the ISPF 3.4 interface, using only a high-level qualifier as input.

Complete REXX Code

/*REXX*/
/* AUTHOR - YOGESH (VNDJ29)                     OCTOBER 2007  */
/* THIS REXX ROUTINE USES LMDLIST FUNCTION (ISPF) TO CREATE   */
/* A LIST OF DATASETS (SIMILAR TO 3.4 LIST) WITH THE HELP OF  */
/* JUST HIGH LEVEL QUALIFIER. THE WILDCARD '*' CAN BE USED.   */
/*-------------------------------------------------------------*/
/* THE DATASET LIST WILL BE WRITTEN TO VNDJ29.LIST.DATASETS    */
/*-------------------------------------------------------------*/

ADDRESS ISPEXEC
DSNLEV = 'PA00.CP000000.CTAA*'
DONE = 'NO'
COUNT = 0

"LMDINIT LISTID("LSTID") LEVEL("DSNLEV")"

DO WHILE DONE = 'NO'
    "LMDLIST LISTID("LSTID") OPTION(SAVE) GROUP(LIST) STATS(NO)"
    COUNT = COUNT + 1
    IF COUNT >= 1 THEN
       DONE = 'YES'
    ELSE NOP
END

"LMDLIST LISTID("LSTID") OPTION(FREE)"
/*REXX*/

Output

By default, results are written to USERID.LIST.DATASETS. To display results on-screen instead, change OPTION(SAVE) to OPTION(LIST):

"LMDLIST LISTID("LSTID") OPTION(LIST) DATASET(DSVAR) STATS(YES)"