Listar miembros de un PDS

Utilitarios artesanales que desarrollamos para nosotros y deseamos compartir (en REXX)
Responder
Antaeus

Listar miembros de un PDS

Mensaje por Antaeus » 16 Nov 2007, 10:40

Para empezar, yo voy a poner una utilidad muy sencillita, pero que me costó bastante sacarla. Se trata de un código para listar todos los miembros que tiene un PDS.

Código: Seleccionar todo

TRACE O                                              
SAY 'INDICA LA LIBRERIA PARA EL LISTADO DE MIEMBROS:'
PARSE PULL DSN                                       
                                                     
ID = USERID()                                        
NAME = '.TP.LIST'                                    
OUTNAME = 'TSOMVS.'||ID || NAME                      
                                                     
IF DSN='' THEN                                       
   DO                                                
       SAY                                           
       SAY                                           
       SAY '****************************************'
       SAY '* NO SE HA INTRODUCIDO NINGUN VALOR    *'
       SAY '* VALIDO PARA LA LIBRERIA. POR FAVOR,  *'
       SAY '* VUELVA A PROBAR CON UN DATO CORRECTO *'
       SAY '****************************************'
       EXIT                                          
   END                                               

IF SYSDSN('OUTNAME')¬='OK' THEN                                  
DO                                                               
"ALLOC DD(OUTPUT) DA('"OUTNAME"') NEW REU UNIT(SYSDA) DSORG(PS)",
"SPACE(2 1) TRACKS LRECL(80) RECFM(F,B)"                         
END                                                              
ELSE                                                             
DO                                                               
"ALLOC DD('ESCRIBE') DA('"OUTNAME"') REU"                        
DROP LISTA.                                                      
DROP LISTA.                                                      
X = OUTTRAP(LISTA.)                                              
"LISTDS ('"DSN"') MEMBERS"                                       
X = OUTTRAP("OFF")                                               
                                                                 
DO M = 7 TO LISTA.0                                              
   MIEMBRO=STRIP(LISTA.M)                                        
   QUEUE MIEMBRO                      
END                                   
END                                   
"EXECIO "QUEUED()" DISKW OUTPUT(FINIS"
"FREE DD(OUTPUT)"

Luis Miguel Martinez Ch.

Re: Listar miembros de un PDS

Mensaje por Luis Miguel Martinez Ch. » 18 Nov 2007, 17:03

Me paso lo mismo que a ti hace poco tiempo... y yo creo que a varios .... desarrollando un programa que me costo trabajo, despues me di cuenta cuenta ya existia un comando de ISPF para hacer lo que yo necesitaba ... pero bueno es parte del oficio ....


Puedes sacar una lista de los members de un PDS con el tool IEHLIST.


//LISTPDS JOB (LMMC),'LIST MEMBERS',CLASS=A,MSGCLASS=X,
// MSGLEVEL=(0,0),NOTIFY=&SYSUID

//*
//STEP001 EXEC PGM=IEHLIST
//*
//SYSPRINT DD SYSOUT=*
//DD001 DD UNIT=SYSDA,VOL=SER=XXXXXX,DISP=OLD
//*
//*
//*
//*
//SYSIN DD *
LISTPDS DSNAME=(SYS1.PROCLIB),VOL=3390=XXXXXX
/*
//*********************************************

Responder