lunes, 16 de julio de 2018

Utilidades Rexx IV: listar miembros

ACTUALIZADO: hagamos un .csv para tener la lista en un fichero excel.

Aquí os dejo un programilla rexx que lista los componentes/miembros de una librería que le indiquemos:

/* REXX*/                                               
ADDRESS "ISPEXEC"                                       
"LMINIT DATAID(LMID) DATASET('"libreria.componentes.alistar"')"
"LMOPEN DATAID("LMID")"                                 
DO FOREVER = 1                                          
    "LMMLIST DATAID("LMID") MEMBER(LMMEM) STATS(YES)"   
    IF RC > 0 THEN LEAVE                                
    SAY 'MEMBER NAME:' LMMEM                            
    SAY 'TSO UID    :' ZLUSER                           
    SAY 'CREATE DATE:' ZLCDATE                          
END                                                     
"LMFREE DATAID("LMID")"   
                         

Donde:
LMMEM es el nombre del componente/miembro de la librería.
ZLUSER es el usuario que lo creó.
ZLCDATE es la fecha de creación del componente.

ó para nuestro fichero excel:
/* REXX*/                                                
ADDRESS "ISPEXEC"                                        
"LMINIT DATAID(LMID) DATASET('"libreria.componentes.alistar"')"
"LMOPEN DATAID("LMID")"                                  
DO FOREVER = 1                                           
    "LMMLIST DATAID("LMID") MEMBER(LMMEM) STATS(YES)"    
    IF RC > 0 THEN LEAVE                                 
    SAY LMMEM ';' ZLUSER ';' ZLCDATE                             
END                                                      
"LMFREE DATAID("LMID")" 

Para ejecutar nuestro código rexx hemos hecho este job:



//REXXJCL  JOB (OPC0,001),'CONSU',REGION=0M,NOTIFY=&SYSUID,
//            CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),COND=(4,LT)
//REXXPGM  EXEC PGM=IKJEFT01                              
//SYSEXEC   DD DSN=librería donde tengo el programa rexx,DISP=SHR               
//ISPPROF   DD DSN=&&PROF,UNIT=SYSDA,SPACE=(TRK,(5,5,5)), 
//             RECFM=FB,LRECL=80                          
//ISPSLIB   DD DISP=SHR,DSN=ISP.SISPSLIB                  
//ISPPLIB   DD DISP=SHR,DSN=ISP.SISPPENU                  
//ISPMLIB   DD DISP=SHR,DSN=ISP.SISPMENU                  
//ISPTLIB   DD DISP=SHR,DSN=ISP.SISPTENU                  
//ISPLOG    DD SYSOUT=*,DCB=(LRECL=125,RECFM=VBA)         
//SYSTSPRT DD  SYSOUT=*,DCB=LRECL=125                     
//SYSPRINT DD  SYSOUT=*                                   
//SYSTSIN  DD  *                                          
  ISPSTART CMD(REXXLIS)                                   
/*
                               

Donde REXLIST sería el nombre de nuestro programa rexx.
La información la veremos en el SYSTSPRT:


No hay comentarios: