FLB

/* REXX */
/*                                             NAO ALTERAR POR FAVOR */
/* FLB                                                               */
/*   MACRO EDIT - BROWSE DE FICHEIROS COM BASE NA POSIçãO DO CURSOR  */
/*                DO CURSOR DENTRO DE JCL                            */
/*                (OPTIMIZADO SE UTILIZADO EM TECLA DE FUNCAO)       */
/*                                                                   */
/*   TECLA DE FUNCAO RECOMENDADA: PF18                               */
/*                                                                   */
/*                                                                   */
/* ***************************************************************** */
/*  browse de ficheiros com base na posição do cursor dentro de jcl  */
/* ***************************************************************** */
address ispexec
"CONTROL ERRORS RETURN"
"ISREDIT MACRO"
"ISREDIT (DSLINE) = LINE .ZCSR"
"VGET ZSCREEN"
start  = pos('DSN=',dsline)
if start = 0 then
  exit
start  = start + 4
len    = pos(',',dsline,start)
if len = 0 then
  len  = pos(' ',dsline,start)
len = len - start
dsname = substr(dsline,start,len)
dsname = strip(dsname,B,"'")
dsname = "'"dsname"'"
x = msg('OFF')
address tso "ALLOC DDNAME(FLB"zscreen") DSNAME("dsname") SHR"
/* dsirc = listdsi(dsname) - not working due to unit error */
dsirc = listdsi('FLB'zscreen' FILE')
select
  when dsirc > 4 then
    do
      say 'DATASET' dsname 'HAD A RETURN CODE OF' dsirc':'sysreason
    end /* do */
  when sysused = 0 then
    do
      say 'DATASET' dsname 'IS EMPTY'
    end /* do */
  when wordpos(sysdsorg,'PS PSU PO POU') > 0 & ,  /* valid orgs */
       pos(sysrecfm,'S') = 0 then             /* no spanned */
    do
      "ISPEXEC BROWSE DATASET("dsname")"
    end /* do */
end /* select */

zz000:
address tso "FREE FILE(FLB"zscreen")"
x = msg('ON')
exit

Comentários

Mensagens populares deste blogue

CC

ED

Z#SQLCOD