Obtener Datos de los elementos Host

Todo lo relacionado con REXX en este ambiente.
Responder
neoelvis

Obtener Datos de los elementos Host

Mensaje por neoelvis » 12 Jun 2011, 21:30

Estimados
Tengo necesidad de obtener siguientes datos: Size, Created, Changed, ID.
De los elementos del Mainframe utilizando Rexx, he utilizado la función LISTDSI, pero no obtiene los datos requeridos.
El objetivo de lo solicitado es tener una lista de elementos y obtener esos datos al ejecutar el elemento rexx, y enviarlo a un archivo plano.
Por favor si alguien tiene una forma de obtener los datos antes mencionados me la hace llegar. Mil Gracias...

NJB
Su anfitrion
Su anfitrion
Mensajes: 1112
Registrado: 12 Oct 2003, 16:27
País: Argentina
Ciudad: Capilla del Señor
Ocupación: System Programmer
Contactar:

Re: Obtener Datos de los elementos Host

Mensaje por NJB » 12 Jun 2011, 22:16

Hola

Asumo que al decir elementos te referis a un dataset y en particular a los miembros de un particionado.

Si es así debes usar funciones del ISPF para poder obtener esos datos, supongo que queres obtener lo mismo que muestra la lista de miembros al editar o browsear un dataset. Estos datos son escritos por el ISPF en particular por el editor.

Tenes que usar funciones de Library Management que no solo te permiten leer las estadisticas (tal el nombre de lo que yo me estoy refiriendo) sino incluso cambiarlo siempre y cuando el RACF te lo permita.

Te mando un cordial saludo.
Norberto Bocalandro

delacera

Re: Obtener Datos de los elementos Host

Mensaje por delacera » 04 Nov 2011, 04:14

Buenos días,

En el siguiente link tienes la relación de servicios ispf para poder acceder a la información de particionados.

http://publib.boulder.ibm.com/infocente ... g80214.htm

Te adjunto un código para que lo pruebes y me dices si te vale:

Código: Seleccionar todo

/*REXX*/                                                              
Address ISPEXEC                                                       
dslev="XE02863.*"                                                     
dslst.0 = 0                                                           
dsnlnen = 0                                                           
"LMDINIT LISTID(LISTID)  LEVEL("DSLEV") "                             
"LMDLIST LISTID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"     
                                                                      
        do while ( rc = 0)                                            
           i = dslst.0 + 1                                            
           dslst.i = strip(dsvar)                                     
           dslst.0 = i                                                
                                                                      
"LMDLIST LISTID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"     
        end                                                           
        "LMDFREE LISTID("LISTID") "                                   
        do i = 1 to dslst.0                                           
            dsvar = dslst.i                                           
            "LMINIT DATAID(LISTID) DATASET("dsvar") ENQ(SHR)"         
          "LMOPEN DATAID("LISTID") OPTION(INPUT) ORG(DSORG) "       
          if dsorg <> "PO" then do                                  
             "LMCLOSE DATAID("LISTID")"                             
             "LMFREE  DATAID("LISTID")"                             
          end                                                       
          membr=" "                                                 
          "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"       
          if rc = 4 then ,                                          
          if rc = 4 then ,                                          
             say dsvar "No tiene miembros"                          
          do while ( rc = 0 )                                       
             say dsvar membr ZLC4DATE ZLM4DATE ZLVERS ZLMOD ZLUSER  
             "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"    
          end                                                       
          "LMCLOSE DATAID("LISTID")"                                
          "LMFREE  DATAID("LISTID")"                                
       end                                                          
        exit                                                        

Lancelotemv
Usuario
Usuario
Mensajes: 10
Registrado: 12 Nov 2010, 20:21
País: Peru
Ciudad: Lima
Ocupación: Analista funcional

Re: Obtener Datos de los elementos Host

Mensaje por Lancelotemv » 06 Sep 2012, 20:02

Hola Jose Luis,

He probado la rutina, pero tengo un inconveniente, al tratar de consultar al componente de la librería particionada.

La librería a trabajar es la GX00022.JOB, pero al tratar de leer el miembro o componente de la librería particionada, sale error porque el sistema antepone a la librería el nombre de mi usuario quedando de esta forma ('GX00022.GX00022.JOB'), por lo tanto me da error de DSN no catalogada, como podría quitarle este inconveniente.

DSN dsvar : GX00022.JOB
LMINIT rc : 8
ZERRMSG : ISRZ002

ZERRSM : Data set not cataloged
ZERRLM : 'GX00022.GX00022.JOB' was not found in catalog.

Código: Seleccionar todo

/*REXX*/                                                                        
Address ISPEXEC                                                                 
dslev="GX00022.JOB"                                                             
dslst.0 = 0                                                                     
dsnlnen = 0                                                                     
"LMDINIT LISTID(LISTID)  LEVEL("DSLEV") "                                       
"LMDLIST LISTID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"               
                                                                                
        do while ( rc = 0)                                                      
           i = dslst.0 + 1                                                      
           dslst.i = strip(dsvar)                                               
           dslst.0 = i                                                          
                                                                                
"LMDLIST LISTID("LISTID") OPTION(LIST) STATS(YES) DATASET(DSVAR)"               
        end                                                                     
        "LMDFREE LISTID("LISTID") "                                             
        do i = 1 to dslst.0                                                     
            dsvar = dslst.i                                                     
            say "DSN dsvar : " dsvar                                            
   "LMINIT DATAID(LISTID) DATASET("dsvar") ENQ(SHR) "                           
            say "LMINIT rc : " rc                                               
            say "ZERRMSG : " ZERRMSG                                            
            say "ZERRSM : " ZERRSM                                              
            say "ZERRLM : " ZERRLM                                              
            say "ZERRHM : " ZERRHM                                              
            say "ZERRHM : " ZERRHM                                              
          "LMOPEN DATAID("LISTID") OPTION(INPUT) ORG(DSORG) "                   
          if dsorg <> "PO" then do                                              
             "LMCLOSE DATAID("LISTID")"                                         
             "LMFREE  DATAID("LISTID")"                                         
          end                                                                   
          membr=" "                                                             
          "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"                   
          if rc = 4 then ,                                                      
          if rc = 4 then ,                                                      
             say dsvar "No tiene miembros"                                      
          do while ( rc = 0 )                                                   
             say dsvar membr ZLC4DATE ZLM4DATE ZLVERS ZLMOD ZLUSER              
             "LMMLIST DATAID("LISTID") MEMBER(MEMBR) STATS(YES)"                
          end                                                                   
          "LMCLOSE DATAID("LISTID")"                                            
          "LMFREE  DATAID("LISTID")"                                            
       end                                                                      
        exit                                                                    
Saludos Cordiales,
Elvis Muñoz Villacorta

Avatar de Usuario
Vicente
Colaborador avanzado
Colaborador avanzado
Mensajes: 543
Registrado: 21 Jul 2011, 04:52
País: España
Ciudad: Malaga
Ocupación: Técnico en Sistemas

Re: Obtener Datos de los elementos Host

Mensaje por Vicente » 07 Sep 2012, 03:56

Hola Elvis:
Es posible que en tu perfil de TSO tengas activado PREFIX; esto hace que a todo nombre de fichero, que no escribas entre comillas, el sistema le añada tu nombre de usuario como primer cualificador.
Para resolverlo puedes ejecutar el mandato de TSO: PROFILE NOPREFIX
O bien puedes escribir todos los nombres de ficheros entre comillas; por ejemplo, en lugar de

Código: Seleccionar todo

DATASET("dsvar")...
algo así como

Código: Seleccionar todo

DATASET('"dsvar'")....
Un saludo
Varios días probando, equivocandote y volviendo a probar
pueden ahorrarte quince minutos de lectura de un manual.

Avatar de Usuario
Vicente
Colaborador avanzado
Colaborador avanzado
Mensajes: 543
Registrado: 21 Jul 2011, 04:52
País: España
Ciudad: Malaga
Ocupación: Técnico en Sistemas

Re: Obtener Datos de los elementos Host

Mensaje por Vicente » 07 Sep 2012, 03:58

Corrijo errata:
Algo así como

Código: Seleccionar todo

DATASET('"dsvar"')...
Varios días probando, equivocandote y volviendo a probar
pueden ahorrarte quince minutos de lectura de un manual.

Lancelotemv
Usuario
Usuario
Mensajes: 10
Registrado: 12 Nov 2010, 20:21
País: Peru
Ciudad: Lima
Ocupación: Analista funcional

Re: Obtener Datos de los elementos Host

Mensaje por Lancelotemv » 10 Sep 2012, 19:05

La rutina esta correcta, pero no puedo ejecutarlo desde un JOB...

me da el error indicado.


LMINIT rc1 : -3
ZERRMSG : ZERRMSG
ZERRSM : ZERRSM
ZERRLM : ZERRLM
ZERRHM : ZERRHM
ZERRHM : ZERRHM

Responder